This is an automated email from the ASF dual-hosted git repository. jiriondrusek pushed a commit to branch camel-main in repository https://gitbox.apache.org/repos/asf/camel-quarkus.git
commit af0693a1881ec2a6d2922d9c4eb585b33dc1c628 Author: JiriOndrusek <ondrusek.j...@gmail.com> AuthorDate: Thu Jul 20 11:03:39 2023 +0200 Fixed arangodb + generated pomns --- .../component/arangodb/it/ArangodbResource.java | 58 +++++++++++++---- .../component/arangodb/it/ArangodbTest.java | 75 +++++++++------------- .../arangodb/it/ArangodbTestResource.java | 2 +- poms/bom/src/main/generated/flattened-full-pom.xml | 10 +-- .../src/main/generated/flattened-reduced-pom.xml | 10 +-- .../generated/flattened-reduced-verbose-pom.xml | 10 +-- 6 files changed, 91 insertions(+), 74 deletions(-) diff --git a/integration-tests/arangodb/src/main/java/org/apache/camel/quarkus/component/arangodb/it/ArangodbResource.java b/integration-tests/arangodb/src/main/java/org/apache/camel/quarkus/component/arangodb/it/ArangodbResource.java index e56adbcb65..8da0ca2ef0 100644 --- a/integration-tests/arangodb/src/main/java/org/apache/camel/quarkus/component/arangodb/it/ArangodbResource.java +++ b/integration-tests/arangodb/src/main/java/org/apache/camel/quarkus/component/arangodb/it/ArangodbResource.java @@ -17,10 +17,13 @@ package org.apache.camel.quarkus.component.arangodb.it; import java.net.URI; -import java.util.Collection; +import java.util.Arrays; import java.util.HashMap; +import java.util.List; import java.util.Map; +import java.util.stream.Collectors; +import com.arangodb.entity.BaseDocument; import com.arangodb.entity.DocumentCreateEntity; import com.arangodb.entity.DocumentDeleteEntity; import jakarta.enterprise.context.ApplicationScoped; @@ -36,6 +39,7 @@ import jakarta.ws.rs.Produces; import jakarta.ws.rs.core.MediaType; import jakarta.ws.rs.core.Response; import org.apache.camel.ProducerTemplate; +import org.eclipse.microprofile.config.inject.ConfigProperty; import org.jboss.logging.Logger; import static org.apache.camel.component.arangodb.ArangoDbConstants.AQL_QUERY; @@ -44,7 +48,7 @@ import static org.apache.camel.component.arangodb.ArangoDbConstants.AQL_QUERY_OP import static org.apache.camel.component.arangodb.ArangoDbConstants.ARANGO_KEY; import static org.apache.camel.component.arangodb.ArangoDbConstants.RESULT_CLASS_TYPE; -@Path("/arangodb/camel") +@Path("/arangodb") @ApplicationScoped public class ArangodbResource { @@ -53,14 +57,20 @@ public class ArangodbResource { @Inject ProducerTemplate producerTemplate; + @ConfigProperty(name = "camel.arangodb.host") + String host; + + @ConfigProperty(name = "camel.arangodb.port") + String port; + @PUT @Consumes(MediaType.TEXT_PLAIN) @Produces(MediaType.TEXT_PLAIN) public Response put(String message) throws Exception { LOG.infof("Saving to arangodb: %s", message); final DocumentCreateEntity<?> response = producerTemplate.requestBody( - "arangodb:test?host={{camel.arangodb.host}}&port={{camel.arangodb.port}}&documentCollection=camel&operation=SAVE_DOCUMENT", - message, DocumentCreateEntity.class); + String.format("arangodb:test?host=%s&port=%s&documentCollection=camel&operation=SAVE_DOCUMENT", host, port), + toDocument(message), DocumentCreateEntity.class); LOG.infof("Got response from arangodb: %s", response); return Response .created(new URI("https://camel.apache.org/")) @@ -73,13 +83,13 @@ public class ArangodbResource { @Produces(MediaType.TEXT_PLAIN) public Response get(@PathParam("key") String key) throws Exception { LOG.infof("Retrieve document from arangodb with key: %s", key); - final String response = producerTemplate.requestBodyAndHeader( + final BaseDocument response = producerTemplate.requestBodyAndHeader( "arangodb:test?host={{camel.arangodb.host}}&port={{camel.arangodb.port}}&documentCollection=camel&operation=FIND_DOCUMENT_BY_KEY", - key, RESULT_CLASS_TYPE, String.class, String.class); + key, RESULT_CLASS_TYPE, BaseDocument.class, BaseDocument.class); LOG.infof("Got response from arangodb: %s", response); return Response .ok() - .entity(response) + .entity(toString(response)) .build(); } @@ -107,7 +117,7 @@ public class ArangodbResource { producerTemplate.requestBodyAndHeaders( "arangodb:test?host={{camel.arangodb.host}}&port={{camel.arangodb.port}}&documentCollection=camel&operation=UPDATE_DOCUMENT", - msg, headers, String.class); + toDocument(msg), headers, String.class); return Response .ok() .build(); @@ -126,15 +136,39 @@ public class ArangodbResource { headers.put(AQL_QUERY, query); headers.put(AQL_QUERY_BIND_PARAMETERS, bindVars); headers.put(AQL_QUERY_OPTIONS, null); - headers.put(RESULT_CLASS_TYPE, String.class); + headers.put(RESULT_CLASS_TYPE, Map.class); - final Collection<?> responseList = producerTemplate.requestBodyAndHeaders( + final List o = producerTemplate.requestBodyAndHeaders( "arangodb:test?host={{camel.arangodb.host}}&port={{camel.arangodb.port}}&operation=AQL_QUERY", - fooName, headers, Collection.class); + fooName, headers, List.class); return Response .ok() - .entity(responseList.toString()) + .entity(toString(o)) .build(); } + + private BaseDocument toDocument(String msg) { + BaseDocument myObject = new BaseDocument(); + Arrays.stream(msg.split(",")).map(pair -> pair.split(":")) + .forEach(strings -> myObject.addAttribute(strings[0], strings[1])); + return myObject; + } + + private String toString(Object o) { + if (o instanceof List && ((List) o).size() == 1 && ((List) o).get(0) instanceof Map) { + return toString(((List) o).get(0)); + } + + if (o instanceof Map) { + return (String) ((Map) o).entrySet().stream() + .map(e -> ((Map.Entry) e).getKey() + ":" + ((Map.Entry) e).getValue()) + .collect(Collectors.joining(",")); + } + + if (o instanceof BaseDocument) { + return toString(((BaseDocument) o).getProperties()); + } + return o.toString(); + } } diff --git a/integration-tests/arangodb/src/test/java/org/apache/camel/quarkus/component/arangodb/it/ArangodbTest.java b/integration-tests/arangodb/src/test/java/org/apache/camel/quarkus/component/arangodb/it/ArangodbTest.java index 642dd304c0..aab9c737e8 100644 --- a/integration-tests/arangodb/src/test/java/org/apache/camel/quarkus/component/arangodb/it/ArangodbTest.java +++ b/integration-tests/arangodb/src/test/java/org/apache/camel/quarkus/component/arangodb/it/ArangodbTest.java @@ -24,16 +24,14 @@ import io.quarkus.test.common.QuarkusTestResource; import io.quarkus.test.junit.QuarkusTest; import io.restassured.RestAssured; import io.restassured.http.ContentType; -import io.restassured.response.Response; -import io.restassured.specification.RequestSpecification; import org.eclipse.microprofile.config.ConfigProvider; import org.junit.jupiter.api.AfterAll; import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.Test; -import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.hamcrest.Matchers.both; +import static org.hamcrest.Matchers.containsString; import static org.junit.jupiter.api.Assertions.assertNull; -import static org.junit.jupiter.api.Assertions.assertTrue; @QuarkusTest @QuarkusTestResource(ArangodbTestResource.class) @@ -46,29 +44,23 @@ class ArangodbTest { @Test public void testCreateGetDeleteDocument() { // create a new document - RequestSpecification request = RestAssured.given() + String key = RestAssured.given() .contentType(ContentType.TEXT) - .body("{\"foo\":\"bar\"}"); - Response response = request.put("/arangodb/camel"); - - int statusCode = response.getStatusCode(); - assertEquals(201, statusCode); - // getting key of the document inserted - String key = response.body().asString().trim(); - - // get the document by key - request = RestAssured.given() - .contentType(ContentType.TEXT); - response = request.get("/arangodb/camel/" + key); - statusCode = response.getStatusCode(); - assertEquals(200, statusCode); - String document = response.body().asString().trim(); - assertTrue(document.contains("\"foo\":\"bar\"")); + .body("foo:bar") + .put("/arangodb") + .then() + .statusCode(201) + .extract().body().asString(); + + RestAssured.get("/arangodb/" + key) + .then() + .statusCode(200) + .body(containsString("foo:bar")); // delete document RestAssured.given() .contentType(ContentType.TEXT) - .delete("/arangodb/camel/" + key) + .delete("/arangodb/" + key) .then() .statusCode(200); @@ -88,19 +80,16 @@ class ArangodbTest { // udpate document RestAssured.given() .contentType(ContentType.TEXT) - .body("{\"key\":\"myKey\",\"foo\":\"hello\", \"gg\":\"42\"}") - .post("/arangodb/camel/myKey") + .body("key:myKey,foo:hello,gg:42") + .post("/arangodb/myKey") .then() .statusCode(200); // get document by key - RequestSpecification request = RestAssured.given() - .contentType(ContentType.TEXT); - Response response = request.get("/arangodb/camel/myKey"); - assertEquals(200, response.getStatusCode()); - String document = response.body().asString().trim(); - assertTrue(document.contains("\"foo\":\"hello\"")); - assertTrue(document.contains("\"gg\":\"42\"")); + RestAssured.get("/arangodb/myKey") + .then() + .statusCode(200) + .body(both(containsString("foo:hello")).and(containsString("gg:42"))); } @Test @@ -117,21 +106,15 @@ class ArangodbTest { myObject2.addAttribute("foo", "bar2"); collection.insertDocument(myObject2); - // get document with foo = bar1 - RequestSpecification request = RestAssured.given() - .contentType(ContentType.TEXT); - Response response = request.get("/arangodb/camel/foo/bar1"); - assertEquals(200, response.getStatusCode()); - String result = response.body().asString(); - assertTrue(result.contains("\"_key\":\"keyBar1\"")); - - //get document with foo = bar2 - request = RestAssured.given() - .contentType(ContentType.TEXT); - response = request.get("/arangodb/camel/foo/bar2"); - assertEquals(200, response.getStatusCode()); - result = response.body().asString().trim(); - assertTrue(result.contains("\"_key\":\"keyBar2\"")); + RestAssured.get("/arangodb/foo/bar1") + .then() + .statusCode(200) + .body(containsString("_key:keyBar1")); + + RestAssured.get("/arangodb/foo/bar2") + .then() + .statusCode(200) + .body(containsString("_key:keyBar2")); } @BeforeAll diff --git a/integration-tests/arangodb/src/test/java/org/apache/camel/quarkus/component/arangodb/it/ArangodbTestResource.java b/integration-tests/arangodb/src/test/java/org/apache/camel/quarkus/component/arangodb/it/ArangodbTestResource.java index b18228c91a..fff7512293 100644 --- a/integration-tests/arangodb/src/test/java/org/apache/camel/quarkus/component/arangodb/it/ArangodbTestResource.java +++ b/integration-tests/arangodb/src/test/java/org/apache/camel/quarkus/component/arangodb/it/ArangodbTestResource.java @@ -32,7 +32,7 @@ public class ArangodbTestResource implements QuarkusTestResourceLifecycleManager private static final Logger LOGGER = LoggerFactory.getLogger(ArangodbTestResource.class); private GenericContainer<?> container; private static final String CONTAINER_NAME = "arango"; - private static final String ARANGO_IMAGE = "arangodb:latest"; + private static final String ARANGO_IMAGE = "arangodb:3.10.9"; private static final String ARANGO_NO_AUTH = "ARANGO_NO_AUTH"; private static final Integer PORT_DEFAULT = 8529; diff --git a/poms/bom/src/main/generated/flattened-full-pom.xml b/poms/bom/src/main/generated/flattened-full-pom.xml index c8a7c7c619..76a61f8661 100644 --- a/poms/bom/src/main/generated/flattened-full-pom.xml +++ b/poms/bom/src/main/generated/flattened-full-pom.xml @@ -6115,7 +6115,7 @@ <dependency> <groupId>com.squareup.okio</groupId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} --> <artifactId>okio</artifactId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} --> - <version>1.17.2</version><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} --> + <version>1.17.5</version><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} --> </dependency> <dependency> <groupId>com.squareup.retrofit2</groupId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} --> @@ -6691,22 +6691,22 @@ <dependency> <groupId>org.web3j</groupId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} --> <artifactId>core</artifactId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} --> - <version>3.6.0</version><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} --> + <version>5.0.0</version><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} --> </dependency> <dependency> <groupId>org.web3j</groupId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} --> <artifactId>geth</artifactId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} --> - <version>3.6.0</version><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} --> + <version>5.0.0</version><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} --> </dependency> <dependency> <groupId>org.web3j</groupId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} --> <artifactId>parity</artifactId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} --> - <version>3.6.0</version><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} --> + <version>5.0.0</version><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} --> </dependency> <dependency> <groupId>org.web3j</groupId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} --> <artifactId>quorum</artifactId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} --> - <version>0.8.0</version><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} --> + <version>4.10.0</version><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} --> </dependency> <dependency> <groupId>software.amazon.awssdk.crt</groupId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} --> diff --git a/poms/bom/src/main/generated/flattened-reduced-pom.xml b/poms/bom/src/main/generated/flattened-reduced-pom.xml index f6373ec294..0a147eea3b 100644 --- a/poms/bom/src/main/generated/flattened-reduced-pom.xml +++ b/poms/bom/src/main/generated/flattened-reduced-pom.xml @@ -6115,7 +6115,7 @@ <dependency> <groupId>com.squareup.okio</groupId> <artifactId>okio</artifactId> - <version>1.17.2</version> + <version>1.17.5</version> </dependency> <dependency> <groupId>com.squareup.retrofit2</groupId> @@ -6656,22 +6656,22 @@ <dependency> <groupId>org.web3j</groupId> <artifactId>core</artifactId> - <version>3.6.0</version> + <version>5.0.0</version> </dependency> <dependency> <groupId>org.web3j</groupId> <artifactId>geth</artifactId> - <version>3.6.0</version> + <version>5.0.0</version> </dependency> <dependency> <groupId>org.web3j</groupId> <artifactId>parity</artifactId> - <version>3.6.0</version> + <version>5.0.0</version> </dependency> <dependency> <groupId>org.web3j</groupId> <artifactId>quorum</artifactId> - <version>0.8.0</version> + <version>4.10.0</version> </dependency> <dependency> <groupId>software.amazon.awssdk.crt</groupId> diff --git a/poms/bom/src/main/generated/flattened-reduced-verbose-pom.xml b/poms/bom/src/main/generated/flattened-reduced-verbose-pom.xml index 4db76fb393..a99a8ea618 100644 --- a/poms/bom/src/main/generated/flattened-reduced-verbose-pom.xml +++ b/poms/bom/src/main/generated/flattened-reduced-verbose-pom.xml @@ -6115,7 +6115,7 @@ <dependency> <groupId>com.squareup.okio</groupId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} --> <artifactId>okio</artifactId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} --> - <version>1.17.2</version><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} --> + <version>1.17.5</version><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} --> </dependency> <dependency> <groupId>com.squareup.retrofit2</groupId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} --> @@ -6656,22 +6656,22 @@ <dependency> <groupId>org.web3j</groupId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} --> <artifactId>core</artifactId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} --> - <version>3.6.0</version><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} --> + <version>5.0.0</version><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} --> </dependency> <dependency> <groupId>org.web3j</groupId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} --> <artifactId>geth</artifactId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} --> - <version>3.6.0</version><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} --> + <version>5.0.0</version><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} --> </dependency> <dependency> <groupId>org.web3j</groupId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} --> <artifactId>parity</artifactId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} --> - <version>3.6.0</version><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} --> + <version>5.0.0</version><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} --> </dependency> <dependency> <groupId>org.web3j</groupId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} --> <artifactId>quorum</artifactId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} --> - <version>0.8.0</version><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} --> + <version>4.10.0</version><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} --> </dependency> <dependency> <groupId>software.amazon.awssdk.crt</groupId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->