Skip to content

Commit

Permalink
Fix Error when using camel-quarkus-jackson in native mode: java.lang.…
Browse files Browse the repository at this point in the history
…ClassNotFoundException: com.fasterxml.jackson.module.jaxb.JaxbAnnotationModule apache#2677 (apache#2680)
  • Loading branch information
ffang authored and jamesnetherton committed Jun 7, 2021
1 parent 9c1b2eb commit a30a946
Show file tree
Hide file tree
Showing 3 changed files with 15 additions and 7 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -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 {

Expand All @@ -28,4 +32,11 @@ FeatureBuildItem feature() {
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;
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@
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;
Expand All @@ -28,6 +29,7 @@
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;
Expand Down Expand Up @@ -134,10 +136,7 @@ public void configure() throws Exception {

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");
Expand All @@ -146,8 +145,6 @@ public void configure() throws Exception {
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)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -182,7 +182,7 @@ void jacksonConversionSimple() {

}

//@Test
@Test
void jacksonJaxbAnnotation() {
RestAssured.get("/dataformats-json/jackson/jaxb-annotation")
.then()
Expand Down

0 comments on commit a30a946

Please sign in to comment.