You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by da...@apache.org on 2021/07/29 14:48:56 UTC

[camel] 02/03: CAMEL-16828: camel-cloud - should not use reflection when configuring model to factory. For this we need to use generated configurer classes.

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 4fb5780e1187131b960407fd655cdbffa3522631
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Thu Jul 29 16:39:30 2021 +0200

    CAMEL-16828: camel-cloud - should not use reflection when configuring model to factory. For this we need to use generated configurer classes.
---
 core/camel-cloud/pom.xml                           |  31 +++
 .../BlacklistServiceFilterFactoryConfigurer.java   |  58 ++++++
 .../CombinedServiceDiscoveryFactoryConfigurer.java |  58 ++++++
 .../CombinedServiceFilterFactoryConfigurer.java    |  58 ++++++
 ...efaultServiceLoadBalancerFactoryConfigurer.java |  35 ++++
 .../HealthyServiceFilterFactoryConfigurer.java     |  35 ++++
 .../PassThroughServiceFilterFactoryConfigurer.java |  35 ++++
 .../StaticServiceDiscoveryFactoryConfigurer.java   |  58 ++++++
 ....camel.impl.cloud.BlacklistServiceFilterFactory |   2 +
 ...amel.impl.cloud.CombinedServiceDiscoveryFactory |   2 +
 ...e.camel.impl.cloud.CombinedServiceFilterFactory |   2 +
 ...el.impl.cloud.DefaultServiceLoadBalancerFactory |   2 +
 ...he.camel.impl.cloud.HealthyServiceFilterFactory |   2 +
 ...amel.impl.cloud.PassThroughServiceFilterFactory |   2 +
 ....camel.impl.cloud.StaticServiceDiscoveryFactory |   2 +
 core/camel-core-model/pom.xml                      |  21 +++
 ...ceCallServiceFilterConfigurationConfigurer.java |  86 +++++++++
 ...allServiceDiscoveryConfigurationConfigurer.java |  98 ++++++++++
 ...allServiceDiscoveryConfigurationConfigurer.java |  86 +++++++++
 ...ceCallServiceFilterConfigurationConfigurer.java |  86 +++++++++
 ...allServiceDiscoveryConfigurationConfigurer.java | 147 +++++++++++++++
 ...ceCallServiceFilterConfigurationConfigurer.java |  91 +++++++++
 ...ServiceLoadBalancerConfigurationConfigurer.java |  77 ++++++++
 ...allServiceDiscoveryConfigurationConfigurer.java |  91 +++++++++
 ...allServiceDiscoveryConfigurationConfigurer.java | 126 +++++++++++++
 ...ceCallServiceFilterConfigurationConfigurer.java |  77 ++++++++
 ...allServiceDiscoveryConfigurationConfigurer.java | 210 +++++++++++++++++++++
 ...ceCallServiceFilterConfigurationConfigurer.java |  77 ++++++++
 ...ServiceLoadBalancerConfigurationConfigurer.java | 105 +++++++++++
 .../cloud/ServiceCallConfigurationConfigurer.java  |  64 +++++++
 ...rviceCallExpressionConfigurationConfigurer.java | 105 +++++++++++
 ...eCallServiceChooserConfigurationConfigurer.java |  77 ++++++++
 ...allServiceDiscoveryConfigurationConfigurer.java |  77 ++++++++
 ...ceCallServiceFilterConfigurationConfigurer.java |  77 ++++++++
 ...ServiceLoadBalancerConfigurationConfigurer.java |  64 +++++++
 ...allServiceDiscoveryConfigurationConfigurer.java |  86 +++++++++
 ...allServiceDiscoveryConfigurationConfigurer.java | 133 +++++++++++++
 ....BlacklistServiceCallServiceFilterConfiguration |   2 +
 ...CachingServiceCallServiceDiscoveryConfiguration |   2 +
 ...ombinedServiceCallServiceDiscoveryConfiguration |   2 +
 ...d.CombinedServiceCallServiceFilterConfiguration |   2 +
 ....ConsulServiceCallServiceDiscoveryConfiguration |   2 +
 ...oud.CustomServiceCallServiceFilterConfiguration |   2 +
 ...aultServiceCallServiceLoadBalancerConfiguration |   2 +
 ...oud.DnsServiceCallServiceDiscoveryConfiguration |   2 +
 ...ud.EtcdServiceCallServiceDiscoveryConfiguration |   2 +
 ...ud.HealthyServiceCallServiceFilterConfiguration |   2 +
 ...ernetesServiceCallServiceDiscoveryConfiguration |   2 +
 ...assThroughServiceCallServiceFilterConfiguration |   2 +
 ...bbonServiceCallServiceLoadBalancerConfiguration |   2 +
 ...ache.camel.model.cloud.ServiceCallConfiguration |   2 +
 ....model.cloud.ServiceCallExpressionConfiguration |   2 +
 ...el.cloud.ServiceCallServiceChooserConfiguration |   2 +
 ....cloud.ServiceCallServiceDiscoveryConfiguration |   2 +
 ...del.cloud.ServiceCallServiceFilterConfiguration |   2 +
 ...oud.ServiceCallServiceLoadBalancerConfiguration |   2 +
 ....StaticServiceCallServiceDiscoveryConfiguration |   2 +
 ...oKeeperServiceCallServiceDiscoveryConfiguration |   2 +
 .../model/cloud/serviceCallConfiguration.json      |   2 +-
 ...klistServiceCallServiceFilterConfiguration.java |   2 +
 ...ngServiceCallServiceDiscoveryConfiguration.java |   2 +
 ...edServiceCallServiceDiscoveryConfiguration.java |   2 +
 ...binedServiceCallServiceFilterConfiguration.java |   2 +
 ...ulServiceCallServiceDiscoveryConfiguration.java |   2 +
 ...ustomServiceCallServiceFilterConfiguration.java |   2 +
 ...erviceCallServiceLoadBalancerConfiguration.java |   2 +
 ...nsServiceCallServiceDiscoveryConfiguration.java |   2 +
 ...cdServiceCallServiceDiscoveryConfiguration.java |   2 +
 ...althyServiceCallServiceFilterConfiguration.java |   2 +
 ...esServiceCallServiceDiscoveryConfiguration.java |   2 +
 ...roughServiceCallServiceFilterConfiguration.java |   2 +
 ...erviceCallServiceLoadBalancerConfiguration.java |   2 +
 .../model/cloud/ServiceCallConfiguration.java      |  29 +++
 .../cloud/ServiceCallConfigurationDefinition.java  |   3 +-
 .../cloud/ServiceCallExpressionConfiguration.java  |  12 +-
 .../ServiceCallServiceChooserConfiguration.java    |  12 +-
 .../ServiceCallServiceDiscoveryConfiguration.java  |  13 +-
 .../ServiceCallServiceFilterConfiguration.java     |  12 +-
 ...erviceCallServiceLoadBalancerConfiguration.java |  11 +-
 ...icServiceCallServiceDiscoveryConfiguration.java |   2 +
 ...erServiceCallServiceDiscoveryConfiguration.java |   2 +
 81 files changed, 2579 insertions(+), 30 deletions(-)

diff --git a/core/camel-cloud/pom.xml b/core/camel-cloud/pom.xml
index eb74820..d76d586 100644
--- a/core/camel-cloud/pom.xml
+++ b/core/camel-cloud/pom.xml
@@ -76,4 +76,35 @@
 
     </dependencies>
 
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.apache.camel</groupId>
+                <artifactId>camel-package-maven-plugin</artifactId>
+                <executions>
+                    <execution>
+                        <id>generate-configurer</id>
+                        <phase>process-classes</phase>
+                        <goals>
+                            <goal>generate-configurer</goal>
+                        </goals>
+                        <configuration>
+                            <discoverClasses>false</discoverClasses>
+                            <classes>
+                                <class>org.apache.camel.impl.cloud.BlacklistServiceFilterFactory</class>
+                                <class>org.apache.camel.impl.cloud.CombinedServiceDiscoveryFactory</class>
+                                <class>org.apache.camel.impl.cloud.CombinedServiceFilterFactory</class>
+                                <class>org.apache.camel.impl.cloud.DefaultServiceLoadBalancerFactory</class>
+                                <class>org.apache.camel.impl.cloud.HealthyServiceFilterFactory</class>
+                                <class>org.apache.camel.impl.cloud.PassThroughServiceFilterFactory</class>
+                                <class>org.apache.camel.impl.cloud.StaticServiceDiscoveryFactory</class>
+                            </classes>
+                        </configuration>
+                    </execution>
+                </executions>
+            </plugin>
+        </plugins>
+    </build>
+
+
 </project>
diff --git a/core/camel-cloud/src/generated/java/org/apache/camel/impl/cloud/BlacklistServiceFilterFactoryConfigurer.java b/core/camel-cloud/src/generated/java/org/apache/camel/impl/cloud/BlacklistServiceFilterFactoryConfigurer.java
new file mode 100644
index 0000000..57369c3
--- /dev/null
+++ b/core/camel-cloud/src/generated/java/org/apache/camel/impl/cloud/BlacklistServiceFilterFactoryConfigurer.java
@@ -0,0 +1,58 @@
+/* Generated by camel build tools - do NOT edit this file! */
+package org.apache.camel.impl.cloud;
+
+import java.util.Map;
+
+import org.apache.camel.CamelContext;
+import org.apache.camel.spi.ExtendedPropertyConfigurerGetter;
+import org.apache.camel.spi.PropertyConfigurerGetter;
+import org.apache.camel.spi.ConfigurerStrategy;
+import org.apache.camel.spi.GeneratedPropertyConfigurer;
+import org.apache.camel.util.CaseInsensitiveMap;
+import org.apache.camel.impl.cloud.BlacklistServiceFilterFactory;
+
+/**
+ * Generated by camel build tools - do NOT edit this file!
+ */
+@SuppressWarnings("unchecked")
+public class BlacklistServiceFilterFactoryConfigurer extends org.apache.camel.support.component.PropertyConfigurerSupport implements GeneratedPropertyConfigurer, PropertyConfigurerGetter {
+
+    @Override
+    public boolean configure(CamelContext camelContext, Object obj, String name, Object value, boolean ignoreCase) {
+        org.apache.camel.impl.cloud.BlacklistServiceFilterFactory target = (org.apache.camel.impl.cloud.BlacklistServiceFilterFactory) obj;
+        switch (ignoreCase ? name.toLowerCase() : name) {
+        case "servers":
+        case "Servers": target.setServers(property(camelContext, java.util.List.class, value)); return true;
+        default: return false;
+        }
+    }
+
+    @Override
+    public Class<?> getOptionType(String name, boolean ignoreCase) {
+        switch (ignoreCase ? name.toLowerCase() : name) {
+        case "servers":
+        case "Servers": return java.util.List.class;
+        default: return null;
+        }
+    }
+
+    @Override
+    public Object getOptionValue(Object obj, String name, boolean ignoreCase) {
+        org.apache.camel.impl.cloud.BlacklistServiceFilterFactory target = (org.apache.camel.impl.cloud.BlacklistServiceFilterFactory) obj;
+        switch (ignoreCase ? name.toLowerCase() : name) {
+        case "servers":
+        case "Servers": return target.getServers();
+        default: return null;
+        }
+    }
+
+    @Override
+    public Object getCollectionValueType(Object target, String name, boolean ignoreCase) {
+        switch (ignoreCase ? name.toLowerCase() : name) {
+        case "servers":
+        case "Servers": return java.lang.String.class;
+        default: return null;
+        }
+    }
+}
+
diff --git a/core/camel-cloud/src/generated/java/org/apache/camel/impl/cloud/CombinedServiceDiscoveryFactoryConfigurer.java b/core/camel-cloud/src/generated/java/org/apache/camel/impl/cloud/CombinedServiceDiscoveryFactoryConfigurer.java
new file mode 100644
index 0000000..5b9baf8
--- /dev/null
+++ b/core/camel-cloud/src/generated/java/org/apache/camel/impl/cloud/CombinedServiceDiscoveryFactoryConfigurer.java
@@ -0,0 +1,58 @@
+/* Generated by camel build tools - do NOT edit this file! */
+package org.apache.camel.impl.cloud;
+
+import java.util.Map;
+
+import org.apache.camel.CamelContext;
+import org.apache.camel.spi.ExtendedPropertyConfigurerGetter;
+import org.apache.camel.spi.PropertyConfigurerGetter;
+import org.apache.camel.spi.ConfigurerStrategy;
+import org.apache.camel.spi.GeneratedPropertyConfigurer;
+import org.apache.camel.util.CaseInsensitiveMap;
+import org.apache.camel.impl.cloud.CombinedServiceDiscoveryFactory;
+
+/**
+ * Generated by camel build tools - do NOT edit this file!
+ */
+@SuppressWarnings("unchecked")
+public class CombinedServiceDiscoveryFactoryConfigurer extends org.apache.camel.support.component.PropertyConfigurerSupport implements GeneratedPropertyConfigurer, PropertyConfigurerGetter {
+
+    @Override
+    public boolean configure(CamelContext camelContext, Object obj, String name, Object value, boolean ignoreCase) {
+        org.apache.camel.impl.cloud.CombinedServiceDiscoveryFactory target = (org.apache.camel.impl.cloud.CombinedServiceDiscoveryFactory) obj;
+        switch (ignoreCase ? name.toLowerCase() : name) {
+        case "servicediscoverylist":
+        case "ServiceDiscoveryList": target.setServiceDiscoveryList(property(camelContext, java.util.List.class, value)); return true;
+        default: return false;
+        }
+    }
+
+    @Override
+    public Class<?> getOptionType(String name, boolean ignoreCase) {
+        switch (ignoreCase ? name.toLowerCase() : name) {
+        case "servicediscoverylist":
+        case "ServiceDiscoveryList": return java.util.List.class;
+        default: return null;
+        }
+    }
+
+    @Override
+    public Object getOptionValue(Object obj, String name, boolean ignoreCase) {
+        org.apache.camel.impl.cloud.CombinedServiceDiscoveryFactory target = (org.apache.camel.impl.cloud.CombinedServiceDiscoveryFactory) obj;
+        switch (ignoreCase ? name.toLowerCase() : name) {
+        case "servicediscoverylist":
+        case "ServiceDiscoveryList": return target.getServiceDiscoveryList();
+        default: return null;
+        }
+    }
+
+    @Override
+    public Object getCollectionValueType(Object target, String name, boolean ignoreCase) {
+        switch (ignoreCase ? name.toLowerCase() : name) {
+        case "servicediscoverylist":
+        case "ServiceDiscoveryList": return org.apache.camel.cloud.ServiceDiscovery.class;
+        default: return null;
+        }
+    }
+}
+
diff --git a/core/camel-cloud/src/generated/java/org/apache/camel/impl/cloud/CombinedServiceFilterFactoryConfigurer.java b/core/camel-cloud/src/generated/java/org/apache/camel/impl/cloud/CombinedServiceFilterFactoryConfigurer.java
new file mode 100644
index 0000000..7aa3a6d
--- /dev/null
+++ b/core/camel-cloud/src/generated/java/org/apache/camel/impl/cloud/CombinedServiceFilterFactoryConfigurer.java
@@ -0,0 +1,58 @@
+/* Generated by camel build tools - do NOT edit this file! */
+package org.apache.camel.impl.cloud;
+
+import java.util.Map;
+
+import org.apache.camel.CamelContext;
+import org.apache.camel.spi.ExtendedPropertyConfigurerGetter;
+import org.apache.camel.spi.PropertyConfigurerGetter;
+import org.apache.camel.spi.ConfigurerStrategy;
+import org.apache.camel.spi.GeneratedPropertyConfigurer;
+import org.apache.camel.util.CaseInsensitiveMap;
+import org.apache.camel.impl.cloud.CombinedServiceFilterFactory;
+
+/**
+ * Generated by camel build tools - do NOT edit this file!
+ */
+@SuppressWarnings("unchecked")
+public class CombinedServiceFilterFactoryConfigurer extends org.apache.camel.support.component.PropertyConfigurerSupport implements GeneratedPropertyConfigurer, PropertyConfigurerGetter {
+
+    @Override
+    public boolean configure(CamelContext camelContext, Object obj, String name, Object value, boolean ignoreCase) {
+        org.apache.camel.impl.cloud.CombinedServiceFilterFactory target = (org.apache.camel.impl.cloud.CombinedServiceFilterFactory) obj;
+        switch (ignoreCase ? name.toLowerCase() : name) {
+        case "servicefilterlist":
+        case "ServiceFilterList": target.setServiceFilterList(property(camelContext, java.util.List.class, value)); return true;
+        default: return false;
+        }
+    }
+
+    @Override
+    public Class<?> getOptionType(String name, boolean ignoreCase) {
+        switch (ignoreCase ? name.toLowerCase() : name) {
+        case "servicefilterlist":
+        case "ServiceFilterList": return java.util.List.class;
+        default: return null;
+        }
+    }
+
+    @Override
+    public Object getOptionValue(Object obj, String name, boolean ignoreCase) {
+        org.apache.camel.impl.cloud.CombinedServiceFilterFactory target = (org.apache.camel.impl.cloud.CombinedServiceFilterFactory) obj;
+        switch (ignoreCase ? name.toLowerCase() : name) {
+        case "servicefilterlist":
+        case "ServiceFilterList": return target.getServiceFilterList();
+        default: return null;
+        }
+    }
+
+    @Override
+    public Object getCollectionValueType(Object target, String name, boolean ignoreCase) {
+        switch (ignoreCase ? name.toLowerCase() : name) {
+        case "servicefilterlist":
+        case "ServiceFilterList": return org.apache.camel.cloud.ServiceFilter.class;
+        default: return null;
+        }
+    }
+}
+
diff --git a/core/camel-cloud/src/generated/java/org/apache/camel/impl/cloud/DefaultServiceLoadBalancerFactoryConfigurer.java b/core/camel-cloud/src/generated/java/org/apache/camel/impl/cloud/DefaultServiceLoadBalancerFactoryConfigurer.java
new file mode 100644
index 0000000..035cede
--- /dev/null
+++ b/core/camel-cloud/src/generated/java/org/apache/camel/impl/cloud/DefaultServiceLoadBalancerFactoryConfigurer.java
@@ -0,0 +1,35 @@
+/* Generated by camel build tools - do NOT edit this file! */
+package org.apache.camel.impl.cloud;
+
+import java.util.Map;
+
+import org.apache.camel.CamelContext;
+import org.apache.camel.spi.ExtendedPropertyConfigurerGetter;
+import org.apache.camel.spi.PropertyConfigurerGetter;
+import org.apache.camel.spi.ConfigurerStrategy;
+import org.apache.camel.spi.GeneratedPropertyConfigurer;
+import org.apache.camel.util.CaseInsensitiveMap;
+import org.apache.camel.impl.cloud.DefaultServiceLoadBalancerFactory;
+
+/**
+ * Generated by camel build tools - do NOT edit this file!
+ */
+@SuppressWarnings("unchecked")
+public class DefaultServiceLoadBalancerFactoryConfigurer extends org.apache.camel.support.component.PropertyConfigurerSupport implements GeneratedPropertyConfigurer, PropertyConfigurerGetter {
+
+    @Override
+    public boolean configure(CamelContext camelContext, Object obj, String name, Object value, boolean ignoreCase) {
+        return false;
+    }
+
+    @Override
+    public Class<?> getOptionType(String name, boolean ignoreCase) {
+        return null;
+    }
+
+    @Override
+    public Object getOptionValue(Object obj, String name, boolean ignoreCase) {
+        return null;
+    }
+}
+
diff --git a/core/camel-cloud/src/generated/java/org/apache/camel/impl/cloud/HealthyServiceFilterFactoryConfigurer.java b/core/camel-cloud/src/generated/java/org/apache/camel/impl/cloud/HealthyServiceFilterFactoryConfigurer.java
new file mode 100644
index 0000000..9faa6c5
--- /dev/null
+++ b/core/camel-cloud/src/generated/java/org/apache/camel/impl/cloud/HealthyServiceFilterFactoryConfigurer.java
@@ -0,0 +1,35 @@
+/* Generated by camel build tools - do NOT edit this file! */
+package org.apache.camel.impl.cloud;
+
+import java.util.Map;
+
+import org.apache.camel.CamelContext;
+import org.apache.camel.spi.ExtendedPropertyConfigurerGetter;
+import org.apache.camel.spi.PropertyConfigurerGetter;
+import org.apache.camel.spi.ConfigurerStrategy;
+import org.apache.camel.spi.GeneratedPropertyConfigurer;
+import org.apache.camel.util.CaseInsensitiveMap;
+import org.apache.camel.impl.cloud.HealthyServiceFilterFactory;
+
+/**
+ * Generated by camel build tools - do NOT edit this file!
+ */
+@SuppressWarnings("unchecked")
+public class HealthyServiceFilterFactoryConfigurer extends org.apache.camel.support.component.PropertyConfigurerSupport implements GeneratedPropertyConfigurer, PropertyConfigurerGetter {
+
+    @Override
+    public boolean configure(CamelContext camelContext, Object obj, String name, Object value, boolean ignoreCase) {
+        return false;
+    }
+
+    @Override
+    public Class<?> getOptionType(String name, boolean ignoreCase) {
+        return null;
+    }
+
+    @Override
+    public Object getOptionValue(Object obj, String name, boolean ignoreCase) {
+        return null;
+    }
+}
+
diff --git a/core/camel-cloud/src/generated/java/org/apache/camel/impl/cloud/PassThroughServiceFilterFactoryConfigurer.java b/core/camel-cloud/src/generated/java/org/apache/camel/impl/cloud/PassThroughServiceFilterFactoryConfigurer.java
new file mode 100644
index 0000000..9bcefe5
--- /dev/null
+++ b/core/camel-cloud/src/generated/java/org/apache/camel/impl/cloud/PassThroughServiceFilterFactoryConfigurer.java
@@ -0,0 +1,35 @@
+/* Generated by camel build tools - do NOT edit this file! */
+package org.apache.camel.impl.cloud;
+
+import java.util.Map;
+
+import org.apache.camel.CamelContext;
+import org.apache.camel.spi.ExtendedPropertyConfigurerGetter;
+import org.apache.camel.spi.PropertyConfigurerGetter;
+import org.apache.camel.spi.ConfigurerStrategy;
+import org.apache.camel.spi.GeneratedPropertyConfigurer;
+import org.apache.camel.util.CaseInsensitiveMap;
+import org.apache.camel.impl.cloud.PassThroughServiceFilterFactory;
+
+/**
+ * Generated by camel build tools - do NOT edit this file!
+ */
+@SuppressWarnings("unchecked")
+public class PassThroughServiceFilterFactoryConfigurer extends org.apache.camel.support.component.PropertyConfigurerSupport implements GeneratedPropertyConfigurer, PropertyConfigurerGetter {
+
+    @Override
+    public boolean configure(CamelContext camelContext, Object obj, String name, Object value, boolean ignoreCase) {
+        return false;
+    }
+
+    @Override
+    public Class<?> getOptionType(String name, boolean ignoreCase) {
+        return null;
+    }
+
+    @Override
+    public Object getOptionValue(Object obj, String name, boolean ignoreCase) {
+        return null;
+    }
+}
+
diff --git a/core/camel-cloud/src/generated/java/org/apache/camel/impl/cloud/StaticServiceDiscoveryFactoryConfigurer.java b/core/camel-cloud/src/generated/java/org/apache/camel/impl/cloud/StaticServiceDiscoveryFactoryConfigurer.java
new file mode 100644
index 0000000..524ad3e
--- /dev/null
+++ b/core/camel-cloud/src/generated/java/org/apache/camel/impl/cloud/StaticServiceDiscoveryFactoryConfigurer.java
@@ -0,0 +1,58 @@
+/* Generated by camel build tools - do NOT edit this file! */
+package org.apache.camel.impl.cloud;
+
+import java.util.Map;
+
+import org.apache.camel.CamelContext;
+import org.apache.camel.spi.ExtendedPropertyConfigurerGetter;
+import org.apache.camel.spi.PropertyConfigurerGetter;
+import org.apache.camel.spi.ConfigurerStrategy;
+import org.apache.camel.spi.GeneratedPropertyConfigurer;
+import org.apache.camel.util.CaseInsensitiveMap;
+import org.apache.camel.impl.cloud.StaticServiceDiscoveryFactory;
+
+/**
+ * Generated by camel build tools - do NOT edit this file!
+ */
+@SuppressWarnings("unchecked")
+public class StaticServiceDiscoveryFactoryConfigurer extends org.apache.camel.support.component.PropertyConfigurerSupport implements GeneratedPropertyConfigurer, PropertyConfigurerGetter {
+
+    @Override
+    public boolean configure(CamelContext camelContext, Object obj, String name, Object value, boolean ignoreCase) {
+        org.apache.camel.impl.cloud.StaticServiceDiscoveryFactory target = (org.apache.camel.impl.cloud.StaticServiceDiscoveryFactory) obj;
+        switch (ignoreCase ? name.toLowerCase() : name) {
+        case "servers":
+        case "Servers": target.setServers(property(camelContext, java.util.List.class, value)); return true;
+        default: return false;
+        }
+    }
+
+    @Override
+    public Class<?> getOptionType(String name, boolean ignoreCase) {
+        switch (ignoreCase ? name.toLowerCase() : name) {
+        case "servers":
+        case "Servers": return java.util.List.class;
+        default: return null;
+        }
+    }
+
+    @Override
+    public Object getOptionValue(Object obj, String name, boolean ignoreCase) {
+        org.apache.camel.impl.cloud.StaticServiceDiscoveryFactory target = (org.apache.camel.impl.cloud.StaticServiceDiscoveryFactory) obj;
+        switch (ignoreCase ? name.toLowerCase() : name) {
+        case "servers":
+        case "Servers": return target.getServers();
+        default: return null;
+        }
+    }
+
+    @Override
+    public Object getCollectionValueType(Object target, String name, boolean ignoreCase) {
+        switch (ignoreCase ? name.toLowerCase() : name) {
+        case "servers":
+        case "Servers": return java.lang.String.class;
+        default: return null;
+        }
+    }
+}
+
diff --git a/core/camel-cloud/src/generated/resources/META-INF/services/org/apache/camel/configurer/org.apache.camel.impl.cloud.BlacklistServiceFilterFactory b/core/camel-cloud/src/generated/resources/META-INF/services/org/apache/camel/configurer/org.apache.camel.impl.cloud.BlacklistServiceFilterFactory
new file mode 100644
index 0000000..abcf3f1
--- /dev/null
+++ b/core/camel-cloud/src/generated/resources/META-INF/services/org/apache/camel/configurer/org.apache.camel.impl.cloud.BlacklistServiceFilterFactory
@@ -0,0 +1,2 @@
+# Generated by camel build tools - do NOT edit this file!
+class=org.apache.camel.impl.cloud.BlacklistServiceFilterFactoryConfigurer
diff --git a/core/camel-cloud/src/generated/resources/META-INF/services/org/apache/camel/configurer/org.apache.camel.impl.cloud.CombinedServiceDiscoveryFactory b/core/camel-cloud/src/generated/resources/META-INF/services/org/apache/camel/configurer/org.apache.camel.impl.cloud.CombinedServiceDiscoveryFactory
new file mode 100644
index 0000000..daa1953
--- /dev/null
+++ b/core/camel-cloud/src/generated/resources/META-INF/services/org/apache/camel/configurer/org.apache.camel.impl.cloud.CombinedServiceDiscoveryFactory
@@ -0,0 +1,2 @@
+# Generated by camel build tools - do NOT edit this file!
+class=org.apache.camel.impl.cloud.CombinedServiceDiscoveryFactoryConfigurer
diff --git a/core/camel-cloud/src/generated/resources/META-INF/services/org/apache/camel/configurer/org.apache.camel.impl.cloud.CombinedServiceFilterFactory b/core/camel-cloud/src/generated/resources/META-INF/services/org/apache/camel/configurer/org.apache.camel.impl.cloud.CombinedServiceFilterFactory
new file mode 100644
index 0000000..332fa20
--- /dev/null
+++ b/core/camel-cloud/src/generated/resources/META-INF/services/org/apache/camel/configurer/org.apache.camel.impl.cloud.CombinedServiceFilterFactory
@@ -0,0 +1,2 @@
+# Generated by camel build tools - do NOT edit this file!
+class=org.apache.camel.impl.cloud.CombinedServiceFilterFactoryConfigurer
diff --git a/core/camel-cloud/src/generated/resources/META-INF/services/org/apache/camel/configurer/org.apache.camel.impl.cloud.DefaultServiceLoadBalancerFactory b/core/camel-cloud/src/generated/resources/META-INF/services/org/apache/camel/configurer/org.apache.camel.impl.cloud.DefaultServiceLoadBalancerFactory
new file mode 100644
index 0000000..26aa6dd
--- /dev/null
+++ b/core/camel-cloud/src/generated/resources/META-INF/services/org/apache/camel/configurer/org.apache.camel.impl.cloud.DefaultServiceLoadBalancerFactory
@@ -0,0 +1,2 @@
+# Generated by camel build tools - do NOT edit this file!
+class=org.apache.camel.impl.cloud.DefaultServiceLoadBalancerFactoryConfigurer
diff --git a/core/camel-cloud/src/generated/resources/META-INF/services/org/apache/camel/configurer/org.apache.camel.impl.cloud.HealthyServiceFilterFactory b/core/camel-cloud/src/generated/resources/META-INF/services/org/apache/camel/configurer/org.apache.camel.impl.cloud.HealthyServiceFilterFactory
new file mode 100644
index 0000000..748557b
--- /dev/null
+++ b/core/camel-cloud/src/generated/resources/META-INF/services/org/apache/camel/configurer/org.apache.camel.impl.cloud.HealthyServiceFilterFactory
@@ -0,0 +1,2 @@
+# Generated by camel build tools - do NOT edit this file!
+class=org.apache.camel.impl.cloud.HealthyServiceFilterFactoryConfigurer
diff --git a/core/camel-cloud/src/generated/resources/META-INF/services/org/apache/camel/configurer/org.apache.camel.impl.cloud.PassThroughServiceFilterFactory b/core/camel-cloud/src/generated/resources/META-INF/services/org/apache/camel/configurer/org.apache.camel.impl.cloud.PassThroughServiceFilterFactory
new file mode 100644
index 0000000..87c9760
--- /dev/null
+++ b/core/camel-cloud/src/generated/resources/META-INF/services/org/apache/camel/configurer/org.apache.camel.impl.cloud.PassThroughServiceFilterFactory
@@ -0,0 +1,2 @@
+# Generated by camel build tools - do NOT edit this file!
+class=org.apache.camel.impl.cloud.PassThroughServiceFilterFactoryConfigurer
diff --git a/core/camel-cloud/src/generated/resources/META-INF/services/org/apache/camel/configurer/org.apache.camel.impl.cloud.StaticServiceDiscoveryFactory b/core/camel-cloud/src/generated/resources/META-INF/services/org/apache/camel/configurer/org.apache.camel.impl.cloud.StaticServiceDiscoveryFactory
new file mode 100644
index 0000000..88b86e2
--- /dev/null
+++ b/core/camel-cloud/src/generated/resources/META-INF/services/org/apache/camel/configurer/org.apache.camel.impl.cloud.StaticServiceDiscoveryFactory
@@ -0,0 +1,2 @@
+# Generated by camel build tools - do NOT edit this file!
+class=org.apache.camel.impl.cloud.StaticServiceDiscoveryFactoryConfigurer
diff --git a/core/camel-core-model/pom.xml b/core/camel-core-model/pom.xml
index 13f89ea..8ba5d75 100644
--- a/core/camel-core-model/pom.xml
+++ b/core/camel-core-model/pom.xml
@@ -87,6 +87,27 @@
                                 <class>org.apache.camel.model.FaultToleranceConfigurationDefinition</class>
                                 <class>org.apache.camel.model.Resilience4jConfigurationDefinition</class>
                                 <class>org.apache.camel.model.HystrixConfigurationDefinition</class>
+                                <class>org.apache.camel.model.cloud.BlacklistServiceCallServiceFilterConfiguration</class>
+                                <class>org.apache.camel.model.cloud.CachingServiceCallServiceDiscoveryConfiguration</class>
+                                <class>org.apache.camel.model.cloud.CombinedServiceCallServiceDiscoveryConfiguration</class>
+                                <class>org.apache.camel.model.cloud.CombinedServiceCallServiceFilterConfiguration</class>
+                                <class>org.apache.camel.model.cloud.ConsulServiceCallServiceDiscoveryConfiguration</class>
+                                <class>org.apache.camel.model.cloud.CustomServiceCallServiceFilterConfiguration</class>
+                                <class>org.apache.camel.model.cloud.DefaultServiceCallServiceLoadBalancerConfiguration</class>
+                                <class>org.apache.camel.model.cloud.DnsServiceCallServiceDiscoveryConfiguration</class>
+                                <class>org.apache.camel.model.cloud.EtcdServiceCallServiceDiscoveryConfiguration</class>
+                                <class>org.apache.camel.model.cloud.HealthyServiceCallServiceFilterConfiguration</class>
+                                <class>org.apache.camel.model.cloud.KubernetesServiceCallServiceDiscoveryConfiguration</class>
+                                <class>org.apache.camel.model.cloud.PassThroughServiceCallServiceFilterConfiguration</class>
+                                <class>org.apache.camel.model.cloud.RibbonServiceCallServiceLoadBalancerConfiguration</class>
+                                <class>org.apache.camel.model.cloud.ServiceCallConfiguration</class>
+                                <class>org.apache.camel.model.cloud.ServiceCallExpressionConfiguration</class>
+                                <class>org.apache.camel.model.cloud.ServiceCallServiceChooserConfiguration</class>
+                                <class>org.apache.camel.model.cloud.ServiceCallServiceDiscoveryConfiguration</class>
+                                <class>org.apache.camel.model.cloud.ServiceCallServiceFilterConfiguration</class>
+                                <class>org.apache.camel.model.cloud.ServiceCallServiceLoadBalancerConfiguration</class>
+                                <class>org.apache.camel.model.cloud.StaticServiceCallServiceDiscoveryConfiguration</class>
+                                <class>org.apache.camel.model.cloud.ZooKeeperServiceCallServiceDiscoveryConfiguration</class>
                             </classes>
                         </configuration>
                     </execution>
diff --git a/core/camel-core-model/src/generated/java/org/apache/camel/model/cloud/BlacklistServiceCallServiceFilterConfigurationConfigurer.java b/core/camel-core-model/src/generated/java/org/apache/camel/model/cloud/BlacklistServiceCallServiceFilterConfigurationConfigurer.java
new file mode 100644
index 0000000..65a4d17
--- /dev/null
+++ b/core/camel-core-model/src/generated/java/org/apache/camel/model/cloud/BlacklistServiceCallServiceFilterConfigurationConfigurer.java
@@ -0,0 +1,86 @@
+/* Generated by camel build tools - do NOT edit this file! */
+package org.apache.camel.model.cloud;
+
+import java.util.Map;
+
+import org.apache.camel.CamelContext;
+import org.apache.camel.spi.ExtendedPropertyConfigurerGetter;
+import org.apache.camel.spi.PropertyConfigurerGetter;
+import org.apache.camel.spi.ConfigurerStrategy;
+import org.apache.camel.spi.GeneratedPropertyConfigurer;
+import org.apache.camel.util.CaseInsensitiveMap;
+import org.apache.camel.model.cloud.BlacklistServiceCallServiceFilterConfiguration;
+
+/**
+ * Generated by camel build tools - do NOT edit this file!
+ */
+@SuppressWarnings("unchecked")
+public class BlacklistServiceCallServiceFilterConfigurationConfigurer extends org.apache.camel.support.component.PropertyConfigurerSupport implements GeneratedPropertyConfigurer, ExtendedPropertyConfigurerGetter {
+
+    private static final Map<String, Object> ALL_OPTIONS;
+    static {
+        Map<String, Object> map = new CaseInsensitiveMap();
+        map.put("Id", java.lang.String.class);
+        map.put("Properties", java.util.List.class);
+        map.put("Servers", java.util.List.class);
+        ALL_OPTIONS = map;
+    }
+
+    @Override
+    public boolean configure(CamelContext camelContext, Object obj, String name, Object value, boolean ignoreCase) {
+        org.apache.camel.model.cloud.BlacklistServiceCallServiceFilterConfiguration target = (org.apache.camel.model.cloud.BlacklistServiceCallServiceFilterConfiguration) obj;
+        switch (ignoreCase ? name.toLowerCase() : name) {
+        case "id":
+        case "Id": target.setId(property(camelContext, java.lang.String.class, value)); return true;
+        case "properties":
+        case "Properties": target.setProperties(property(camelContext, java.util.List.class, value)); return true;
+        case "servers":
+        case "Servers": target.setServers(property(camelContext, java.util.List.class, value)); return true;
+        default: return false;
+        }
+    }
+
+    @Override
+    public Map<String, Object> getAllOptions(Object target) {
+        return ALL_OPTIONS;
+    }
+
+    @Override
+    public Class<?> getOptionType(String name, boolean ignoreCase) {
+        switch (ignoreCase ? name.toLowerCase() : name) {
+        case "id":
+        case "Id": return java.lang.String.class;
+        case "properties":
+        case "Properties": return java.util.List.class;
+        case "servers":
+        case "Servers": return java.util.List.class;
+        default: return null;
+        }
+    }
+
+    @Override
+    public Object getOptionValue(Object obj, String name, boolean ignoreCase) {
+        org.apache.camel.model.cloud.BlacklistServiceCallServiceFilterConfiguration target = (org.apache.camel.model.cloud.BlacklistServiceCallServiceFilterConfiguration) obj;
+        switch (ignoreCase ? name.toLowerCase() : name) {
+        case "id":
+        case "Id": return target.getId();
+        case "properties":
+        case "Properties": return target.getProperties();
+        case "servers":
+        case "Servers": return target.getServers();
+        default: return null;
+        }
+    }
+
+    @Override
+    public Object getCollectionValueType(Object target, String name, boolean ignoreCase) {
+        switch (ignoreCase ? name.toLowerCase() : name) {
+        case "properties":
+        case "Properties": return org.apache.camel.model.PropertyDefinition.class;
+        case "servers":
+        case "Servers": return java.lang.String.class;
+        default: return null;
+        }
+    }
+}
+
diff --git a/core/camel-core-model/src/generated/java/org/apache/camel/model/cloud/CachingServiceCallServiceDiscoveryConfigurationConfigurer.java b/core/camel-core-model/src/generated/java/org/apache/camel/model/cloud/CachingServiceCallServiceDiscoveryConfigurationConfigurer.java
new file mode 100644
index 0000000..f7f1ea5
--- /dev/null
+++ b/core/camel-core-model/src/generated/java/org/apache/camel/model/cloud/CachingServiceCallServiceDiscoveryConfigurationConfigurer.java
@@ -0,0 +1,98 @@
+/* Generated by camel build tools - do NOT edit this file! */
+package org.apache.camel.model.cloud;
+
+import java.util.Map;
+
+import org.apache.camel.CamelContext;
+import org.apache.camel.spi.ExtendedPropertyConfigurerGetter;
+import org.apache.camel.spi.PropertyConfigurerGetter;
+import org.apache.camel.spi.ConfigurerStrategy;
+import org.apache.camel.spi.GeneratedPropertyConfigurer;
+import org.apache.camel.util.CaseInsensitiveMap;
+import org.apache.camel.model.cloud.CachingServiceCallServiceDiscoveryConfiguration;
+
+/**
+ * Generated by camel build tools - do NOT edit this file!
+ */
+@SuppressWarnings("unchecked")
+public class CachingServiceCallServiceDiscoveryConfigurationConfigurer extends org.apache.camel.support.component.PropertyConfigurerSupport implements GeneratedPropertyConfigurer, ExtendedPropertyConfigurerGetter {
+
+    private static final Map<String, Object> ALL_OPTIONS;
+    static {
+        Map<String, Object> map = new CaseInsensitiveMap();
+        map.put("Id", java.lang.String.class);
+        map.put("Properties", java.util.List.class);
+        map.put("ServiceDiscoveryConfiguration", org.apache.camel.model.cloud.ServiceCallServiceDiscoveryConfiguration.class);
+        map.put("Timeout", java.lang.String.class);
+        map.put("Units", java.lang.String.class);
+        ALL_OPTIONS = map;
+    }
+
+    @Override
+    public boolean configure(CamelContext camelContext, Object obj, String name, Object value, boolean ignoreCase) {
+        org.apache.camel.model.cloud.CachingServiceCallServiceDiscoveryConfiguration target = (org.apache.camel.model.cloud.CachingServiceCallServiceDiscoveryConfiguration) obj;
+        switch (ignoreCase ? name.toLowerCase() : name) {
+        case "id":
+        case "Id": target.setId(property(camelContext, java.lang.String.class, value)); return true;
+        case "properties":
+        case "Properties": target.setProperties(property(camelContext, java.util.List.class, value)); return true;
+        case "servicediscoveryconfiguration":
+        case "ServiceDiscoveryConfiguration": target.setServiceDiscoveryConfiguration(property(camelContext, org.apache.camel.model.cloud.ServiceCallServiceDiscoveryConfiguration.class, value)); return true;
+        case "timeout":
+        case "Timeout": target.setTimeout(property(camelContext, java.lang.String.class, value)); return true;
+        case "units":
+        case "Units": target.setUnits(property(camelContext, java.lang.String.class, value)); return true;
+        default: return false;
+        }
+    }
+
+    @Override
+    public Map<String, Object> getAllOptions(Object target) {
+        return ALL_OPTIONS;
+    }
+
+    @Override
+    public Class<?> getOptionType(String name, boolean ignoreCase) {
+        switch (ignoreCase ? name.toLowerCase() : name) {
+        case "id":
+        case "Id": return java.lang.String.class;
+        case "properties":
+        case "Properties": return java.util.List.class;
+        case "servicediscoveryconfiguration":
+        case "ServiceDiscoveryConfiguration": return org.apache.camel.model.cloud.ServiceCallServiceDiscoveryConfiguration.class;
+        case "timeout":
+        case "Timeout": return java.lang.String.class;
+        case "units":
+        case "Units": return java.lang.String.class;
+        default: return null;
+        }
+    }
+
+    @Override
+    public Object getOptionValue(Object obj, String name, boolean ignoreCase) {
+        org.apache.camel.model.cloud.CachingServiceCallServiceDiscoveryConfiguration target = (org.apache.camel.model.cloud.CachingServiceCallServiceDiscoveryConfiguration) obj;
+        switch (ignoreCase ? name.toLowerCase() : name) {
+        case "id":
+        case "Id": return target.getId();
+        case "properties":
+        case "Properties": return target.getProperties();
+        case "servicediscoveryconfiguration":
+        case "ServiceDiscoveryConfiguration": return target.getServiceDiscoveryConfiguration();
+        case "timeout":
+        case "Timeout": return target.getTimeout();
+        case "units":
+        case "Units": return target.getUnits();
+        default: return null;
+        }
+    }
+
+    @Override
+    public Object getCollectionValueType(Object target, String name, boolean ignoreCase) {
+        switch (ignoreCase ? name.toLowerCase() : name) {
+        case "properties":
+        case "Properties": return org.apache.camel.model.PropertyDefinition.class;
+        default: return null;
+        }
+    }
+}
+
diff --git a/core/camel-core-model/src/generated/java/org/apache/camel/model/cloud/CombinedServiceCallServiceDiscoveryConfigurationConfigurer.java b/core/camel-core-model/src/generated/java/org/apache/camel/model/cloud/CombinedServiceCallServiceDiscoveryConfigurationConfigurer.java
new file mode 100644
index 0000000..35a6955
--- /dev/null
+++ b/core/camel-core-model/src/generated/java/org/apache/camel/model/cloud/CombinedServiceCallServiceDiscoveryConfigurationConfigurer.java
@@ -0,0 +1,86 @@
+/* Generated by camel build tools - do NOT edit this file! */
+package org.apache.camel.model.cloud;
+
+import java.util.Map;
+
+import org.apache.camel.CamelContext;
+import org.apache.camel.spi.ExtendedPropertyConfigurerGetter;
+import org.apache.camel.spi.PropertyConfigurerGetter;
+import org.apache.camel.spi.ConfigurerStrategy;
+import org.apache.camel.spi.GeneratedPropertyConfigurer;
+import org.apache.camel.util.CaseInsensitiveMap;
+import org.apache.camel.model.cloud.CombinedServiceCallServiceDiscoveryConfiguration;
+
+/**
+ * Generated by camel build tools - do NOT edit this file!
+ */
+@SuppressWarnings("unchecked")
+public class CombinedServiceCallServiceDiscoveryConfigurationConfigurer extends org.apache.camel.support.component.PropertyConfigurerSupport implements GeneratedPropertyConfigurer, ExtendedPropertyConfigurerGetter {
+
+    private static final Map<String, Object> ALL_OPTIONS;
+    static {
+        Map<String, Object> map = new CaseInsensitiveMap();
+        map.put("Id", java.lang.String.class);
+        map.put("Properties", java.util.List.class);
+        map.put("ServiceDiscoveryConfigurations", java.util.List.class);
+        ALL_OPTIONS = map;
+    }
+
+    @Override
+    public boolean configure(CamelContext camelContext, Object obj, String name, Object value, boolean ignoreCase) {
+        org.apache.camel.model.cloud.CombinedServiceCallServiceDiscoveryConfiguration target = (org.apache.camel.model.cloud.CombinedServiceCallServiceDiscoveryConfiguration) obj;
+        switch (ignoreCase ? name.toLowerCase() : name) {
+        case "id":
+        case "Id": target.setId(property(camelContext, java.lang.String.class, value)); return true;
+        case "properties":
+        case "Properties": target.setProperties(property(camelContext, java.util.List.class, value)); return true;
+        case "servicediscoveryconfigurations":
+        case "ServiceDiscoveryConfigurations": target.setServiceDiscoveryConfigurations(property(camelContext, java.util.List.class, value)); return true;
+        default: return false;
+        }
+    }
+
+    @Override
+    public Map<String, Object> getAllOptions(Object target) {
+        return ALL_OPTIONS;
+    }
+
+    @Override
+    public Class<?> getOptionType(String name, boolean ignoreCase) {
+        switch (ignoreCase ? name.toLowerCase() : name) {
+        case "id":
+        case "Id": return java.lang.String.class;
+        case "properties":
+        case "Properties": return java.util.List.class;
+        case "servicediscoveryconfigurations":
+        case "ServiceDiscoveryConfigurations": return java.util.List.class;
+        default: return null;
+        }
+    }
+
+    @Override
+    public Object getOptionValue(Object obj, String name, boolean ignoreCase) {
+        org.apache.camel.model.cloud.CombinedServiceCallServiceDiscoveryConfiguration target = (org.apache.camel.model.cloud.CombinedServiceCallServiceDiscoveryConfiguration) obj;
+        switch (ignoreCase ? name.toLowerCase() : name) {
+        case "id":
+        case "Id": return target.getId();
+        case "properties":
+        case "Properties": return target.getProperties();
+        case "servicediscoveryconfigurations":
+        case "ServiceDiscoveryConfigurations": return target.getServiceDiscoveryConfigurations();
+        default: return null;
+        }
+    }
+
+    @Override
+    public Object getCollectionValueType(Object target, String name, boolean ignoreCase) {
+        switch (ignoreCase ? name.toLowerCase() : name) {
+        case "properties":
+        case "Properties": return org.apache.camel.model.PropertyDefinition.class;
+        case "servicediscoveryconfigurations":
+        case "ServiceDiscoveryConfigurations": return org.apache.camel.model.cloud.ServiceCallServiceDiscoveryConfiguration.class;
+        default: return null;
+        }
+    }
+}
+
diff --git a/core/camel-core-model/src/generated/java/org/apache/camel/model/cloud/CombinedServiceCallServiceFilterConfigurationConfigurer.java b/core/camel-core-model/src/generated/java/org/apache/camel/model/cloud/CombinedServiceCallServiceFilterConfigurationConfigurer.java
new file mode 100644
index 0000000..7cc80a4
--- /dev/null
+++ b/core/camel-core-model/src/generated/java/org/apache/camel/model/cloud/CombinedServiceCallServiceFilterConfigurationConfigurer.java
@@ -0,0 +1,86 @@
+/* Generated by camel build tools - do NOT edit this file! */
+package org.apache.camel.model.cloud;
+
+import java.util.Map;
+
+import org.apache.camel.CamelContext;
+import org.apache.camel.spi.ExtendedPropertyConfigurerGetter;
+import org.apache.camel.spi.PropertyConfigurerGetter;
+import org.apache.camel.spi.ConfigurerStrategy;
+import org.apache.camel.spi.GeneratedPropertyConfigurer;
+import org.apache.camel.util.CaseInsensitiveMap;
+import org.apache.camel.model.cloud.CombinedServiceCallServiceFilterConfiguration;
+
+/**
+ * Generated by camel build tools - do NOT edit this file!
+ */
+@SuppressWarnings("unchecked")
+public class CombinedServiceCallServiceFilterConfigurationConfigurer extends org.apache.camel.support.component.PropertyConfigurerSupport implements GeneratedPropertyConfigurer, ExtendedPropertyConfigurerGetter {
+
+    private static final Map<String, Object> ALL_OPTIONS;
+    static {
+        Map<String, Object> map = new CaseInsensitiveMap();
+        map.put("Id", java.lang.String.class);
+        map.put("Properties", java.util.List.class);
+        map.put("ServiceFilterConfigurations", java.util.List.class);
+        ALL_OPTIONS = map;
+    }
+
+    @Override
+    public boolean configure(CamelContext camelContext, Object obj, String name, Object value, boolean ignoreCase) {
+        org.apache.camel.model.cloud.CombinedServiceCallServiceFilterConfiguration target = (org.apache.camel.model.cloud.CombinedServiceCallServiceFilterConfiguration) obj;
+        switch (ignoreCase ? name.toLowerCase() : name) {
+        case "id":
+        case "Id": target.setId(property(camelContext, java.lang.String.class, value)); return true;
+        case "properties":
+        case "Properties": target.setProperties(property(camelContext, java.util.List.class, value)); return true;
+        case "servicefilterconfigurations":
+        case "ServiceFilterConfigurations": target.setServiceFilterConfigurations(property(camelContext, java.util.List.class, value)); return true;
+        default: return false;
+        }
+    }
+
+    @Override
+    public Map<String, Object> getAllOptions(Object target) {
+        return ALL_OPTIONS;
+    }
+
+    @Override
+    public Class<?> getOptionType(String name, boolean ignoreCase) {
+        switch (ignoreCase ? name.toLowerCase() : name) {
+        case "id":
+        case "Id": return java.lang.String.class;
+        case "properties":
+        case "Properties": return java.util.List.class;
+        case "servicefilterconfigurations":
+        case "ServiceFilterConfigurations": return java.util.List.class;
+        default: return null;
+        }
+    }
+
+    @Override
+    public Object getOptionValue(Object obj, String name, boolean ignoreCase) {
+        org.apache.camel.model.cloud.CombinedServiceCallServiceFilterConfiguration target = (org.apache.camel.model.cloud.CombinedServiceCallServiceFilterConfiguration) obj;
+        switch (ignoreCase ? name.toLowerCase() : name) {
+        case "id":
+        case "Id": return target.getId();
+        case "properties":
+        case "Properties": return target.getProperties();
+        case "servicefilterconfigurations":
+        case "ServiceFilterConfigurations": return target.getServiceFilterConfigurations();
+        default: return null;
+        }
+    }
+
+    @Override
+    public Object getCollectionValueType(Object target, String name, boolean ignoreCase) {
+        switch (ignoreCase ? name.toLowerCase() : name) {
+        case "properties":
+        case "Properties": return org.apache.camel.model.PropertyDefinition.class;
+        case "servicefilterconfigurations":
+        case "ServiceFilterConfigurations": return org.apache.camel.model.cloud.ServiceCallServiceFilterConfiguration.class;
+        default: return null;
+        }
+    }
+}
+
diff --git a/core/camel-core-model/src/generated/java/org/apache/camel/model/cloud/ConsulServiceCallServiceDiscoveryConfigurationConfigurer.java b/core/camel-core-model/src/generated/java/org/apache/camel/model/cloud/ConsulServiceCallServiceDiscoveryConfigurationConfigurer.java
new file mode 100644
index 0000000..feb017a
--- /dev/null
+++ b/core/camel-core-model/src/generated/java/org/apache/camel/model/cloud/ConsulServiceCallServiceDiscoveryConfigurationConfigurer.java
@@ -0,0 +1,147 @@
+/* Generated by camel build tools - do NOT edit this file! */
+package org.apache.camel.model.cloud;
+
+import java.util.Map;
+
+import org.apache.camel.CamelContext;
+import org.apache.camel.spi.ExtendedPropertyConfigurerGetter;
+import org.apache.camel.spi.PropertyConfigurerGetter;
+import org.apache.camel.spi.ConfigurerStrategy;
+import org.apache.camel.spi.GeneratedPropertyConfigurer;
+import org.apache.camel.util.CaseInsensitiveMap;
+import org.apache.camel.model.cloud.ConsulServiceCallServiceDiscoveryConfiguration;
+
+/**
+ * Generated by camel build tools - do NOT edit this file!
+ */
+@SuppressWarnings("unchecked")
+public class ConsulServiceCallServiceDiscoveryConfigurationConfigurer extends org.apache.camel.support.component.PropertyConfigurerSupport implements GeneratedPropertyConfigurer, ExtendedPropertyConfigurerGetter {
+
+    private static final Map<String, Object> ALL_OPTIONS;
+    static {
+        Map<String, Object> map = new CaseInsensitiveMap();
+        map.put("AclToken", java.lang.String.class);
+        map.put("BlockSeconds", java.lang.String.class);
+        map.put("ConnectTimeoutMillis", java.lang.String.class);
+        map.put("Datacenter", java.lang.String.class);
+        map.put("Id", java.lang.String.class);
+        map.put("Password", java.lang.String.class);
+        map.put("Properties", java.util.List.class);
+        map.put("ReadTimeoutMillis", java.lang.String.class);
+        map.put("SslContextParameters", org.apache.camel.support.jsse.SSLContextParameters.class);
+        map.put("Url", java.lang.String.class);
+        map.put("UserName", java.lang.String.class);
+        map.put("WriteTimeoutMillis", java.lang.String.class);
+        ALL_OPTIONS = map;
+    }
+
+    @Override
+    public boolean configure(CamelContext camelContext, Object obj, String name, Object value, boolean ignoreCase) {
+        org.apache.camel.model.cloud.ConsulServiceCallServiceDiscoveryConfiguration target = (org.apache.camel.model.cloud.ConsulServiceCallServiceDiscoveryConfiguration) obj;
+        switch (ignoreCase ? name.toLowerCase() : name) {
+        case "acltoken":
+        case "AclToken": target.setAclToken(property(camelContext, java.lang.String.class, value)); return true;
+        case "blockseconds":
+        case "BlockSeconds": target.setBlockSeconds(property(camelContext, java.lang.String.class, value)); return true;
+        case "connecttimeoutmillis":
+        case "ConnectTimeoutMillis": target.setConnectTimeoutMillis(property(camelContext, java.lang.String.class, value)); return true;
+        case "datacenter":
+        case "Datacenter": target.setDatacenter(property(camelContext, java.lang.String.class, value)); return true;
+        case "id":
+        case "Id": target.setId(property(camelContext, java.lang.String.class, value)); return true;
+        case "password":
+        case "Password": target.setPassword(property(camelContext, java.lang.String.class, value)); return true;
+        case "properties":
+        case "Properties": target.setProperties(property(camelContext, java.util.List.class, value)); return true;
+        case "readtimeoutmillis":
+        case "ReadTimeoutMillis": target.setReadTimeoutMillis(property(camelContext, java.lang.String.class, value)); return true;
+        case "sslcontextparameters":
+        case "SslContextParameters": target.setSslContextParameters(property(camelContext, org.apache.camel.support.jsse.SSLContextParameters.class, value)); return true;
+        case "url":
+        case "Url": target.setUrl(property(camelContext, java.lang.String.class, value)); return true;
+        case "username":
+        case "UserName": target.setUserName(property(camelContext, java.lang.String.class, value)); return true;
+        case "writetimeoutmillis":
+        case "WriteTimeoutMillis": target.setWriteTimeoutMillis(property(camelContext, java.lang.String.class, value)); return true;
+        default: return false;
+        }
+    }
+
+    @Override
+    public Map<String, Object> getAllOptions(Object target) {
+        return ALL_OPTIONS;
+    }
+
+    @Override
+    public Class<?> getOptionType(String name, boolean ignoreCase) {
+        switch (ignoreCase ? name.toLowerCase() : name) {
+        case "acltoken":
+        case "AclToken": return java.lang.String.class;
+        case "blockseconds":
+        case "BlockSeconds": return java.lang.String.class;
+        case "connecttimeoutmillis":
+        case "ConnectTimeoutMillis": return java.lang.String.class;
+        case "datacenter":
+        case "Datacenter": return java.lang.String.class;
+        case "id":
+        case "Id": return java.lang.String.class;
+        case "password":
+        case "Password": return java.lang.String.class;
+        case "properties":
+        case "Properties": return java.util.List.class;
+        case "readtimeoutmillis":
+        case "ReadTimeoutMillis": return java.lang.String.class;
+        case "sslcontextparameters":
+        case "SslContextParameters": return org.apache.camel.support.jsse.SSLContextParameters.class;
+        case "url":
+        case "Url": return java.lang.String.class;
+        case "username":
+        case "UserName": return java.lang.String.class;
+        case "writetimeoutmillis":
+        case "WriteTimeoutMillis": return java.lang.String.class;
+        default: return null;
+        }
+    }
+
+    @Override
+    public Object getOptionValue(Object obj, String name, boolean ignoreCase) {
+        org.apache.camel.model.cloud.ConsulServiceCallServiceDiscoveryConfiguration target = (org.apache.camel.model.cloud.ConsulServiceCallServiceDiscoveryConfiguration) obj;
+        switch (ignoreCase ? name.toLowerCase() : name) {
+        case "acltoken":
+        case "AclToken": return target.getAclToken();
+        case "blockseconds":
+        case "BlockSeconds": return target.getBlockSeconds();
+        case "connecttimeoutmillis":
+        case "ConnectTimeoutMillis": return target.getConnectTimeoutMillis();
+        case "datacenter":
+        case "Datacenter": return target.getDatacenter();
+        case "id":
+        case "Id": return target.getId();
+        case "password":
+        case "Password": return target.getPassword();
+        case "properties":
+        case "Properties": return target.getProperties();
+        case "readtimeoutmillis":
+        case "ReadTimeoutMillis": return target.getReadTimeoutMillis();
+        case "sslcontextparameters":
+        case "SslContextParameters": return target.getSslContextParameters();
+        case "url":
+        case "Url": return target.getUrl();
+        case "username":
+        case "UserName": return target.getUserName();
+        case "writetimeoutmillis":
+        case "WriteTimeoutMillis": return target.getWriteTimeoutMillis();
+        default: return null;
+        }
+    }
+
+    @Override
+    public Object getCollectionValueType(Object target, String name, boolean ignoreCase) {
+        switch (ignoreCase ? name.toLowerCase() : name) {
+        case "properties":
+        case "Properties": return org.apache.camel.model.PropertyDefinition.class;
+        default: return null;
+        }
+    }
+}
+
diff --git a/core/camel-core-model/src/generated/java/org/apache/camel/model/cloud/CustomServiceCallServiceFilterConfigurationConfigurer.java b/core/camel-core-model/src/generated/java/org/apache/camel/model/cloud/CustomServiceCallServiceFilterConfigurationConfigurer.java
new file mode 100644
index 0000000..92174db
--- /dev/null
+++ b/core/camel-core-model/src/generated/java/org/apache/camel/model/cloud/CustomServiceCallServiceFilterConfigurationConfigurer.java
@@ -0,0 +1,91 @@
+/* Generated by camel build tools - do NOT edit this file! */
+package org.apache.camel.model.cloud;
+
+import java.util.Map;
+
+import org.apache.camel.CamelContext;
+import org.apache.camel.spi.ExtendedPropertyConfigurerGetter;
+import org.apache.camel.spi.PropertyConfigurerGetter;
+import org.apache.camel.spi.ConfigurerStrategy;
+import org.apache.camel.spi.GeneratedPropertyConfigurer;
+import org.apache.camel.util.CaseInsensitiveMap;
+import org.apache.camel.model.cloud.CustomServiceCallServiceFilterConfiguration;
+
+/**
+ * Generated by camel build tools - do NOT edit this file!
+ */
+@SuppressWarnings("unchecked")
+public class CustomServiceCallServiceFilterConfigurationConfigurer extends org.apache.camel.support.component.PropertyConfigurerSupport implements GeneratedPropertyConfigurer, ExtendedPropertyConfigurerGetter {
+
+    private static final Map<String, Object> ALL_OPTIONS;
+    static {
+        Map<String, Object> map = new CaseInsensitiveMap();
+        map.put("Id", java.lang.String.class);
+        map.put("Properties", java.util.List.class);
+        map.put("ServiceFilter", org.apache.camel.cloud.ServiceFilter.class);
+        map.put("ServiceFilterRef", java.lang.String.class);
+        ALL_OPTIONS = map;
+    }
+
+    @Override
+    public boolean configure(CamelContext camelContext, Object obj, String name, Object value, boolean ignoreCase) {
+        org.apache.camel.model.cloud.CustomServiceCallServiceFilterConfiguration target = (org.apache.camel.model.cloud.CustomServiceCallServiceFilterConfiguration) obj;
+        switch (ignoreCase ? name.toLowerCase() : name) {
+        case "id":
+        case "Id": target.setId(property(camelContext, java.lang.String.class, value)); return true;
+        case "properties":
+        case "Properties": target.setProperties(property(camelContext, java.util.List.class, value)); return true;
+        case "servicefilter":
+        case "ServiceFilter": target.setServiceFilter(property(camelContext, org.apache.camel.cloud.ServiceFilter.class, value)); return true;
+        case "servicefilterref":
+        case "ServiceFilterRef": target.setServiceFilterRef(property(camelContext, java.lang.String.class, value)); return true;
+        default: return false;
+        }
+    }
+
+    @Override
+    public Map<String, Object> getAllOptions(Object target) {
+        return ALL_OPTIONS;
+    }
+
+    @Override
+    public Class<?> getOptionType(String name, boolean ignoreCase) {
+        switch (ignoreCase ? name.toLowerCase() : name) {
+        case "id":
+        case "Id": return java.lang.String.class;
+        case "properties":
+        case "Properties": return java.util.List.class;
+        case "servicefilter":
+        case "ServiceFilter": return org.apache.camel.cloud.ServiceFilter.class;
+        case "servicefilterref":
+        case "ServiceFilterRef": return java.lang.String.class;
+        default: return null;
+        }
+    }
+
+    @Override
+    public Object getOptionValue(Object obj, String name, boolean ignoreCase) {
+        org.apache.camel.model.cloud.CustomServiceCallServiceFilterConfiguration target = (org.apache.camel.model.cloud.CustomServiceCallServiceFilterConfiguration) obj;
+        switch (ignoreCase ? name.toLowerCase() : name) {
+        case "id":
+        case "Id": return target.getId();
+        case "properties":
+        case "Properties": return target.getProperties();
+        case "servicefilter":
+        case "ServiceFilter": return target.getServiceFilter();
+        case "servicefilterref":
+        case "ServiceFilterRef": return target.getServiceFilterRef();
+        default: return null;
+        }
+    }
+
+    @Override
+    public Object getCollectionValueType(Object target, String name, boolean ignoreCase) {
+        switch (ignoreCase ? name.toLowerCase() : name) {
+        case "properties":
+        case "Properties": return org.apache.camel.model.PropertyDefinition.class;
+        default: return null;
+        }
+    }
+}
+
diff --git a/core/camel-core-model/src/generated/java/org/apache/camel/model/cloud/DefaultServiceCallServiceLoadBalancerConfigurationConfigurer.java b/core/camel-core-model/src/generated/java/org/apache/camel/model/cloud/DefaultServiceCallServiceLoadBalancerConfigurationConfigurer.java
new file mode 100644
index 0000000..9725984
--- /dev/null
+++ b/core/camel-core-model/src/generated/java/org/apache/camel/model/cloud/DefaultServiceCallServiceLoadBalancerConfigurationConfigurer.java
@@ -0,0 +1,77 @@
+/* Generated by camel build tools - do NOT edit this file! */
+package org.apache.camel.model.cloud;
+
+import java.util.Map;
+
+import org.apache.camel.CamelContext;
+import org.apache.camel.spi.ExtendedPropertyConfigurerGetter;
+import org.apache.camel.spi.PropertyConfigurerGetter;
+import org.apache.camel.spi.ConfigurerStrategy;
+import org.apache.camel.spi.GeneratedPropertyConfigurer;
+import org.apache.camel.util.CaseInsensitiveMap;
+import org.apache.camel.model.cloud.DefaultServiceCallServiceLoadBalancerConfiguration;
+
+/**
+ * Generated by camel build tools - do NOT edit this file!
+ */
+@SuppressWarnings("unchecked")
+public class DefaultServiceCallServiceLoadBalancerConfigurationConfigurer extends org.apache.camel.support.component.PropertyConfigurerSupport implements GeneratedPropertyConfigurer, ExtendedPropertyConfigurerGetter {
+
+    private static final Map<String, Object> ALL_OPTIONS;
+    static {
+        Map<String, Object> map = new CaseInsensitiveMap();
+        map.put("Id", java.lang.String.class);
+        map.put("Properties", java.util.List.class);
+        ALL_OPTIONS = map;
+    }
+
+    @Override
+    public boolean configure(CamelContext camelContext, Object obj, String name, Object value, boolean ignoreCase) {
+        org.apache.camel.model.cloud.DefaultServiceCallServiceLoadBalancerConfiguration target = (org.apache.camel.model.cloud.DefaultServiceCallServiceLoadBalancerConfiguration) obj;
+        switch (ignoreCase ? name.toLowerCase() : name) {
+        case "id":
+        case "Id": target.setId(property(camelContext, java.lang.String.class, value)); return true;
+        case "properties":
+        case "Properties": target.setProperties(property(camelContext, java.util.List.class, value)); return true;
+        default: return false;
+        }
+    }
+
+    @Override
+    public Map<String, Object> getAllOptions(Object target) {
+        return ALL_OPTIONS;
+    }
+
+    @Override
+    public Class<?> getOptionType(String name, boolean ignoreCase) {
+        switch (ignoreCase ? name.toLowerCase() : name) {
+        case "id":
+        case "Id": return java.lang.String.class;
+        case "properties":
+        case "Properties": return java.util.List.class;
+        default: return null;
+        }
+    }
+
+    @Override
+    public Object getOptionValue(Object obj, String name, boolean ignoreCase) {
+        org.apache.camel.model.cloud.DefaultServiceCallServiceLoadBalancerConfiguration target = (org.apache.camel.model.cloud.DefaultServiceCallServiceLoadBalancerConfiguration) obj;
+        switch (ignoreCase ? name.toLowerCase() : name) {
+        case "id":
+        case "Id": return target.getId();
+        case "properties":
+        case "Properties": return target.getProperties();
+        default: return null;
+        }
+    }
+
+    @Override
+    public Object getCollectionValueType(Object target, String name, boolean ignoreCase) {
+        switch (ignoreCase ? name.toLowerCase() : name) {
+        case "properties":
+        case "Properties": return org.apache.camel.model.PropertyDefinition.class;
+        default: return null;
+        }
+    }
+}
+
diff --git a/core/camel-core-model/src/generated/java/org/apache/camel/model/cloud/DnsServiceCallServiceDiscoveryConfigurationConfigurer.java b/core/camel-core-model/src/generated/java/org/apache/camel/model/cloud/DnsServiceCallServiceDiscoveryConfigurationConfigurer.java
new file mode 100644
index 0000000..29d0271
--- /dev/null
+++ b/core/camel-core-model/src/generated/java/org/apache/camel/model/cloud/DnsServiceCallServiceDiscoveryConfigurationConfigurer.java
@@ -0,0 +1,91 @@
+/* Generated by camel build tools - do NOT edit this file! */
+package org.apache.camel.model.cloud;
+
+import java.util.Map;
+
+import org.apache.camel.CamelContext;
+import org.apache.camel.spi.ExtendedPropertyConfigurerGetter;
+import org.apache.camel.spi.PropertyConfigurerGetter;
+import org.apache.camel.spi.ConfigurerStrategy;
+import org.apache.camel.spi.GeneratedPropertyConfigurer;
+import org.apache.camel.util.CaseInsensitiveMap;
+import org.apache.camel.model.cloud.DnsServiceCallServiceDiscoveryConfiguration;
+
+/**
+ * Generated by camel build tools - do NOT edit this file!
+ */
+@SuppressWarnings("unchecked")
+public class DnsServiceCallServiceDiscoveryConfigurationConfigurer extends org.apache.camel.support.component.PropertyConfigurerSupport implements GeneratedPropertyConfigurer, ExtendedPropertyConfigurerGetter {
+
+    private static final Map<String, Object> ALL_OPTIONS;
+    static {
+        Map<String, Object> map = new CaseInsensitiveMap();
+        map.put("Domain", java.lang.String.class);
+        map.put("Id", java.lang.String.class);
+        map.put("Properties", java.util.List.class);
+        map.put("Proto", java.lang.String.class);
+        ALL_OPTIONS = map;
+    }
+
+    @Override
+    public boolean configure(CamelContext camelContext, Object obj, String name, Object value, boolean ignoreCase) {
+        org.apache.camel.model.cloud.DnsServiceCallServiceDiscoveryConfiguration target = (org.apache.camel.model.cloud.DnsServiceCallServiceDiscoveryConfiguration) obj;
+        switch (ignoreCase ? name.toLowerCase() : name) {
+        case "domain":
+        case "Domain": target.setDomain(property(camelContext, java.lang.String.class, value)); return true;
+        case "id":
+        case "Id": target.setId(property(camelContext, java.lang.String.class, value)); return true;
+        case "properties":
+        case "Properties": target.setProperties(property(camelContext, java.util.List.class, value)); return true;
+        case "proto":
+        case "Proto": target.setProto(property(camelContext, java.lang.String.class, value)); return true;
+        default: return false;
+        }
+    }
+
+    @Override
+    public Map<String, Object> getAllOptions(Object target) {
+        return ALL_OPTIONS;
+    }
+
+    @Override
+    public Class<?> getOptionType(String name, boolean ignoreCase) {
+        switch (ignoreCase ? name.toLowerCase() : name) {
+        case "domain":
+        case "Domain": return java.lang.String.class;
+        case "id":
+        case "Id": return java.lang.String.class;
+        case "properties":
+        case "Properties": return java.util.List.class;
+        case "proto":
+        case "Proto": return java.lang.String.class;
+        default: return null;
+        }
+    }
+
+    @Override
+    public Object getOptionValue(Object obj, String name, boolean ignoreCase) {
+        org.apache.camel.model.cloud.DnsServiceCallServiceDiscoveryConfiguration target = (org.apache.camel.model.cloud.DnsServiceCallServiceDiscoveryConfiguration) obj;
+        switch (ignoreCase ? name.toLowerCase() : name) {
+        case "domain":
+        case "Domain": return target.getDomain();
+        case "id":
+        case "Id": return target.getId();
+        case "properties":
+        case "Properties": return target.getProperties();
+        case "proto":
+        case "Proto": return target.getProto();
+        default: return null;
+        }
+    }
+
+    @Override
+    public Object getCollectionValueType(Object target, String name, boolean ignoreCase) {
+        switch (ignoreCase ? name.toLowerCase() : name) {
+        case "properties":
+        case "Properties": return org.apache.camel.model.PropertyDefinition.class;
+        default: return null;
+        }
+    }
+}
+
diff --git a/core/camel-core-model/src/generated/java/org/apache/camel/model/cloud/EtcdServiceCallServiceDiscoveryConfigurationConfigurer.java b/core/camel-core-model/src/generated/java/org/apache/camel/model/cloud/EtcdServiceCallServiceDiscoveryConfigurationConfigurer.java
new file mode 100644
index 0000000..7b40ece
--- /dev/null
+++ b/core/camel-core-model/src/generated/java/org/apache/camel/model/cloud/EtcdServiceCallServiceDiscoveryConfigurationConfigurer.java
@@ -0,0 +1,126 @@
+/* Generated by camel build tools - do NOT edit this file! */
+package org.apache.camel.model.cloud;
+
+import java.util.Map;
+
+import org.apache.camel.CamelContext;
+import org.apache.camel.spi.ExtendedPropertyConfigurerGetter;
+import org.apache.camel.spi.PropertyConfigurerGetter;
+import org.apache.camel.spi.ConfigurerStrategy;
+import org.apache.camel.spi.GeneratedPropertyConfigurer;
+import org.apache.camel.util.CaseInsensitiveMap;
+import org.apache.camel.model.cloud.EtcdServiceCallServiceDiscoveryConfiguration;
+
+/**
+ * Generated by camel build tools - do NOT edit this file!
+ */
+@SuppressWarnings("unchecked")
+public class EtcdServiceCallServiceDiscoveryConfigurationConfigurer extends org.apache.camel.support.component.PropertyConfigurerSupport implements GeneratedPropertyConfigurer, ExtendedPropertyConfigurerGetter {
+
+    private static final Map<String, Object> ALL_OPTIONS;
+    static {
+        Map<String, Object> map = new CaseInsensitiveMap();
+        map.put("Id", java.lang.String.class);
+        map.put("Password", java.lang.String.class);
+        map.put("Properties", java.util.List.class);
+        map.put("ServicePath", java.lang.String.class);
+        map.put("SslContextParameters", org.apache.camel.support.jsse.SSLContextParameters.class);
+        map.put("Timeout", java.lang.String.class);
+        map.put("Type", java.lang.String.class);
+        map.put("Uris", java.lang.String.class);
+        map.put("UserName", java.lang.String.class);
+        ALL_OPTIONS = map;
+    }
+
+    @Override
+    public boolean configure(CamelContext camelContext, Object obj, String name, Object value, boolean ignoreCase) {
+        org.apache.camel.model.cloud.EtcdServiceCallServiceDiscoveryConfiguration target = (org.apache.camel.model.cloud.EtcdServiceCallServiceDiscoveryConfiguration) obj;
+        switch (ignoreCase ? name.toLowerCase() : name) {
+        case "id":
+        case "Id": target.setId(property(camelContext, java.lang.String.class, value)); return true;
+        case "password":
+        case "Password": target.setPassword(property(camelContext, java.lang.String.class, value)); return true;
+        case "properties":
+        case "Properties": target.setProperties(property(camelContext, java.util.List.class, value)); return true;
+        case "servicepath":
+        case "ServicePath": target.setServicePath(property(camelContext, java.lang.String.class, value)); return true;
+        case "sslcontextparameters":
+        case "SslContextParameters": target.setSslContextParameters(property(camelContext, org.apache.camel.support.jsse.SSLContextParameters.class, value)); return true;
+        case "timeout":
+        case "Timeout": target.setTimeout(property(camelContext, java.lang.String.class, value)); return true;
+        case "type":
+        case "Type": target.setType(property(camelContext, java.lang.String.class, value)); return true;
+        case "uris":
+        case "Uris": target.setUris(property(camelContext, java.lang.String.class, value)); return true;
+        case "username":
+        case "UserName": target.setUserName(property(camelContext, java.lang.String.class, value)); return true;
+        default: return false;
+        }
+    }
+
+    @Override
+    public Map<String, Object> getAllOptions(Object target) {
+        return ALL_OPTIONS;
+    }
+
+    @Override
+    public Class<?> getOptionType(String name, boolean ignoreCase) {
+        switch (ignoreCase ? name.toLowerCase() : name) {
+        case "id":
+        case "Id": return java.lang.String.class;
+        case "password":
+        case "Password": return java.lang.String.class;
+        case "properties":
+        case "Properties": return java.util.List.class;
+        case "servicepath":
+        case "ServicePath": return java.lang.String.class;
+        case "sslcontextparameters":
+        case "SslContextParameters": return org.apache.camel.support.jsse.SSLContextParameters.class;
+        case "timeout":
+        case "Timeout": return java.lang.String.class;
+        case "type":
+        case "Type": return java.lang.String.class;
+        case "uris":
+        case "Uris": return java.lang.String.class;
+        case "username":
+        case "UserName": return java.lang.String.class;
+        default: return null;
+        }
+    }
+
+    @Override
+    public Object getOptionValue(Object obj, String name, boolean ignoreCase) {
+        org.apache.camel.model.cloud.EtcdServiceCallServiceDiscoveryConfiguration target = (org.apache.camel.model.cloud.EtcdServiceCallServiceDiscoveryConfiguration) obj;
+        switch (ignoreCase ? name.toLowerCase() : name) {
+        case "id":
+        case "Id": return target.getId();
+        case "password":
+        case "Password": return target.getPassword();
+        case "properties":
+        case "Properties": return target.getProperties();
+        case "servicepath":
+        case "ServicePath": return target.getServicePath();
+        case "sslcontextparameters":
+        case "SslContextParameters": return target.getSslContextParameters();
+        case "timeout":
+        case "Timeout": return target.getTimeout();
+        case "type":
+        case "Type": return target.getType();
+        case "uris":
+        case "Uris": return target.getUris();
+        case "username":
+        case "UserName": return target.getUserName();
+        default: return null;
+        }
+    }
+
+    @Override
+    public Object getCollectionValueType(Object target, String name, boolean ignoreCase) {
+        switch (ignoreCase ? name.toLowerCase() : name) {
+        case "properties":
+        case "Properties": return org.apache.camel.model.PropertyDefinition.class;
+        default: return null;
+        }
+    }
+}
+
diff --git a/core/camel-core-model/src/generated/java/org/apache/camel/model/cloud/HealthyServiceCallServiceFilterConfigurationConfigurer.java b/core/camel-core-model/src/generated/java/org/apache/camel/model/cloud/HealthyServiceCallServiceFilterConfigurationConfigurer.java
new file mode 100644
index 0000000..848ed5a
--- /dev/null
+++ b/core/camel-core-model/src/generated/java/org/apache/camel/model/cloud/HealthyServiceCallServiceFilterConfigurationConfigurer.java
@@ -0,0 +1,77 @@
+/* Generated by camel build tools - do NOT edit this file! */
+package org.apache.camel.model.cloud;
+
+import java.util.Map;
+
+import org.apache.camel.CamelContext;
+import org.apache.camel.spi.ExtendedPropertyConfigurerGetter;
+import org.apache.camel.spi.PropertyConfigurerGetter;
+import org.apache.camel.spi.ConfigurerStrategy;
+import org.apache.camel.spi.GeneratedPropertyConfigurer;
+import org.apache.camel.util.CaseInsensitiveMap;
+import org.apache.camel.model.cloud.HealthyServiceCallServiceFilterConfiguration;
+
+/**
+ * Generated by camel build tools - do NOT edit this file!
+ */
+@SuppressWarnings("unchecked")
+public class HealthyServiceCallServiceFilterConfigurationConfigurer extends org.apache.camel.support.component.PropertyConfigurerSupport implements GeneratedPropertyConfigurer, ExtendedPropertyConfigurerGetter {
+
+    private static final Map<String, Object> ALL_OPTIONS;
+    static {
+        Map<String, Object> map = new CaseInsensitiveMap();
+        map.put("Id", java.lang.String.class);
+        map.put("Properties", java.util.List.class);
+        ALL_OPTIONS = map;
+    }
+
+    @Override
+    public boolean configure(CamelContext camelContext, Object obj, String name, Object value, boolean ignoreCase) {
+        org.apache.camel.model.cloud.HealthyServiceCallServiceFilterConfiguration target = (org.apache.camel.model.cloud.HealthyServiceCallServiceFilterConfiguration) obj;
+        switch (ignoreCase ? name.toLowerCase() : name) {
+        case "id":
+        case "Id": target.setId(property(camelContext, java.lang.String.class, value)); return true;
+        case "properties":
+        case "Properties": target.setProperties(property(camelContext, java.util.List.class, value)); return true;
+        default: return false;
+        }
+    }
+
+    @Override
+    public Map<String, Object> getAllOptions(Object target) {
+        return ALL_OPTIONS;
+    }
+
+    @Override
+    public Class<?> getOptionType(String name, boolean ignoreCase) {
+        switch (ignoreCase ? name.toLowerCase() : name) {
+        case "id":
+        case "Id": return java.lang.String.class;
+        case "properties":
+        case "Properties": return java.util.List.class;
+        default: return null;
+        }
+    }
+
+    @Override
+    public Object getOptionValue(Object obj, String name, boolean ignoreCase) {
+        org.apache.camel.model.cloud.HealthyServiceCallServiceFilterConfiguration target = (org.apache.camel.model.cloud.HealthyServiceCallServiceFilterConfiguration) obj;
+        switch (ignoreCase ? name.toLowerCase() : name) {
+        case "id":
+        case "Id": return target.getId();
+        case "properties":
+        case "Properties": return target.getProperties();
+        default: return null;
+        }
+    }
+
+    @Override
+    public Object getCollectionValueType(Object target, String name, boolean ignoreCase) {
+        switch (ignoreCase ? name.toLowerCase() : name) {
+        case "properties":
+        case "Properties": return org.apache.camel.model.PropertyDefinition.class;
+        default: return null;
+        }
+    }
+}
+
diff --git a/core/camel-core-model/src/generated/java/org/apache/camel/model/cloud/KubernetesServiceCallServiceDiscoveryConfigurationConfigurer.java b/core/camel-core-model/src/generated/java/org/apache/camel/model/cloud/KubernetesServiceCallServiceDiscoveryConfigurationConfigurer.java
new file mode 100644
index 0000000..fe2cc0a
--- /dev/null
+++ b/core/camel-core-model/src/generated/java/org/apache/camel/model/cloud/KubernetesServiceCallServiceDiscoveryConfigurationConfigurer.java
@@ -0,0 +1,210 @@
+/* Generated by camel build tools - do NOT edit this file! */
+package org.apache.camel.model.cloud;
+
+import java.util.Map;
+
+import org.apache.camel.CamelContext;
+import org.apache.camel.spi.ExtendedPropertyConfigurerGetter;
+import org.apache.camel.spi.PropertyConfigurerGetter;
+import org.apache.camel.spi.ConfigurerStrategy;
+import org.apache.camel.spi.GeneratedPropertyConfigurer;
+import org.apache.camel.util.CaseInsensitiveMap;
+import org.apache.camel.model.cloud.KubernetesServiceCallServiceDiscoveryConfiguration;
+
+/**
+ * Generated by camel build tools - do NOT edit this file!
+ */
+@SuppressWarnings("unchecked")
+public class KubernetesServiceCallServiceDiscoveryConfigurationConfigurer extends org.apache.camel.support.component.PropertyConfigurerSupport implements GeneratedPropertyConfigurer, ExtendedPropertyConfigurerGetter {
+
+    private static final Map<String, Object> ALL_OPTIONS;
+    static {
+        Map<String, Object> map = new CaseInsensitiveMap();
+        map.put("ApiVersion", java.lang.String.class);
+        map.put("CaCertData", java.lang.String.class);
+        map.put("CaCertFile", java.lang.String.class);
+        map.put("ClientCertData", java.lang.String.class);
+        map.put("ClientCertFile", java.lang.String.class);
+        map.put("ClientKeyAlgo", java.lang.String.class);
+        map.put("ClientKeyData", java.lang.String.class);
+        map.put("ClientKeyFile", java.lang.String.class);
+        map.put("ClientKeyPassphrase", java.lang.String.class);
+        map.put("DnsDomain", java.lang.String.class);
+        map.put("Id", java.lang.String.class);
+        map.put("Lookup", java.lang.String.class);
+        map.put("MasterUrl", java.lang.String.class);
+        map.put("Namespace", java.lang.String.class);
+        map.put("OauthToken", java.lang.String.class);
+        map.put("Password", java.lang.String.class);
+        map.put("PortName", java.lang.String.class);
+        map.put("PortProtocol", java.lang.String.class);
+        map.put("Properties", java.util.List.class);
+        map.put("TrustCerts", java.lang.String.class);
+        map.put("Username", java.lang.String.class);
+        ALL_OPTIONS = map;
+    }
+
+    @Override
+    public boolean configure(CamelContext camelContext, Object obj, String name, Object value, boolean ignoreCase) {
+        org.apache.camel.model.cloud.KubernetesServiceCallServiceDiscoveryConfiguration target = (org.apache.camel.model.cloud.KubernetesServiceCallServiceDiscoveryConfiguration) obj;
+        switch (ignoreCase ? name.toLowerCase() : name) {
+        case "apiversion":
+        case "ApiVersion": target.setApiVersion(property(camelContext, java.lang.String.class, value)); return true;
+        case "cacertdata":
+        case "CaCertData": target.setCaCertData(property(camelContext, java.lang.String.class, value)); return true;
+        case "cacertfile":
+        case "CaCertFile": target.setCaCertFile(property(camelContext, java.lang.String.class, value)); return true;
+        case "clientcertdata":
+        case "ClientCertData": target.setClientCertData(property(camelContext, java.lang.String.class, value)); return true;
+        case "clientcertfile":
+        case "ClientCertFile": target.setClientCertFile(property(camelContext, java.lang.String.class, value)); return true;
+        case "clientkeyalgo":
+        case "ClientKeyAlgo": target.setClientKeyAlgo(property(camelContext, java.lang.String.class, value)); return true;
+        case "clientkeydata":
+        case "ClientKeyData": target.setClientKeyData(property(camelContext, java.lang.String.class, value)); return true;
+        case "clientkeyfile":
+        case "ClientKeyFile": target.setClientKeyFile(property(camelContext, java.lang.String.class, value)); return true;
+        case "clientkeypassphrase":
+        case "ClientKeyPassphrase": target.setClientKeyPassphrase(property(camelContext, java.lang.String.class, value)); return true;
+        case "dnsdomain":
+        case "DnsDomain": target.setDnsDomain(property(camelContext, java.lang.String.class, value)); return true;
+        case "id":
+        case "Id": target.setId(property(camelContext, java.lang.String.class, value)); return true;
+        case "lookup":
+        case "Lookup": target.setLookup(property(camelContext, java.lang.String.class, value)); return true;
+        case "masterurl":
+        case "MasterUrl": target.setMasterUrl(property(camelContext, java.lang.String.class, value)); return true;
+        case "namespace":
+        case "Namespace": target.setNamespace(property(camelContext, java.lang.String.class, value)); return true;
+        case "oauthtoken":
+        case "OauthToken": target.setOauthToken(property(camelContext, java.lang.String.class, value)); return true;
+        case "password":
+        case "Password": target.setPassword(property(camelContext, java.lang.String.class, value)); return true;
+        case "portname":
+        case "PortName": target.setPortName(property(camelContext, java.lang.String.class, value)); return true;
+        case "portprotocol":
+        case "PortProtocol": target.setPortProtocol(property(camelContext, java.lang.String.class, value)); return true;
+        case "properties":
+        case "Properties": target.setProperties(property(camelContext, java.util.List.class, value)); return true;
+        case "trustcerts":
+        case "TrustCerts": target.setTrustCerts(property(camelContext, java.lang.String.class, value)); return true;
+        case "username":
+        case "Username": target.setUsername(property(camelContext, java.lang.String.class, value)); return true;
+        default: return false;
+        }
+    }
+
+    @Override
+    public Map<String, Object> getAllOptions(Object target) {
+        return ALL_OPTIONS;
+    }
+
+    @Override
+    public Class<?> getOptionType(String name, boolean ignoreCase) {
+        switch (ignoreCase ? name.toLowerCase() : name) {
+        case "apiversion":
+        case "ApiVersion": return java.lang.String.class;
+        case "cacertdata":
+        case "CaCertData": return java.lang.String.class;
+        case "cacertfile":
+        case "CaCertFile": return java.lang.String.class;
+        case "clientcertdata":
+        case "ClientCertData": return java.lang.String.class;
+        case "clientcertfile":
+        case "ClientCertFile": return java.lang.String.class;
+        case "clientkeyalgo":
+        case "ClientKeyAlgo": return java.lang.String.class;
+        case "clientkeydata":
+        case "ClientKeyData": return java.lang.String.class;
+        case "clientkeyfile":
+        case "ClientKeyFile": return java.lang.String.class;
+        case "clientkeypassphrase":
+        case "ClientKeyPassphrase": return java.lang.String.class;
+        case "dnsdomain":
+        case "DnsDomain": return java.lang.String.class;
+        case "id":
+        case "Id": return java.lang.String.class;
+        case "lookup":
+        case "Lookup": return java.lang.String.class;
+        case "masterurl":
+        case "MasterUrl": return java.lang.String.class;
+        case "namespace":
+        case "Namespace": return java.lang.String.class;
+        case "oauthtoken":
+        case "OauthToken": return java.lang.String.class;
+        case "password":
+        case "Password": return java.lang.String.class;
+        case "portname":
+        case "PortName": return java.lang.String.class;
+        case "portprotocol":
+        case "PortProtocol": return java.lang.String.class;
+        case "properties":
+        case "Properties": return java.util.List.class;
+        case "trustcerts":
+        case "TrustCerts": return java.lang.String.class;
+        case "username":
+        case "Username": return java.lang.String.class;
+        default: return null;
+        }
+    }
+
+    @Override
+    public Object getOptionValue(Object obj, String name, boolean ignoreCase) {
+        org.apache.camel.model.cloud.KubernetesServiceCallServiceDiscoveryConfiguration target = (org.apache.camel.model.cloud.KubernetesServiceCallServiceDiscoveryConfiguration) obj;
+        switch (ignoreCase ? name.toLowerCase() : name) {
+        case "apiversion":
+        case "ApiVersion": return target.getApiVersion();
+        case "cacertdata":
+        case "CaCertData": return target.getCaCertData();
+        case "cacertfile":
+        case "CaCertFile": return target.getCaCertFile();
+        case "clientcertdata":
+        case "ClientCertData": return target.getClientCertData();
+        case "clientcertfile":
+        case "ClientCertFile": return target.getClientCertFile();
+        case "clientkeyalgo":
+        case "ClientKeyAlgo": return target.getClientKeyAlgo();
+        case "clientkeydata":
+        case "ClientKeyData": return target.getClientKeyData();
+        case "clientkeyfile":
+        case "ClientKeyFile": return target.getClientKeyFile();
+        case "clientkeypassphrase":
+        case "ClientKeyPassphrase": return target.getClientKeyPassphrase();
+        case "dnsdomain":
+        case "DnsDomain": return target.getDnsDomain();
+        case "id":
+        case "Id": return target.getId();
+        case "lookup":
+        case "Lookup": return target.getLookup();
+        case "masterurl":
+        case "MasterUrl": return target.getMasterUrl();
+        case "namespace":
+        case "Namespace": return target.getNamespace();
+        case "oauthtoken":
+        case "OauthToken": return target.getOauthToken();
+        case "password":
+        case "Password": return target.getPassword();
+        case "portname":
+        case "PortName": return target.getPortName();
+        case "portprotocol":
+        case "PortProtocol": return target.getPortProtocol();
+        case "properties":
+        case "Properties": return target.getProperties();
+        case "trustcerts":
+        case "TrustCerts": return target.getTrustCerts();
+        case "username":
+        case "Username": return target.getUsername();
+        default: return null;
+        }
+    }
+
+    @Override
+    public Object getCollectionValueType(Object target, String name, boolean ignoreCase) {
+        switch (ignoreCase ? name.toLowerCase() : name) {
+        case "properties":
+        case "Properties": return org.apache.camel.model.PropertyDefinition.class;
+        default: return null;
+        }
+    }
+}
+
diff --git a/core/camel-core-model/src/generated/java/org/apache/camel/model/cloud/PassThroughServiceCallServiceFilterConfigurationConfigurer.java b/core/camel-core-model/src/generated/java/org/apache/camel/model/cloud/PassThroughServiceCallServiceFilterConfigurationConfigurer.java
new file mode 100644
index 0000000..fef9806
--- /dev/null
+++ b/core/camel-core-model/src/generated/java/org/apache/camel/model/cloud/PassThroughServiceCallServiceFilterConfigurationConfigurer.java
@@ -0,0 +1,77 @@
+/* Generated by camel build tools - do NOT edit this file! */
+package org.apache.camel.model.cloud;
+
+import java.util.Map;
+
+import org.apache.camel.CamelContext;
+import org.apache.camel.spi.ExtendedPropertyConfigurerGetter;
+import org.apache.camel.spi.PropertyConfigurerGetter;
+import org.apache.camel.spi.ConfigurerStrategy;
+import org.apache.camel.spi.GeneratedPropertyConfigurer;
+import org.apache.camel.util.CaseInsensitiveMap;
+import org.apache.camel.model.cloud.PassThroughServiceCallServiceFilterConfiguration;
+
+/**
+ * Generated by camel build tools - do NOT edit this file!
+ */
+@SuppressWarnings("unchecked")
+public class PassThroughServiceCallServiceFilterConfigurationConfigurer extends org.apache.camel.support.component.PropertyConfigurerSupport implements GeneratedPropertyConfigurer, ExtendedPropertyConfigurerGetter {
+
+    private static final Map<String, Object> ALL_OPTIONS;
+    static {
+        Map<String, Object> map = new CaseInsensitiveMap();
+        map.put("Id", java.lang.String.class);
+        map.put("Properties", java.util.List.class);
+        ALL_OPTIONS = map;
+    }
+
+    @Override
+    public boolean configure(CamelContext camelContext, Object obj, String name, Object value, boolean ignoreCase) {
+        org.apache.camel.model.cloud.PassThroughServiceCallServiceFilterConfiguration target = (org.apache.camel.model.cloud.PassThroughServiceCallServiceFilterConfiguration) obj;
+        switch (ignoreCase ? name.toLowerCase() : name) {
+        case "id":
+        case "Id": target.setId(property(camelContext, java.lang.String.class, value)); return true;
+        case "properties":
+        case "Properties": target.setProperties(property(camelContext, java.util.List.class, value)); return true;
+        default: return false;
+        }
+    }
+
+    @Override
+    public Map<String, Object> getAllOptions(Object target) {
+        return ALL_OPTIONS;
+    }
+
+    @Override
+    public Class<?> getOptionType(String name, boolean ignoreCase) {
+        switch (ignoreCase ? name.toLowerCase() : name) {
+        case "id":
+        case "Id": return java.lang.String.class;
+        case "properties":
+        case "Properties": return java.util.List.class;
+        default: return null;
+        }
+    }
+
+    @Override
+    public Object getOptionValue(Object obj, String name, boolean ignoreCase) {
+        org.apache.camel.model.cloud.PassThroughServiceCallServiceFilterConfiguration target = (org.apache.camel.model.cloud.PassThroughServiceCallServiceFilterConfiguration) obj;
+        switch (ignoreCase ? name.toLowerCase() : name) {
+        case "id":
+        case "Id": return target.getId();
+        case "properties":
+        case "Properties": return target.getProperties();
+        default: return null;
+        }
+    }
+
+    @Override
+    public Object getCollectionValueType(Object target, String name, boolean ignoreCase) {
+        switch (ignoreCase ? name.toLowerCase() : name) {
+        case "properties":
+        case "Properties": return org.apache.camel.model.PropertyDefinition.class;
+        default: return null;
+        }
+    }
+}
+
diff --git a/core/camel-core-model/src/generated/java/org/apache/camel/model/cloud/RibbonServiceCallServiceLoadBalancerConfigurationConfigurer.java b/core/camel-core-model/src/generated/java/org/apache/camel/model/cloud/RibbonServiceCallServiceLoadBalancerConfigurationConfigurer.java
new file mode 100644
index 0000000..ae0138e
--- /dev/null
+++ b/core/camel-core-model/src/generated/java/org/apache/camel/model/cloud/RibbonServiceCallServiceLoadBalancerConfigurationConfigurer.java
@@ -0,0 +1,105 @@
+/* Generated by camel build tools - do NOT edit this file! */
+package org.apache.camel.model.cloud;
+
+import java.util.Map;
+
+import org.apache.camel.CamelContext;
+import org.apache.camel.spi.ExtendedPropertyConfigurerGetter;
+import org.apache.camel.spi.PropertyConfigurerGetter;
+import org.apache.camel.spi.ConfigurerStrategy;
+import org.apache.camel.spi.GeneratedPropertyConfigurer;
+import org.apache.camel.util.CaseInsensitiveMap;
+import org.apache.camel.model.cloud.RibbonServiceCallServiceLoadBalancerConfiguration;
+
+/**
+ * Generated by camel build tools - do NOT edit this file!
+ */
+@SuppressWarnings("unchecked")
+public class RibbonServiceCallServiceLoadBalancerConfigurationConfigurer extends org.apache.camel.support.component.PropertyConfigurerSupport implements GeneratedPropertyConfigurer, ExtendedPropertyConfigurerGetter {
+
+    private static final Map<String, Object> ALL_OPTIONS;
+    static {
+        Map<String, Object> map = new CaseInsensitiveMap();
+        map.put("ClientName", java.lang.String.class);
+        map.put("Id", java.lang.String.class);
+        map.put("Namespace", java.lang.String.class);
+        map.put("Password", java.lang.String.class);
+        map.put("Properties", java.util.List.class);
+        map.put("Username", java.lang.String.class);
+        ALL_OPTIONS = map;
+    }
+
+    @Override
+    public boolean configure(CamelContext camelContext, Object obj, String name, Object value, boolean ignoreCase) {
+        org.apache.camel.model.cloud.RibbonServiceCallServiceLoadBalancerConfiguration target = (org.apache.camel.model.cloud.RibbonServiceCallServiceLoadBalancerConfiguration) obj;
+        switch (ignoreCase ? name.toLowerCase() : name) {
+        case "clientname":
+        case "ClientName": target.setClientName(property(camelContext, java.lang.String.class, value)); return true;
+        case "id":
+        case "Id": target.setId(property(camelContext, java.lang.String.class, value)); return true;
+        case "namespace":
+        case "Namespace": target.setNamespace(property(camelContext, java.lang.String.class, value)); return true;
+        case "password":
+        case "Password": target.setPassword(property(camelContext, java.lang.String.class, value)); return true;
+        case "properties":
+        case "Properties": target.setProperties(property(camelContext, java.util.List.class, value)); return true;
+        case "username":
+        case "Username": target.setUsername(property(camelContext, java.lang.String.class, value)); return true;
+        default: return false;
+        }
+    }
+
+    @Override
+    public Map<String, Object> getAllOptions(Object target) {
+        return ALL_OPTIONS;
+    }
+
+    @Override
+    public Class<?> getOptionType(String name, boolean ignoreCase) {
+        switch (ignoreCase ? name.toLowerCase() : name) {
+        case "clientname":
+        case "ClientName": return java.lang.String.class;
+        case "id":
+        case "Id": return java.lang.String.class;
+        case "namespace":
+        case "Namespace": return java.lang.String.class;
+        case "password":
+        case "Password": return java.lang.String.class;
+        case "properties":
+        case "Properties": return java.util.List.class;
+        case "username":
+        case "Username": return java.lang.String.class;
+        default: return null;
+        }
+    }
+
+    @Override
+    public Object getOptionValue(Object obj, String name, boolean ignoreCase) {
+        org.apache.camel.model.cloud.RibbonServiceCallServiceLoadBalancerConfiguration target = (org.apache.camel.model.cloud.RibbonServiceCallServiceLoadBalancerConfiguration) obj;
+        switch (ignoreCase ? name.toLowerCase() : name) {
+        case "clientname":
+        case "ClientName": return target.getClientName();
+        case "id":
+        case "Id": return target.getId();
+        case "namespace":
+        case "Namespace": return target.getNamespace();
+        case "password":
+        case "Password": return target.getPassword();
+        case "properties":
+        case "Properties": return target.getProperties();
+        case "username":
+        case "Username": return target.getUsername();
+        default: return null;
+        }
+    }
+
+    @Override
+    public Object getCollectionValueType(Object target, String name, boolean ignoreCase) {
+        switch (ignoreCase ? name.toLowerCase() : name) {
+        case "properties":
+        case "Properties": return org.apache.camel.model.PropertyDefinition.class;
+        default: return null;
+        }
+    }
+}
+
diff --git a/core/camel-core-model/src/generated/java/org/apache/camel/model/cloud/ServiceCallConfigurationConfigurer.java b/core/camel-core-model/src/generated/java/org/apache/camel/model/cloud/ServiceCallConfigurationConfigurer.java
new file mode 100644
index 0000000..f1f8832
--- /dev/null
+++ b/core/camel-core-model/src/generated/java/org/apache/camel/model/cloud/ServiceCallConfigurationConfigurer.java
@@ -0,0 +1,64 @@
+/* Generated by camel build tools - do NOT edit this file! */
+package org.apache.camel.model.cloud;
+
+import java.util.Map;
+
+import org.apache.camel.CamelContext;
+import org.apache.camel.spi.ExtendedPropertyConfigurerGetter;
+import org.apache.camel.spi.PropertyConfigurerGetter;
+import org.apache.camel.spi.ConfigurerStrategy;
+import org.apache.camel.spi.GeneratedPropertyConfigurer;
+import org.apache.camel.util.CaseInsensitiveMap;
+import org.apache.camel.model.cloud.ServiceCallConfiguration;
+
+/**
+ * Generated by camel build tools - do NOT edit this file!
+ */
+@SuppressWarnings("unchecked")
+public class ServiceCallConfigurationConfigurer extends org.apache.camel.support.component.PropertyConfigurerSupport implements GeneratedPropertyConfigurer, PropertyConfigurerGetter {
+
+    @Override
+    public boolean configure(CamelContext camelContext, Object obj, String name, Object value, boolean ignoreCase) {
+        org.apache.camel.model.cloud.ServiceCallConfiguration target = (org.apache.camel.model.cloud.ServiceCallConfiguration) obj;
+        switch (ignoreCase ? name.toLowerCase() : name) {
+        case "id":
+        case "Id": target.setId(property(camelContext, java.lang.String.class, value)); return true;
+        case "properties":
+        case "Properties": target.setProperties(property(camelContext, java.util.List.class, value)); return true;
+        default: return false;
+        }
+    }
+
+    @Override
+    public Class<?> getOptionType(String name, boolean ignoreCase) {
+        switch (ignoreCase ? name.toLowerCase() : name) {
+        case "id":
+        case "Id": return java.lang.String.class;
+        case "properties":
+        case "Properties": return java.util.List.class;
+        default: return null;
+        }
+    }
+
+    @Override
+    public Object getOptionValue(Object obj, String name, boolean ignoreCase) {
+        org.apache.camel.model.cloud.ServiceCallConfiguration target = (org.apache.camel.model.cloud.ServiceCallConfiguration) obj;
+        switch (ignoreCase ? name.toLowerCase() : name) {
+        case "id":
+        case "Id": return target.getId();
+        case "properties":
+        case "Properties": return target.getProperties();
+        default: return null;
+        }
+    }
+
+    @Override
+    public Object getCollectionValueType(Object target, String name, boolean ignoreCase) {
+        switch (ignoreCase ? name.toLowerCase() : name) {
+        case "properties":
+        case "Properties": return org.apache.camel.model.PropertyDefinition.class;
+        default: return null;
+        }
+    }
+}
+
diff --git a/core/camel-core-model/src/generated/java/org/apache/camel/model/cloud/ServiceCallExpressionConfigurationConfigurer.java b/core/camel-core-model/src/generated/java/org/apache/camel/model/cloud/ServiceCallExpressionConfigurationConfigurer.java
new file mode 100644
index 0000000..278e0d6
--- /dev/null
+++ b/core/camel-core-model/src/generated/java/org/apache/camel/model/cloud/ServiceCallExpressionConfigurationConfigurer.java
@@ -0,0 +1,105 @@
+/* Generated by camel build tools - do NOT edit this file! */
+package org.apache.camel.model.cloud;
+
+import java.util.Map;
+
+import org.apache.camel.CamelContext;
+import org.apache.camel.spi.ExtendedPropertyConfigurerGetter;
+import org.apache.camel.spi.PropertyConfigurerGetter;
+import org.apache.camel.spi.ConfigurerStrategy;
+import org.apache.camel.spi.GeneratedPropertyConfigurer;
+import org.apache.camel.util.CaseInsensitiveMap;
+import org.apache.camel.model.cloud.ServiceCallExpressionConfiguration;
+
+/**
+ * Generated by camel build tools - do NOT edit this file!
+ */
+@SuppressWarnings("unchecked")
+public class ServiceCallExpressionConfigurationConfigurer extends org.apache.camel.support.component.PropertyConfigurerSupport implements GeneratedPropertyConfigurer, ExtendedPropertyConfigurerGetter {
+
+    private static final Map<String, Object> ALL_OPTIONS;
+    static {
+        Map<String, Object> map = new CaseInsensitiveMap();
+        map.put("Expression", org.apache.camel.Expression.class);
+        map.put("ExpressionType", org.apache.camel.model.language.ExpressionDefinition.class);
+        map.put("HostHeader", java.lang.String.class);
+        map.put("Id", java.lang.String.class);
+        map.put("PortHeader", java.lang.String.class);
+        map.put("Properties", java.util.List.class);
+        ALL_OPTIONS = map;
+    }
+
+    @Override
+    public boolean configure(CamelContext camelContext, Object obj, String name, Object value, boolean ignoreCase) {
+        org.apache.camel.model.cloud.ServiceCallExpressionConfiguration target = (org.apache.camel.model.cloud.ServiceCallExpressionConfiguration) obj;
+        switch (ignoreCase ? name.toLowerCase() : name) {
+        case "expression":
+        case "Expression": target.setExpression(property(camelContext, org.apache.camel.Expression.class, value)); return true;
+        case "expressiontype":
+        case "ExpressionType": target.setExpressionType(property(camelContext, org.apache.camel.model.language.ExpressionDefinition.class, value)); return true;
+        case "hostheader":
+        case "HostHeader": target.setHostHeader(property(camelContext, java.lang.String.class, value)); return true;
+        case "id":
+        case "Id": target.setId(property(camelContext, java.lang.String.class, value)); return true;
+        case "portheader":
+        case "PortHeader": target.setPortHeader(property(camelContext, java.lang.String.class, value)); return true;
+        case "properties":
+        case "Properties": target.setProperties(property(camelContext, java.util.List.class, value)); return true;
+        default: return false;
+        }
+    }
+
+    @Override
+    public Map<String, Object> getAllOptions(Object target) {
+        return ALL_OPTIONS;
+    }
+
+    @Override
+    public Class<?> getOptionType(String name, boolean ignoreCase) {
+        switch (ignoreCase ? name.toLowerCase() : name) {
+        case "expression":
+        case "Expression": return org.apache.camel.Expression.class;
+        case "expressiontype":
+        case "ExpressionType": return org.apache.camel.model.language.ExpressionDefinition.class;
+        case "hostheader":
+        case "HostHeader": return java.lang.String.class;
+        case "id":
+        case "Id": return java.lang.String.class;
+        case "portheader":
+        case "PortHeader": return java.lang.String.class;
+        case "properties":
+        case "Properties": return java.util.List.class;
+        default: return null;
+        }
+    }
+
+    @Override
+    public Object getOptionValue(Object obj, String name, boolean ignoreCase) {
+        org.apache.camel.model.cloud.ServiceCallExpressionConfiguration target = (org.apache.camel.model.cloud.ServiceCallExpressionConfiguration) obj;
+        switch (ignoreCase ? name.toLowerCase() : name) {
+        case "expression":
+        case "Expression": return target.getExpression();
+        case "expressiontype":
+        case "ExpressionType": return target.getExpressionType();
+        case "hostheader":
+        case "HostHeader": return target.getHostHeader();
+        case "id":
+        case "Id": return target.getId();
+        case "portheader":
+        case "PortHeader": return target.getPortHeader();
+        case "properties":
+        case "Properties": return target.getProperties();
+        default: return null;
+        }
+    }
+
+    @Override
+    public Object getCollectionValueType(Object target, String name, boolean ignoreCase) {
+        switch (ignoreCase ? name.toLowerCase() : name) {
+        case "properties":
+        case "Properties": return org.apache.camel.model.PropertyDefinition.class;
+        default: return null;
+        }
+    }
+}
+
diff --git a/core/camel-core-model/src/generated/java/org/apache/camel/model/cloud/ServiceCallServiceChooserConfigurationConfigurer.java b/core/camel-core-model/src/generated/java/org/apache/camel/model/cloud/ServiceCallServiceChooserConfigurationConfigurer.java
new file mode 100644
index 0000000..b1b5674
--- /dev/null
+++ b/core/camel-core-model/src/generated/java/org/apache/camel/model/cloud/ServiceCallServiceChooserConfigurationConfigurer.java
@@ -0,0 +1,77 @@
+/* Generated by camel build tools - do NOT edit this file! */
+package org.apache.camel.model.cloud;
+
+import java.util.Map;
+
+import org.apache.camel.CamelContext;
+import org.apache.camel.spi.ExtendedPropertyConfigurerGetter;
+import org.apache.camel.spi.PropertyConfigurerGetter;
+import org.apache.camel.spi.ConfigurerStrategy;
+import org.apache.camel.spi.GeneratedPropertyConfigurer;
+import org.apache.camel.util.CaseInsensitiveMap;
+import org.apache.camel.model.cloud.ServiceCallServiceChooserConfiguration;
+
+/**
+ * Generated by camel build tools - do NOT edit this file!
+ */
+@SuppressWarnings("unchecked")
+public class ServiceCallServiceChooserConfigurationConfigurer extends org.apache.camel.support.component.PropertyConfigurerSupport implements GeneratedPropertyConfigurer, ExtendedPropertyConfigurerGetter {
+
+    private static final Map<String, Object> ALL_OPTIONS;
+    static {
+        Map<String, Object> map = new CaseInsensitiveMap();
+        map.put("Id", java.lang.String.class);
+        map.put("Properties", java.util.List.class);
+        ALL_OPTIONS = map;
+    }
+
+    @Override
+    public boolean configure(CamelContext camelContext, Object obj, String name, Object value, boolean ignoreCase) {
+        org.apache.camel.model.cloud.ServiceCallServiceChooserConfiguration target = (org.apache.camel.model.cloud.ServiceCallServiceChooserConfiguration) obj;
+        switch (ignoreCase ? name.toLowerCase() : name) {
+        case "id":
+        case "Id": target.setId(property(camelContext, java.lang.String.class, value)); return true;
+        case "properties":
+        case "Properties": target.setProperties(property(camelContext, java.util.List.class, value)); return true;
+        default: return false;
+        }
+    }
+
+    @Override
+    public Map<String, Object> getAllOptions(Object target) {
+        return ALL_OPTIONS;
+    }
+
+    @Override
+    public Class<?> getOptionType(String name, boolean ignoreCase) {
+        switch (ignoreCase ? name.toLowerCase() : name) {
+        case "id":
+        case "Id": return java.lang.String.class;
+        case "properties":
+        case "Properties": return java.util.List.class;
+        default: return null;
+        }
+    }
+
+    @Override
+    public Object getOptionValue(Object obj, String name, boolean ignoreCase) {
+        org.apache.camel.model.cloud.ServiceCallServiceChooserConfiguration target = (org.apache.camel.model.cloud.ServiceCallServiceChooserConfiguration) obj;
+        switch (ignoreCase ? name.toLowerCase() : name) {
+        case "id":
+        case "Id": return target.getId();
+        case "properties":
+        case "Properties": return target.getProperties();
+        default: return null;
+        }
+    }
+
+    @Override
+    public Object getCollectionValueType(Object target, String name, boolean ignoreCase) {
+        switch (ignoreCase ? name.toLowerCase() : name) {
+        case "properties":
+        case "Properties": return org.apache.camel.model.PropertyDefinition.class;
+        default: return null;
+        }
+    }
+}
+
diff --git a/core/camel-core-model/src/generated/java/org/apache/camel/model/cloud/ServiceCallServiceDiscoveryConfigurationConfigurer.java b/core/camel-core-model/src/generated/java/org/apache/camel/model/cloud/ServiceCallServiceDiscoveryConfigurationConfigurer.java
new file mode 100644
index 0000000..0f1d421
--- /dev/null
+++ b/core/camel-core-model/src/generated/java/org/apache/camel/model/cloud/ServiceCallServiceDiscoveryConfigurationConfigurer.java
@@ -0,0 +1,77 @@
+/* Generated by camel build tools - do NOT edit this file! */
+package org.apache.camel.model.cloud;
+
+import java.util.Map;
+
+import org.apache.camel.CamelContext;
+import org.apache.camel.spi.ExtendedPropertyConfigurerGetter;
+import org.apache.camel.spi.PropertyConfigurerGetter;
+import org.apache.camel.spi.ConfigurerStrategy;
+import org.apache.camel.spi.GeneratedPropertyConfigurer;
+import org.apache.camel.util.CaseInsensitiveMap;
+import org.apache.camel.model.cloud.ServiceCallServiceDiscoveryConfiguration;
+
+/**
+ * Generated by camel build tools - do NOT edit this file!
+ */
+@SuppressWarnings("unchecked")
+public class ServiceCallServiceDiscoveryConfigurationConfigurer extends org.apache.camel.support.component.PropertyConfigurerSupport implements GeneratedPropertyConfigurer, ExtendedPropertyConfigurerGetter {
+
+    private static final Map<String, Object> ALL_OPTIONS;
+    static {
+        Map<String, Object> map = new CaseInsensitiveMap();
+        map.put("Id", java.lang.String.class);
+        map.put("Properties", java.util.List.class);
+        ALL_OPTIONS = map;
+    }
+
+    @Override
+    public boolean configure(CamelContext camelContext, Object obj, String name, Object value, boolean ignoreCase) {
+        org.apache.camel.model.cloud.ServiceCallServiceDiscoveryConfiguration target = (org.apache.camel.model.cloud.ServiceCallServiceDiscoveryConfiguration) obj;
+        switch (ignoreCase ? name.toLowerCase() : name) {
+        case "id":
+        case "Id": target.setId(property(camelContext, java.lang.String.class, value)); return true;
+        case "properties":
+        case "Properties": target.setProperties(property(camelContext, java.util.List.class, value)); return true;
+        default: return false;
+        }
+    }
+
+    @Override
+    public Map<String, Object> getAllOptions(Object target) {
+        return ALL_OPTIONS;
+    }
+
+    @Override
+    public Class<?> getOptionType(String name, boolean ignoreCase) {
+        switch (ignoreCase ? name.toLowerCase() : name) {
+        case "id":
+        case "Id": return java.lang.String.class;
+        case "properties":
+        case "Properties": return java.util.List.class;
+        default: return null;
+        }
+    }
+
+    @Override
+    public Object getOptionValue(Object obj, String name, boolean ignoreCase) {
+        org.apache.camel.model.cloud.ServiceCallServiceDiscoveryConfiguration target = (org.apache.camel.model.cloud.ServiceCallServiceDiscoveryConfiguration) obj;
+        switch (ignoreCase ? name.toLowerCase() : name) {
+        case "id":
+        case "Id": return target.getId();
+        case "properties":
+        case "Properties": return target.getProperties();
+        default: return null;
+        }
+    }
+
+    @Override
+    public Object getCollectionValueType(Object target, String name, boolean ignoreCase) {
+        switch (ignoreCase ? name.toLowerCase() : name) {
+        case "properties":
+        case "Properties": return org.apache.camel.model.PropertyDefinition.class;
+        default: return null;
+        }
+    }
+}
+
diff --git a/core/camel-core-model/src/generated/java/org/apache/camel/model/cloud/ServiceCallServiceFilterConfigurationConfigurer.java b/core/camel-core-model/src/generated/java/org/apache/camel/model/cloud/ServiceCallServiceFilterConfigurationConfigurer.java
new file mode 100644
index 0000000..09386a8
--- /dev/null
+++ b/core/camel-core-model/src/generated/java/org/apache/camel/model/cloud/ServiceCallServiceFilterConfigurationConfigurer.java
@@ -0,0 +1,77 @@
+/* Generated by camel build tools - do NOT edit this file! */
+package org.apache.camel.model.cloud;
+
+import java.util.Map;
+
+import org.apache.camel.CamelContext;
+import org.apache.camel.spi.ExtendedPropertyConfigurerGetter;
+import org.apache.camel.spi.PropertyConfigurerGetter;
+import org.apache.camel.spi.ConfigurerStrategy;
+import org.apache.camel.spi.GeneratedPropertyConfigurer;
+import org.apache.camel.util.CaseInsensitiveMap;
+import org.apache.camel.model.cloud.ServiceCallServiceFilterConfiguration;
+
+/**
+ * Generated by camel build tools - do NOT edit this file!
+ */
+@SuppressWarnings("unchecked")
+public class ServiceCallServiceFilterConfigurationConfigurer extends org.apache.camel.support.component.PropertyConfigurerSupport implements GeneratedPropertyConfigurer, ExtendedPropertyConfigurerGetter {
+
+    private static final Map<String, Object> ALL_OPTIONS;
+    static {
+        Map<String, Object> map = new CaseInsensitiveMap();
+        map.put("Id", java.lang.String.class);
+        map.put("Properties", java.util.List.class);
+        ALL_OPTIONS = map;
+    }
+
+    @Override
+    public boolean configure(CamelContext camelContext, Object obj, String name, Object value, boolean ignoreCase) {
+        org.apache.camel.model.cloud.ServiceCallServiceFilterConfiguration target = (org.apache.camel.model.cloud.ServiceCallServiceFilterConfiguration) obj;
+        switch (ignoreCase ? name.toLowerCase() : name) {
+        case "id":
+        case "Id": target.setId(property(camelContext, java.lang.String.class, value)); return true;
+        case "properties":
+        case "Properties": target.setProperties(property(camelContext, java.util.List.class, value)); return true;
+        default: return false;
+        }
+    }
+
+    @Override
+    public Map<String, Object> getAllOptions(Object target) {
+        return ALL_OPTIONS;
+    }
+
+    @Override
+    public Class<?> getOptionType(String name, boolean ignoreCase) {
+        switch (ignoreCase ? name.toLowerCase() : name) {
+        case "id":
+        case "Id": return java.lang.String.class;
+        case "properties":
+        case "Properties": return java.util.List.class;
+        default: return null;
+        }
+    }
+
+    @Override
+    public Object getOptionValue(Object obj, String name, boolean ignoreCase) {
+        org.apache.camel.model.cloud.ServiceCallServiceFilterConfiguration target = (org.apache.camel.model.cloud.ServiceCallServiceFilterConfiguration) obj;
+        switch (ignoreCase ? name.toLowerCase() : name) {
+        case "id":
+        case "Id": return target.getId();
+        case "properties":
+        case "Properties": return target.getProperties();
+        default: return null;
+        }
+    }
+
+    @Override
+    public Object getCollectionValueType(Object target, String name, boolean ignoreCase) {
+        switch (ignoreCase ? name.toLowerCase() : name) {
+        case "properties":
+        case "Properties": return org.apache.camel.model.PropertyDefinition.class;
+        default: return null;
+        }
+    }
+}
+
diff --git a/core/camel-core-model/src/generated/java/org/apache/camel/model/cloud/ServiceCallServiceLoadBalancerConfigurationConfigurer.java b/core/camel-core-model/src/generated/java/org/apache/camel/model/cloud/ServiceCallServiceLoadBalancerConfigurationConfigurer.java
new file mode 100644
index 0000000..fdb13ac
--- /dev/null
+++ b/core/camel-core-model/src/generated/java/org/apache/camel/model/cloud/ServiceCallServiceLoadBalancerConfigurationConfigurer.java
@@ -0,0 +1,64 @@
+/* Generated by camel build tools - do NOT edit this file! */
+package org.apache.camel.model.cloud;
+
+import java.util.Map;
+
+import org.apache.camel.CamelContext;
+import org.apache.camel.spi.ExtendedPropertyConfigurerGetter;
+import org.apache.camel.spi.PropertyConfigurerGetter;
+import org.apache.camel.spi.ConfigurerStrategy;
+import org.apache.camel.spi.GeneratedPropertyConfigurer;
+import org.apache.camel.util.CaseInsensitiveMap;
+import org.apache.camel.model.cloud.ServiceCallServiceLoadBalancerConfiguration;
+
+/**
+ * Generated by camel build tools - do NOT edit this file!
+ */
+@SuppressWarnings("unchecked")
+public class ServiceCallServiceLoadBalancerConfigurationConfigurer extends org.apache.camel.support.component.PropertyConfigurerSupport implements GeneratedPropertyConfigurer, PropertyConfigurerGetter {
+
+    @Override
+    public boolean configure(CamelContext camelContext, Object obj, String name, Object value, boolean ignoreCase) {
+        org.apache.camel.model.cloud.ServiceCallServiceLoadBalancerConfiguration target = (org.apache.camel.model.cloud.ServiceCallServiceLoadBalancerConfiguration) obj;
+        switch (ignoreCase ? name.toLowerCase() : name) {
+        case "id":
+        case "Id": target.setId(property(camelContext, java.lang.String.class, value)); return true;
+        case "properties":
+        case "Properties": target.setProperties(property(camelContext, java.util.List.class, value)); return true;
+        default: return false;
+        }
+    }
+
+    @Override
+    public Class<?> getOptionType(String name, boolean ignoreCase) {
+        switch (ignoreCase ? name.toLowerCase() : name) {
+        case "id":
+        case "Id": return java.lang.String.class;
+        case "properties":
+        case "Properties": return java.util.List.class;
+        default: return null;
+        }
+    }
+
+    @Override
+    public Object getOptionValue(Object obj, String name, boolean ignoreCase) {
+        org.apache.camel.model.cloud.ServiceCallServiceLoadBalancerConfiguration target = (org.apache.camel.model.cloud.ServiceCallServiceLoadBalancerConfiguration) obj;
+        switch (ignoreCase ? name.toLowerCase() : name) {
+        case "id":
+        case "Id": return target.getId();
+        case "properties":
+        case "Properties": return target.getProperties();
+        default: return null;
+        }
+    }
+
+    @Override
+    public Object getCollectionValueType(Object target, String name, boolean ignoreCase) {
+        switch (ignoreCase ? name.toLowerCase() : name) {
+        case "properties":
+        case "Properties": return org.apache.camel.model.PropertyDefinition.class;
+        default: return null;
+        }
+    }
+}
+
diff --git a/core/camel-core-model/src/generated/java/org/apache/camel/model/cloud/StaticServiceCallServiceDiscoveryConfigurationConfigurer.java b/core/camel-core-model/src/generated/java/org/apache/camel/model/cloud/StaticServiceCallServiceDiscoveryConfigurationConfigurer.java
new file mode 100644
index 0000000..af580ae
--- /dev/null
+++ b/core/camel-core-model/src/generated/java/org/apache/camel/model/cloud/StaticServiceCallServiceDiscoveryConfigurationConfigurer.java
@@ -0,0 +1,86 @@
+/* Generated by camel build tools - do NOT edit this file! */
+package org.apache.camel.model.cloud;
+
+import java.util.Map;
+
+import org.apache.camel.CamelContext;
+import org.apache.camel.spi.ExtendedPropertyConfigurerGetter;
+import org.apache.camel.spi.PropertyConfigurerGetter;
+import org.apache.camel.spi.ConfigurerStrategy;
+import org.apache.camel.spi.GeneratedPropertyConfigurer;
+import org.apache.camel.util.CaseInsensitiveMap;
+import org.apache.camel.model.cloud.StaticServiceCallServiceDiscoveryConfiguration;
+
+/**
+ * Generated by camel build tools - do NOT edit this file!
+ */
+@SuppressWarnings("unchecked")
+public class StaticServiceCallServiceDiscoveryConfigurationConfigurer extends org.apache.camel.support.component.PropertyConfigurerSupport implements GeneratedPropertyConfigurer, ExtendedPropertyConfigurerGetter {
+
+    private static final Map<String, Object> ALL_OPTIONS;
+    static {
+        Map<String, Object> map = new CaseInsensitiveMap();
+        map.put("Id", java.lang.String.class);
+        map.put("Properties", java.util.List.class);
+        map.put("Servers", java.util.List.class);
+        ALL_OPTIONS = map;
+    }
+
+    @Override
+    public boolean configure(CamelContext camelContext, Object obj, String name, Object value, boolean ignoreCase) {
+        org.apache.camel.model.cloud.StaticServiceCallServiceDiscoveryConfiguration target = (org.apache.camel.model.cloud.StaticServiceCallServiceDiscoveryConfiguration) obj;
+        switch (ignoreCase ? name.toLowerCase() : name) {
+        case "id":
+        case "Id": target.setId(property(camelContext, java.lang.String.class, value)); return true;
+        case "properties":
+        case "Properties": target.setProperties(property(camelContext, java.util.List.class, value)); return true;
+        case "servers":
+        case "Servers": target.setServers(property(camelContext, java.util.List.class, value)); return true;
+        default: return false;
+        }
+    }
+
+    @Override
+    public Map<String, Object> getAllOptions(Object target) {
+        return ALL_OPTIONS;
+    }
+
+    @Override
+    public Class<?> getOptionType(String name, boolean ignoreCase) {
+        switch (ignoreCase ? name.toLowerCase() : name) {
+        case "id":
+        case "Id": return java.lang.String.class;
+        case "properties":
+        case "Properties": return java.util.List.class;
+        case "servers":
+        case "Servers": return java.util.List.class;
+        default: return null;
+        }
+    }
+
+    @Override
+    public Object getOptionValue(Object obj, String name, boolean ignoreCase) {
+        org.apache.camel.model.cloud.StaticServiceCallServiceDiscoveryConfiguration target = (org.apache.camel.model.cloud.StaticServiceCallServiceDiscoveryConfiguration) obj;
+        switch (ignoreCase ? name.toLowerCase() : name) {
+        case "id":
+        case "Id": return target.getId();
+        case "properties":
+        case "Properties": return target.getProperties();
+        case "servers":
+        case "Servers": return target.getServers();
+        default: return null;
+        }
+    }
+
+    @Override
+    public Object getCollectionValueType(Object target, String name, boolean ignoreCase) {
+        switch (ignoreCase ? name.toLowerCase() : name) {
+        case "properties":
+        case "Properties": return org.apache.camel.model.PropertyDefinition.class;
+        case "servers":
+        case "Servers": return java.lang.String.class;
+        default: return null;
+        }
+    }
+}
+
diff --git a/core/camel-core-model/src/generated/java/org/apache/camel/model/cloud/ZooKeeperServiceCallServiceDiscoveryConfigurationConfigurer.java b/core/camel-core-model/src/generated/java/org/apache/camel/model/cloud/ZooKeeperServiceCallServiceDiscoveryConfigurationConfigurer.java
new file mode 100644
index 0000000..3e57d69
--- /dev/null
+++ b/core/camel-core-model/src/generated/java/org/apache/camel/model/cloud/ZooKeeperServiceCallServiceDiscoveryConfigurationConfigurer.java
@@ -0,0 +1,133 @@
+/* Generated by camel build tools - do NOT edit this file! */
+package org.apache.camel.model.cloud;
+
+import java.util.Map;
+
+import org.apache.camel.CamelContext;
+import org.apache.camel.spi.ExtendedPropertyConfigurerGetter;
+import org.apache.camel.spi.PropertyConfigurerGetter;
+import org.apache.camel.spi.ConfigurerStrategy;
+import org.apache.camel.spi.GeneratedPropertyConfigurer;
+import org.apache.camel.util.CaseInsensitiveMap;
+import org.apache.camel.model.cloud.ZooKeeperServiceCallServiceDiscoveryConfiguration;
+
+/**
+ * Generated by camel build tools - do NOT edit this file!
+ */
+@SuppressWarnings("unchecked")
+public class ZooKeeperServiceCallServiceDiscoveryConfigurationConfigurer extends org.apache.camel.support.component.PropertyConfigurerSupport implements GeneratedPropertyConfigurer, ExtendedPropertyConfigurerGetter {
+
+    private static final Map<String, Object> ALL_OPTIONS;
+    static {
+        Map<String, Object> map = new CaseInsensitiveMap();
+        map.put("BasePath", java.lang.String.class);
+        map.put("ConnectionTimeout", java.lang.String.class);
+        map.put("Id", java.lang.String.class);
+        map.put("Namespace", java.lang.String.class);
+        map.put("Nodes", java.lang.String.class);
+        map.put("Properties", java.util.List.class);
+        map.put("ReconnectBaseSleepTime", java.lang.String.class);
+        map.put("ReconnectMaxRetries", java.lang.String.class);
+        map.put("ReconnectMaxSleepTime", java.lang.String.class);
+        map.put("SessionTimeout", java.lang.String.class);
+        ALL_OPTIONS = map;
+    }
+
+    @Override
+    public boolean configure(CamelContext camelContext, Object obj, String name, Object value, boolean ignoreCase) {
+        org.apache.camel.model.cloud.ZooKeeperServiceCallServiceDiscoveryConfiguration target = (org.apache.camel.model.cloud.ZooKeeperServiceCallServiceDiscoveryConfiguration) obj;
+        switch (ignoreCase ? name.toLowerCase() : name) {
+        case "basepath":
+        case "BasePath": target.setBasePath(property(camelContext, java.lang.String.class, value)); return true;
+        case "connectiontimeout":
+        case "ConnectionTimeout": target.setConnectionTimeout(property(camelContext, java.lang.String.class, value)); return true;
+        case "id":
+        case "Id": target.setId(property(camelContext, java.lang.String.class, value)); return true;
+        case "namespace":
+        case "Namespace": target.setNamespace(property(camelContext, java.lang.String.class, value)); return true;
+        case "nodes":
+        case "Nodes": target.setNodes(property(camelContext, java.lang.String.class, value)); return true;
+        case "properties":
+        case "Properties": target.setProperties(property(camelContext, java.util.List.class, value)); return true;
+        case "reconnectbasesleeptime":
+        case "ReconnectBaseSleepTime": target.setReconnectBaseSleepTime(property(camelContext, java.lang.String.class, value)); return true;
+        case "reconnectmaxretries":
+        case "ReconnectMaxRetries": target.setReconnectMaxRetries(property(camelContext, java.lang.String.class, value)); return true;
+        case "reconnectmaxsleeptime":
+        case "ReconnectMaxSleepTime": target.setReconnectMaxSleepTime(property(camelContext, java.lang.String.class, value)); return true;
+        case "sessiontimeout":
+        case "SessionTimeout": target.setSessionTimeout(property(camelContext, java.lang.String.class, value)); return true;
+        default: return false;
+        }
+    }
+
+    @Override
+    public Map<String, Object> getAllOptions(Object target) {
+        return ALL_OPTIONS;
+    }
+
+    @Override
+    public Class<?> getOptionType(String name, boolean ignoreCase) {
+        switch (ignoreCase ? name.toLowerCase() : name) {
+        case "basepath":
+        case "BasePath": return java.lang.String.class;
+        case "connectiontimeout":
+        case "ConnectionTimeout": return java.lang.String.class;
+        case "id":
+        case "Id": return java.lang.String.class;
+        case "namespace":
+        case "Namespace": return java.lang.String.class;
+        case "nodes":
+        case "Nodes": return java.lang.String.class;
+        case "properties":
+        case "Properties": return java.util.List.class;
+        case "reconnectbasesleeptime":
+        case "ReconnectBaseSleepTime": return java.lang.String.class;
+        case "reconnectmaxretries":
+        case "ReconnectMaxRetries": return java.lang.String.class;
+        case "reconnectmaxsleeptime":
+        case "ReconnectMaxSleepTime": return java.lang.String.class;
+        case "sessiontimeout":
+        case "SessionTimeout": return java.lang.String.class;
+        default: return null;
+        }
+    }
+
+    @Override
+    public Object getOptionValue(Object obj, String name, boolean ignoreCase) {
+        org.apache.camel.model.cloud.ZooKeeperServiceCallServiceDiscoveryConfiguration target = (org.apache.camel.model.cloud.ZooKeeperServiceCallServiceDiscoveryConfiguration) obj;
+        switch (ignoreCase ? name.toLowerCase() : name) {
+        case "basepath":
+        case "BasePath": return target.getBasePath();
+        case "connectiontimeout":
+        case "ConnectionTimeout": return target.getConnectionTimeout();
+        case "id":
+        case "Id": return target.getId();
+        case "namespace":
+        case "Namespace": return target.getNamespace();
+        case "nodes":
+        case "Nodes": return target.getNodes();
+        case "properties":
+        case "Properties": return target.getProperties();
+        case "reconnectbasesleeptime":
+        case "ReconnectBaseSleepTime": return target.getReconnectBaseSleepTime();
+        case "reconnectmaxretries":
+        case "ReconnectMaxRetries": return target.getReconnectMaxRetries();
+        case "reconnectmaxsleeptime":
+        case "ReconnectMaxSleepTime": return target.getReconnectMaxSleepTime();
+        case "sessiontimeout":
+        case "SessionTimeout": return target.getSessionTimeout();
+        default: return null;
+        }
+    }
+
+    @Override
+    public Object getCollectionValueType(Object target, String name, boolean ignoreCase) {
+        switch (ignoreCase ? name.toLowerCase() : name) {
+        case "properties":
+        case "Properties": return org.apache.camel.model.PropertyDefinition.class;
+        default: return null;
+        }
+    }
+}
+
diff --git a/core/camel-core-model/src/generated/resources/META-INF/services/org/apache/camel/configurer/org.apache.camel.model.cloud.BlacklistServiceCallServiceFilterConfiguration b/core/camel-core-model/src/generated/resources/META-INF/services/org/apache/camel/configurer/org.apache.camel.model.cloud.BlacklistServiceCallServiceFilterConfiguration
new file mode 100644
index 0000000..40c4a88
--- /dev/null
+++ b/core/camel-core-model/src/generated/resources/META-INF/services/org/apache/camel/configurer/org.apache.camel.model.cloud.BlacklistServiceCallServiceFilterConfiguration
@@ -0,0 +1,2 @@
+# Generated by camel build tools - do NOT edit this file!
+class=org.apache.camel.model.cloud.BlacklistServiceCallServiceFilterConfigurationConfigurer
diff --git a/core/camel-core-model/src/generated/resources/META-INF/services/org/apache/camel/configurer/org.apache.camel.model.cloud.CachingServiceCallServiceDiscoveryConfiguration b/core/camel-core-model/src/generated/resources/META-INF/services/org/apache/camel/configurer/org.apache.camel.model.cloud.CachingServiceCallServiceDiscoveryConfiguration
new file mode 100644
index 0000000..533db9f
--- /dev/null
+++ b/core/camel-core-model/src/generated/resources/META-INF/services/org/apache/camel/configurer/org.apache.camel.model.cloud.CachingServiceCallServiceDiscoveryConfiguration
@@ -0,0 +1,2 @@
+# Generated by camel build tools - do NOT edit this file!
+class=org.apache.camel.model.cloud.CachingServiceCallServiceDiscoveryConfigurationConfigurer
diff --git a/core/camel-core-model/src/generated/resources/META-INF/services/org/apache/camel/configurer/org.apache.camel.model.cloud.CombinedServiceCallServiceDiscoveryConfiguration b/core/camel-core-model/src/generated/resources/META-INF/services/org/apache/camel/configurer/org.apache.camel.model.cloud.CombinedServiceCallServiceDiscoveryConfiguration
new file mode 100644
index 0000000..45e8897
--- /dev/null
+++ b/core/camel-core-model/src/generated/resources/META-INF/services/org/apache/camel/configurer/org.apache.camel.model.cloud.CombinedServiceCallServiceDiscoveryConfiguration
@@ -0,0 +1,2 @@
+# Generated by camel build tools - do NOT edit this file!
+class=org.apache.camel.model.cloud.CombinedServiceCallServiceDiscoveryConfigurationConfigurer
diff --git a/core/camel-core-model/src/generated/resources/META-INF/services/org/apache/camel/configurer/org.apache.camel.model.cloud.CombinedServiceCallServiceFilterConfiguration b/core/camel-core-model/src/generated/resources/META-INF/services/org/apache/camel/configurer/org.apache.camel.model.cloud.CombinedServiceCallServiceFilterConfiguration
new file mode 100644
index 0000000..fe30a6b
--- /dev/null
+++ b/core/camel-core-model/src/generated/resources/META-INF/services/org/apache/camel/configurer/org.apache.camel.model.cloud.CombinedServiceCallServiceFilterConfiguration
@@ -0,0 +1,2 @@
+# Generated by camel build tools - do NOT edit this file!
+class=org.apache.camel.model.cloud.CombinedServiceCallServiceFilterConfigurationConfigurer
diff --git a/core/camel-core-model/src/generated/resources/META-INF/services/org/apache/camel/configurer/org.apache.camel.model.cloud.ConsulServiceCallServiceDiscoveryConfiguration b/core/camel-core-model/src/generated/resources/META-INF/services/org/apache/camel/configurer/org.apache.camel.model.cloud.ConsulServiceCallServiceDiscoveryConfiguration
new file mode 100644
index 0000000..e90ed77
--- /dev/null
+++ b/core/camel-core-model/src/generated/resources/META-INF/services/org/apache/camel/configurer/org.apache.camel.model.cloud.ConsulServiceCallServiceDiscoveryConfiguration
@@ -0,0 +1,2 @@
+# Generated by camel build tools - do NOT edit this file!
+class=org.apache.camel.model.cloud.ConsulServiceCallServiceDiscoveryConfigurationConfigurer
diff --git a/core/camel-core-model/src/generated/resources/META-INF/services/org/apache/camel/configurer/org.apache.camel.model.cloud.CustomServiceCallServiceFilterConfiguration b/core/camel-core-model/src/generated/resources/META-INF/services/org/apache/camel/configurer/org.apache.camel.model.cloud.CustomServiceCallServiceFilterConfiguration
new file mode 100644
index 0000000..ef5a98b
--- /dev/null
+++ b/core/camel-core-model/src/generated/resources/META-INF/services/org/apache/camel/configurer/org.apache.camel.model.cloud.CustomServiceCallServiceFilterConfiguration
@@ -0,0 +1,2 @@
+# Generated by camel build tools - do NOT edit this file!
+class=org.apache.camel.model.cloud.CustomServiceCallServiceFilterConfigurationConfigurer
diff --git a/core/camel-core-model/src/generated/resources/META-INF/services/org/apache/camel/configurer/org.apache.camel.model.cloud.DefaultServiceCallServiceLoadBalancerConfiguration b/core/camel-core-model/src/generated/resources/META-INF/services/org/apache/camel/configurer/org.apache.camel.model.cloud.DefaultServiceCallServiceLoadBalancerConfiguration
new file mode 100644
index 0000000..63e964e
--- /dev/null
+++ b/core/camel-core-model/src/generated/resources/META-INF/services/org/apache/camel/configurer/org.apache.camel.model.cloud.DefaultServiceCallServiceLoadBalancerConfiguration
@@ -0,0 +1,2 @@
+# Generated by camel build tools - do NOT edit this file!
+class=org.apache.camel.model.cloud.DefaultServiceCallServiceLoadBalancerConfigurationConfigurer
diff --git a/core/camel-core-model/src/generated/resources/META-INF/services/org/apache/camel/configurer/org.apache.camel.model.cloud.DnsServiceCallServiceDiscoveryConfiguration b/core/camel-core-model/src/generated/resources/META-INF/services/org/apache/camel/configurer/org.apache.camel.model.cloud.DnsServiceCallServiceDiscoveryConfiguration
new file mode 100644
index 0000000..f475c4b
--- /dev/null
+++ b/core/camel-core-model/src/generated/resources/META-INF/services/org/apache/camel/configurer/org.apache.camel.model.cloud.DnsServiceCallServiceDiscoveryConfiguration
@@ -0,0 +1,2 @@
+# Generated by camel build tools - do NOT edit this file!
+class=org.apache.camel.model.cloud.DnsServiceCallServiceDiscoveryConfigurationConfigurer
diff --git a/core/camel-core-model/src/generated/resources/META-INF/services/org/apache/camel/configurer/org.apache.camel.model.cloud.EtcdServiceCallServiceDiscoveryConfiguration b/core/camel-core-model/src/generated/resources/META-INF/services/org/apache/camel/configurer/org.apache.camel.model.cloud.EtcdServiceCallServiceDiscoveryConfiguration
new file mode 100644
index 0000000..87c06b6
--- /dev/null
+++ b/core/camel-core-model/src/generated/resources/META-INF/services/org/apache/camel/configurer/org.apache.camel.model.cloud.EtcdServiceCallServiceDiscoveryConfiguration
@@ -0,0 +1,2 @@
+# Generated by camel build tools - do NOT edit this file!
+class=org.apache.camel.model.cloud.EtcdServiceCallServiceDiscoveryConfigurationConfigurer
diff --git a/core/camel-core-model/src/generated/resources/META-INF/services/org/apache/camel/configurer/org.apache.camel.model.cloud.HealthyServiceCallServiceFilterConfiguration b/core/camel-core-model/src/generated/resources/META-INF/services/org/apache/camel/configurer/org.apache.camel.model.cloud.HealthyServiceCallServiceFilterConfiguration
new file mode 100644
index 0000000..6f1de07
--- /dev/null
+++ b/core/camel-core-model/src/generated/resources/META-INF/services/org/apache/camel/configurer/org.apache.camel.model.cloud.HealthyServiceCallServiceFilterConfiguration
@@ -0,0 +1,2 @@
+# Generated by camel build tools - do NOT edit this file!
+class=org.apache.camel.model.cloud.HealthyServiceCallServiceFilterConfigurationConfigurer
diff --git a/core/camel-core-model/src/generated/resources/META-INF/services/org/apache/camel/configurer/org.apache.camel.model.cloud.KubernetesServiceCallServiceDiscoveryConfiguration b/core/camel-core-model/src/generated/resources/META-INF/services/org/apache/camel/configurer/org.apache.camel.model.cloud.KubernetesServiceCallServiceDiscoveryConfiguration
new file mode 100644
index 0000000..1d26ba5
--- /dev/null
+++ b/core/camel-core-model/src/generated/resources/META-INF/services/org/apache/camel/configurer/org.apache.camel.model.cloud.KubernetesServiceCallServiceDiscoveryConfiguration
@@ -0,0 +1,2 @@
+# Generated by camel build tools - do NOT edit this file!
+class=org.apache.camel.model.cloud.KubernetesServiceCallServiceDiscoveryConfigurationConfigurer
diff --git a/core/camel-core-model/src/generated/resources/META-INF/services/org/apache/camel/configurer/org.apache.camel.model.cloud.PassThroughServiceCallServiceFilterConfiguration b/core/camel-core-model/src/generated/resources/META-INF/services/org/apache/camel/configurer/org.apache.camel.model.cloud.PassThroughServiceCallServiceFilterConfiguration
new file mode 100644
index 0000000..c32d6e3
--- /dev/null
+++ b/core/camel-core-model/src/generated/resources/META-INF/services/org/apache/camel/configurer/org.apache.camel.model.cloud.PassThroughServiceCallServiceFilterConfiguration
@@ -0,0 +1,2 @@
+# Generated by camel build tools - do NOT edit this file!
+class=org.apache.camel.model.cloud.PassThroughServiceCallServiceFilterConfigurationConfigurer
diff --git a/core/camel-core-model/src/generated/resources/META-INF/services/org/apache/camel/configurer/org.apache.camel.model.cloud.RibbonServiceCallServiceLoadBalancerConfiguration b/core/camel-core-model/src/generated/resources/META-INF/services/org/apache/camel/configurer/org.apache.camel.model.cloud.RibbonServiceCallServiceLoadBalancerConfiguration
new file mode 100644
index 0000000..247fd4b
--- /dev/null
+++ b/core/camel-core-model/src/generated/resources/META-INF/services/org/apache/camel/configurer/org.apache.camel.model.cloud.RibbonServiceCallServiceLoadBalancerConfiguration
@@ -0,0 +1,2 @@
+# Generated by camel build tools - do NOT edit this file!
+class=org.apache.camel.model.cloud.RibbonServiceCallServiceLoadBalancerConfigurationConfigurer
diff --git a/core/camel-core-model/src/generated/resources/META-INF/services/org/apache/camel/configurer/org.apache.camel.model.cloud.ServiceCallConfiguration b/core/camel-core-model/src/generated/resources/META-INF/services/org/apache/camel/configurer/org.apache.camel.model.cloud.ServiceCallConfiguration
new file mode 100644
index 0000000..4355db2
--- /dev/null
+++ b/core/camel-core-model/src/generated/resources/META-INF/services/org/apache/camel/configurer/org.apache.camel.model.cloud.ServiceCallConfiguration
@@ -0,0 +1,2 @@
+# Generated by camel build tools - do NOT edit this file!
+class=org.apache.camel.model.cloud.ServiceCallConfigurationConfigurer
diff --git a/core/camel-core-model/src/generated/resources/META-INF/services/org/apache/camel/configurer/org.apache.camel.model.cloud.ServiceCallExpressionConfiguration b/core/camel-core-model/src/generated/resources/META-INF/services/org/apache/camel/configurer/org.apache.camel.model.cloud.ServiceCallExpressionConfiguration
new file mode 100644
index 0000000..cb27afa
--- /dev/null
+++ b/core/camel-core-model/src/generated/resources/META-INF/services/org/apache/camel/configurer/org.apache.camel.model.cloud.ServiceCallExpressionConfiguration
@@ -0,0 +1,2 @@
+# Generated by camel build tools - do NOT edit this file!
+class=org.apache.camel.model.cloud.ServiceCallExpressionConfigurationConfigurer
diff --git a/core/camel-core-model/src/generated/resources/META-INF/services/org/apache/camel/configurer/org.apache.camel.model.cloud.ServiceCallServiceChooserConfiguration b/core/camel-core-model/src/generated/resources/META-INF/services/org/apache/camel/configurer/org.apache.camel.model.cloud.ServiceCallServiceChooserConfiguration
new file mode 100644
index 0000000..1a2140f
--- /dev/null
+++ b/core/camel-core-model/src/generated/resources/META-INF/services/org/apache/camel/configurer/org.apache.camel.model.cloud.ServiceCallServiceChooserConfiguration
@@ -0,0 +1,2 @@
+# Generated by camel build tools - do NOT edit this file!
+class=org.apache.camel.model.cloud.ServiceCallServiceChooserConfigurationConfigurer
diff --git a/core/camel-core-model/src/generated/resources/META-INF/services/org/apache/camel/configurer/org.apache.camel.model.cloud.ServiceCallServiceDiscoveryConfiguration b/core/camel-core-model/src/generated/resources/META-INF/services/org/apache/camel/configurer/org.apache.camel.model.cloud.ServiceCallServiceDiscoveryConfiguration
new file mode 100644
index 0000000..0874857
--- /dev/null
+++ b/core/camel-core-model/src/generated/resources/META-INF/services/org/apache/camel/configurer/org.apache.camel.model.cloud.ServiceCallServiceDiscoveryConfiguration
@@ -0,0 +1,2 @@
+# Generated by camel build tools - do NOT edit this file!
+class=org.apache.camel.model.cloud.ServiceCallServiceDiscoveryConfigurationConfigurer
diff --git a/core/camel-core-model/src/generated/resources/META-INF/services/org/apache/camel/configurer/org.apache.camel.model.cloud.ServiceCallServiceFilterConfiguration b/core/camel-core-model/src/generated/resources/META-INF/services/org/apache/camel/configurer/org.apache.camel.model.cloud.ServiceCallServiceFilterConfiguration
new file mode 100644
index 0000000..162fb67
--- /dev/null
+++ b/core/camel-core-model/src/generated/resources/META-INF/services/org/apache/camel/configurer/org.apache.camel.model.cloud.ServiceCallServiceFilterConfiguration
@@ -0,0 +1,2 @@
+# Generated by camel build tools - do NOT edit this file!
+class=org.apache.camel.model.cloud.ServiceCallServiceFilterConfigurationConfigurer
diff --git a/core/camel-core-model/src/generated/resources/META-INF/services/org/apache/camel/configurer/org.apache.camel.model.cloud.ServiceCallServiceLoadBalancerConfiguration b/core/camel-core-model/src/generated/resources/META-INF/services/org/apache/camel/configurer/org.apache.camel.model.cloud.ServiceCallServiceLoadBalancerConfiguration
new file mode 100644
index 0000000..dbecd32
--- /dev/null
+++ b/core/camel-core-model/src/generated/resources/META-INF/services/org/apache/camel/configurer/org.apache.camel.model.cloud.ServiceCallServiceLoadBalancerConfiguration
@@ -0,0 +1,2 @@
+# Generated by camel build tools - do NOT edit this file!
+class=org.apache.camel.model.cloud.ServiceCallServiceLoadBalancerConfigurationConfigurer
diff --git a/core/camel-core-model/src/generated/resources/META-INF/services/org/apache/camel/configurer/org.apache.camel.model.cloud.StaticServiceCallServiceDiscoveryConfiguration b/core/camel-core-model/src/generated/resources/META-INF/services/org/apache/camel/configurer/org.apache.camel.model.cloud.StaticServiceCallServiceDiscoveryConfiguration
new file mode 100644
index 0000000..2f81419
--- /dev/null
+++ b/core/camel-core-model/src/generated/resources/META-INF/services/org/apache/camel/configurer/org.apache.camel.model.cloud.StaticServiceCallServiceDiscoveryConfiguration
@@ -0,0 +1,2 @@
+# Generated by camel build tools - do NOT edit this file!
+class=org.apache.camel.model.cloud.StaticServiceCallServiceDiscoveryConfigurationConfigurer
diff --git a/core/camel-core-model/src/generated/resources/META-INF/services/org/apache/camel/configurer/org.apache.camel.model.cloud.ZooKeeperServiceCallServiceDiscoveryConfiguration b/core/camel-core-model/src/generated/resources/META-INF/services/org/apache/camel/configurer/org.apache.camel.model.cloud.ZooKeeperServiceCallServiceDiscoveryConfiguration
new file mode 100644
index 0000000..f7493dc
--- /dev/null
+++ b/core/camel-core-model/src/generated/resources/META-INF/services/org/apache/camel/configurer/org.apache.camel.model.cloud.ZooKeeperServiceCallServiceDiscoveryConfiguration
@@ -0,0 +1,2 @@
+# Generated by camel build tools - do NOT edit this file!
+class=org.apache.camel.model.cloud.ZooKeeperServiceCallServiceDiscoveryConfigurationConfigurer
diff --git a/core/camel-core-model/src/generated/resources/org/apache/camel/model/cloud/serviceCallConfiguration.json b/core/camel-core-model/src/generated/resources/org/apache/camel/model/cloud/serviceCallConfiguration.json
index 9cb7cbb..7d5d18b 100644
--- a/core/camel-core-model/src/generated/resources/org/apache/camel/model/cloud/serviceCallConfiguration.json
+++ b/core/camel-core-model/src/generated/resources/org/apache/camel/model/cloud/serviceCallConfiguration.json
@@ -12,7 +12,7 @@
   },
   "properties": {
     "expression": { "kind": "element", "displayName": "Expression", "required": false, "type": "object", "javaType": "org.apache.camel.model.cloud.ServiceCallExpressionConfiguration", "deprecated": false, "autowired": false, "secret": false, "description": "Configures the Expression using the given configuration." },
-    "uri": { "kind": "attribute", "displayName": "Uri", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "The uri of the endpoint to send to. The uri can be dynamic computed using the org.apache.camel.language.simple.SimpleLanguage expression." },
+    "uri": { "kind": "attribute", "displayName": "Uri", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "The uri of the endpoint to send to. The uri can be dynamic computed using the simple language expression." },
     "component": { "kind": "attribute", "displayName": "Component", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "http", "description": "The component to use." },
     "pattern": { "kind": "attribute", "displayName": "Pattern", "required": false, "type": "enum", "javaType": "org.apache.camel.ExchangePattern", "enum": [ "InOnly", "InOptionalOut", "InOut" ], "deprecated": false, "autowired": false, "secret": false, "description": "Sets the optional ExchangePattern used to invoke this endpoint" },
     "serviceDiscoveryRef": { "kind": "attribute", "displayName": "Service Discovery Ref", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Sets a reference to a custom ServiceDiscovery to use." },
diff --git a/core/camel-core-model/src/main/java/org/apache/camel/model/cloud/BlacklistServiceCallServiceFilterConfiguration.java b/core/camel-core-model/src/main/java/org/apache/camel/model/cloud/BlacklistServiceCallServiceFilterConfiguration.java
index 7210862..0b490df 100644
--- a/core/camel-core-model/src/main/java/org/apache/camel/model/cloud/BlacklistServiceCallServiceFilterConfiguration.java
+++ b/core/camel-core-model/src/main/java/org/apache/camel/model/cloud/BlacklistServiceCallServiceFilterConfiguration.java
@@ -28,12 +28,14 @@ import javax.xml.bind.annotation.XmlElement;
 import javax.xml.bind.annotation.XmlRootElement;
 
 import org.apache.camel.CamelContext;
+import org.apache.camel.spi.Configurer;
 import org.apache.camel.spi.Metadata;
 import org.apache.camel.util.ObjectHelper;
 
 @Metadata(label = "routing,cloud,service-filter")
 @XmlRootElement(name = "blacklistServiceFilter")
 @XmlAccessorType(XmlAccessType.FIELD)
+@Configurer(extended = true)
 public class BlacklistServiceCallServiceFilterConfiguration extends ServiceCallServiceFilterConfiguration {
     @XmlElement
     private List<String> servers;
diff --git a/core/camel-core-model/src/main/java/org/apache/camel/model/cloud/CachingServiceCallServiceDiscoveryConfiguration.java b/core/camel-core-model/src/main/java/org/apache/camel/model/cloud/CachingServiceCallServiceDiscoveryConfiguration.java
index 207fe2f..d34abd1 100644
--- a/core/camel-core-model/src/main/java/org/apache/camel/model/cloud/CachingServiceCallServiceDiscoveryConfiguration.java
+++ b/core/camel-core-model/src/main/java/org/apache/camel/model/cloud/CachingServiceCallServiceDiscoveryConfiguration.java
@@ -27,11 +27,13 @@ import javax.xml.bind.annotation.XmlElements;
 import javax.xml.bind.annotation.XmlRootElement;
 
 import org.apache.camel.CamelContext;
+import org.apache.camel.spi.Configurer;
 import org.apache.camel.spi.Metadata;
 
 @Metadata(label = "routing,cloud,service-discovery")
 @XmlRootElement(name = "cachingServiceDiscovery")
 @XmlAccessorType(XmlAccessType.FIELD)
+@Configurer(extended = true)
 public class CachingServiceCallServiceDiscoveryConfiguration extends ServiceCallServiceDiscoveryConfiguration {
     @XmlAttribute
     @Metadata(defaultValue = "60", javaType = "java.lang.Integer")
diff --git a/core/camel-core-model/src/main/java/org/apache/camel/model/cloud/CombinedServiceCallServiceDiscoveryConfiguration.java b/core/camel-core-model/src/main/java/org/apache/camel/model/cloud/CombinedServiceCallServiceDiscoveryConfiguration.java
index 4c7e3e2..0bfafb3 100644
--- a/core/camel-core-model/src/main/java/org/apache/camel/model/cloud/CombinedServiceCallServiceDiscoveryConfiguration.java
+++ b/core/camel-core-model/src/main/java/org/apache/camel/model/cloud/CombinedServiceCallServiceDiscoveryConfiguration.java
@@ -28,11 +28,13 @@ import javax.xml.bind.annotation.XmlRootElement;
 
 import org.apache.camel.CamelContext;
 import org.apache.camel.cloud.ServiceDiscovery;
+import org.apache.camel.spi.Configurer;
 import org.apache.camel.spi.Metadata;
 
 @Metadata(label = "routing,cloud,service-discovery")
 @XmlRootElement(name = "combinedServiceDiscovery")
 @XmlAccessorType(XmlAccessType.FIELD)
+@Configurer(extended = true)
 public class CombinedServiceCallServiceDiscoveryConfiguration extends ServiceCallServiceDiscoveryConfiguration {
     @XmlElements({
             @XmlElement(name = "consulServiceDiscovery", type = ConsulServiceCallServiceDiscoveryConfiguration.class),
diff --git a/core/camel-core-model/src/main/java/org/apache/camel/model/cloud/CombinedServiceCallServiceFilterConfiguration.java b/core/camel-core-model/src/main/java/org/apache/camel/model/cloud/CombinedServiceCallServiceFilterConfiguration.java
index b2b9f7b..fc65306 100644
--- a/core/camel-core-model/src/main/java/org/apache/camel/model/cloud/CombinedServiceCallServiceFilterConfiguration.java
+++ b/core/camel-core-model/src/main/java/org/apache/camel/model/cloud/CombinedServiceCallServiceFilterConfiguration.java
@@ -28,11 +28,13 @@ import javax.xml.bind.annotation.XmlRootElement;
 
 import org.apache.camel.CamelContext;
 import org.apache.camel.cloud.ServiceFilter;
+import org.apache.camel.spi.Configurer;
 import org.apache.camel.spi.Metadata;
 
 @Metadata(label = "routing,cloud,service-filter")
 @XmlRootElement(name = "combinedServiceFilter")
 @XmlAccessorType(XmlAccessType.FIELD)
+@Configurer(extended = true)
 public class CombinedServiceCallServiceFilterConfiguration extends ServiceCallServiceFilterConfiguration {
     @XmlElements({
             @XmlElement(name = "blacklistServiceFilter", type = BlacklistServiceCallServiceFilterConfiguration.class),
diff --git a/core/camel-core-model/src/main/java/org/apache/camel/model/cloud/ConsulServiceCallServiceDiscoveryConfiguration.java b/core/camel-core-model/src/main/java/org/apache/camel/model/cloud/ConsulServiceCallServiceDiscoveryConfiguration.java
index 50d3705..0d61260 100644
--- a/core/camel-core-model/src/main/java/org/apache/camel/model/cloud/ConsulServiceCallServiceDiscoveryConfiguration.java
+++ b/core/camel-core-model/src/main/java/org/apache/camel/model/cloud/ConsulServiceCallServiceDiscoveryConfiguration.java
@@ -22,12 +22,14 @@ import javax.xml.bind.annotation.XmlAttribute;
 import javax.xml.bind.annotation.XmlRootElement;
 import javax.xml.bind.annotation.XmlTransient;
 
+import org.apache.camel.spi.Configurer;
 import org.apache.camel.spi.Metadata;
 import org.apache.camel.support.jsse.SSLContextParameters;
 
 @Metadata(label = "routing,cloud,service-discovery")
 @XmlRootElement(name = "consulServiceDiscovery")
 @XmlAccessorType(XmlAccessType.FIELD)
+@Configurer(extended = true)
 public class ConsulServiceCallServiceDiscoveryConfiguration extends ServiceCallServiceDiscoveryConfiguration {
     @XmlAttribute
     private String url;
diff --git a/core/camel-core-model/src/main/java/org/apache/camel/model/cloud/CustomServiceCallServiceFilterConfiguration.java b/core/camel-core-model/src/main/java/org/apache/camel/model/cloud/CustomServiceCallServiceFilterConfiguration.java
index a7ca980..9c14784 100644
--- a/core/camel-core-model/src/main/java/org/apache/camel/model/cloud/CustomServiceCallServiceFilterConfiguration.java
+++ b/core/camel-core-model/src/main/java/org/apache/camel/model/cloud/CustomServiceCallServiceFilterConfiguration.java
@@ -24,11 +24,13 @@ import javax.xml.bind.annotation.XmlTransient;
 
 import org.apache.camel.CamelContext;
 import org.apache.camel.cloud.ServiceFilter;
+import org.apache.camel.spi.Configurer;
 import org.apache.camel.spi.Metadata;
 
 @Metadata(label = "routing,cloud,service-filter")
 @XmlRootElement(name = "customServiceFilter")
 @XmlAccessorType(XmlAccessType.FIELD)
+@Configurer(extended = true)
 public class CustomServiceCallServiceFilterConfiguration extends ServiceCallServiceFilterConfiguration {
     @XmlAttribute(name = "ref")
     private String serviceFilterRef;
diff --git a/core/camel-core-model/src/main/java/org/apache/camel/model/cloud/DefaultServiceCallServiceLoadBalancerConfiguration.java b/core/camel-core-model/src/main/java/org/apache/camel/model/cloud/DefaultServiceCallServiceLoadBalancerConfiguration.java
index bfd1dfa..a923841 100644
--- a/core/camel-core-model/src/main/java/org/apache/camel/model/cloud/DefaultServiceCallServiceLoadBalancerConfiguration.java
+++ b/core/camel-core-model/src/main/java/org/apache/camel/model/cloud/DefaultServiceCallServiceLoadBalancerConfiguration.java
@@ -20,11 +20,13 @@ import javax.xml.bind.annotation.XmlAccessType;
 import javax.xml.bind.annotation.XmlAccessorType;
 import javax.xml.bind.annotation.XmlRootElement;
 
+import org.apache.camel.spi.Configurer;
 import org.apache.camel.spi.Metadata;
 
 @Metadata(label = "routing,cloud,load-balancing")
 @XmlRootElement(name = "defaultLoadBalancer")
 @XmlAccessorType(XmlAccessType.FIELD)
+@Configurer(extended = true)
 public class DefaultServiceCallServiceLoadBalancerConfiguration extends ServiceCallServiceLoadBalancerConfiguration {
     public DefaultServiceCallServiceLoadBalancerConfiguration() {
         this(null);
diff --git a/core/camel-core-model/src/main/java/org/apache/camel/model/cloud/DnsServiceCallServiceDiscoveryConfiguration.java b/core/camel-core-model/src/main/java/org/apache/camel/model/cloud/DnsServiceCallServiceDiscoveryConfiguration.java
index d69b907..baa859e 100644
--- a/core/camel-core-model/src/main/java/org/apache/camel/model/cloud/DnsServiceCallServiceDiscoveryConfiguration.java
+++ b/core/camel-core-model/src/main/java/org/apache/camel/model/cloud/DnsServiceCallServiceDiscoveryConfiguration.java
@@ -21,11 +21,13 @@ import javax.xml.bind.annotation.XmlAccessorType;
 import javax.xml.bind.annotation.XmlAttribute;
 import javax.xml.bind.annotation.XmlRootElement;
 
+import org.apache.camel.spi.Configurer;
 import org.apache.camel.spi.Metadata;
 
 @Metadata(label = "routing,cloud,service-discovery")
 @XmlRootElement(name = "dnsServiceDiscovery")
 @XmlAccessorType(XmlAccessType.FIELD)
+@Configurer(extended = true)
 public class DnsServiceCallServiceDiscoveryConfiguration extends ServiceCallServiceDiscoveryConfiguration {
     @XmlAttribute
     @Metadata(defaultValue = "_tcp")
diff --git a/core/camel-core-model/src/main/java/org/apache/camel/model/cloud/EtcdServiceCallServiceDiscoveryConfiguration.java b/core/camel-core-model/src/main/java/org/apache/camel/model/cloud/EtcdServiceCallServiceDiscoveryConfiguration.java
index 97a515e..58c1d1c 100644
--- a/core/camel-core-model/src/main/java/org/apache/camel/model/cloud/EtcdServiceCallServiceDiscoveryConfiguration.java
+++ b/core/camel-core-model/src/main/java/org/apache/camel/model/cloud/EtcdServiceCallServiceDiscoveryConfiguration.java
@@ -22,12 +22,14 @@ import javax.xml.bind.annotation.XmlAttribute;
 import javax.xml.bind.annotation.XmlRootElement;
 import javax.xml.bind.annotation.XmlTransient;
 
+import org.apache.camel.spi.Configurer;
 import org.apache.camel.spi.Metadata;
 import org.apache.camel.support.jsse.SSLContextParameters;
 
 @Metadata(label = "routing,cloud,service-discovery")
 @XmlRootElement(name = "etcdServiceDiscovery")
 @XmlAccessorType(XmlAccessType.FIELD)
+@Configurer(extended = true)
 public class EtcdServiceCallServiceDiscoveryConfiguration extends ServiceCallServiceDiscoveryConfiguration {
     @XmlAttribute
     private String uris;
diff --git a/core/camel-core-model/src/main/java/org/apache/camel/model/cloud/HealthyServiceCallServiceFilterConfiguration.java b/core/camel-core-model/src/main/java/org/apache/camel/model/cloud/HealthyServiceCallServiceFilterConfiguration.java
index b7b86ba..83468ba 100644
--- a/core/camel-core-model/src/main/java/org/apache/camel/model/cloud/HealthyServiceCallServiceFilterConfiguration.java
+++ b/core/camel-core-model/src/main/java/org/apache/camel/model/cloud/HealthyServiceCallServiceFilterConfiguration.java
@@ -20,11 +20,13 @@ import javax.xml.bind.annotation.XmlAccessType;
 import javax.xml.bind.annotation.XmlAccessorType;
 import javax.xml.bind.annotation.XmlRootElement;
 
+import org.apache.camel.spi.Configurer;
 import org.apache.camel.spi.Metadata;
 
 @Metadata(label = "routing,cloud,service-filter")
 @XmlRootElement(name = "healthyServiceFilter")
 @XmlAccessorType(XmlAccessType.FIELD)
+@Configurer(extended = true)
 public class HealthyServiceCallServiceFilterConfiguration extends ServiceCallServiceFilterConfiguration {
     public HealthyServiceCallServiceFilterConfiguration() {
         this(null);
diff --git a/core/camel-core-model/src/main/java/org/apache/camel/model/cloud/KubernetesServiceCallServiceDiscoveryConfiguration.java b/core/camel-core-model/src/main/java/org/apache/camel/model/cloud/KubernetesServiceCallServiceDiscoveryConfiguration.java
index 5332b19..691e215 100644
--- a/core/camel-core-model/src/main/java/org/apache/camel/model/cloud/KubernetesServiceCallServiceDiscoveryConfiguration.java
+++ b/core/camel-core-model/src/main/java/org/apache/camel/model/cloud/KubernetesServiceCallServiceDiscoveryConfiguration.java
@@ -21,11 +21,13 @@ import javax.xml.bind.annotation.XmlAccessorType;
 import javax.xml.bind.annotation.XmlAttribute;
 import javax.xml.bind.annotation.XmlRootElement;
 
+import org.apache.camel.spi.Configurer;
 import org.apache.camel.spi.Metadata;
 
 @Metadata(label = "routing,cloud,service-discovery")
 @XmlRootElement(name = "kubernetesServiceDiscovery")
 @XmlAccessorType(XmlAccessType.FIELD)
+@Configurer(extended = true)
 public class KubernetesServiceCallServiceDiscoveryConfiguration extends ServiceCallServiceDiscoveryConfiguration {
     @XmlAttribute
     @Metadata(defaultValue = "environment", enums = "environment,dns,client")
diff --git a/core/camel-core-model/src/main/java/org/apache/camel/model/cloud/PassThroughServiceCallServiceFilterConfiguration.java b/core/camel-core-model/src/main/java/org/apache/camel/model/cloud/PassThroughServiceCallServiceFilterConfiguration.java
index 6d82700..b5b3716 100644
--- a/core/camel-core-model/src/main/java/org/apache/camel/model/cloud/PassThroughServiceCallServiceFilterConfiguration.java
+++ b/core/camel-core-model/src/main/java/org/apache/camel/model/cloud/PassThroughServiceCallServiceFilterConfiguration.java
@@ -20,11 +20,13 @@ import javax.xml.bind.annotation.XmlAccessType;
 import javax.xml.bind.annotation.XmlAccessorType;
 import javax.xml.bind.annotation.XmlRootElement;
 
+import org.apache.camel.spi.Configurer;
 import org.apache.camel.spi.Metadata;
 
 @Metadata(label = "routing,cloud,service-filter")
 @XmlRootElement(name = "passThroughServiceFilter")
 @XmlAccessorType(XmlAccessType.FIELD)
+@Configurer(extended = true)
 public class PassThroughServiceCallServiceFilterConfiguration extends ServiceCallServiceFilterConfiguration {
     public PassThroughServiceCallServiceFilterConfiguration() {
         this(null);
diff --git a/core/camel-core-model/src/main/java/org/apache/camel/model/cloud/RibbonServiceCallServiceLoadBalancerConfiguration.java b/core/camel-core-model/src/main/java/org/apache/camel/model/cloud/RibbonServiceCallServiceLoadBalancerConfiguration.java
index b93a095..f6d2da2 100644
--- a/core/camel-core-model/src/main/java/org/apache/camel/model/cloud/RibbonServiceCallServiceLoadBalancerConfiguration.java
+++ b/core/camel-core-model/src/main/java/org/apache/camel/model/cloud/RibbonServiceCallServiceLoadBalancerConfiguration.java
@@ -21,11 +21,13 @@ import javax.xml.bind.annotation.XmlAccessorType;
 import javax.xml.bind.annotation.XmlAttribute;
 import javax.xml.bind.annotation.XmlRootElement;
 
+import org.apache.camel.spi.Configurer;
 import org.apache.camel.spi.Metadata;
 
 @Metadata(label = "routing,cloud,load-balancing")
 @XmlRootElement(name = "ribbonLoadBalancer")
 @XmlAccessorType(XmlAccessType.FIELD)
+@Configurer(extended = true)
 public class RibbonServiceCallServiceLoadBalancerConfiguration extends ServiceCallServiceLoadBalancerConfiguration {
     @XmlAttribute
     private String namespace;
diff --git a/core/camel-core-model/src/main/java/org/apache/camel/model/cloud/ServiceCallConfiguration.java b/core/camel-core-model/src/main/java/org/apache/camel/model/cloud/ServiceCallConfiguration.java
index 52a70cb..156c7af 100644
--- a/core/camel-core-model/src/main/java/org/apache/camel/model/cloud/ServiceCallConfiguration.java
+++ b/core/camel-core-model/src/main/java/org/apache/camel/model/cloud/ServiceCallConfiguration.java
@@ -21,6 +21,7 @@ import java.util.Collections;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
+import java.util.Set;
 
 import javax.xml.bind.annotation.XmlAccessType;
 import javax.xml.bind.annotation.XmlAccessorType;
@@ -28,9 +29,12 @@ import javax.xml.bind.annotation.XmlElement;
 import javax.xml.bind.annotation.XmlType;
 
 import org.apache.camel.CamelContext;
+import org.apache.camel.ExtendedCamelContext;
 import org.apache.camel.model.IdentifiedType;
 import org.apache.camel.model.PropertyDefinition;
+import org.apache.camel.spi.ExtendedPropertyConfigurerGetter;
 import org.apache.camel.spi.Metadata;
+import org.apache.camel.spi.PropertyConfigurer;
 import org.apache.camel.support.CamelContextHelper;
 
 @XmlType(name = "serviceCallConfiguration")
@@ -93,6 +97,31 @@ public abstract class ServiceCallConfiguration extends IdentifiedType {
         return answer;
     }
 
+    protected Map<String, Object> getConfiguredOptions(CamelContext context, Object target) {
+        Map<String, Object> answer = new HashMap<>();
+
+        PropertyConfigurer configurer = context.adapt(ExtendedCamelContext.class).getConfigurerResolver()
+                .resolvePropertyConfigurer(target.getClass().getName(), context);
+        // use reflection free configurer (if possible)
+        if (configurer instanceof ExtendedPropertyConfigurerGetter) {
+            ExtendedPropertyConfigurerGetter getter = (ExtendedPropertyConfigurerGetter) configurer;
+            Set<String> all = getter.getAllOptions(target).keySet();
+            for (String name : all) {
+                Object value = getter.getOptionValue(target, name, true);
+                if (value != null) {
+                    // lower case the first letter which is what the properties map expects
+                    String key = Character.toLowerCase(name.charAt(0)) + name.substring(1);
+                    answer.put(key, value);
+                }
+            }
+        } else {
+            context.adapt(ExtendedCamelContext.class).getBeanIntrospection().getProperties(target, answer,
+                    null, false);
+        }
+
+        return answer;
+    }
+
     // *************************************************************************
     // Utilities
     // *************************************************************************
diff --git a/core/camel-core-model/src/main/java/org/apache/camel/model/cloud/ServiceCallConfigurationDefinition.java b/core/camel-core-model/src/main/java/org/apache/camel/model/cloud/ServiceCallConfigurationDefinition.java
index 5075616..d3566db 100644
--- a/core/camel-core-model/src/main/java/org/apache/camel/model/cloud/ServiceCallConfigurationDefinition.java
+++ b/core/camel-core-model/src/main/java/org/apache/camel/model/cloud/ServiceCallConfigurationDefinition.java
@@ -116,8 +116,7 @@ public class ServiceCallConfigurationDefinition extends IdentifiedType {
     }
 
     /**
-     * The uri of the endpoint to send to. The uri can be dynamic computed using the
-     * {@link org.apache.camel.language.simple.SimpleLanguage} expression.
+     * The uri of the endpoint to send to. The uri can be dynamic computed using the simple language expression.
      */
     public void setUri(String uri) {
         this.uri = uri;
diff --git a/core/camel-core-model/src/main/java/org/apache/camel/model/cloud/ServiceCallExpressionConfiguration.java b/core/camel-core-model/src/main/java/org/apache/camel/model/cloud/ServiceCallExpressionConfiguration.java
index ea0ad55..b91c1b2 100644
--- a/core/camel-core-model/src/main/java/org/apache/camel/model/cloud/ServiceCallExpressionConfiguration.java
+++ b/core/camel-core-model/src/main/java/org/apache/camel/model/cloud/ServiceCallExpressionConfiguration.java
@@ -16,7 +16,6 @@
  */
 package org.apache.camel.model.cloud;
 
-import java.util.HashMap;
 import java.util.Map;
 
 import javax.xml.bind.annotation.XmlAccessType;
@@ -34,6 +33,7 @@ import org.apache.camel.cloud.ServiceCallConstants;
 import org.apache.camel.cloud.ServiceExpressionFactory;
 import org.apache.camel.model.ProcessorDefinition;
 import org.apache.camel.model.language.ExpressionDefinition;
+import org.apache.camel.spi.Configurer;
 import org.apache.camel.spi.Metadata;
 import org.apache.camel.support.CamelContextHelper;
 import org.apache.camel.support.PropertyBindingSupport;
@@ -41,6 +41,7 @@ import org.apache.camel.support.PropertyBindingSupport;
 @Metadata(label = "routing,cloud")
 @XmlRootElement(name = "serviceExpression")
 @XmlAccessorType(XmlAccessType.FIELD)
+@Configurer(extended = true)
 public class ServiceCallExpressionConfiguration extends ServiceCallConfiguration implements ServiceExpressionFactory {
     @XmlTransient
     private final ServiceCallDefinition parent;
@@ -194,9 +195,7 @@ public class ServiceCallExpressionConfiguration extends ServiceCallConfiguration
                 }
 
                 try {
-                    Map<String, Object> parameters = new HashMap<>();
-                    camelContext.adapt(ExtendedCamelContext.class).getBeanIntrospection().getProperties(this, parameters, null,
-                            false);
+                    Map<String, Object> parameters = getConfiguredOptions(camelContext, this);
 
                     parameters.replaceAll((k, v) -> {
                         if (v instanceof String) {
@@ -212,7 +211,10 @@ public class ServiceCallExpressionConfiguration extends ServiceCallConfiguration
                     });
 
                     // Convert properties to Map<String, String>
-                    parameters.put("properties", getPropertiesAsMap(camelContext));
+                    Map<String, String> map = getPropertiesAsMap(camelContext);
+                    if (map != null && !map.isEmpty()) {
+                        parameters.put("properties", map);
+                    }
 
                     postProcessFactoryParameters(camelContext, parameters);
 
diff --git a/core/camel-core-model/src/main/java/org/apache/camel/model/cloud/ServiceCallServiceChooserConfiguration.java b/core/camel-core-model/src/main/java/org/apache/camel/model/cloud/ServiceCallServiceChooserConfiguration.java
index 21297bd..ebcf386 100644
--- a/core/camel-core-model/src/main/java/org/apache/camel/model/cloud/ServiceCallServiceChooserConfiguration.java
+++ b/core/camel-core-model/src/main/java/org/apache/camel/model/cloud/ServiceCallServiceChooserConfiguration.java
@@ -16,7 +16,6 @@
  */
 package org.apache.camel.model.cloud;
 
-import java.util.HashMap;
 import java.util.Map;
 
 import javax.xml.bind.annotation.XmlAccessType;
@@ -30,6 +29,7 @@ import org.apache.camel.NoFactoryAvailableException;
 import org.apache.camel.cloud.ServiceChooser;
 import org.apache.camel.cloud.ServiceChooserFactory;
 import org.apache.camel.model.ProcessorDefinition;
+import org.apache.camel.spi.Configurer;
 import org.apache.camel.spi.Metadata;
 import org.apache.camel.support.CamelContextHelper;
 import org.apache.camel.support.PropertyBindingSupport;
@@ -38,6 +38,7 @@ import org.apache.camel.util.ObjectHelper;
 @Metadata(label = "routing,cloud,service-discovery")
 @XmlRootElement(name = "serviceChooserConfiguration")
 @XmlAccessorType(XmlAccessType.FIELD)
+@Configurer(extended = true)
 public class ServiceCallServiceChooserConfiguration extends ServiceCallConfiguration implements ServiceChooserFactory {
     @XmlTransient
     private final ServiceCallDefinition parent;
@@ -108,9 +109,7 @@ public class ServiceCallServiceChooserConfiguration extends ServiceCallConfigura
             }
 
             try {
-                Map<String, Object> parameters = new HashMap<>();
-                camelContext.adapt(ExtendedCamelContext.class).getBeanIntrospection().getProperties(this, parameters, null,
-                        false);
+                Map<String, Object> parameters = getConfiguredOptions(camelContext, this);
 
                 parameters.replaceAll((k, v) -> {
                     if (v instanceof String) {
@@ -127,7 +126,10 @@ public class ServiceCallServiceChooserConfiguration extends ServiceCallConfigura
 
                 if (factory != null) {
                     // Convert properties to Map<String, String>
-                    parameters.put("properties", getPropertiesAsMap(camelContext));
+                    Map<String, String> map = getPropertiesAsMap(camelContext);
+                    if (map != null && !map.isEmpty()) {
+                        parameters.put("properties", map);
+                    }
 
                     postProcessFactoryParameters(camelContext, parameters);
 
diff --git a/core/camel-core-model/src/main/java/org/apache/camel/model/cloud/ServiceCallServiceDiscoveryConfiguration.java b/core/camel-core-model/src/main/java/org/apache/camel/model/cloud/ServiceCallServiceDiscoveryConfiguration.java
index d6e6df6..7300510 100644
--- a/core/camel-core-model/src/main/java/org/apache/camel/model/cloud/ServiceCallServiceDiscoveryConfiguration.java
+++ b/core/camel-core-model/src/main/java/org/apache/camel/model/cloud/ServiceCallServiceDiscoveryConfiguration.java
@@ -16,7 +16,6 @@
  */
 package org.apache.camel.model.cloud;
 
-import java.util.HashMap;
 import java.util.Map;
 import java.util.Optional;
 
@@ -31,6 +30,7 @@ import org.apache.camel.NoFactoryAvailableException;
 import org.apache.camel.cloud.ServiceDiscovery;
 import org.apache.camel.cloud.ServiceDiscoveryFactory;
 import org.apache.camel.model.ProcessorDefinition;
+import org.apache.camel.spi.Configurer;
 import org.apache.camel.spi.Metadata;
 import org.apache.camel.support.CamelContextHelper;
 import org.apache.camel.support.PropertyBindingSupport;
@@ -39,6 +39,7 @@ import org.apache.camel.util.ObjectHelper;
 @Metadata(label = "routing,cloud,service-discovery")
 @XmlRootElement(name = "serviceDiscoveryConfiguration")
 @XmlAccessorType(XmlAccessType.FIELD)
+@Configurer(extended = true)
 public class ServiceCallServiceDiscoveryConfiguration extends ServiceCallConfiguration implements ServiceDiscoveryFactory {
     @XmlTransient
     private final Optional<ServiceCallDefinition> parent;
@@ -88,7 +89,6 @@ public class ServiceCallServiceDiscoveryConfiguration extends ServiceCallConfigu
             // it should be pre-configured.
             answer = factory.newInstance(camelContext);
         } else {
-
             Class<?> type;
             try {
                 // Then use Service factory.
@@ -110,9 +110,7 @@ public class ServiceCallServiceDiscoveryConfiguration extends ServiceCallConfigu
             }
 
             try {
-                Map<String, Object> parameters = new HashMap<>();
-                camelContext.adapt(ExtendedCamelContext.class).getBeanIntrospection().getProperties(this, parameters, null,
-                        false);
+                Map<String, Object> parameters = getConfiguredOptions(camelContext, this);
 
                 parameters.replaceAll((k, v) -> {
                     if (v instanceof String) {
@@ -129,7 +127,10 @@ public class ServiceCallServiceDiscoveryConfiguration extends ServiceCallConfigu
 
                 if (factory != null) {
                     // Convert properties to Map<String, String>
-                    parameters.put("properties", getPropertiesAsMap(camelContext));
+                    Map<String, String> map = getPropertiesAsMap(camelContext);
+                    if (map != null && !map.isEmpty()) {
+                        parameters.put("properties", map);
+                    }
 
                     postProcessFactoryParameters(camelContext, parameters);
 
diff --git a/core/camel-core-model/src/main/java/org/apache/camel/model/cloud/ServiceCallServiceFilterConfiguration.java b/core/camel-core-model/src/main/java/org/apache/camel/model/cloud/ServiceCallServiceFilterConfiguration.java
index 07dcb9c..c806db6 100644
--- a/core/camel-core-model/src/main/java/org/apache/camel/model/cloud/ServiceCallServiceFilterConfiguration.java
+++ b/core/camel-core-model/src/main/java/org/apache/camel/model/cloud/ServiceCallServiceFilterConfiguration.java
@@ -16,7 +16,6 @@
  */
 package org.apache.camel.model.cloud;
 
-import java.util.HashMap;
 import java.util.Map;
 
 import javax.xml.bind.annotation.XmlAccessType;
@@ -30,6 +29,7 @@ import org.apache.camel.NoFactoryAvailableException;
 import org.apache.camel.cloud.ServiceFilter;
 import org.apache.camel.cloud.ServiceFilterFactory;
 import org.apache.camel.model.ProcessorDefinition;
+import org.apache.camel.spi.Configurer;
 import org.apache.camel.spi.Metadata;
 import org.apache.camel.support.CamelContextHelper;
 import org.apache.camel.support.PropertyBindingSupport;
@@ -38,6 +38,7 @@ import org.apache.camel.util.ObjectHelper;
 @Metadata(label = "routing,cloud,service-discovery")
 @XmlRootElement(name = "serviceFilterConfiguration")
 @XmlAccessorType(XmlAccessType.FIELD)
+@Configurer(extended = true)
 public class ServiceCallServiceFilterConfiguration extends ServiceCallConfiguration implements ServiceFilterFactory {
     @XmlTransient
     private final ServiceCallDefinition parent;
@@ -114,9 +115,7 @@ public class ServiceCallServiceFilterConfiguration extends ServiceCallConfigurat
             }
 
             try {
-                Map<String, Object> parameters = new HashMap<>();
-                camelContext.adapt(ExtendedCamelContext.class).getBeanIntrospection().getProperties(this, parameters, null,
-                        false);
+                Map<String, Object> parameters = getConfiguredOptions(camelContext, this);
 
                 parameters.replaceAll((k, v) -> {
                     if (v instanceof String) {
@@ -133,7 +132,10 @@ public class ServiceCallServiceFilterConfiguration extends ServiceCallConfigurat
 
                 if (factory != null) {
                     // Convert properties to Map<String, String>
-                    parameters.put("properties", getPropertiesAsMap(camelContext));
+                    Map<String, String> map = getPropertiesAsMap(camelContext);
+                    if (map != null && !map.isEmpty()) {
+                        parameters.put("properties", map);
+                    }
 
                     postProcessFactoryParameters(camelContext, parameters);
 
diff --git a/core/camel-core-model/src/main/java/org/apache/camel/model/cloud/ServiceCallServiceLoadBalancerConfiguration.java b/core/camel-core-model/src/main/java/org/apache/camel/model/cloud/ServiceCallServiceLoadBalancerConfiguration.java
index 8e3f946..5c7857c 100644
--- a/core/camel-core-model/src/main/java/org/apache/camel/model/cloud/ServiceCallServiceLoadBalancerConfiguration.java
+++ b/core/camel-core-model/src/main/java/org/apache/camel/model/cloud/ServiceCallServiceLoadBalancerConfiguration.java
@@ -16,7 +16,6 @@
  */
 package org.apache.camel.model.cloud;
 
-import java.util.HashMap;
 import java.util.Map;
 
 import javax.xml.bind.annotation.XmlAccessType;
@@ -94,7 +93,6 @@ public class ServiceCallServiceLoadBalancerConfiguration extends ServiceCallConf
             // it should be pre-configured.
             answer = factory.newInstance(camelContext);
         } else {
-
             Class<?> type;
             try {
                 // Then use Service factory.
@@ -116,9 +114,7 @@ public class ServiceCallServiceLoadBalancerConfiguration extends ServiceCallConf
             }
 
             try {
-                Map<String, Object> parameters = new HashMap<>();
-                camelContext.adapt(ExtendedCamelContext.class).getBeanIntrospection().getProperties(this, parameters, null,
-                        false);
+                Map<String, Object> parameters = getConfiguredOptions(camelContext, this);
 
                 parameters.replaceAll((k, v) -> {
                     if (v instanceof String) {
@@ -134,7 +130,10 @@ public class ServiceCallServiceLoadBalancerConfiguration extends ServiceCallConf
                 });
 
                 // Convert properties to Map<String, String>
-                parameters.put("properties", getPropertiesAsMap(camelContext));
+                Map<String, String> map = getPropertiesAsMap(camelContext);
+                if (map != null && !map.isEmpty()) {
+                    parameters.put("properties", map);
+                }
 
                 postProcessFactoryParameters(camelContext, parameters);
 
diff --git a/core/camel-core-model/src/main/java/org/apache/camel/model/cloud/StaticServiceCallServiceDiscoveryConfiguration.java b/core/camel-core-model/src/main/java/org/apache/camel/model/cloud/StaticServiceCallServiceDiscoveryConfiguration.java
index f3314c2..71505db 100644
--- a/core/camel-core-model/src/main/java/org/apache/camel/model/cloud/StaticServiceCallServiceDiscoveryConfiguration.java
+++ b/core/camel-core-model/src/main/java/org/apache/camel/model/cloud/StaticServiceCallServiceDiscoveryConfiguration.java
@@ -28,12 +28,14 @@ import javax.xml.bind.annotation.XmlElement;
 import javax.xml.bind.annotation.XmlRootElement;
 
 import org.apache.camel.CamelContext;
+import org.apache.camel.spi.Configurer;
 import org.apache.camel.spi.Metadata;
 import org.apache.camel.util.ObjectHelper;
 
 @Metadata(label = "routing,cloud,service-discovery")
 @XmlRootElement(name = "staticServiceDiscovery")
 @XmlAccessorType(XmlAccessType.FIELD)
+@Configurer(extended = true)
 public class StaticServiceCallServiceDiscoveryConfiguration extends ServiceCallServiceDiscoveryConfiguration {
     @XmlElement
     private List<String> servers;
diff --git a/core/camel-core-model/src/main/java/org/apache/camel/model/cloud/ZooKeeperServiceCallServiceDiscoveryConfiguration.java b/core/camel-core-model/src/main/java/org/apache/camel/model/cloud/ZooKeeperServiceCallServiceDiscoveryConfiguration.java
index 496fec0..d7a654f 100644
--- a/core/camel-core-model/src/main/java/org/apache/camel/model/cloud/ZooKeeperServiceCallServiceDiscoveryConfiguration.java
+++ b/core/camel-core-model/src/main/java/org/apache/camel/model/cloud/ZooKeeperServiceCallServiceDiscoveryConfiguration.java
@@ -21,11 +21,13 @@ import javax.xml.bind.annotation.XmlAccessorType;
 import javax.xml.bind.annotation.XmlAttribute;
 import javax.xml.bind.annotation.XmlRootElement;
 
+import org.apache.camel.spi.Configurer;
 import org.apache.camel.spi.Metadata;
 
 @Metadata(label = "routing,cloud,service-discovery")
 @XmlRootElement(name = "zookeeperServiceDiscovery")
 @XmlAccessorType(XmlAccessType.FIELD)
+@Configurer(extended = true)
 public class ZooKeeperServiceCallServiceDiscoveryConfiguration extends ServiceCallServiceDiscoveryConfiguration {
     @XmlAttribute(required = true)
     private String nodes;