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()