This is an automated email from the ASF dual-hosted git repository. lburgazzoli pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/camel-quarkus.git
The following commit(s) were added to refs/heads/master by this push: new 2db85bc Automatically register dozer mapping classes for reflection 2db85bc is described below commit 2db85bc896a83a385a664afeac157125db348744 Author: James Netherton <jamesnether...@gmail.com> AuthorDate: Wed Dec 4 07:49:34 2019 +0000 Automatically register dozer mapping classes for reflection --- .../component/dozer/deployment/DozerProcessor.java | 25 +++++++++++++++------- .../component/dozer/it/model/CustomerA.java | 3 --- .../component/dozer/it/model/CustomerB.java | 3 --- 3 files changed, 17 insertions(+), 14 deletions(-) diff --git a/extensions/dozer/deployment/src/main/java/org/apache/camel/quarkus/component/dozer/deployment/DozerProcessor.java b/extensions/dozer/deployment/src/main/java/org/apache/camel/quarkus/component/dozer/deployment/DozerProcessor.java index 97551a7..5b37179 100644 --- a/extensions/dozer/deployment/src/main/java/org/apache/camel/quarkus/component/dozer/deployment/DozerProcessor.java +++ b/extensions/dozer/deployment/src/main/java/org/apache/camel/quarkus/component/dozer/deployment/DozerProcessor.java @@ -35,6 +35,8 @@ import java.sql.Timestamp; import java.util.Calendar; import java.util.Date; +import com.github.dozermapper.core.DozerBeanMapperBuilder; +import com.github.dozermapper.core.Mapper; import com.github.dozermapper.core.builder.model.jaxb.AllowedExceptionsDefinition; import com.github.dozermapper.core.builder.model.jaxb.ClassDefinition; import com.github.dozermapper.core.builder.model.jaxb.ConfigurationDefinition; @@ -53,10 +55,7 @@ import com.github.dozermapper.core.builder.model.jaxb.VariableDefinition; import com.github.dozermapper.core.builder.model.jaxb.VariablesDefinition; import com.sun.el.ExpressionFactoryImpl; -import org.apache.camel.component.dozer.CustomMapper; import org.apache.camel.component.dozer.DozerConfiguration; -import org.apache.camel.component.dozer.ExpressionMapper; -import org.apache.camel.component.dozer.VariableMapper; import org.apache.camel.converter.dozer.DozerBeanMapperConfiguration; import org.apache.camel.converter.dozer.DozerThreadContextClassLoader; import org.apache.camel.quarkus.component.dozer.CamelDozerConfig; @@ -126,11 +125,7 @@ class DozerProcessor { "com.github.dozermapper.core.builder.model.jaxb.package-info", "com.sun.org.apache.xerces.internal.impl.dv.xs.SchemaDVFactoryImpl")); - reflectiveClass.produce(new ReflectiveClassBuildItem(true, false, - CustomMapper.class, - DozerConfiguration.class, - ExpressionMapper.class, - VariableMapper.class)); + reflectiveClass.produce(new ReflectiveClassBuildItem(true, false, DozerConfiguration.class)); reflectiveClass.produce(new ReflectiveClassBuildItem(true, true, AllowedExceptionsDefinition.class, @@ -149,6 +144,20 @@ class DozerProcessor { Type.class, VariableDefinition.class, VariablesDefinition.class)); + + if (!camelDozerConfig.mappingFiles.isEmpty()) { + // Register for reflection any classes participating in Dozer mapping + Mapper mapper = DozerBeanMapperBuilder.create() + .withMappingFiles(camelDozerConfig.mappingFiles) + .build(); + + mapper.getMappingMetadata() + .getClassMappings() + .stream() + .map(metadata -> new ReflectiveClassBuildItem(true, false, metadata.getSourceClassName(), + metadata.getDestinationClassName())) + .forEach(reflectiveClass::produce); + } } @Record(ExecutionTime.STATIC_INIT) diff --git a/integration-tests/dozer/src/main/java/org/apache/camel/quarkus/component/dozer/it/model/CustomerA.java b/integration-tests/dozer/src/main/java/org/apache/camel/quarkus/component/dozer/it/model/CustomerA.java index 139fb56..3f85f79 100644 --- a/integration-tests/dozer/src/main/java/org/apache/camel/quarkus/component/dozer/it/model/CustomerA.java +++ b/integration-tests/dozer/src/main/java/org/apache/camel/quarkus/component/dozer/it/model/CustomerA.java @@ -16,9 +16,6 @@ */ package org.apache.camel.quarkus.component.dozer.it.model; -import io.quarkus.runtime.annotations.RegisterForReflection; - -@RegisterForReflection public class CustomerA { private String firstName; diff --git a/integration-tests/dozer/src/main/java/org/apache/camel/quarkus/component/dozer/it/model/CustomerB.java b/integration-tests/dozer/src/main/java/org/apache/camel/quarkus/component/dozer/it/model/CustomerB.java index bb1da97..dc69c6a 100644 --- a/integration-tests/dozer/src/main/java/org/apache/camel/quarkus/component/dozer/it/model/CustomerB.java +++ b/integration-tests/dozer/src/main/java/org/apache/camel/quarkus/component/dozer/it/model/CustomerB.java @@ -16,9 +16,6 @@ */ package org.apache.camel.quarkus.component.dozer.it.model; -import io.quarkus.runtime.annotations.RegisterForReflection; - -@RegisterForReflection public class CustomerB { private String firstName;