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 8820ce73b887d75312f54368dabce3b8937fd1cf Author: JiriOndrusek <ondrusek.j...@gmail.com> AuthorDate: Mon Jun 17 14:41:45 2024 +0200 Fixed couchdb issue + generated files --- .../component/couchdb/it/CouchdbResource.java | 6 +++--- .../component/couchdb/it/CouchdbTestDocument.java | 17 +++++++++++++---- .../camel/quarkus/component/couchdb/it/CouchbIT.java | 2 +- .../quarkus/component/couchdb/it/CouchdbTest.java | 20 +++++++++++--------- pom.xml | 2 +- poms/bom/src/main/generated/flattened-full-pom.xml | 2 +- .../bom/src/main/generated/flattened-reduced-pom.xml | 2 +- .../main/generated/flattened-reduced-verbose-pom.xml | 2 +- 8 files changed, 32 insertions(+), 21 deletions(-) diff --git a/integration-tests/couchdb/src/main/java/org/apache/camel/quarkus/component/couchdb/it/CouchdbResource.java b/integration-tests/couchdb/src/main/java/org/apache/camel/quarkus/component/couchdb/it/CouchdbResource.java index fcb7aa4725..03b2f09756 100644 --- a/integration-tests/couchdb/src/main/java/org/apache/camel/quarkus/component/couchdb/it/CouchdbResource.java +++ b/integration-tests/couchdb/src/main/java/org/apache/camel/quarkus/component/couchdb/it/CouchdbResource.java @@ -19,6 +19,7 @@ package org.apache.camel.quarkus.component.couchdb.it; import java.util.Collection; import java.util.concurrent.ConcurrentLinkedQueue; +import com.ibm.cloud.sdk.core.service.exception.NotFoundException; import jakarta.enterprise.context.ApplicationScoped; import jakarta.inject.Inject; import jakarta.ws.rs.Consumes; @@ -33,7 +34,6 @@ import org.apache.camel.ProducerTemplate; import org.apache.camel.component.couchdb.CouchDbConstants; import org.apache.camel.component.couchdb.CouchDbOperations; import org.jboss.logging.Logger; -import org.lightcouch.NoDocumentException; import static org.apache.camel.quarkus.component.couchdb.it.CouchDbRoute.COUCHDB_ENDPOINT_URI; @@ -52,7 +52,7 @@ public class CouchdbResource { @PUT @Consumes(MediaType.APPLICATION_JSON) @Produces(MediaType.APPLICATION_JSON) - public CouchdbTestDocument create(CouchdbTestDocument document) { + public CouchdbTestDocument create(CouchdbTestDocument document) throws InterruptedException { LOG.info("Invoking create"); Exchange createExchange = producerTemplate.request(COUCHDB_ENDPOINT_URI, e -> e.getMessage().setBody(document.toJsonObject())); @@ -72,7 +72,7 @@ public class CouchdbResource { e.getMessage().setHeader(CouchDbConstants.HEADER_METHOD, CouchDbOperations.GET); e.getMessage().setHeader(CouchDbConstants.HEADER_DOC_ID, document.getId()); }); - if (getExchange.getException(NoDocumentException.class) != null) { + if (getExchange.getException(NotFoundException.class) != null) { return null; } else { return getExchange.getMessage().getBody(String.class); diff --git a/integration-tests/couchdb/src/main/java/org/apache/camel/quarkus/component/couchdb/it/CouchdbTestDocument.java b/integration-tests/couchdb/src/main/java/org/apache/camel/quarkus/component/couchdb/it/CouchdbTestDocument.java index f384ba8213..9e55787379 100644 --- a/integration-tests/couchdb/src/main/java/org/apache/camel/quarkus/component/couchdb/it/CouchdbTestDocument.java +++ b/integration-tests/couchdb/src/main/java/org/apache/camel/quarkus/component/couchdb/it/CouchdbTestDocument.java @@ -16,7 +16,11 @@ */ package org.apache.camel.quarkus.component.couchdb.it; +import java.util.Optional; +import java.util.stream.StreamSupport; + import com.fasterxml.jackson.annotation.JsonProperty; +import com.google.gson.JsonArray; import com.google.gson.JsonObject; public class CouchdbTestDocument { @@ -67,11 +71,16 @@ public class CouchdbTestDocument { public static CouchdbTestDocument fromJsonObject(JsonObject jsonObject) { CouchdbTestDocument doc = new CouchdbTestDocument(); - if (jsonObject.has("_id")) { - doc.setId(jsonObject.get("_id").getAsString()); + if (jsonObject.has("id")) { + doc.setId(jsonObject.get("id").getAsString()); } - if (jsonObject.has("_rev")) { - doc.setRevision(jsonObject.get("_rev").getAsString()); + if (jsonObject.has("changes") && jsonObject.get("changes").isJsonArray()) { + JsonArray ja = jsonObject.get("changes").getAsJsonArray(); + Optional<String> rev = StreamSupport.stream(ja.spliterator(), true) + .filter(jo -> ((JsonObject) jo).has("rev")) + .map(jo2 -> ((JsonObject) jo2).get("rev").getAsString()) + .findAny(); + doc.setRevision(rev.orElse(null)); } if (jsonObject.has("value")) { doc.setValue(jsonObject.get("value").getAsString()); diff --git a/integration-tests/couchdb/src/test/java/org/apache/camel/quarkus/component/couchdb/it/CouchbIT.java b/integration-tests/couchdb/src/test/java/org/apache/camel/quarkus/component/couchdb/it/CouchbIT.java index 9b1810aeee..187f8cb0fe 100644 --- a/integration-tests/couchdb/src/test/java/org/apache/camel/quarkus/component/couchdb/it/CouchbIT.java +++ b/integration-tests/couchdb/src/test/java/org/apache/camel/quarkus/component/couchdb/it/CouchbIT.java @@ -19,7 +19,7 @@ package org.apache.camel.quarkus.component.couchdb.it; import io.quarkus.test.junit.QuarkusIntegrationTest; import org.junit.jupiter.api.Disabled; -@Disabled("https://github.com/apache/camel-quarkus/issues/6148") +@Disabled("https://github.com/apache/camel-quarkus/issues/6198") @QuarkusIntegrationTest class CouchbIT extends CouchdbTest { diff --git a/integration-tests/couchdb/src/test/java/org/apache/camel/quarkus/component/couchdb/it/CouchdbTest.java b/integration-tests/couchdb/src/test/java/org/apache/camel/quarkus/component/couchdb/it/CouchdbTest.java index 8a4e549fb4..338b85a4d3 100644 --- a/integration-tests/couchdb/src/test/java/org/apache/camel/quarkus/component/couchdb/it/CouchdbTest.java +++ b/integration-tests/couchdb/src/test/java/org/apache/camel/quarkus/component/couchdb/it/CouchdbTest.java @@ -22,7 +22,6 @@ import io.quarkus.test.common.QuarkusTestResource; import io.quarkus.test.junit.QuarkusTest; import io.restassured.RestAssured; import io.restassured.http.ContentType; -import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; import static org.awaitility.Awaitility.await; @@ -30,13 +29,12 @@ import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertNotEquals; import static org.junit.jupiter.api.Assertions.assertNotNull; -@Disabled("https://github.com/apache/camel-quarkus/issues/6148") @QuarkusTest @QuarkusTestResource(CouchdbTestResource.class) class CouchdbTest { @Test - public void crudShouldSucceed() { + public void crudShouldSucceed() throws InterruptedException { // Create the initial revision of the document CouchdbTestDocument toBeCreated = new CouchdbTestDocument(); @@ -57,6 +55,10 @@ class CouchdbTest { assertEquals(created.getRevision(), retrieved.getRevision()); assertEquals(created.getValue(), retrieved.getValue()); + // Let the CouchDB consumer route some time to record events generated by above tests + await().atMost(10L, TimeUnit.SECONDS) + .until(() -> RestAssured.given().get("/couchdb/get-events").path("size()").equals(1)); + // Update the initial revision of the document retrieved.setValue("update"); CouchdbTestDocument updated = RestAssured.given().contentType(ContentType.JSON).body(retrieved).put("/couchdb/update") @@ -75,6 +77,10 @@ class CouchdbTest { assertEquals(updated.getRevision(), retrieved.getRevision()); assertEquals("update", retrieved.getValue()); + // Let the CouchDB consumer route some time to record events generated by above tests + await().atMost(10L, TimeUnit.SECONDS) + .until(() -> RestAssured.given().get("/couchdb/get-events").path("size()").equals(2)); + // Delete the document CouchdbTestDocument deleted = RestAssured.given().contentType(ContentType.JSON).body(updated).delete("/couchdb/delete") .then().statusCode(200).extract() @@ -87,28 +93,24 @@ class CouchdbTest { RestAssured.given().contentType(ContentType.JSON).body(created).get("/couchdb/get").then().statusCode(204); // Let the CouchDB consumer route some time to record events generated by above tests - await().atMost(10L, TimeUnit.SECONDS).until(() -> { - return RestAssured.given().get("/couchdb/get-events").path("size()").equals(3); - }); + await().atMost(10L, TimeUnit.SECONDS) + .until(() -> RestAssured.given().get("/couchdb/get-events").path("size()").equals(3)); CouchdbTestDocument[] events = RestAssured.given().get("/couchdb/get-events").then().statusCode(200).extract() .as(CouchdbTestDocument[].class); assertEquals(3, events.length); CouchdbTestDocument firstEvent = events[0]; assertNotNull(firstEvent); - assertEquals("create", firstEvent.getValue()); assertEquals(created.getId(), firstEvent.getId()); assertEquals(created.getRevision(), firstEvent.getRevision()); CouchdbTestDocument secondEvent = events[1]; assertNotNull(secondEvent); - assertEquals("update", secondEvent.getValue()); assertEquals(updated.getId(), secondEvent.getId()); assertEquals(updated.getRevision(), secondEvent.getRevision()); CouchdbTestDocument thirdEvent = events[2]; assertNotNull(thirdEvent); - assertEquals("delete", thirdEvent.getValue()); assertEquals(deleted.getId(), thirdEvent.getId()); assertEquals(deleted.getRevision(), thirdEvent.getRevision()); } diff --git a/pom.xml b/pom.xml index 90654abcab..4297665709 100644 --- a/pom.xml +++ b/pom.xml @@ -140,7 +140,7 @@ <murmur.version>1.0.0</murmur.version> <mvel2.version>2.5.2.Final</mvel2.version><!-- @sync org.apache.camel:camel-dependencies:${camel.version} prop:mvel-version --> <mybatis.version>3.5.15</mybatis.version><!-- @sync io.quarkiverse.mybatis:quarkus-parent:${quarkiverse-mybatis.version} prop:mybatis.version --> - <oak-jackrabbit-api.version>1.60.0</oak-jackrabbit-api.version><!-- @sync org.apache.jackrabbit:jackrabbit-parent:${jackrabbit-version} prop:oak-jackrabbit-api.version.implemented --> + <oak-jackrabbit-api.version>1.64.0</oak-jackrabbit-api.version><!-- @sync org.apache.jackrabbit:jackrabbit-parent:${jackrabbit-version} prop:oak-jackrabbit-api.version.implemented --> <okhttp.version>4.12.0</okhttp.version> <okio.version>3.6.0</okio.version><!-- @sync com.squareup.okhttp3:okhttp:${okhttp.version} dep:com.squareup.okio:okio--> <opencensus.version>0.31.0</opencensus.version><!-- Mess in Google cloud. Keep in sync with version used in com.google.http-client:google-http-client --> diff --git a/poms/bom/src/main/generated/flattened-full-pom.xml b/poms/bom/src/main/generated/flattened-full-pom.xml index 273fe1e0a8..0ac9e605f8 100644 --- a/poms/bom/src/main/generated/flattened-full-pom.xml +++ b/poms/bom/src/main/generated/flattened-full-pom.xml @@ -6852,7 +6852,7 @@ <dependency> <groupId>org.apache.jackrabbit</groupId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} --> <artifactId>oak-jackrabbit-api</artifactId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} --> - <version>1.60.0</version><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} --> + <version>1.64.0</version><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} --> </dependency> <dependency> <groupId>org.apache.kafka</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 366173c022..f144a10af4 100644 --- a/poms/bom/src/main/generated/flattened-reduced-pom.xml +++ b/poms/bom/src/main/generated/flattened-reduced-pom.xml @@ -6797,7 +6797,7 @@ <dependency> <groupId>org.apache.jackrabbit</groupId> <artifactId>oak-jackrabbit-api</artifactId> - <version>1.60.0</version> + <version>1.64.0</version> </dependency> <dependency> <groupId>org.apache.kafka</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 d68fc83bdb..6281a51c8d 100644 --- a/poms/bom/src/main/generated/flattened-reduced-verbose-pom.xml +++ b/poms/bom/src/main/generated/flattened-reduced-verbose-pom.xml @@ -6797,7 +6797,7 @@ <dependency> <groupId>org.apache.jackrabbit</groupId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} --> <artifactId>oak-jackrabbit-api</artifactId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} --> - <version>1.60.0</version><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} --> + <version>1.64.0</version><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} --> </dependency> <dependency> <groupId>org.apache.kafka</groupId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->