This is an automated email from the ASF dual-hosted git repository.

ffang pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel-quarkus.git


The following commit(s) were added to refs/heads/main by this push:
     new d38548d  Fix Error when using camel-quarkus-jackson in native mode: 
java.lang.ClassNotFoundException: 
com.fasterxml.jackson.module.jaxb.JaxbAnnotationModule #2677 (#2680)
d38548d is described below

commit d38548d539cfb91075523654926fefe6a5bad623
Author: Freeman(Yue) Fang <[email protected]>
AuthorDate: Thu May 27 08:16:38 2021 -0400

    Fix Error when using camel-quarkus-jackson in native mode: 
java.lang.ClassNotFoundException: 
com.fasterxml.jackson.module.jaxb.JaxbAnnotationModule #2677 (#2680)
---
 .../camel/quarkus/component/jackson/JacksonProcessor.java     | 11 +++++++++++
 .../component/dataformats/jackson/json/JacksonJsonRoute.java  |  9 +++------
 .../component/dataformats/jackson/json/JacksonJsonTest.java   |  2 +-
 3 files changed, 15 insertions(+), 7 deletions(-)

diff --git 
a/extensions/jackson/deployment/src/main/java/org/apache/camel/quarkus/component/jackson/JacksonProcessor.java
 
b/extensions/jackson/deployment/src/main/java/org/apache/camel/quarkus/component/jackson/JacksonProcessor.java
index 76a9b22..f4c4382 100644
--- 
a/extensions/jackson/deployment/src/main/java/org/apache/camel/quarkus/component/jackson/JacksonProcessor.java
+++ 
b/extensions/jackson/deployment/src/main/java/org/apache/camel/quarkus/component/jackson/JacksonProcessor.java
@@ -16,8 +16,12 @@
  */
 package org.apache.camel.quarkus.component.jackson;
 
+import java.util.ArrayList;
+import java.util.List;
+
 import io.quarkus.deployment.annotations.BuildStep;
 import io.quarkus.deployment.builditem.FeatureBuildItem;
+import io.quarkus.deployment.builditem.nativeimage.ReflectiveClassBuildItem;
 
 public class JacksonProcessor {
 
@@ -28,4 +32,11 @@ public class JacksonProcessor {
         return new FeatureBuildItem(FEATURE);
     }
 
+    @BuildStep
+    List<ReflectiveClassBuildItem> registerReflectiveClasses() {
+        List<ReflectiveClassBuildItem> items = new 
ArrayList<ReflectiveClassBuildItem>();
+        items.add(new ReflectiveClassBuildItem(false, true, 
"com.fasterxml.jackson.module.jaxb.JaxbAnnotationModule"));
+        return items;
+    }
+
 }
diff --git 
a/integration-tests/dataformats-json/src/main/java/org/apache/camel/quarkus/component/dataformats/jackson/json/JacksonJsonRoute.java
 
b/integration-tests/dataformats-json/src/main/java/org/apache/camel/quarkus/component/dataformats/jackson/json/JacksonJsonRoute.java
index d67eee2..4b3848a 100644
--- 
a/integration-tests/dataformats-json/src/main/java/org/apache/camel/quarkus/component/dataformats/jackson/json/JacksonJsonRoute.java
+++ 
b/integration-tests/dataformats-json/src/main/java/org/apache/camel/quarkus/component/dataformats/jackson/json/JacksonJsonRoute.java
@@ -20,6 +20,7 @@ package 
org.apache.camel.quarkus.component.dataformats.jackson.json;
 import java.util.TimeZone;
 
 import com.fasterxml.jackson.databind.ObjectMapper;
+import com.fasterxml.jackson.module.jaxb.JaxbAnnotationModule;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.jackson.JacksonConstants;
 import org.apache.camel.component.jackson.JacksonDataFormat;
@@ -28,6 +29,7 @@ import org.apache.camel.model.dataformat.JsonLibrary;
 import org.apache.camel.quarkus.component.dataformats.json.model.DummyObject;
 import org.apache.camel.quarkus.component.dataformats.json.model.MyModule;
 import org.apache.camel.quarkus.component.dataformats.json.model.Pojo;
+import org.apache.camel.quarkus.component.dataformats.json.model.TestJAXBPojo;
 import org.apache.camel.quarkus.component.dataformats.json.model.TestPojo;
 import org.apache.camel.quarkus.component.dataformats.json.model.TestPojoView;
 import org.apache.camel.quarkus.component.dataformats.json.model.Views;
@@ -134,10 +136,7 @@ public class JacksonJsonRoute extends RouteBuilder {
 
         from("direct:jackson-conversion-test").convertBodyTo(TestPojo.class);
 
-        /*java.lang.ClassNotFoundException: 
com.fasterxml.jackson.module.jaxb.JaxbAnnotationModule
-         * in native mode, need to investigate more
-         * 
-         * JacksonDataFormat jacksonJaxbAnnotationFormat = new 
JacksonDataFormat();
+        JacksonDataFormat jacksonJaxbAnnotationFormat = new 
JacksonDataFormat();
         
from("direct:jackson-jaxb-annotation-in").marshal(jacksonJaxbAnnotationFormat);
         
from("direct:jackson-jaxb-annotation-back").unmarshal(jacksonJaxbAnnotationFormat)
                 .to("mock:jackson-jaxb-annotation-reverse");
@@ -146,8 +145,6 @@ public class JacksonJsonRoute extends RouteBuilder {
         
from("direct:jackson-jaxb-annotation-inPojo").marshal(jacksonJaxbAnnotationFormatPojo);
         
from("direct:jackson-jaxb-annotation-backPojo").unmarshal(jacksonJaxbAnnotationFormatPojo)
                 .to("mock:jackson-jaxb-annotation-reversePojo");
-                
-        */
 
         
from("direct:jackson-view-inPojoAgeView").marshal().json(TestPojoView.class, 
Views.Age.class);
         
from("direct:jackson-view-backPojoAgeView").unmarshal().json(JsonLibrary.Jackson,
 TestPojoView.class)
diff --git 
a/integration-tests/dataformats-json/src/test/java/org/apache/camel/quarkus/component/dataformats/jackson/json/JacksonJsonTest.java
 
b/integration-tests/dataformats-json/src/test/java/org/apache/camel/quarkus/component/dataformats/jackson/json/JacksonJsonTest.java
index 540b784..b5f5f45 100644
--- 
a/integration-tests/dataformats-json/src/test/java/org/apache/camel/quarkus/component/dataformats/jackson/json/JacksonJsonTest.java
+++ 
b/integration-tests/dataformats-json/src/test/java/org/apache/camel/quarkus/component/dataformats/jackson/json/JacksonJsonTest.java
@@ -182,7 +182,7 @@ public class JacksonJsonTest {
 
     }
 
-    //@Test
+    @Test
     void jacksonJaxbAnnotation() {
         RestAssured.get("/dataformats-json/jackson/jaxb-annotation")
                 .then()

Reply via email to