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

commit 5d4d3715e4ef77ebd823775f5d95df427cd84378
Author: Claus Ibsen <claus.ib...@gmail.com>
AuthorDate: Sat Aug 24 19:15:00 2019 +0200

    CAMEL-13870: Generating fast component options configurer
---
 .../src/main/java/org/apache/camel/main/MainSupport.java     | 12 ++++++++++--
 1 file changed, 10 insertions(+), 2 deletions(-)

diff --git 
a/core/camel-main/src/main/java/org/apache/camel/main/MainSupport.java 
b/core/camel-main/src/main/java/org/apache/camel/main/MainSupport.java
index 9d32d7d..00a4393 100644
--- a/core/camel-main/src/main/java/org/apache/camel/main/MainSupport.java
+++ b/core/camel-main/src/main/java/org/apache/camel/main/MainSupport.java
@@ -51,6 +51,7 @@ import org.apache.camel.spi.DataFormat;
 import org.apache.camel.spi.EventNotifier;
 import org.apache.camel.spi.Language;
 import org.apache.camel.spi.PropertiesComponent;
+import org.apache.camel.spi.PropertyConfigurer;
 import org.apache.camel.spi.RestConfiguration;
 import org.apache.camel.support.LifecycleStrategySupport;
 import org.apache.camel.support.PropertyBindingSupport;
@@ -1246,6 +1247,13 @@ public abstract class MainSupport extends ServiceSupport 
{
         boolean rc = false;
         Iterator it = properties.entrySet().iterator();
 
+        PropertyConfigurer configurer = null;
+        if (target instanceof Component) {
+            // the component needs to be initialized to have the configurer 
ready
+            ServiceHelper.initService(target);
+            configurer = ((Component) target).getComponentPropertyConfigurer();
+        }
+
         while (it.hasNext()) {
             Map.Entry<String, Object> entry = (Map.Entry) it.next();
             String name = entry.getKey();
@@ -1262,10 +1270,10 @@ public abstract class MainSupport extends 
ServiceSupport {
             try {
                 boolean hit;
                 if (failIfNotSet) {
-                    
PropertyBindingSupport.build().withMandatory(true).withIgnoreCase(ignoreCase).bind(context,
 target, name, stringValue);
+                    
PropertyBindingSupport.build().withMandatory(true).withConfigurer(configurer).withIgnoreCase(ignoreCase).bind(context,
 target, name, stringValue);
                     hit = true;
                 } else {
-                    hit = 
PropertyBindingSupport.build().withIgnoreCase(true).bind(context, target, name, 
stringValue);
+                    hit = 
PropertyBindingSupport.build().withConfigurer(configurer).withIgnoreCase(true).bind(context,
 target, name, stringValue);
                 }
                 if (hit) {
                     it.remove();

Reply via email to