This is an automated email from the ASF dual-hosted git repository. jamesnetherton pushed a commit to branch camel-main in repository https://gitbox.apache.org/repos/asf/camel-quarkus.git
The following commit(s) were added to refs/heads/camel-main by this push: new 0a46a57a2f Fix couchdb in native mode 0a46a57a2f is described below commit 0a46a57a2f027a5e0bcdcf5f174d561f37e8c710 Author: James Netherton <jamesnether...@gmail.com> AuthorDate: Mon Jun 24 09:47:36 2024 +0100 Fix couchdb in native mode --- .../couchdb/deployment/CouchdbProcessor.java | 29 ++++++++++++++-------- .../quarkus/component/couchdb/it/CouchbIT.java | 2 -- 2 files changed, 19 insertions(+), 12 deletions(-) diff --git a/extensions/couchdb/deployment/src/main/java/org/apache/camel/quarkus/component/couchdb/deployment/CouchdbProcessor.java b/extensions/couchdb/deployment/src/main/java/org/apache/camel/quarkus/component/couchdb/deployment/CouchdbProcessor.java index 3a6cbffa2c..431ac39f0d 100644 --- a/extensions/couchdb/deployment/src/main/java/org/apache/camel/quarkus/component/couchdb/deployment/CouchdbProcessor.java +++ b/extensions/couchdb/deployment/src/main/java/org/apache/camel/quarkus/component/couchdb/deployment/CouchdbProcessor.java @@ -16,14 +16,17 @@ */ package org.apache.camel.quarkus.component.couchdb.deployment; -import java.util.ArrayList; -import java.util.List; +import java.util.Set; +import java.util.stream.Collectors; import io.quarkus.deployment.annotations.BuildProducer; import io.quarkus.deployment.annotations.BuildStep; +import io.quarkus.deployment.builditem.CombinedIndexBuildItem; import io.quarkus.deployment.builditem.FeatureBuildItem; import io.quarkus.deployment.builditem.IndexDependencyBuildItem; import io.quarkus.deployment.builditem.nativeimage.ReflectiveClassBuildItem; +import org.jboss.jandex.ClassInfo; +import org.jboss.jandex.DotName; class CouchdbProcessor { @@ -35,18 +38,24 @@ class CouchdbProcessor { } @BuildStep - List<ReflectiveClassBuildItem> registerReflectiveClasses() { - List<ReflectiveClassBuildItem> items = new ArrayList<ReflectiveClassBuildItem>(); - items.add(ReflectiveClassBuildItem.builder("org.lightcouch.Response").fields().build()); - items.add(ReflectiveClassBuildItem.builder("org.lightcouch.CouchDbInfo").fields().build()); - items.add(ReflectiveClassBuildItem.builder("org.lightcouch.ChangesResult$Row").fields().build()); - items.add(ReflectiveClassBuildItem.builder("org.lightcouch.ChangesResult$Row$Rev").fields().build()); - return items; + void registerReflectiveClasses( + CombinedIndexBuildItem combinedIndex, + BuildProducer<ReflectiveClassBuildItem> reflectiveClass) { + Set<String> modelClasses = combinedIndex.getIndex() + .getClassesInPackage(DotName.createSimple("com.ibm.cloud.cloudant.v1.model")) + .stream() + .map(ClassInfo::name) + .map(DotName::toString) + .collect(Collectors.toUnmodifiableSet()); + + reflectiveClass.produce(ReflectiveClassBuildItem.builder(modelClasses.toArray(new String[0])) + .fields(true) + .build()); } @BuildStep void addDependenciesToIndexer(BuildProducer<IndexDependencyBuildItem> indexDependencyProducer) { - indexDependencyProducer.produce(new IndexDependencyBuildItem("com.google.code.gson", "gson")); + indexDependencyProducer.produce(new IndexDependencyBuildItem("com.ibm.cloud", "cloudant")); } } 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 187f8cb0fe..5c7623a316 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 @@ -17,9 +17,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/6198") @QuarkusIntegrationTest class CouchbIT extends CouchdbTest {