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

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

commit b174e1697b1251ac36f7305239afd3ce783fac7a
Author: Claus Ibsen <[email protected]>
AuthorDate: Mon Sep 20 13:24:40 2021 +0200

    CAMEL-16988: camel-dataformat - Do not use reflection when configuring 
dataformats
---
 .../camel/component/dataformat/DataFormatComponent.java      | 12 +++++++++++-
 1 file changed, 11 insertions(+), 1 deletion(-)

diff --git 
a/components/camel-dataformat/src/main/java/org/apache/camel/component/dataformat/DataFormatComponent.java
 
b/components/camel-dataformat/src/main/java/org/apache/camel/component/dataformat/DataFormatComponent.java
index 86a86a1..c5deea0 100644
--- 
a/components/camel-dataformat/src/main/java/org/apache/camel/component/dataformat/DataFormatComponent.java
+++ 
b/components/camel-dataformat/src/main/java/org/apache/camel/component/dataformat/DataFormatComponent.java
@@ -19,7 +19,9 @@ package org.apache.camel.component.dataformat;
 import java.util.Map;
 
 import org.apache.camel.Endpoint;
+import org.apache.camel.ExtendedCamelContext;
 import org.apache.camel.spi.DataFormat;
+import org.apache.camel.spi.PropertyConfigurer;
 import org.apache.camel.spi.annotations.Component;
 import org.apache.camel.support.DefaultComponent;
 import org.apache.camel.support.PropertyBindingSupport;
@@ -52,8 +54,16 @@ public class DataFormatComponent extends DefaultComponent {
         if (df == null) {
             throw new IllegalArgumentException("Cannot find data format with 
name: " + name);
         }
-        PropertyBindingSupport.bindProperties(getCamelContext(), df, 
parameters);
 
+        // find configurer if any
+        PropertyConfigurer configurer = 
getCamelContext().adapt(ExtendedCamelContext.class).getConfigurerResolver()
+                .resolvePropertyConfigurer(name + "-dataformat", 
getCamelContext());
+        // bind properties to data format
+        PropertyBindingSupport.Builder builder = new 
PropertyBindingSupport.Builder();
+        builder.withConfigurer(configurer);
+        builder.bind(getCamelContext(), df, parameters);
+
+        // create endpoint
         DataFormatEndpoint endpoint = new DataFormatEndpoint(uri, this, df);
         endpoint.setOperation(operation);
         setProperties(endpoint, parameters);

Reply via email to