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();