This is an automated email from the ASF dual-hosted git repository. davsclaus pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/camel.git
The following commit(s) were added to refs/heads/master by this push: new 9d22378 CAMEL-14263: camel-dozer should use source code generated configurer to avoid reflection configuration. 9d22378 is described below commit 9d22378aa9257220c9d0ab62cc542b0362602584 Author: Claus Ibsen <claus.ib...@gmail.com> AuthorDate: Fri Dec 6 07:23:24 2019 +0100 CAMEL-14263: camel-dozer should use source code generated configurer to avoid reflection configuration. --- .../org/apache/camel/component/dozer/DozerComponent.java | 12 ++++-------- .../org/apache/camel/component/dozer/DozerEndpoint.java | 5 +++++ .../apache/camel/component/dozer/DozerComponentTest.java | 16 ++++++---------- 3 files changed, 15 insertions(+), 18 deletions(-) diff --git a/components/camel-dozer/src/main/java/org/apache/camel/component/dozer/DozerComponent.java b/components/camel-dozer/src/main/java/org/apache/camel/component/dozer/DozerComponent.java index 409a75c..ed3a1e5 100644 --- a/components/camel-dozer/src/main/java/org/apache/camel/component/dozer/DozerComponent.java +++ b/components/camel-dozer/src/main/java/org/apache/camel/component/dozer/DozerComponent.java @@ -41,13 +41,9 @@ public class DozerComponent extends DefaultComponent { config.setMappingConfiguration(getAndRemoveOrResolveReferenceParameter( parameters, "mappingConfiguration", DozerBeanMapperConfiguration.class)); - setProperties(config, parameters); - - // Validate endpoint parameters - if (config.getTargetModel() == null) { - throw new IllegalArgumentException("The targetModel parameter is required for dozer endpoints"); - } - - return new DozerEndpoint(uri, this, config); + DozerEndpoint answer = new DozerEndpoint(uri, this, config); + answer.setConfiguration(config); + setProperties(answer, parameters); + return answer; } } diff --git a/components/camel-dozer/src/main/java/org/apache/camel/component/dozer/DozerEndpoint.java b/components/camel-dozer/src/main/java/org/apache/camel/component/dozer/DozerEndpoint.java index 4c0c53a..14d60cb 100644 --- a/components/camel-dozer/src/main/java/org/apache/camel/component/dozer/DozerEndpoint.java +++ b/components/camel-dozer/src/main/java/org/apache/camel/component/dozer/DozerEndpoint.java @@ -111,6 +111,11 @@ public class DozerEndpoint extends DefaultEndpoint { protected void initDozerBeanContainerAndMapper() throws Exception { log.info("Configuring {}...", Mapper.class.getName()); + // Validate endpoint parameters + if (configuration.getTargetModel() == null) { + throw new IllegalArgumentException("The targetModel parameter is required for dozer endpoints"); + } + if (mapper == null) { if (configuration.getMappingConfiguration() == null) { URL url = ResourceHelper.resolveMandatoryResourceAsUrl(getCamelContext().getClassResolver(), configuration.getMappingFile()); diff --git a/components/camel-dozer/src/test/java/org/apache/camel/component/dozer/DozerComponentTest.java b/components/camel-dozer/src/test/java/org/apache/camel/component/dozer/DozerComponentTest.java index 826c1e9..1740c07 100644 --- a/components/camel-dozer/src/test/java/org/apache/camel/component/dozer/DozerComponentTest.java +++ b/components/camel-dozer/src/test/java/org/apache/camel/component/dozer/DozerComponentTest.java @@ -16,18 +16,18 @@ */ package org.apache.camel.component.dozer; -import org.apache.camel.impl.DefaultCamelContext; +import org.apache.camel.test.junit4.CamelTestSupport; import org.junit.Assert; import org.junit.Test; -public class DozerComponentTest { +public class DozerComponentTest extends CamelTestSupport { private static final String NAME = "examplename"; private static final String MARSHAL_ID = "marshal123"; private static final String UNMARSHAL_ID = "unmarshal456"; private static final String SOURCE_MODEL = "org.example.A"; private static final String TARGET_MODEL = "org.example.B"; - private static final String DOZER_CONFIG_PATH = "test/dozerBeanMapping.xml"; + private static final String DOZER_CONFIG_PATH = "mapping.xml"; private static final String TRANSFORM_EP_1 = "dozer:" + NAME + "?marshalId=" + MARSHAL_ID @@ -38,9 +38,7 @@ public class DozerComponentTest { @Test public void testCreateEndpoint() throws Exception { - DozerComponent comp = new DozerComponent(); - comp.setCamelContext(new DefaultCamelContext()); - DozerEndpoint ep = (DozerEndpoint)comp.createEndpoint(TRANSFORM_EP_1); + DozerEndpoint ep = context.getEndpoint(TRANSFORM_EP_1, DozerEndpoint.class); DozerConfiguration config = ep.getConfiguration(); Assert.assertEquals(NAME, config.getName()); Assert.assertEquals(MARSHAL_ID, config.getMarshalId()); @@ -52,12 +50,10 @@ public class DozerComponentTest { @Test public void requiredTargetModelMissing() throws Exception { - DozerComponent comp = new DozerComponent(); - comp.setCamelContext(new DefaultCamelContext()); try { - comp.createEndpoint("dozer:noTargetModel?mappingFile=mapping.xml"); + DozerEndpoint ep = context.getEndpoint("dozer:noTargetModel?mappingFile=mapping.xml", DozerEndpoint.class); Assert.fail("targetModel is a required parameter"); - } catch (IllegalArgumentException ex) { + } catch (Exception ex) { // expected } }