You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by or...@apache.org on 2022/04/04 10:12:59 UTC

[camel] branch main updated: CAMEL-17879: remove deprecated component camel-ribbon

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

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


The following commit(s) were added to refs/heads/main by this push:
     new e604be1888c CAMEL-17879: remove deprecated component camel-ribbon
e604be1888c is described below

commit e604be1888cf7902cb34c22a1fdbe38bfe6d1d7a
Author: Otavio Rodolfo Piske <an...@gmail.com>
AuthorDate: Mon Apr 4 10:56:34 2022 +0200

    CAMEL-17879: remove deprecated component camel-ribbon
---
 bom/camel-bom/pom.xml                              |   5 -
 camel-dependencies/pom.xml                         |   2 -
 catalog/camel-allcomponents/pom.xml                |   4 -
 .../catalog/models/blacklistServiceFilter.json     |   2 +-
 .../catalog/models/cachingServiceDiscovery.json    |   2 +-
 .../catalog/models/combinedServiceDiscovery.json   |   2 +-
 .../catalog/models/combinedServiceFilter.json      |   2 +-
 .../catalog/models/consulServiceDiscovery.json     |   2 +-
 .../camel/catalog/models/customServiceFilter.json  |   2 +-
 .../camel/catalog/models/defaultLoadBalancer.json  |   2 +-
 .../camel/catalog/models/dnsServiceDiscovery.json  |   2 +-
 .../camel/catalog/models/etcdServiceDiscovery.json |   2 +-
 .../camel/catalog/models/healthyServiceFilter.json |   2 +-
 .../catalog/models/kubernetesServiceDiscovery.json |   2 +-
 .../catalog/models/loadBalancerConfiguration.json  |   2 +-
 .../catalog/models/passThroughServiceFilter.json   |   2 +-
 .../apache/camel/catalog/models/serviceCall.json   |   2 +-
 .../catalog/models/serviceCallConfiguration.json   |   2 +-
 .../models/serviceChooserConfiguration.json        |   2 +-
 .../models/serviceDiscoveryConfiguration.json      |   2 +-
 .../camel/catalog/models/serviceExpression.json    |   2 +-
 .../catalog/models/serviceFilterConfiguration.json |   2 +-
 .../catalog/models/staticServiceDiscovery.json     |   2 +-
 .../catalog/models/zookeeperServiceDiscovery.json  |   2 +-
 .../org/apache/camel/catalog/others.properties     |   1 -
 .../org/apache/camel/catalog/others/ribbon.json    |  15 --
 .../apache/camel/catalog/schemas/camel-spring.xsd  |  58 +----
 components/camel-consul/pom.xml                    |   5 -
 .../cloud/ConsulRibbonServiceCallRouteIR.java      | 103 --------
 .../SpringConsulDefaultServiceCallRouteIT.java     |   3 -
 .../SpringConsulExpressionServiceCallRouteIT.java  |   3 -
 .../SpringConsulRibbonServiceCallRouteIT.java      |  44 ----
 .../SpringConsulRibbonServiceCallRouteTest.xml     | 130 ----------
 components/camel-ribbon/pom.xml                    | 113 ---------
 ...RibbonServiceLoadBalancerFactoryConfigurer.java |  82 -------
 .../camel/cloud/ribbon-service-load-balancer       |   2 -
 ...t.ribbon.cloud.RibbonServiceLoadBalancerFactory |   2 -
 .../services/org/apache/camel/other.properties     |   7 -
 .../src/generated/resources/ribbon.json            |  15 --
 components/camel-ribbon/src/main/docs/ribbon.adoc  |  86 -------
 .../component/ribbon/RibbonConfiguration.java      | 106 ---------
 .../camel/component/ribbon/RibbonConstants.java    |  25 --
 .../ribbon/cloud/RibbonServiceDefinition.java      |  94 --------
 .../ribbon/cloud/RibbonServiceLoadBalancer.java    | 262 ---------------------
 .../cloud/RibbonServiceLoadBalancerFactory.java    |  93 --------
 .../ribbon/cloud/RibbonServerListTest.java         |  52 ----
 .../cloud/RibbonServiceCallRegistryRouteTest.java  |  63 -----
 .../cloud/RibbonServiceCallRouteDslTest.java       |  69 ------
 .../cloud/RibbonServiceCallRouteMetadataTest.java  |  81 -------
 .../ribbon/cloud/RibbonServiceCallRouteTest.java   |  80 -------
 .../cloud/RibbonServiceCallUpdateRouteTest.java    | 108 ---------
 .../cloud/SpringBeanServiceCallRouteTest.java      |  47 ----
 ...ingDslRibbonPropertiesServiceCallRouteTest.java |  47 ----
 .../cloud/SpringDslRibbonServiceCallRouteTest.java |  47 ----
 .../cloud/SpringRibbonServiceCallRouteTest.java    |  82 -------
 .../src/test/resources/log4j2.properties           |  32 ---
 .../cloud/SpringBeanRibbonServiceCallRouteTest.xml |  71 ------
 ...ringDslRibbonPropertiesServiceCallRouteTest.xml |  61 -----
 .../cloud/SpringDslRibbonServiceCallRouteTest.xml  |  64 -----
 ...springbeanribbonservicecallroutetest.properties |  19 --
 ...ribbonpropertiesservicecallroutetest.properties |  19 --
 .../springdslribbonservicecallroutetest.properties |  19 --
 components/pom.xml                                 |   3 -
 .../impl/cloud/ServiceCallProcessorFactory.java    |   6 +-
 .../docs/modules/eips/pages/serviceCall-eip.adoc   |  84 -------
 ...ServiceLoadBalancerConfigurationConfigurer.java | 105 ---------
 .../camel/model/cloud/blacklistServiceFilter.json  |   2 +-
 .../camel/model/cloud/cachingServiceDiscovery.json |   2 +-
 .../model/cloud/combinedServiceDiscovery.json      |   2 +-
 .../camel/model/cloud/combinedServiceFilter.json   |   2 +-
 .../camel/model/cloud/consulServiceDiscovery.json  |   2 +-
 .../camel/model/cloud/customServiceFilter.json     |   2 +-
 .../camel/model/cloud/defaultLoadBalancer.json     |   2 +-
 .../camel/model/cloud/dnsServiceDiscovery.json     |   2 +-
 .../camel/model/cloud/etcdServiceDiscovery.json    |   2 +-
 .../camel/model/cloud/healthyServiceFilter.json    |   2 +-
 .../org/apache/camel/model/cloud/jaxb.index        |   1 -
 .../model/cloud/kubernetesServiceDiscovery.json    |   2 +-
 .../model/cloud/loadBalancerConfiguration.json     |   2 +-
 .../model/cloud/passThroughServiceFilter.json      |   2 +-
 .../org/apache/camel/model/cloud/serviceCall.json  |   2 +-
 .../model/cloud/serviceCallConfiguration.json      |   2 +-
 .../model/cloud/serviceChooserConfiguration.json   |   2 +-
 .../model/cloud/serviceDiscoveryConfiguration.json |   2 +-
 .../camel/model/cloud/serviceExpression.json       |   2 +-
 .../model/cloud/serviceFilterConfiguration.json    |   2 +-
 .../camel/model/cloud/staticServiceDiscovery.json  |   2 +-
 .../model/cloud/zookeeperServiceDiscovery.json     |   2 +-
 ...erviceCallServiceLoadBalancerConfiguration.java | 132 -----------
 .../model/cloud/ServiceCallConfiguration.java      |   8 +-
 .../cloud/ServiceCallConfigurationDefinition.java  |  17 --
 .../camel/model/cloud/ServiceCallDefinition.java   |  18 --
 .../ServiceCallServiceFilterConfiguration.java     |   4 +-
 ...erviceCallServiceLoadBalancerConfiguration.java |   4 +-
 .../java/org/apache/camel/xml/in/ModelParser.java  |  14 --
 .../modules/others/examples/json/ribbon.json       |   1 -
 docs/components/modules/others/nav.adoc            |   1 -
 docs/components/modules/others/pages/ribbon.adoc   |   1 -
 .../dsl/yaml/deserializers/ModelDeserializers.java |  91 -------
 .../deserializers/ModelDeserializersResolver.java  |   3 -
 .../src/generated/resources/camel-yaml-dsl.json    |  32 ---
 .../src/generated/resources/camelYamlDsl.json      |  32 ---
 parent/pom.xml                                     |   7 -
 103 files changed, 56 insertions(+), 2813 deletions(-)

diff --git a/bom/camel-bom/pom.xml b/bom/camel-bom/pom.xml
index bd15bdad577..7727e81db9a 100644
--- a/bom/camel-bom/pom.xml
+++ b/bom/camel-bom/pom.xml
@@ -1703,11 +1703,6 @@
         <artifactId>camel-resteasy</artifactId>
         <version>${project.version}</version>
       </dependency>
-      <dependency>
-        <groupId>org.apache.camel</groupId>
-        <artifactId>camel-ribbon</artifactId>
-        <version>${project.version}</version>
-      </dependency>
       <dependency>
         <groupId>org.apache.camel</groupId>
         <artifactId>camel-robotframework</artifactId>
diff --git a/camel-dependencies/pom.xml b/camel-dependencies/pom.xml
index a24e6ee927b..96bb040af2c 100644
--- a/camel-dependencies/pom.xml
+++ b/camel-dependencies/pom.xml
@@ -472,7 +472,6 @@
     <resilience4j-version>1.7.1</resilience4j-version>
     <rest-assured-version>4.4.0</rest-assured-version>
     <resteasy-version>4.5.6.Final</resteasy-version>
-    <ribbon-version>2.3.0</ribbon-version>
     <roaster-version>2.23.2.Final</roaster-version>
     <robotframework-version>4.1.2</robotframework-version>
     <rome-version>1.18.0</rome-version>
@@ -483,7 +482,6 @@
     <scala-version>2.11.11</scala-version>
     <servicemix-specs-version>2.9.0</servicemix-specs-version>
     <servlet-version-range>[3,4)</servlet-version-range>
-    <servo-version>0.10.1</servo-version>
     <shiro-version>1.8.0</shiro-version>
     <shrinkwrap-descriptors-version>2.0.0</shrinkwrap-descriptors-version>
     <shrinkwrap-resolver-version>3.1.3</shrinkwrap-resolver-version>
diff --git a/catalog/camel-allcomponents/pom.xml b/catalog/camel-allcomponents/pom.xml
index 9bfbe4cc03f..c6cda90d6a6 100644
--- a/catalog/camel-allcomponents/pom.xml
+++ b/catalog/camel-allcomponents/pom.xml
@@ -1157,10 +1157,6 @@
 			<groupId>org.apache.camel</groupId>
 			<artifactId>camel-resteasy</artifactId>
 		</dependency>
-		<dependency>
-			<groupId>org.apache.camel</groupId>
-			<artifactId>camel-ribbon</artifactId>
-		</dependency>
 		<dependency>
 			<groupId>org.apache.camel</groupId>
 			<artifactId>camel-robotframework</artifactId>
diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/blacklistServiceFilter.json b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/blacklistServiceFilter.json
index 7be4b9958e1..969158ef1fa 100644
--- a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/blacklistServiceFilter.json
+++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/blacklistServiceFilter.json
@@ -12,7 +12,7 @@
   },
   "properties": {
     "servers": { "kind": "element", "displayName": "Servers", "required": false, "type": "array", "javaType": "java.util.List<java.lang.String>", "deprecated": false, "autowired": false, "secret": false, "description": "Sets the server blacklist. Each entry can be a list of servers separated by comma in the format: servicehost:port,servicehost2:port,servicehost3:port" },
-    "properties": { "kind": "element", "displayName": "Properties", "label": "advanced", "required": false, "type": "array", "javaType": "java.util.List<org.apache.camel.model.PropertyDefinition>", "deprecated": false, "autowired": false, "secret": false, "description": "Set client properties to use. These properties are specific to what service call implementation are in use. For example if using ribbon, then the client properties are define in com.netflix.client.config.CommonClientConf [...]
+    "properties": { "kind": "element", "displayName": "Properties", "label": "advanced", "required": false, "type": "array", "javaType": "java.util.List<org.apache.camel.model.PropertyDefinition>", "deprecated": false, "autowired": false, "secret": false, "description": "Set client properties to use. These properties are specific to what service call implementation are in use. For example if using a different one, then the client properties are defined according to the specific service i [...]
     "id": { "kind": "attribute", "displayName": "Id", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "The id of this node" }
   }
 }
diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/cachingServiceDiscovery.json b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/cachingServiceDiscovery.json
index 0991639c7d9..8a07a2afa57 100644
--- a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/cachingServiceDiscovery.json
+++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/cachingServiceDiscovery.json
@@ -14,7 +14,7 @@
     "timeout": { "kind": "attribute", "displayName": "Timeout", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "60", "description": "Set the time the services will be retained." },
     "units": { "kind": "attribute", "displayName": "Units", "required": false, "type": "enum", "javaType": "java.util.concurrent.TimeUnit", "enum": [ "NANOSECONDS", "MICROSECONDS", "MILLISECONDS", "SECONDS", "MINUTES", "HOURS", "DAYS" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "SECONDS", "description": "Set the time unit for the timeout." },
     "serviceDiscoveryConfiguration": { "kind": "element", "displayName": "Service Discovery Configuration", "required": true, "type": "object", "javaType": "org.apache.camel.model.cloud.ServiceCallServiceDiscoveryConfiguration", "oneOf": [ "combinedServiceDiscovery", "consulServiceDiscovery", "dnsServiceDiscovery", "etcdServiceDiscovery", "kubernetesServiceDiscovery", "staticServiceDiscovery" ], "deprecated": false, "autowired": false, "secret": false, "description": "Set the service-cal [...]
-    "properties": { "kind": "element", "displayName": "Properties", "label": "advanced", "required": false, "type": "array", "javaType": "java.util.List<org.apache.camel.model.PropertyDefinition>", "deprecated": false, "autowired": false, "secret": false, "description": "Set client properties to use. These properties are specific to what service call implementation are in use. For example if using ribbon, then the client properties are define in com.netflix.client.config.CommonClientConf [...]
+    "properties": { "kind": "element", "displayName": "Properties", "label": "advanced", "required": false, "type": "array", "javaType": "java.util.List<org.apache.camel.model.PropertyDefinition>", "deprecated": false, "autowired": false, "secret": false, "description": "Set client properties to use. These properties are specific to what service call implementation are in use. For example if using a different one, then the client properties are defined according to the specific service i [...]
     "id": { "kind": "attribute", "displayName": "Id", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "The id of this node" }
   }
 }
diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/combinedServiceDiscovery.json b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/combinedServiceDiscovery.json
index a361606db9e..32693950a88 100644
--- a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/combinedServiceDiscovery.json
+++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/combinedServiceDiscovery.json
@@ -12,7 +12,7 @@
   },
   "properties": {
     "serviceDiscoveryConfigurations": { "kind": "element", "displayName": "Service Discovery Configurations", "required": true, "type": "array", "javaType": "java.util.List<org.apache.camel.model.cloud.ServiceCallServiceDiscoveryConfiguration>", "oneOf": [ "cachingServiceDiscovery", "consulServiceDiscovery", "dnsServiceDiscovery", "etcdServiceDiscovery", "kubernetesServiceDiscovery", "staticServiceDiscovery" ], "deprecated": false, "autowired": false, "secret": false, "description": "Lis [...]
-    "properties": { "kind": "element", "displayName": "Properties", "label": "advanced", "required": false, "type": "array", "javaType": "java.util.List<org.apache.camel.model.PropertyDefinition>", "deprecated": false, "autowired": false, "secret": false, "description": "Set client properties to use. These properties are specific to what service call implementation are in use. For example if using ribbon, then the client properties are define in com.netflix.client.config.CommonClientConf [...]
+    "properties": { "kind": "element", "displayName": "Properties", "label": "advanced", "required": false, "type": "array", "javaType": "java.util.List<org.apache.camel.model.PropertyDefinition>", "deprecated": false, "autowired": false, "secret": false, "description": "Set client properties to use. These properties are specific to what service call implementation are in use. For example if using a different one, then the client properties are defined according to the specific service i [...]
     "id": { "kind": "attribute", "displayName": "Id", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "The id of this node" }
   }
 }
diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/combinedServiceFilter.json b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/combinedServiceFilter.json
index f547e4a557a..edd3b44ef78 100644
--- a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/combinedServiceFilter.json
+++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/combinedServiceFilter.json
@@ -12,7 +12,7 @@
   },
   "properties": {
     "serviceFilterConfigurations": { "kind": "element", "displayName": "Service Filter Configurations", "required": true, "type": "array", "javaType": "java.util.List<org.apache.camel.model.cloud.ServiceCallServiceFilterConfiguration>", "oneOf": [ "blacklistServiceFilter", "customServiceFilter", "healthyServiceFilter", "passThroughServiceFilter" ], "deprecated": false, "autowired": false, "secret": false, "description": "List of ServiceFilter configuration to use" },
-    "properties": { "kind": "element", "displayName": "Properties", "label": "advanced", "required": false, "type": "array", "javaType": "java.util.List<org.apache.camel.model.PropertyDefinition>", "deprecated": false, "autowired": false, "secret": false, "description": "Set client properties to use. These properties are specific to what service call implementation are in use. For example if using ribbon, then the client properties are define in com.netflix.client.config.CommonClientConf [...]
+    "properties": { "kind": "element", "displayName": "Properties", "label": "advanced", "required": false, "type": "array", "javaType": "java.util.List<org.apache.camel.model.PropertyDefinition>", "deprecated": false, "autowired": false, "secret": false, "description": "Set client properties to use. These properties are specific to what service call implementation are in use. For example if using a different one, then the client properties are defined according to the specific service i [...]
     "id": { "kind": "attribute", "displayName": "Id", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "The id of this node" }
   }
 }
diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/consulServiceDiscovery.json b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/consulServiceDiscovery.json
index efb6683a742..939a64113ef 100644
--- a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/consulServiceDiscovery.json
+++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/consulServiceDiscovery.json
@@ -20,7 +20,7 @@
     "readTimeoutMillis": { "kind": "attribute", "displayName": "Read Timeout Millis", "required": false, "type": "integer", "javaType": "java.lang.Long", "deprecated": false, "autowired": false, "secret": false, "description": "Read timeout for OkHttpClient" },
     "writeTimeoutMillis": { "kind": "attribute", "displayName": "Write Timeout Millis", "required": false, "type": "integer", "javaType": "java.lang.Long", "deprecated": false, "autowired": false, "secret": false, "description": "Write timeout for OkHttpClient" },
     "blockSeconds": { "kind": "attribute", "displayName": "Block Seconds", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "10", "description": "The seconds to wait for a watch event, default 10 seconds" },
-    "properties": { "kind": "element", "displayName": "Properties", "label": "advanced", "required": false, "type": "array", "javaType": "java.util.List<org.apache.camel.model.PropertyDefinition>", "deprecated": false, "autowired": false, "secret": false, "description": "Set client properties to use. These properties are specific to what service call implementation are in use. For example if using ribbon, then the client properties are define in com.netflix.client.config.CommonClientConf [...]
+    "properties": { "kind": "element", "displayName": "Properties", "label": "advanced", "required": false, "type": "array", "javaType": "java.util.List<org.apache.camel.model.PropertyDefinition>", "deprecated": false, "autowired": false, "secret": false, "description": "Set client properties to use. These properties are specific to what service call implementation are in use. For example if using a different one, then the client properties are defined according to the specific service i [...]
     "id": { "kind": "attribute", "displayName": "Id", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "The id of this node" }
   }
 }
diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/customServiceFilter.json b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/customServiceFilter.json
index 333b5bd88de..25efec3de7c 100644
--- a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/customServiceFilter.json
+++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/customServiceFilter.json
@@ -12,7 +12,7 @@
   },
   "properties": {
     "ref": { "kind": "attribute", "displayName": "Ref", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Reference of a ServiceFilter" },
-    "properties": { "kind": "element", "displayName": "Properties", "label": "advanced", "required": false, "type": "array", "javaType": "java.util.List<org.apache.camel.model.PropertyDefinition>", "deprecated": false, "autowired": false, "secret": false, "description": "Set client properties to use. These properties are specific to what service call implementation are in use. For example if using ribbon, then the client properties are define in com.netflix.client.config.CommonClientConf [...]
+    "properties": { "kind": "element", "displayName": "Properties", "label": "advanced", "required": false, "type": "array", "javaType": "java.util.List<org.apache.camel.model.PropertyDefinition>", "deprecated": false, "autowired": false, "secret": false, "description": "Set client properties to use. These properties are specific to what service call implementation are in use. For example if using a different one, then the client properties are defined according to the specific service i [...]
     "id": { "kind": "attribute", "displayName": "Id", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "The id of this node" }
   }
 }
diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/defaultLoadBalancer.json b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/defaultLoadBalancer.json
index d9f7deae162..89aab217552 100644
--- a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/defaultLoadBalancer.json
+++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/defaultLoadBalancer.json
@@ -11,7 +11,7 @@
     "output": false
   },
   "properties": {
-    "properties": { "kind": "element", "displayName": "Properties", "label": "advanced", "required": false, "type": "array", "javaType": "java.util.List<org.apache.camel.model.PropertyDefinition>", "deprecated": false, "autowired": false, "secret": false, "description": "Set client properties to use. These properties are specific to what service call implementation are in use. For example if using ribbon, then the client properties are define in com.netflix.client.config.CommonClientConf [...]
+    "properties": { "kind": "element", "displayName": "Properties", "label": "advanced", "required": false, "type": "array", "javaType": "java.util.List<org.apache.camel.model.PropertyDefinition>", "deprecated": false, "autowired": false, "secret": false, "description": "Set client properties to use. These properties are specific to what service call implementation are in use. For example if using a different one, then the client properties are defined according to the specific service i [...]
     "id": { "kind": "attribute", "displayName": "Id", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "The id of this node" }
   }
 }
diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/dnsServiceDiscovery.json b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/dnsServiceDiscovery.json
index 776ce1fc181..fbeca3a3692 100644
--- a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/dnsServiceDiscovery.json
+++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/dnsServiceDiscovery.json
@@ -13,7 +13,7 @@
   "properties": {
     "proto": { "kind": "attribute", "displayName": "Proto", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "_tcp", "description": "The transport protocol of the desired service." },
     "domain": { "kind": "attribute", "displayName": "Domain", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "The domain name;" },
-    "properties": { "kind": "element", "displayName": "Properties", "label": "advanced", "required": false, "type": "array", "javaType": "java.util.List<org.apache.camel.model.PropertyDefinition>", "deprecated": false, "autowired": false, "secret": false, "description": "Set client properties to use. These properties are specific to what service call implementation are in use. For example if using ribbon, then the client properties are define in com.netflix.client.config.CommonClientConf [...]
+    "properties": { "kind": "element", "displayName": "Properties", "label": "advanced", "required": false, "type": "array", "javaType": "java.util.List<org.apache.camel.model.PropertyDefinition>", "deprecated": false, "autowired": false, "secret": false, "description": "Set client properties to use. These properties are specific to what service call implementation are in use. For example if using a different one, then the client properties are defined according to the specific service i [...]
     "id": { "kind": "attribute", "displayName": "Id", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "The id of this node" }
   }
 }
diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/etcdServiceDiscovery.json b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/etcdServiceDiscovery.json
index 26b0f3e3012..ffb3f43923f 100644
--- a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/etcdServiceDiscovery.json
+++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/etcdServiceDiscovery.json
@@ -17,7 +17,7 @@
     "timeout": { "kind": "attribute", "displayName": "Timeout", "required": false, "type": "integer", "javaType": "java.lang.Long", "deprecated": false, "autowired": false, "secret": false, "description": "To set the maximum time an action could take to complete." },
     "servicePath": { "kind": "attribute", "displayName": "Service Path", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "\/services\/", "description": "The path to look for for service discovery" },
     "type": { "kind": "attribute", "displayName": "Type", "required": false, "type": "enum", "javaType": "java.lang.String", "enum": [ "on-demand", "watch" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "on-demand", "description": "To set the discovery type, valid values are on-demand and watch." },
-    "properties": { "kind": "element", "displayName": "Properties", "label": "advanced", "required": false, "type": "array", "javaType": "java.util.List<org.apache.camel.model.PropertyDefinition>", "deprecated": false, "autowired": false, "secret": false, "description": "Set client properties to use. These properties are specific to what service call implementation are in use. For example if using ribbon, then the client properties are define in com.netflix.client.config.CommonClientConf [...]
+    "properties": { "kind": "element", "displayName": "Properties", "label": "advanced", "required": false, "type": "array", "javaType": "java.util.List<org.apache.camel.model.PropertyDefinition>", "deprecated": false, "autowired": false, "secret": false, "description": "Set client properties to use. These properties are specific to what service call implementation are in use. For example if using a different one, then the client properties are defined according to the specific service i [...]
     "id": { "kind": "attribute", "displayName": "Id", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "The id of this node" }
   }
 }
diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/healthyServiceFilter.json b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/healthyServiceFilter.json
index 071ec2a735b..b675cc1bd7b 100644
--- a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/healthyServiceFilter.json
+++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/healthyServiceFilter.json
@@ -11,7 +11,7 @@
     "output": false
   },
   "properties": {
-    "properties": { "kind": "element", "displayName": "Properties", "label": "advanced", "required": false, "type": "array", "javaType": "java.util.List<org.apache.camel.model.PropertyDefinition>", "deprecated": false, "autowired": false, "secret": false, "description": "Set client properties to use. These properties are specific to what service call implementation are in use. For example if using ribbon, then the client properties are define in com.netflix.client.config.CommonClientConf [...]
+    "properties": { "kind": "element", "displayName": "Properties", "label": "advanced", "required": false, "type": "array", "javaType": "java.util.List<org.apache.camel.model.PropertyDefinition>", "deprecated": false, "autowired": false, "secret": false, "description": "Set client properties to use. These properties are specific to what service call implementation are in use. For example if using a different one, then the client properties are defined according to the specific service i [...]
     "id": { "kind": "attribute", "displayName": "Id", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "The id of this node" }
   }
 }
diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/kubernetesServiceDiscovery.json b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/kubernetesServiceDiscovery.json
index 4b6d5a6bed4..535ca088d16 100644
--- a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/kubernetesServiceDiscovery.json
+++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/kubernetesServiceDiscovery.json
@@ -30,7 +30,7 @@
     "clientKeyFile": { "kind": "attribute", "displayName": "Client Key File", "label": "client", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Sets the Client Keystore data that are loaded from the file when using client lookup" },
     "clientKeyPassphrase": { "kind": "attribute", "displayName": "Client Key Passphrase", "label": "client", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Sets the Client Keystore passphrase when using client lookup" },
     "trustCerts": { "kind": "attribute", "displayName": "Trust Certs", "label": "client", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Sets whether to turn on trust certificate check when using client lookup" },
-    "properties": { "kind": "element", "displayName": "Properties", "label": "advanced", "required": false, "type": "array", "javaType": "java.util.List<org.apache.camel.model.PropertyDefinition>", "deprecated": false, "autowired": false, "secret": false, "description": "Set client properties to use. These properties are specific to what service call implementation are in use. For example if using ribbon, then the client properties are define in com.netflix.client.config.CommonClientConf [...]
+    "properties": { "kind": "element", "displayName": "Properties", "label": "advanced", "required": false, "type": "array", "javaType": "java.util.List<org.apache.camel.model.PropertyDefinition>", "deprecated": false, "autowired": false, "secret": false, "description": "Set client properties to use. These properties are specific to what service call implementation are in use. For example if using a different one, then the client properties are defined according to the specific service i [...]
     "id": { "kind": "attribute", "displayName": "Id", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "The id of this node" }
   }
 }
diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/loadBalancerConfiguration.json b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/loadBalancerConfiguration.json
index d57930597a5..d39c000fc31 100644
--- a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/loadBalancerConfiguration.json
+++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/loadBalancerConfiguration.json
@@ -11,7 +11,7 @@
     "output": false
   },
   "properties": {
-    "properties": { "kind": "element", "displayName": "Properties", "label": "advanced", "required": false, "type": "array", "javaType": "java.util.List<org.apache.camel.model.PropertyDefinition>", "deprecated": false, "autowired": false, "secret": false, "description": "Set client properties to use. These properties are specific to what service call implementation are in use. For example if using ribbon, then the client properties are define in com.netflix.client.config.CommonClientConf [...]
+    "properties": { "kind": "element", "displayName": "Properties", "label": "advanced", "required": false, "type": "array", "javaType": "java.util.List<org.apache.camel.model.PropertyDefinition>", "deprecated": false, "autowired": false, "secret": false, "description": "Set client properties to use. These properties are specific to what service call implementation are in use. For example if using a different one, then the client properties are defined according to the specific service i [...]
     "id": { "kind": "attribute", "displayName": "Id", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "The id of this node" }
   }
 }
diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/passThroughServiceFilter.json b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/passThroughServiceFilter.json
index 1195ecb1ae8..bb63adb918a 100644
--- a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/passThroughServiceFilter.json
+++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/passThroughServiceFilter.json
@@ -11,7 +11,7 @@
     "output": false
   },
   "properties": {
-    "properties": { "kind": "element", "displayName": "Properties", "label": "advanced", "required": false, "type": "array", "javaType": "java.util.List<org.apache.camel.model.PropertyDefinition>", "deprecated": false, "autowired": false, "secret": false, "description": "Set client properties to use. These properties are specific to what service call implementation are in use. For example if using ribbon, then the client properties are define in com.netflix.client.config.CommonClientConf [...]
+    "properties": { "kind": "element", "displayName": "Properties", "label": "advanced", "required": false, "type": "array", "javaType": "java.util.List<org.apache.camel.model.PropertyDefinition>", "deprecated": false, "autowired": false, "secret": false, "description": "Set client properties to use. These properties are specific to what service call implementation are in use. For example if using a different one, then the client properties are defined according to the specific service i [...]
     "id": { "kind": "attribute", "displayName": "Id", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "The id of this node" }
   }
 }
diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/serviceCall.json b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/serviceCall.json
index d52db509c3b..32d559c419a 100644
--- a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/serviceCall.json
+++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/serviceCall.json
@@ -25,7 +25,7 @@
     "expressionRef": { "kind": "attribute", "displayName": "Expression Ref", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Set a reference to a custom Expression to use." },
     "serviceDiscoveryConfiguration": { "kind": "element", "displayName": "Service Discovery Configuration", "required": true, "type": "object", "javaType": "org.apache.camel.model.cloud.ServiceCallServiceDiscoveryConfiguration", "oneOf": [ "cachingServiceDiscovery", "combinedServiceDiscovery", "consulServiceDiscovery", "dnsServiceDiscovery", "etcdServiceDiscovery", "kubernetesServiceDiscovery", "staticServiceDiscovery", "zookeeperServiceDiscovery" ], "deprecated": false, "autowired": fal [...]
     "serviceFilterConfiguration": { "kind": "element", "displayName": "Service Filter Configuration", "required": true, "type": "object", "javaType": "org.apache.camel.model.cloud.ServiceCallServiceFilterConfiguration", "oneOf": [ "blacklistServiceFilter", "combinedServiceFilter", "customServiceFilter", "healthyServiceFilter", "passThroughServiceFilter" ], "deprecated": false, "autowired": false, "secret": false, "description": "Configures the ServiceFilter using the given configuration." },
-    "loadBalancerConfiguration": { "kind": "element", "displayName": "Load Balancer Configuration", "required": true, "type": "object", "javaType": "org.apache.camel.model.cloud.ServiceCallServiceLoadBalancerConfiguration", "oneOf": [ "defaultLoadBalancer", "ribbonLoadBalancer" ], "deprecated": false, "autowired": false, "secret": false, "description": "Configures the LoadBalancer using the given configuration." },
+    "loadBalancerConfiguration": { "kind": "element", "displayName": "Load Balancer Configuration", "required": true, "type": "object", "javaType": "org.apache.camel.model.cloud.ServiceCallServiceLoadBalancerConfiguration", "oneOf": [ "defaultLoadBalancer" ], "deprecated": false, "autowired": false, "secret": false, "description": "Configures the LoadBalancer using the given configuration." },
     "id": { "kind": "attribute", "displayName": "Id", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Sets the id of this node" },
     "description": { "kind": "element", "displayName": "Description", "required": false, "type": "object", "javaType": "org.apache.camel.model.DescriptionDefinition", "deprecated": false, "autowired": false, "secret": false, "description": "Sets the description of this node" }
   }
diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/serviceCallConfiguration.json b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/serviceCallConfiguration.json
index eec8d892abe..0e435721a46 100644
--- a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/serviceCallConfiguration.json
+++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/serviceCallConfiguration.json
@@ -23,7 +23,7 @@
     "expressionRef": { "kind": "attribute", "displayName": "Expression Ref", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Set a reference to a custom Expression to use." },
     "serviceDiscoveryConfiguration": { "kind": "element", "displayName": "Service Discovery Configuration", "required": true, "type": "object", "javaType": "org.apache.camel.model.cloud.ServiceCallServiceDiscoveryConfiguration", "oneOf": [ "cachingServiceDiscovery", "combinedServiceDiscovery", "consulServiceDiscovery", "dnsServiceDiscovery", "etcdServiceDiscovery", "kubernetesServiceDiscovery", "staticServiceDiscovery", "zookeeperServiceDiscovery" ], "deprecated": false, "autowired": fal [...]
     "serviceFilterConfiguration": { "kind": "element", "displayName": "Service Filter Configuration", "required": true, "type": "object", "javaType": "org.apache.camel.model.cloud.ServiceCallServiceFilterConfiguration", "oneOf": [ "blacklistServiceFilter", "combinedServiceFilter", "customServiceFilter", "healthyServiceFilter", "passThroughServiceFilter" ], "deprecated": false, "autowired": false, "secret": false, "description": "Configures the ServiceFilter using the given configuration." },
-    "loadBalancerConfiguration": { "kind": "element", "displayName": "Load Balancer Configuration", "required": true, "type": "object", "javaType": "org.apache.camel.model.cloud.ServiceCallServiceLoadBalancerConfiguration", "oneOf": [ "defaultLoadBalancer", "ribbonLoadBalancer" ], "deprecated": false, "autowired": false, "secret": false, "description": "Configures theL oadBalancer using the given configuration." },
+    "loadBalancerConfiguration": { "kind": "element", "displayName": "Load Balancer Configuration", "required": true, "type": "object", "javaType": "org.apache.camel.model.cloud.ServiceCallServiceLoadBalancerConfiguration", "oneOf": [ "defaultLoadBalancer" ], "deprecated": false, "autowired": false, "secret": false, "description": "Configures theL oadBalancer using the given configuration." },
     "id": { "kind": "attribute", "displayName": "Id", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "The id of this node" }
   }
 }
diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/serviceChooserConfiguration.json b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/serviceChooserConfiguration.json
index 8b691771252..4f01e7b8342 100644
--- a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/serviceChooserConfiguration.json
+++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/serviceChooserConfiguration.json
@@ -11,7 +11,7 @@
     "output": false
   },
   "properties": {
-    "properties": { "kind": "element", "displayName": "Properties", "label": "advanced", "required": false, "type": "array", "javaType": "java.util.List<org.apache.camel.model.PropertyDefinition>", "deprecated": false, "autowired": false, "secret": false, "description": "Set client properties to use. These properties are specific to what service call implementation are in use. For example if using ribbon, then the client properties are define in com.netflix.client.config.CommonClientConf [...]
+    "properties": { "kind": "element", "displayName": "Properties", "label": "advanced", "required": false, "type": "array", "javaType": "java.util.List<org.apache.camel.model.PropertyDefinition>", "deprecated": false, "autowired": false, "secret": false, "description": "Set client properties to use. These properties are specific to what service call implementation are in use. For example if using a different one, then the client properties are defined according to the specific service i [...]
     "id": { "kind": "attribute", "displayName": "Id", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "The id of this node" }
   }
 }
diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/serviceDiscoveryConfiguration.json b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/serviceDiscoveryConfiguration.json
index 0bcad2aedf5..2c189604b2a 100644
--- a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/serviceDiscoveryConfiguration.json
+++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/serviceDiscoveryConfiguration.json
@@ -11,7 +11,7 @@
     "output": false
   },
   "properties": {
-    "properties": { "kind": "element", "displayName": "Properties", "label": "advanced", "required": false, "type": "array", "javaType": "java.util.List<org.apache.camel.model.PropertyDefinition>", "deprecated": false, "autowired": false, "secret": false, "description": "Set client properties to use. These properties are specific to what service call implementation are in use. For example if using ribbon, then the client properties are define in com.netflix.client.config.CommonClientConf [...]
+    "properties": { "kind": "element", "displayName": "Properties", "label": "advanced", "required": false, "type": "array", "javaType": "java.util.List<org.apache.camel.model.PropertyDefinition>", "deprecated": false, "autowired": false, "secret": false, "description": "Set client properties to use. These properties are specific to what service call implementation are in use. For example if using a different one, then the client properties are defined according to the specific service i [...]
     "id": { "kind": "attribute", "displayName": "Id", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "The id of this node" }
   }
 }
diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/serviceExpression.json b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/serviceExpression.json
index 8bc7f641d94..26839b7e258 100644
--- a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/serviceExpression.json
+++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/serviceExpression.json
@@ -13,7 +13,7 @@
   "properties": {
     "hostHeader": { "kind": "attribute", "displayName": "Host Header", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "CamelServiceCallServiceHost", "description": "The header that holds the service host information, default ServiceCallConstants.SERVICE_HOST" },
     "portHeader": { "kind": "attribute", "displayName": "Port Header", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "CamelServiceCallServicePort", "description": "The header that holds the service port information, default ServiceCallConstants.SERVICE_PORT" },
-    "properties": { "kind": "element", "displayName": "Properties", "label": "advanced", "required": false, "type": "array", "javaType": "java.util.List<org.apache.camel.model.PropertyDefinition>", "deprecated": false, "autowired": false, "secret": false, "description": "Set client properties to use. These properties are specific to what service call implementation are in use. For example if using ribbon, then the client properties are define in com.netflix.client.config.CommonClientConf [...]
+    "properties": { "kind": "element", "displayName": "Properties", "label": "advanced", "required": false, "type": "array", "javaType": "java.util.List<org.apache.camel.model.PropertyDefinition>", "deprecated": false, "autowired": false, "secret": false, "description": "Set client properties to use. These properties are specific to what service call implementation are in use. For example if using a different one, then the client properties are defined according to the specific service i [...]
     "id": { "kind": "attribute", "displayName": "Id", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "The id of this node" }
   }
 }
diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/serviceFilterConfiguration.json b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/serviceFilterConfiguration.json
index 9547039228b..9d50b3455d8 100644
--- a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/serviceFilterConfiguration.json
+++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/serviceFilterConfiguration.json
@@ -11,7 +11,7 @@
     "output": false
   },
   "properties": {
-    "properties": { "kind": "element", "displayName": "Properties", "label": "advanced", "required": false, "type": "array", "javaType": "java.util.List<org.apache.camel.model.PropertyDefinition>", "deprecated": false, "autowired": false, "secret": false, "description": "Set client properties to use. These properties are specific to what service call implementation are in use. For example if using ribbon, then the client properties are define in com.netflix.client.config.CommonClientConf [...]
+    "properties": { "kind": "element", "displayName": "Properties", "label": "advanced", "required": false, "type": "array", "javaType": "java.util.List<org.apache.camel.model.PropertyDefinition>", "deprecated": false, "autowired": false, "secret": false, "description": "Set client properties to use. These properties are specific to what service call implementation are in use. For example if using a different one, then the client properties are defined according to the specific service i [...]
     "id": { "kind": "attribute", "displayName": "Id", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "The id of this node" }
   }
 }
diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/staticServiceDiscovery.json b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/staticServiceDiscovery.json
index f2b3da8b602..7ac41477006 100644
--- a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/staticServiceDiscovery.json
+++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/staticServiceDiscovery.json
@@ -12,7 +12,7 @@
   },
   "properties": {
     "servers": { "kind": "element", "displayName": "Servers", "required": false, "type": "array", "javaType": "java.util.List<java.lang.String>", "deprecated": false, "autowired": false, "secret": false, "description": "Sets the server list. Each entry can be a list of servers separated by comma in the format: servicehost:port,servicehost2:port,servicehost3:port" },
-    "properties": { "kind": "element", "displayName": "Properties", "label": "advanced", "required": false, "type": "array", "javaType": "java.util.List<org.apache.camel.model.PropertyDefinition>", "deprecated": false, "autowired": false, "secret": false, "description": "Set client properties to use. These properties are specific to what service call implementation are in use. For example if using ribbon, then the client properties are define in com.netflix.client.config.CommonClientConf [...]
+    "properties": { "kind": "element", "displayName": "Properties", "label": "advanced", "required": false, "type": "array", "javaType": "java.util.List<org.apache.camel.model.PropertyDefinition>", "deprecated": false, "autowired": false, "secret": false, "description": "Set client properties to use. These properties are specific to what service call implementation are in use. For example if using a different one, then the client properties are defined according to the specific service i [...]
     "id": { "kind": "attribute", "displayName": "Id", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "The id of this node" }
   }
 }
diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/zookeeperServiceDiscovery.json b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/zookeeperServiceDiscovery.json
index 19d09764954..891d30739e3 100644
--- a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/zookeeperServiceDiscovery.json
+++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/zookeeperServiceDiscovery.json
@@ -19,7 +19,7 @@
     "sessionTimeout": { "kind": "attribute", "displayName": "Session Timeout", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Session timeout." },
     "connectionTimeout": { "kind": "attribute", "displayName": "Connection Timeout", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Connection timeout." },
     "basePath": { "kind": "attribute", "displayName": "Base Path", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Set the base path to store in ZK" },
-    "properties": { "kind": "element", "displayName": "Properties", "label": "advanced", "required": false, "type": "array", "javaType": "java.util.List<org.apache.camel.model.PropertyDefinition>", "deprecated": false, "autowired": false, "secret": false, "description": "Set client properties to use. These properties are specific to what service call implementation are in use. For example if using ribbon, then the client properties are define in com.netflix.client.config.CommonClientConf [...]
+    "properties": { "kind": "element", "displayName": "Properties", "label": "advanced", "required": false, "type": "array", "javaType": "java.util.List<org.apache.camel.model.PropertyDefinition>", "deprecated": false, "autowired": false, "secret": false, "description": "Set client properties to use. These properties are specific to what service call implementation are in use. For example if using a different one, then the client properties are defined according to the specific service i [...]
     "id": { "kind": "attribute", "displayName": "Id", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "The id of this node" }
   }
 }
diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/others.properties b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/others.properties
index 0f296d8cfc5..7866e724efc 100644
--- a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/others.properties
+++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/others.properties
@@ -44,7 +44,6 @@ reactor
 redis
 resilience4j
 resourceresolver-github
-ribbon
 rxjava
 shiro
 spring-main
diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/others/ribbon.json b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/others/ribbon.json
deleted file mode 100644
index c1528c7de34..00000000000
--- a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/others/ribbon.json
+++ /dev/null
@@ -1,15 +0,0 @@
-{
-  "other": {
-    "kind": "other",
-    "name": "ribbon",
-    "title": "Ribbon",
-    "description": "Using Netflix Ribbon for client side load balancing",
-    "deprecated": true,
-    "firstVersion": "2.18.0",
-    "label": "microservice",
-    "supportLevel": "Stable",
-    "groupId": "org.apache.camel",
-    "artifactId": "camel-ribbon",
-    "version": "3.17.0-SNAPSHOT"
-  }
-}
diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/schemas/camel-spring.xsd b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/schemas/camel-spring.xsd
index 32fc8781ffa..c86ff4cc407 100644
--- a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/schemas/camel-spring.xsd
+++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/schemas/camel-spring.xsd
@@ -1214,14 +1214,6 @@ Resume EIP to support resuming processing from last known offset.
     </xs:annotation>
   </xs:element>
 
-  <xs:element name="ribbonLoadBalancer" type="tns:ribbonServiceCallServiceLoadBalancerConfiguration">
-    <xs:annotation>
-      <xs:documentation xml:lang="en"><![CDATA[
-null
-      ]]></xs:documentation>
-    </xs:annotation>
-  </xs:element>
-
   <xs:element name="rollback" type="tns:rollbackDefinition">
     <xs:annotation>
       <xs:documentation xml:lang="en"><![CDATA[
@@ -12400,8 +12392,8 @@ comma in the format: servicehost:port,servicehost2:port,servicehost3:port.
             <xs:annotation>
               <xs:documentation xml:lang="en"><![CDATA[
 Set client properties to use. These properties are specific to what service call
-implementation are in use. For example if using ribbon, then the client
-properties are define in com.netflix.client.config.CommonClientConfigKey.
+implementation are in use. For example if using a different one, then the client
+properties are defined according to the specific service in use.
               ]]></xs:documentation>
             </xs:annotation>
           </xs:element>
@@ -12843,42 +12835,6 @@ Reference of a ServiceFilter.
     </xs:complexContent>
   </xs:complexType>
 
-  <xs:complexType name="ribbonServiceCallServiceLoadBalancerConfiguration">
-    <xs:complexContent>
-      <xs:extension base="tns:serviceCallServiceLoadBalancerConfiguration">
-        <xs:sequence/>
-        <xs:attribute name="namespace" type="xs:string">
-          <xs:annotation>
-            <xs:documentation xml:lang="en"><![CDATA[
-The namespace.
-            ]]></xs:documentation>
-          </xs:annotation>
-        </xs:attribute>
-        <xs:attribute name="username" type="xs:string">
-          <xs:annotation>
-            <xs:documentation xml:lang="en"><![CDATA[
-The username.
-            ]]></xs:documentation>
-          </xs:annotation>
-        </xs:attribute>
-        <xs:attribute name="password" type="xs:string">
-          <xs:annotation>
-            <xs:documentation xml:lang="en"><![CDATA[
-The password.
-            ]]></xs:documentation>
-          </xs:annotation>
-        </xs:attribute>
-        <xs:attribute name="clientName" type="xs:string">
-          <xs:annotation>
-            <xs:documentation xml:lang="en"><![CDATA[
-Sets the Ribbon client name.
-            ]]></xs:documentation>
-          </xs:annotation>
-        </xs:attribute>
-      </xs:extension>
-    </xs:complexContent>
-  </xs:complexType>
-
   <xs:complexType name="serviceCallConfigurationDefinition">
     <xs:complexContent>
       <xs:extension base="tns:identifiedType">
@@ -12900,10 +12856,7 @@ Sets the Ribbon client name.
             <xs:element ref="tns:healthyServiceFilter"/>
             <xs:element ref="tns:passThroughServiceFilter"/>
           </xs:choice>
-          <xs:choice minOccurs="0">
-            <xs:element ref="tns:ribbonLoadBalancer"/>
-            <xs:element ref="tns:defaultLoadBalancer"/>
-          </xs:choice>
+          <xs:element minOccurs="0" ref="tns:defaultLoadBalancer"/>
           <xs:element minOccurs="0" name="expression" type="tns:serviceCallExpressionConfiguration">
             <xs:annotation>
               <xs:documentation xml:lang="en"><![CDATA[
@@ -13108,10 +13061,7 @@ ServiceCallConstants.SERVICE_PORT. Default value: CamelServiceCallServicePort
             <xs:element ref="tns:healthyServiceFilter"/>
             <xs:element ref="tns:passThroughServiceFilter"/>
           </xs:choice>
-          <xs:choice minOccurs="0">
-            <xs:element ref="tns:ribbonLoadBalancer"/>
-            <xs:element ref="tns:defaultLoadBalancer"/>
-          </xs:choice>
+          <xs:element minOccurs="0" ref="tns:defaultLoadBalancer"/>
           <xs:element minOccurs="0" name="expression" type="tns:serviceCallExpressionConfiguration">
             <xs:annotation>
               <xs:documentation xml:lang="en"><![CDATA[
diff --git a/components/camel-consul/pom.xml b/components/camel-consul/pom.xml
index 06933692b93..50a644735f7 100644
--- a/components/camel-consul/pom.xml
+++ b/components/camel-consul/pom.xml
@@ -121,11 +121,6 @@
             <version>${assertj-version}</version>
             <scope>test</scope>
         </dependency>
-        <dependency>
-            <groupId>org.apache.camel</groupId>
-            <artifactId>camel-ribbon</artifactId>
-            <scope>test</scope>
-        </dependency>
         <dependency>
             <groupId>org.apache.logging.log4j</groupId>
             <artifactId>log4j-slf4j-impl</artifactId>
diff --git a/components/camel-consul/src/test/java/org/apache/camel/component/consul/cloud/ConsulRibbonServiceCallRouteIR.java b/components/camel-consul/src/test/java/org/apache/camel/component/consul/cloud/ConsulRibbonServiceCallRouteIR.java
deleted file mode 100644
index f20c826e31a..00000000000
--- a/components/camel-consul/src/test/java/org/apache/camel/component/consul/cloud/ConsulRibbonServiceCallRouteIR.java
+++ /dev/null
@@ -1,103 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.camel.component.consul.cloud;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import com.orbitz.consul.AgentClient;
-import com.orbitz.consul.model.agent.ImmutableRegistration;
-import com.orbitz.consul.model.agent.Registration;
-import org.apache.camel.RoutesBuilder;
-import org.apache.camel.builder.RouteBuilder;
-import org.apache.camel.component.consul.ConsulTestSupport;
-import org.apache.camel.test.AvailablePortFinder;
-import org.junit.jupiter.api.Test;
-
-public class ConsulRibbonServiceCallRouteIR extends ConsulTestSupport {
-    private static final String SERVICE_NAME = "http-service";
-    private static final int SERVICE_COUNT = 5;
-
-    private AgentClient client;
-    private List<Registration> registrations;
-    private List<String> expectedBodies;
-
-    // *************************************************************************
-    // Setup / tear down
-    // *************************************************************************
-
-    @Override
-    protected void doPreSetup() throws Exception {
-        super.doPreSetup();
-
-        client = getConsul().agentClient();
-
-        registrations = new ArrayList<>(SERVICE_COUNT);
-        expectedBodies = new ArrayList<>(SERVICE_COUNT);
-
-        for (int i = 0; i < SERVICE_COUNT; i++) {
-            Registration r = ImmutableRegistration.builder().id("service-" + i).name(SERVICE_NAME).address("127.0.0.1")
-                    .port(AvailablePortFinder.getNextAvailable()).build();
-
-            client.register(r);
-
-            registrations.add(r);
-            expectedBodies.add("ping on " + r.getPort().get());
-        }
-    }
-
-    @Override
-    public void doPostTearDown() throws Exception {
-        super.doPostTearDown();
-
-        registrations.forEach(r -> client.deregister(r.getId()));
-    }
-
-    // *************************************************************************
-    // Test
-    // *************************************************************************
-
-    @Test
-    public void testServiceCall() throws Exception {
-        getMockEndpoint("mock:result").expectedMessageCount(SERVICE_COUNT);
-        getMockEndpoint("mock:result").expectedBodiesReceivedInAnyOrder(expectedBodies);
-
-        registrations.forEach(r -> template.sendBody("direct:start", "ping"));
-
-        assertMockEndpointsSatisfied();
-    }
-
-    // *************************************************************************
-    // Route
-    // *************************************************************************
-
-    @Override
-    protected RoutesBuilder createRouteBuilder() {
-        return new RouteBuilder() {
-            @Override
-            public void configure() {
-                from("direct:start").serviceCall().name(SERVICE_NAME).component("http").consulServiceDiscovery()
-                        .url(service.getConsulUrl()).endParent()
-                        .to("log:org.apache.camel.component.consul.processor.service?level=INFO&showAll=true&multiline=true")
-                        .to("mock:result");
-
-                registrations.forEach(r -> fromF("jetty:http://%s:%d", r.getAddress().get(), r.getPort().get()).transform()
-                        .simple("${in.body} on " + r.getPort().get()));
-            }
-        };
-    }
-}
diff --git a/components/camel-consul/src/test/java/org/apache/camel/component/consul/cloud/SpringConsulDefaultServiceCallRouteIT.java b/components/camel-consul/src/test/java/org/apache/camel/component/consul/cloud/SpringConsulDefaultServiceCallRouteIT.java
index 90c200e74b6..0f452633a4c 100644
--- a/components/camel-consul/src/test/java/org/apache/camel/component/consul/cloud/SpringConsulDefaultServiceCallRouteIT.java
+++ b/components/camel-consul/src/test/java/org/apache/camel/component/consul/cloud/SpringConsulDefaultServiceCallRouteIT.java
@@ -18,7 +18,6 @@ package org.apache.camel.component.consul.cloud;
 
 import java.util.List;
 
-import org.apache.camel.component.ribbon.cloud.RibbonServiceLoadBalancer;
 import org.apache.camel.impl.cloud.DefaultServiceCallProcessor;
 import org.junit.jupiter.api.Assertions;
 import org.junit.jupiter.api.Test;
@@ -38,7 +37,5 @@ public class SpringConsulDefaultServiceCallRouteIT extends SpringConsulServiceCa
 
         Assertions.assertFalse(processors.isEmpty());
         Assertions.assertEquals(2, processors.size());
-        Assertions.assertFalse(processors.get(0).getLoadBalancer() instanceof RibbonServiceLoadBalancer);
-        Assertions.assertFalse(processors.get(1).getLoadBalancer() instanceof RibbonServiceLoadBalancer);
     }
 }
diff --git a/components/camel-consul/src/test/java/org/apache/camel/component/consul/cloud/SpringConsulExpressionServiceCallRouteIT.java b/components/camel-consul/src/test/java/org/apache/camel/component/consul/cloud/SpringConsulExpressionServiceCallRouteIT.java
index b94aad36461..e5c3eb870a1 100644
--- a/components/camel-consul/src/test/java/org/apache/camel/component/consul/cloud/SpringConsulExpressionServiceCallRouteIT.java
+++ b/components/camel-consul/src/test/java/org/apache/camel/component/consul/cloud/SpringConsulExpressionServiceCallRouteIT.java
@@ -18,7 +18,6 @@ package org.apache.camel.component.consul.cloud;
 
 import java.util.List;
 
-import org.apache.camel.component.ribbon.cloud.RibbonServiceLoadBalancer;
 import org.apache.camel.impl.cloud.DefaultServiceCallProcessor;
 import org.junit.jupiter.api.Assertions;
 import org.junit.jupiter.api.Test;
@@ -38,7 +37,5 @@ public class SpringConsulExpressionServiceCallRouteIT extends SpringConsulServic
 
         Assertions.assertFalse(processors.isEmpty());
         Assertions.assertEquals(2, processors.size());
-        Assertions.assertFalse(processors.get(0).getLoadBalancer() instanceof RibbonServiceLoadBalancer);
-        Assertions.assertFalse(processors.get(1).getLoadBalancer() instanceof RibbonServiceLoadBalancer);
     }
 }
diff --git a/components/camel-consul/src/test/java/org/apache/camel/component/consul/cloud/SpringConsulRibbonServiceCallRouteIT.java b/components/camel-consul/src/test/java/org/apache/camel/component/consul/cloud/SpringConsulRibbonServiceCallRouteIT.java
deleted file mode 100644
index c278b6bcd54..00000000000
--- a/components/camel-consul/src/test/java/org/apache/camel/component/consul/cloud/SpringConsulRibbonServiceCallRouteIT.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.camel.component.consul.cloud;
-
-import java.util.List;
-
-import org.apache.camel.component.ribbon.cloud.RibbonServiceLoadBalancer;
-import org.apache.camel.impl.cloud.DefaultServiceCallProcessor;
-import org.junit.jupiter.api.Assertions;
-import org.junit.jupiter.api.Test;
-import org.springframework.context.support.AbstractApplicationContext;
-import org.springframework.context.support.ClassPathXmlApplicationContext;
-
-public class SpringConsulRibbonServiceCallRouteIT extends SpringConsulServiceCallRouteTest {
-    @Override
-    protected AbstractApplicationContext createApplicationContext() {
-        return new ClassPathXmlApplicationContext(
-                "org/apache/camel/component/consul/cloud/SpringConsulRibbonServiceCallRouteTest.xml");
-    }
-
-    @Test
-    public void testServiceCallConfiguration() {
-        List<DefaultServiceCallProcessor> processors = findServiceCallProcessors();
-
-        Assertions.assertFalse(processors.isEmpty());
-        Assertions.assertEquals(2, processors.size());
-        Assertions.assertTrue(processors.get(0).getLoadBalancer() instanceof RibbonServiceLoadBalancer);
-        Assertions.assertTrue(processors.get(1).getLoadBalancer() instanceof RibbonServiceLoadBalancer);
-    }
-}
diff --git a/components/camel-consul/src/test/resources/org/apache/camel/component/consul/cloud/SpringConsulRibbonServiceCallRouteTest.xml b/components/camel-consul/src/test/resources/org/apache/camel/component/consul/cloud/SpringConsulRibbonServiceCallRouteTest.xml
deleted file mode 100644
index 59cb058f6d1..00000000000
--- a/components/camel-consul/src/test/resources/org/apache/camel/component/consul/cloud/SpringConsulRibbonServiceCallRouteTest.xml
+++ /dev/null
@@ -1,130 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-
-    Licensed to the Apache Software Foundation (ASF) under one or more
-    contributor license agreements.  See the NOTICE file distributed with
-    this work for additional information regarding copyright ownership.
-    The ASF licenses this file to You under the Apache License, Version 2.0
-    (the "License"); you may not use this file except in compliance with
-    the License.  You may obtain a copy of the License at
-
-         http://www.apache.org/licenses/LICENSE-2.0
-
-    Unless required by applicable law or agreed to in writing, software
-    distributed under the License is distributed on an "AS IS" BASIS,
-    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-    See the License for the specific language governing permissions and
-    limitations under the License.
-
--->
-<beans xmlns="http://www.springframework.org/schema/beans"
-       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-       xsi:schemaLocation="
-         http://www.springframework.org/schema/beans
-         http://www.springframework.org/schema/beans/spring-beans.xsd
-         http://camel.apache.org/schema/spring
-         http://camel.apache.org/schema/spring/camel-spring.xsd">
-
-  <camelContext xmlns="http://camel.apache.org/schema/spring">
-
-    <!-- ************************************* -->
-    <!-- ServiceCall                           -->
-    <!-- ************************************* -->
-
-    <defaultServiceCallConfiguration id="default" component="http">
-      <!-- service discovery -->
-      <consulServiceDiscovery url="http://{{consul.host}}:{{consul.port}}"/>
-
-      <!-- service filter -->
-      <blacklistServiceFilter>
-        <servers>http-service-1@127.0.0.1:9011</servers>
-        <servers>http-service-2@127.0.0.1:9021</servers>
-      </blacklistServiceFilter>
-    </defaultServiceCallConfiguration>
-
-    <serviceCallConfiguration id="service-2" component="http">
-      <!-- service filter -->
-      <blacklistServiceFilter>
-        <servers>http-service-2@127.0.0.1:9022</servers>
-      </blacklistServiceFilter>
-    </serviceCallConfiguration>
-
-    <!-- ************************************* -->
-    <!-- Routes                                -->
-    <!-- ************************************* -->
-
-    <route id="scall">
-      <from uri="direct:start"/>
-      <choice>
-        <when>
-          <simple>${body} == 'service-1'</simple>
-          <serviceCall name="http-service-1">
-            <ribbonLoadBalancer/>
-          </serviceCall>
-          <to uri="mock:result-1"/>
-        </when>
-        <when>
-          <simple>${body} == 'service-2'</simple>
-          <serviceCall name="http-service-2" configurationRef="service-2">
-            <ribbonLoadBalancer/>
-          </serviceCall>
-          <to uri="mock:result-2"/>
-        </when>
-      </choice>
-    </route>
-
-    <!-- ************************************* -->
-    <!-- http-service-1                        -->
-    <!-- ************************************* -->
-
-    <route>
-      <from uri="jetty:http://localhost:9011"/>
-      <transform>
-        <simple>${body} 9011</simple>
-      </transform>
-    </route>
-
-    <route>
-      <from uri="jetty:http://localhost:9012"/>
-      <transform>
-        <simple>${body} 9012</simple>
-      </transform>
-    </route>
-
-    <route>
-      <from uri="jetty:http://localhost:9013"/>
-      <transform>
-        <simple>${body} 9013</simple>
-      </transform>
-    </route>
-
-    <!-- ************************************* -->
-    <!-- http-service-2                        -->
-    <!-- ************************************* -->
-
-    <route>
-      <from uri="jetty:http://localhost:9021"/>
-      <transform>
-        <simple>${body} 9021</simple>
-      </transform>
-    </route>
-
-    <route>
-      <from uri="jetty:http://localhost:9022"/>
-      <transform>
-        <simple>${body} 9022</simple>
-      </transform>
-    </route>
-
-    <route>
-      <from uri="jetty:http://localhost:9023"/>
-      <transform>
-        <simple>${body} 9023</simple>
-      </transform>
-    </route>
-
-
-
-  </camelContext>
-
-</beans>
diff --git a/components/camel-ribbon/pom.xml b/components/camel-ribbon/pom.xml
deleted file mode 100644
index 691507b8297..00000000000
--- a/components/camel-ribbon/pom.xml
+++ /dev/null
@@ -1,113 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-
-    Licensed to the Apache Software Foundation (ASF) under one or more
-    contributor license agreements.  See the NOTICE file distributed with
-    this work for additional information regarding copyright ownership.
-    The ASF licenses this file to You under the Apache License, Version 2.0
-    (the "License"); you may not use this file except in compliance with
-    the License.  You may obtain a copy of the License at
-
-         http://www.apache.org/licenses/LICENSE-2.0
-
-    Unless required by applicable law or agreed to in writing, software
-    distributed under the License is distributed on an "AS IS" BASIS,
-    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-    See the License for the specific language governing permissions and
-    limitations under the License.
-
--->
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-    <modelVersion>4.0.0</modelVersion>
-
-    <parent>
-        <groupId>org.apache.camel</groupId>
-        <artifactId>components</artifactId>
-        <version>3.17.0-SNAPSHOT</version>
-    </parent>
-
-    <artifactId>camel-ribbon</artifactId>
-    <packaging>jar</packaging>
-
-    <name>Camel :: Ribbon (deprecated)</name>
-    <description>Using Netflix Ribbon for client side load balancing</description>
-
-    <properties>
-        <firstVersion>2.18.0</firstVersion>
-        <label>microservice</label>
-
-    </properties>
-
-    <dependencies>
-
-        <dependency>
-            <groupId>org.apache.camel</groupId>
-            <artifactId>camel-cloud</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.camel</groupId>
-            <artifactId>camel-support</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>com.netflix.ribbon</groupId>
-            <artifactId>ribbon-core</artifactId>
-            <version>${ribbon-version}</version>
-        </dependency>
-        <dependency>
-            <groupId>com.netflix.ribbon</groupId>
-            <artifactId>ribbon-loadbalancer</artifactId>
-            <version>${ribbon-version}</version>
-        </dependency>
-        <dependency>
-            <groupId>com.netflix.servo</groupId>
-            <artifactId>servo-core</artifactId>
-            <scope>provided</scope>
-            <version>${servo-version}</version>
-        </dependency>
-
-        <!-- testing -->
-        <dependency>
-            <groupId>org.apache.camel</groupId>
-            <artifactId>camel-test-spring-junit5</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.camel</groupId>
-            <artifactId>camel-jetty</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.camel</groupId>
-            <artifactId>camel-http</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.camel</groupId>
-            <artifactId>camel-mock</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.camel</groupId>
-            <artifactId>camel-direct</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.camel</groupId>
-            <artifactId>camel-bean</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.camel</groupId>
-            <artifactId>camel-log</artifactId>
-            <scope>test</scope>
-        </dependency>
-
-        <!-- logging -->
-        <dependency>
-            <groupId>org.apache.logging.log4j</groupId>
-            <artifactId>log4j-slf4j-impl</artifactId>
-            <scope>test</scope>
-        </dependency>
-    </dependencies>
-
-</project>
diff --git a/components/camel-ribbon/src/generated/java/org/apache/camel/component/ribbon/cloud/RibbonServiceLoadBalancerFactoryConfigurer.java b/components/camel-ribbon/src/generated/java/org/apache/camel/component/ribbon/cloud/RibbonServiceLoadBalancerFactoryConfigurer.java
deleted file mode 100644
index 16a62d0f0a6..00000000000
--- a/components/camel-ribbon/src/generated/java/org/apache/camel/component/ribbon/cloud/RibbonServiceLoadBalancerFactoryConfigurer.java
+++ /dev/null
@@ -1,82 +0,0 @@
-/* Generated by camel build tools - do NOT edit this file! */
-package org.apache.camel.component.ribbon.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.component.ribbon.cloud.RibbonServiceLoadBalancerFactory;
-
-/**
- * Generated by camel build tools - do NOT edit this file!
- */
-@SuppressWarnings("unchecked")
-public class RibbonServiceLoadBalancerFactoryConfigurer 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.component.ribbon.cloud.RibbonServiceLoadBalancerFactory target = (org.apache.camel.component.ribbon.cloud.RibbonServiceLoadBalancerFactory) obj;
-        switch (ignoreCase ? name.toLowerCase() : name) {
-        case "clientname":
-        case "ClientName": target.setClientName(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.Map.class, value)); return true;
-        case "username":
-        case "Username": target.setUsername(property(camelContext, java.lang.String.class, value)); return true;
-        default: return false;
-        }
-    }
-
-    @Override
-    public Class<?> getOptionType(String name, boolean ignoreCase) {
-        switch (ignoreCase ? name.toLowerCase() : name) {
-        case "clientname":
-        case "ClientName": 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.Map.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.component.ribbon.cloud.RibbonServiceLoadBalancerFactory target = (org.apache.camel.component.ribbon.cloud.RibbonServiceLoadBalancerFactory) obj;
-        switch (ignoreCase ? name.toLowerCase() : name) {
-        case "clientname":
-        case "ClientName": return target.getClientName();
-        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 java.lang.String.class;
-        default: return null;
-        }
-    }
-}
-
diff --git a/components/camel-ribbon/src/generated/resources/META-INF/services/org/apache/camel/cloud/ribbon-service-load-balancer b/components/camel-ribbon/src/generated/resources/META-INF/services/org/apache/camel/cloud/ribbon-service-load-balancer
deleted file mode 100644
index b3e2e6892a5..00000000000
--- a/components/camel-ribbon/src/generated/resources/META-INF/services/org/apache/camel/cloud/ribbon-service-load-balancer
+++ /dev/null
@@ -1,2 +0,0 @@
-# Generated by camel build tools - do NOT edit this file!
-class=org.apache.camel.component.ribbon.cloud.RibbonServiceLoadBalancerFactory
diff --git a/components/camel-ribbon/src/generated/resources/META-INF/services/org/apache/camel/configurer/org.apache.camel.component.ribbon.cloud.RibbonServiceLoadBalancerFactory b/components/camel-ribbon/src/generated/resources/META-INF/services/org/apache/camel/configurer/org.apache.camel.component.ribbon.cloud.RibbonServiceLoadBalancerFactory
deleted file mode 100644
index 6e8b2d77b0c..00000000000
--- a/components/camel-ribbon/src/generated/resources/META-INF/services/org/apache/camel/configurer/org.apache.camel.component.ribbon.cloud.RibbonServiceLoadBalancerFactory
+++ /dev/null
@@ -1,2 +0,0 @@
-# Generated by camel build tools - do NOT edit this file!
-class=org.apache.camel.component.ribbon.cloud.RibbonServiceLoadBalancerFactoryConfigurer
diff --git a/components/camel-ribbon/src/generated/resources/META-INF/services/org/apache/camel/other.properties b/components/camel-ribbon/src/generated/resources/META-INF/services/org/apache/camel/other.properties
deleted file mode 100644
index 77dad23e2e8..00000000000
--- a/components/camel-ribbon/src/generated/resources/META-INF/services/org/apache/camel/other.properties
+++ /dev/null
@@ -1,7 +0,0 @@
-# Generated by camel build tools - do NOT edit this file!
-name=ribbon
-groupId=org.apache.camel
-artifactId=camel-ribbon
-version=3.17.0-SNAPSHOT
-projectName=Camel :: Ribbon (deprecated)
-projectDescription=Using Netflix Ribbon for client side load balancing
diff --git a/components/camel-ribbon/src/generated/resources/ribbon.json b/components/camel-ribbon/src/generated/resources/ribbon.json
deleted file mode 100644
index c1528c7de34..00000000000
--- a/components/camel-ribbon/src/generated/resources/ribbon.json
+++ /dev/null
@@ -1,15 +0,0 @@
-{
-  "other": {
-    "kind": "other",
-    "name": "ribbon",
-    "title": "Ribbon",
-    "description": "Using Netflix Ribbon for client side load balancing",
-    "deprecated": true,
-    "firstVersion": "2.18.0",
-    "label": "microservice",
-    "supportLevel": "Stable",
-    "groupId": "org.apache.camel",
-    "artifactId": "camel-ribbon",
-    "version": "3.17.0-SNAPSHOT"
-  }
-}
diff --git a/components/camel-ribbon/src/main/docs/ribbon.adoc b/components/camel-ribbon/src/main/docs/ribbon.adoc
deleted file mode 100644
index cb1f1993112..00000000000
--- a/components/camel-ribbon/src/main/docs/ribbon.adoc
+++ /dev/null
@@ -1,86 +0,0 @@
-= Ribbon Component (deprecated)
-:doctitle: Ribbon
-:shortname: ribbon
-:artifactid: camel-ribbon
-:description: Using Netflix Ribbon for client side load balancing
-:since: 2.18
-:supportlevel: Stable-deprecated
-:deprecated: *deprecated*
-//Manually maintained attributes
-:camel-spring-boot-name: ribbon
-
-*Since Camel {since}*
-
-The Ribbon component provides use of Netflix Ribbon for client side load balancing.
-
-Maven users will need to add the following dependency to their `pom.xml`
-for this component:
-
-[source,xml]
-----
-<dependency>
-    <groupId>org.apache.camel</groupId>
-    <artifactId>camel-ribbon</artifactId>
-    <version>x.x.x</version>
-    <!-- use the same version as your Camel core version -->
-</dependency>
-----
-
-This component helps applying load balancing feature at the client side when using http://camel.apache.org/servicecall-eip.html[ServiceCall EIP].
-
-== Configuration
-
-* *Programmatic*
-+
-[source,java]
-----
-RibbonConfiguration configuration = new RibbonConfiguration();
-configuration.addProperties("ServerListRefreshInterval", "250");
-
-RibbonLoadBalancer loadBalancer = new RibbonLoadBalancer(configuration);
-
-from("direct:start")
-    .serviceCall()
-        .name("myService")
-        .loadBalancer(loadBalancer)
-        .consulServiceDiscovery()
-        .end()
-    .to("mock:result");
-----
-
-* *Spring Boot*
-+
-[source,properties]
-.application.properties
-----
-camel.cloud.ribbon.properties[ServerListRefreshInterval] = 250
-----
-+
-[source,java]
-.routes
-----
-from("direct:start")
-    .serviceCall()
-        .name("myService")
-        .ribbonLoadBalancer()
-        .consulServiceDiscovery()
-        .end()
-    .to("mock:result");
-----
-
-* *XML*
-+
-[source,xml]
-----
-<route>
-    <from uri="direct:start"/>
-    <serviceCall name="myService">
-        <!-- enable ribbon load balancer -->
-        <ribbonLoadBalancer>
-            <properties key="ServerListRefreshInterval" value="250"/>
-        </ribbonLoadBalancer>
-    </serviceCall>
-</route>
-----
-
-include::spring-boot:partial$starter.adoc[]
diff --git a/components/camel-ribbon/src/main/java/org/apache/camel/component/ribbon/RibbonConfiguration.java b/components/camel-ribbon/src/main/java/org/apache/camel/component/ribbon/RibbonConfiguration.java
deleted file mode 100644
index 227e2ac6151..00000000000
--- a/components/camel-ribbon/src/main/java/org/apache/camel/component/ribbon/RibbonConfiguration.java
+++ /dev/null
@@ -1,106 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.camel.component.ribbon;
-
-import java.util.HashMap;
-import java.util.Map;
-import java.util.function.Supplier;
-
-import com.netflix.loadbalancer.IPing;
-import com.netflix.loadbalancer.IRule;
-
-public class RibbonConfiguration {
-    private String namespace;
-    private String username;
-    private String password;
-    private IRule rule;
-    private IPing ping;
-    private String clientName;
-    private Map<String, String> properties;
-
-    public String getNamespace() {
-        return namespace;
-    }
-
-    public void setNamespace(String namespace) {
-        this.namespace = namespace;
-    }
-
-    public String getUsername() {
-        return username;
-    }
-
-    public void setUsername(String username) {
-        this.username = username;
-    }
-
-    public String getPassword() {
-        return password;
-    }
-
-    public void setPassword(String password) {
-        this.password = password;
-    }
-
-    public IRule getRule() {
-        return rule;
-    }
-
-    public IRule getRuleOrDefault(Supplier<IRule> supplier) {
-        return rule != null ? rule : supplier.get();
-    }
-
-    public void setRule(IRule rule) {
-        this.rule = rule;
-    }
-
-    public IPing getPing() {
-        return ping;
-    }
-
-    public IPing getPingOrDefault(Supplier<IPing> supplier) {
-        return ping != null ? ping : supplier.get();
-    }
-
-    public void setPing(IPing ping) {
-        this.ping = ping;
-    }
-
-    public String getClientName() {
-        return clientName;
-    }
-
-    public void setClientName(String clientName) {
-        this.clientName = clientName;
-    }
-
-    public Map<String, String> getProperties() {
-        return properties;
-    }
-
-    public void setProperties(Map<String, String> clientConfig) {
-        this.properties = clientConfig;
-    }
-
-    public void addProperty(String key, String value) {
-        if (this.properties == null) {
-            this.properties = new HashMap<>();
-        }
-
-        this.properties.put(key, value);
-    }
-}
diff --git a/components/camel-ribbon/src/main/java/org/apache/camel/component/ribbon/RibbonConstants.java b/components/camel-ribbon/src/main/java/org/apache/camel/component/ribbon/RibbonConstants.java
deleted file mode 100644
index 1094896a9c4..00000000000
--- a/components/camel-ribbon/src/main/java/org/apache/camel/component/ribbon/RibbonConstants.java
+++ /dev/null
@@ -1,25 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.camel.component.ribbon;
-
-public interface RibbonConstants {
-
-    // Service Call EIP
-    String RIBBON_SERVER_IP = "CamelRibbonServerIp";
-    String RIBBON_SERVER_PORT = "CamelRibbonServerPort";
-
-}
diff --git a/components/camel-ribbon/src/main/java/org/apache/camel/component/ribbon/cloud/RibbonServiceDefinition.java b/components/camel-ribbon/src/main/java/org/apache/camel/component/ribbon/cloud/RibbonServiceDefinition.java
deleted file mode 100644
index 6931f8357bf..00000000000
--- a/components/camel-ribbon/src/main/java/org/apache/camel/component/ribbon/cloud/RibbonServiceDefinition.java
+++ /dev/null
@@ -1,94 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.camel.component.ribbon.cloud;
-
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.Map;
-
-import com.netflix.loadbalancer.Server;
-import org.apache.camel.cloud.ServiceDefinition;
-import org.apache.camel.cloud.ServiceHealth;
-import org.apache.camel.impl.cloud.DefaultServiceHealth;
-import org.apache.camel.util.ObjectHelper;
-
-public class RibbonServiceDefinition extends Server implements ServiceDefinition {
-    private static final ServiceHealth DEFAULT_SERVICE_HEALTH = new DefaultServiceHealth();
-
-    private String name;
-    private ServiceHealth health;
-    private Map<String, String> metaData;
-
-    public RibbonServiceDefinition(String name, String host, int port) {
-        this(name, host, port, null, DEFAULT_SERVICE_HEALTH);
-    }
-
-    public RibbonServiceDefinition(String name, String host, int port, ServiceHealth health) {
-        this(name, host, port, null, health);
-    }
-
-    public RibbonServiceDefinition(String name, String host, int port, Map<String, String> meta) {
-        this(name, host, port, meta, DEFAULT_SERVICE_HEALTH);
-    }
-
-    public RibbonServiceDefinition(String name, String host, int port, Map<String, String> meta, ServiceHealth health) {
-        super(host, port);
-        this.name = name;
-        this.metaData = meta;
-        this.health = health;
-    }
-
-    public RibbonServiceDefinition(ServiceDefinition definition) {
-        this(
-             definition.getName(),
-             definition.getHost(),
-             definition.getPort(),
-             definition.getMetadata(),
-             definition.getHealth());
-    }
-
-    @Override
-    public String getName() {
-        return name;
-    }
-
-    @Override
-    public String getHost() {
-        return super.getHost();
-    }
-
-    @Override
-    public int getPort() {
-        return super.getPort();
-    }
-
-    @Override
-    public ServiceHealth getHealth() {
-        return health;
-    }
-
-    @Override
-    public Map<String, String> getMetadata() {
-        Map<String, String> meta = metaData != null ? new HashMap<>(metaData) : new HashMap<>();
-        ObjectHelper.ifNotEmpty(super.getId(), val -> meta.put("id", val));
-        ObjectHelper.ifNotEmpty(super.getZone(), val -> meta.put("zone", val));
-        ObjectHelper.ifNotEmpty(super.isAlive(), val -> meta.put("is_alive", Boolean.toString(val)));
-        ObjectHelper.ifNotEmpty(super.isReadyToServe(), val -> meta.put("ready_to_server", Boolean.toString(val)));
-
-        return Collections.unmodifiableMap(meta);
-    }
-}
diff --git a/components/camel-ribbon/src/main/java/org/apache/camel/component/ribbon/cloud/RibbonServiceLoadBalancer.java b/components/camel-ribbon/src/main/java/org/apache/camel/component/ribbon/cloud/RibbonServiceLoadBalancer.java
deleted file mode 100644
index e2e162076f5..00000000000
--- a/components/camel-ribbon/src/main/java/org/apache/camel/component/ribbon/cloud/RibbonServiceLoadBalancer.java
+++ /dev/null
@@ -1,262 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.camel.component.ribbon.cloud;
-
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Map;
-import java.util.concurrent.ConcurrentHashMap;
-import java.util.concurrent.ConcurrentMap;
-import java.util.concurrent.RejectedExecutionException;
-
-import com.netflix.client.config.CommonClientConfigKey;
-import com.netflix.client.config.IClientConfig;
-import com.netflix.client.config.IClientConfigKey;
-import com.netflix.loadbalancer.DummyPing;
-import com.netflix.loadbalancer.ILoadBalancer;
-import com.netflix.loadbalancer.PollingServerListUpdater;
-import com.netflix.loadbalancer.RoundRobinRule;
-import com.netflix.loadbalancer.Server;
-import com.netflix.loadbalancer.ServerList;
-import com.netflix.loadbalancer.ZoneAwareLoadBalancer;
-import org.apache.camel.CamelContext;
-import org.apache.camel.CamelContextAware;
-import org.apache.camel.Exchange;
-import org.apache.camel.cloud.ServiceDefinition;
-import org.apache.camel.cloud.ServiceDiscovery;
-import org.apache.camel.cloud.ServiceDiscoveryAware;
-import org.apache.camel.cloud.ServiceFilter;
-import org.apache.camel.cloud.ServiceFilterAware;
-import org.apache.camel.cloud.ServiceLoadBalancer;
-import org.apache.camel.cloud.ServiceLoadBalancerFunction;
-import org.apache.camel.component.ribbon.RibbonConfiguration;
-import org.apache.camel.support.DefaultExchange;
-import org.apache.camel.support.service.ServiceHelper;
-import org.apache.camel.support.service.ServiceSupport;
-import org.apache.camel.util.ObjectHelper;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-public class RibbonServiceLoadBalancer
-        extends ServiceSupport
-        implements CamelContextAware, ServiceDiscoveryAware, ServiceFilterAware, ServiceLoadBalancer {
-
-    private static final Logger LOGGER = LoggerFactory.getLogger(RibbonServiceLoadBalancer.class);
-
-    private final RibbonConfiguration configuration;
-    private final ConcurrentMap<String, ZoneAwareLoadBalancer<RibbonServiceDefinition>> loadBalancers;
-    private CamelContext camelContext;
-    private ServiceDiscovery serviceDiscovery;
-    private ServiceFilter serviceFilter;
-
-    public RibbonServiceLoadBalancer(RibbonConfiguration configuration) {
-        this.configuration = configuration;
-        this.loadBalancers = new ConcurrentHashMap<>();
-    }
-
-    @Override
-    public CamelContext getCamelContext() {
-        return camelContext;
-    }
-
-    @Override
-    public void setCamelContext(CamelContext camelContext) {
-        this.camelContext = camelContext;
-    }
-
-    @Override
-    public ServiceDiscovery getServiceDiscovery() {
-        return serviceDiscovery;
-    }
-
-    @Override
-    public void setServiceDiscovery(ServiceDiscovery serviceDiscovery) {
-        this.serviceDiscovery = serviceDiscovery;
-    }
-
-    @Override
-    public ServiceFilter getServiceFilter() {
-        return serviceFilter;
-    }
-
-    @Override
-    public void setServiceFilter(ServiceFilter serviceFilter) {
-        this.serviceFilter = serviceFilter;
-    }
-
-    // ************************
-    // lifecycle
-    // ************************
-
-    @Override
-    protected void doStart() throws Exception {
-        ObjectHelper.notNull(configuration, "configuration");
-        ObjectHelper.notNull(camelContext, "camel context");
-
-        if (serviceDiscovery != null) {
-            LOGGER.info("ServiceCall is using ribbon load balancer with service discovery type: {} and service filter: {}",
-                    serviceDiscovery.getClass(), serviceFilter.getClass());
-        } else {
-            LOGGER.info("ServiceCall is using ribbon load balancer");
-        }
-
-        ServiceHelper.startService(serviceDiscovery);
-    }
-
-    @Override
-    protected void doStop() throws Exception {
-        loadBalancers.values().forEach(ZoneAwareLoadBalancer::stopServerListRefreshing);
-        loadBalancers.clear();
-
-        ServiceHelper.stopService(serviceDiscovery);
-    }
-
-    // ************************
-    // Processor
-    // ************************
-
-    @Override
-    public <T> T process(Exchange exchange, String serviceName, ServiceLoadBalancerFunction<T> request) throws Exception {
-        ILoadBalancer loadBalancer = loadBalancers.computeIfAbsent(serviceName, key -> createLoadBalancer(key));
-        Server server = loadBalancer.chooseServer(serviceName);
-
-        if (server == null) {
-            throw new RejectedExecutionException("No active services with name " + serviceName);
-        }
-
-        ServiceDefinition definition;
-
-        if (server instanceof ServiceDefinition) {
-            // If the service discovery is one of camel provides, the definition
-            // is already of the expected type.
-            definition = (ServiceDefinition) server;
-        } else {
-            // If ribbon server list is configured through client config properties
-            // i.e. with listOfServers property the instance provided by the load
-            // balancer is of type Server so a conversion is needed
-            definition = new RibbonServiceDefinition(
-                    serviceName,
-                    server.getHost(),
-                    server.getPort());
-
-            String zone = server.getZone();
-            if (zone != null) {
-                server.setZone(zone);
-            }
-        }
-
-        return request.apply(definition);
-    }
-
-    // ************************
-    // Helpers
-    // ************************
-
-    private ZoneAwareLoadBalancer<RibbonServiceDefinition> createLoadBalancer(String serviceName) {
-        // setup client config
-        IClientConfig config = configuration.getClientName() != null
-                ? IClientConfig.Builder.newBuilder(configuration.getClientName()).build()
-                : IClientConfig.Builder.newBuilder().build();
-
-        if (configuration.getProperties() != null) {
-            for (Map.Entry<String, String> entry : configuration.getProperties().entrySet()) {
-                IClientConfigKey key = CommonClientConfigKey.valueOf(entry.getKey());
-                String value = entry.getValue();
-
-                LOGGER.debug("RibbonClientConfig: {}={}", key.key(), value);
-                config.set(key, value);
-            }
-        }
-
-        ZoneAwareLoadBalancer<RibbonServiceDefinition> loadBalancer;
-
-        if (serviceDiscovery != null) {
-            loadBalancer = new ZoneAwareLoadBalancer<>(
-                    config,
-                    configuration.getRuleOrDefault(RoundRobinRule::new),
-                    configuration.getPingOrDefault(DummyPing::new),
-                    new RibbonServerList(camelContext, serviceName, serviceDiscovery, serviceFilter),
-                    null,
-                    new PollingServerListUpdater(config));
-        } else {
-            loadBalancer = new ZoneAwareLoadBalancer<>(config);
-        }
-
-        return loadBalancer;
-    }
-
-    static final class RibbonServerList implements ServerList<RibbonServiceDefinition> {
-        private final String serviceName;
-        private final ServiceDiscovery serviceDiscovery;
-        private final ServiceFilter serviceFilter;
-        private final DefaultExchange dummyExchange;
-
-        RibbonServerList(CamelContext camelContext, String serviceName, ServiceDiscovery serviceDiscovery,
-                         ServiceFilter serviceFilter) {
-            this.serviceName = serviceName;
-            this.serviceDiscovery = serviceDiscovery;
-            this.serviceFilter = serviceFilter;
-            this.dummyExchange = new DefaultExchange(camelContext); // ServerList doesn't support current exchange
-        }
-
-        @Override
-        public List<RibbonServiceDefinition> getInitialListOfServers() {
-            List<ServiceDefinition> services = serviceDiscovery.getServices(serviceName);
-            if (serviceFilter != null) {
-                services = serviceFilter.apply(dummyExchange, services);
-            }
-
-            return asRibbonServerList(services);
-        }
-
-        @Override
-        public List<RibbonServiceDefinition> getUpdatedListOfServers() {
-            List<ServiceDefinition> services = serviceDiscovery.getServices(serviceName);
-            if (serviceFilter != null) {
-                services = serviceFilter.apply(dummyExchange, services);
-            }
-
-            return asRibbonServerList(services);
-        }
-
-        private List<RibbonServiceDefinition> asRibbonServerList(List<ServiceDefinition> services) {
-            List<RibbonServiceDefinition> ribbonServers = new ArrayList<>();
-
-            for (ServiceDefinition service : services) {
-                if (service instanceof RibbonServiceDefinition) {
-                    ribbonServers.add((RibbonServiceDefinition) service);
-                } else {
-                    RibbonServiceDefinition serviceDef = new RibbonServiceDefinition(
-                            serviceName,
-                            service.getHost(),
-                            service.getPort(),
-                            service.getMetadata(),
-                            service.getHealth());
-
-                    String zone = serviceDef.getMetadata().get("zone");
-                    if (zone != null) {
-                        serviceDef.setZone(zone);
-                    }
-
-                    ribbonServers.add(serviceDef);
-                }
-            }
-
-            return ribbonServers;
-        }
-    }
-}
diff --git a/components/camel-ribbon/src/main/java/org/apache/camel/component/ribbon/cloud/RibbonServiceLoadBalancerFactory.java b/components/camel-ribbon/src/main/java/org/apache/camel/component/ribbon/cloud/RibbonServiceLoadBalancerFactory.java
deleted file mode 100644
index e7917543ce5..00000000000
--- a/components/camel-ribbon/src/main/java/org/apache/camel/component/ribbon/cloud/RibbonServiceLoadBalancerFactory.java
+++ /dev/null
@@ -1,93 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.camel.component.ribbon.cloud;
-
-import java.util.Map;
-
-import org.apache.camel.CamelContext;
-import org.apache.camel.cloud.ServiceLoadBalancer;
-import org.apache.camel.cloud.ServiceLoadBalancerFactory;
-import org.apache.camel.component.ribbon.RibbonConfiguration;
-import org.apache.camel.spi.Configurer;
-import org.apache.camel.spi.annotations.CloudServiceFactory;
-
-@CloudServiceFactory("ribbon-service-load-balancer")
-@Configurer
-public class RibbonServiceLoadBalancerFactory implements ServiceLoadBalancerFactory {
-    private final RibbonConfiguration configuration;
-
-    public RibbonServiceLoadBalancerFactory() {
-        this(new RibbonConfiguration());
-    }
-
-    public RibbonServiceLoadBalancerFactory(RibbonConfiguration configuration) {
-        this.configuration = configuration;
-    }
-
-    // *************************************************************************
-    // Properties
-    // *************************************************************************
-
-    public String getNamespace() {
-        return configuration.getNamespace();
-    }
-
-    public void setNamespace(String namespace) {
-        configuration.setNamespace(namespace);
-    }
-
-    public String getUsername() {
-        return configuration.getUsername();
-    }
-
-    public void setUsername(String username) {
-        configuration.setUsername(username);
-    }
-
-    public String getPassword() {
-        return configuration.getPassword();
-    }
-
-    public void setPassword(String password) {
-        configuration.setPassword(password);
-    }
-
-    public String getClientName() {
-        return configuration.getClientName();
-    }
-
-    public void setClientName(String clientName) {
-        configuration.setClientName(clientName);
-    }
-
-    public Map<String, String> getProperties() {
-        return configuration.getProperties();
-    }
-
-    public void setProperties(Map<String, String> clientConfig) {
-        configuration.setProperties(clientConfig);
-    }
-
-    // *************************************************************************
-    // Factory
-    // *************************************************************************
-
-    @Override
-    public ServiceLoadBalancer newInstance(CamelContext camelContext) throws Exception {
-        return new RibbonServiceLoadBalancer(configuration);
-    }
-}
diff --git a/components/camel-ribbon/src/test/java/org/apache/camel/component/ribbon/cloud/RibbonServerListTest.java b/components/camel-ribbon/src/test/java/org/apache/camel/component/ribbon/cloud/RibbonServerListTest.java
deleted file mode 100644
index 0b39ad7fcb2..00000000000
--- a/components/camel-ribbon/src/test/java/org/apache/camel/component/ribbon/cloud/RibbonServerListTest.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.camel.component.ribbon.cloud;
-
-import com.netflix.loadbalancer.LoadBalancerBuilder;
-import com.netflix.loadbalancer.RoundRobinRule;
-import com.netflix.loadbalancer.Server;
-import com.netflix.loadbalancer.ZoneAwareLoadBalancer;
-import org.apache.camel.impl.DefaultCamelContext;
-import org.apache.camel.impl.cloud.PassThroughServiceFilter;
-import org.apache.camel.impl.cloud.StaticServiceDiscovery;
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.assertEquals;
-
-public class RibbonServerListTest {
-    @Test
-    public void testFixedServerList() throws Exception {
-        ZoneAwareLoadBalancer<RibbonServiceDefinition> lb = LoadBalancerBuilder.<RibbonServiceDefinition> newBuilder()
-                .withDynamicServerList(new RibbonServiceLoadBalancer.RibbonServerList(
-                        new DefaultCamelContext(),
-                        "unknown",
-                        StaticServiceDiscovery.forServices(
-                                new RibbonServiceDefinition("unknown", "localhost", 9090),
-                                new RibbonServiceDefinition("unknown", "localhost", 9091)),
-                        new PassThroughServiceFilter()))
-                .withRule(new RoundRobinRule())
-                .buildDynamicServerListLoadBalancer();
-
-        Server server = lb.chooseServer();
-        assertEquals("localhost", server.getHost());
-        assertEquals(9091, server.getPort());
-
-        server = lb.chooseServer();
-        assertEquals("localhost", server.getHost());
-        assertEquals(9090, server.getPort());
-    }
-}
diff --git a/components/camel-ribbon/src/test/java/org/apache/camel/component/ribbon/cloud/RibbonServiceCallRegistryRouteTest.java b/components/camel-ribbon/src/test/java/org/apache/camel/component/ribbon/cloud/RibbonServiceCallRegistryRouteTest.java
deleted file mode 100644
index e96a3e83741..00000000000
--- a/components/camel-ribbon/src/test/java/org/apache/camel/component/ribbon/cloud/RibbonServiceCallRegistryRouteTest.java
+++ /dev/null
@@ -1,63 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.camel.component.ribbon.cloud;
-
-import org.apache.camel.RoutesBuilder;
-import org.apache.camel.builder.RouteBuilder;
-import org.apache.camel.component.ribbon.RibbonConfiguration;
-import org.apache.camel.impl.cloud.StaticServiceDiscovery;
-import org.apache.camel.model.cloud.ServiceCallConfigurationDefinition;
-
-public class RibbonServiceCallRegistryRouteTest extends RibbonServiceCallRouteTest {
-
-    @Override
-    protected RoutesBuilder createRouteBuilder() throws Exception {
-        return new RouteBuilder() {
-            @Override
-            public void configure() throws Exception {
-                // setup a static ribbon server list with these 2 servers to start with
-                StaticServiceDiscovery servers = new StaticServiceDiscovery();
-                servers.addServer("myService@localhost:" + PORT1);
-                servers.addServer("myService@localhost:" + PORT2);
-
-                RibbonConfiguration configuration = new RibbonConfiguration();
-                RibbonServiceLoadBalancer loadBalancer = new RibbonServiceLoadBalancer(configuration);
-
-                // configure camel service call
-                ServiceCallConfigurationDefinition config = new ServiceCallConfigurationDefinition();
-                config.setLoadBalancer(loadBalancer);
-                config.setServiceDiscovery(servers);
-
-                // register configuration
-                context.setServiceCallConfiguration(config);
-
-                from("direct:start")
-                        .serviceCall()
-                        .name("myService")
-                        .component("http")
-                        .end()
-                        .to("mock:result");
-                fromF("jetty:http://localhost:%d", PORT1)
-                        .to("mock:" + ROUTE_1_ID)
-                        .transform().constant("9090");
-                fromF("jetty:http://localhost:%d", PORT2)
-                        .to("mock:" + ROUTE_2_ID)
-                        .transform().constant("9091");
-            }
-        };
-    }
-}
diff --git a/components/camel-ribbon/src/test/java/org/apache/camel/component/ribbon/cloud/RibbonServiceCallRouteDslTest.java b/components/camel-ribbon/src/test/java/org/apache/camel/component/ribbon/cloud/RibbonServiceCallRouteDslTest.java
deleted file mode 100644
index 6fe78d953d2..00000000000
--- a/components/camel-ribbon/src/test/java/org/apache/camel/component/ribbon/cloud/RibbonServiceCallRouteDslTest.java
+++ /dev/null
@@ -1,69 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.camel.component.ribbon.cloud;
-
-import org.apache.camel.RoutesBuilder;
-import org.apache.camel.builder.RouteBuilder;
-import org.apache.camel.test.AvailablePortFinder;
-import org.apache.camel.test.junit5.CamelTestSupport;
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.assertEquals;
-
-public class RibbonServiceCallRouteDslTest extends CamelTestSupport {
-    private static final int PORT1 = AvailablePortFinder.getNextAvailable();
-    private static final int PORT2 = AvailablePortFinder.getNextAvailable();
-
-    @Test
-    public void testServiceCall() throws Exception {
-        getMockEndpoint("mock:" + PORT1).expectedMessageCount(1);
-        getMockEndpoint("mock:" + PORT2).expectedMessageCount(1);
-        getMockEndpoint("mock:result").expectedMessageCount(2);
-
-        String out = template.requestBody("direct:start", null, String.class);
-        String out2 = template.requestBody("direct:start", null, String.class);
-        assertEquals("9091", out);
-        assertEquals("9090", out2);
-
-        assertMockEndpointsSatisfied();
-    }
-
-    @Override
-    protected RoutesBuilder createRouteBuilder() throws Exception {
-        return new RouteBuilder() {
-            @Override
-            public void configure() throws Exception {
-                from("direct:start")
-                        .serviceCall()
-                        .name("myService")
-                        .component("http")
-                        .ribbonLoadBalancer()
-                        .staticServiceDiscovery()
-                        .servers("localhost:" + PORT1)
-                        .servers("localhost:" + PORT2)
-                        .endParent()
-                        .to("mock:result");
-                fromF("jetty:http://localhost:%d", PORT1)
-                        .to("mock:" + PORT1)
-                        .transform().constant("9090");
-                fromF("jetty:http://localhost:%d", PORT2)
-                        .to("mock:" + PORT2)
-                        .transform().constant("9091");
-            }
-        };
-    }
-}
diff --git a/components/camel-ribbon/src/test/java/org/apache/camel/component/ribbon/cloud/RibbonServiceCallRouteMetadataTest.java b/components/camel-ribbon/src/test/java/org/apache/camel/component/ribbon/cloud/RibbonServiceCallRouteMetadataTest.java
deleted file mode 100644
index c905b0dfe13..00000000000
--- a/components/camel-ribbon/src/test/java/org/apache/camel/component/ribbon/cloud/RibbonServiceCallRouteMetadataTest.java
+++ /dev/null
@@ -1,81 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.camel.component.ribbon.cloud;
-
-import org.apache.camel.RoutesBuilder;
-import org.apache.camel.builder.RouteBuilder;
-import org.apache.camel.component.ribbon.RibbonConfiguration;
-import org.apache.camel.impl.cloud.DefaultServiceDefinition;
-import org.apache.camel.impl.cloud.StaticServiceDiscovery;
-import org.apache.camel.test.AvailablePortFinder;
-import org.apache.camel.test.junit5.CamelTestSupport;
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.assertEquals;
-
-public class RibbonServiceCallRouteMetadataTest extends CamelTestSupport {
-    private static final int PORT1 = AvailablePortFinder.getNextAvailable();
-    private static final int PORT2 = AvailablePortFinder.getNextAvailable();
-
-    @Test
-    public void testServiceCall() throws Exception {
-        getMockEndpoint("mock:app1").expectedMessageCount(1);
-        getMockEndpoint("mock:app2").expectedMessageCount(1);
-        getMockEndpoint("mock:result").expectedMessageCount(2);
-
-        String out = template.requestBody("direct:start", null, String.class);
-        String out2 = template.requestBody("direct:start", null, String.class);
-        assertEquals("app2", out);
-        assertEquals("app1", out2);
-
-        assertMockEndpointsSatisfied();
-    }
-
-    @Override
-    protected RoutesBuilder createRouteBuilder() throws Exception {
-        return new RouteBuilder() {
-            @Override
-            public void configure() throws Exception {
-                // setup a static ribbon server list with these 2 servers to start with
-                StaticServiceDiscovery servers = new StaticServiceDiscovery();
-                servers.addServer(DefaultServiceDefinition.builder().withName("myService").withHost("localhost").withPort(PORT1)
-                        .addMeta("contextPath", "app1").build());
-                servers.addServer(DefaultServiceDefinition.builder().withName("myService").withHost("localhost").withPort(PORT2)
-                        .addMeta("contextPath", "app2").build());
-
-                RibbonConfiguration configuration = new RibbonConfiguration();
-                RibbonServiceLoadBalancer loadBalancer = new RibbonServiceLoadBalancer(configuration);
-
-                from("direct:start")
-                        .serviceCall()
-                        .name("myService")
-                        .expression()
-                        .simple("http://${header.CamelServiceCallServiceHost}:${header.CamelServiceCallServicePort}/${header.CamelServiceCallServiceMeta[contextPath]}")
-                        .loadBalancer(loadBalancer)
-                        .serviceDiscovery(servers)
-                        .end()
-                        .to("mock:result");
-                fromF("jetty:http://localhost:%d/app1", PORT1)
-                        .to("mock:app1")
-                        .transform().constant("app1");
-                fromF("jetty:http://localhost:%d/app2", PORT2)
-                        .to("mock:app2")
-                        .transform().constant("app2");
-            }
-        };
-    }
-}
diff --git a/components/camel-ribbon/src/test/java/org/apache/camel/component/ribbon/cloud/RibbonServiceCallRouteTest.java b/components/camel-ribbon/src/test/java/org/apache/camel/component/ribbon/cloud/RibbonServiceCallRouteTest.java
deleted file mode 100644
index dd94ee33dca..00000000000
--- a/components/camel-ribbon/src/test/java/org/apache/camel/component/ribbon/cloud/RibbonServiceCallRouteTest.java
+++ /dev/null
@@ -1,80 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.camel.component.ribbon.cloud;
-
-import org.apache.camel.RoutesBuilder;
-import org.apache.camel.builder.RouteBuilder;
-import org.apache.camel.component.ribbon.RibbonConfiguration;
-import org.apache.camel.impl.cloud.StaticServiceDiscovery;
-import org.apache.camel.test.AvailablePortFinder;
-import org.apache.camel.test.junit5.CamelTestSupport;
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.assertEquals;
-
-public class RibbonServiceCallRouteTest extends CamelTestSupport {
-    protected static final int PORT1 = AvailablePortFinder.getNextAvailable();
-    protected static final int PORT2 = AvailablePortFinder.getNextAvailable();
-
-    protected static final String ROUTE_1_ID = "srv1";
-    protected static final String ROUTE_2_ID = "srv2";
-
-    @Test
-    public void testServiceCall() throws Exception {
-        getMockEndpoint("mock:" + ROUTE_1_ID).expectedMessageCount(1);
-        getMockEndpoint("mock:" + ROUTE_2_ID).expectedMessageCount(1);
-        getMockEndpoint("mock:result").expectedMessageCount(2);
-
-        String out = template.requestBody("direct:start", null, String.class);
-        String out2 = template.requestBody("direct:start", null, String.class);
-        assertEquals("9091", out);
-        assertEquals("9090", out2);
-
-        assertMockEndpointsSatisfied();
-    }
-
-    @Override
-    protected RoutesBuilder createRouteBuilder() throws Exception {
-        return new RouteBuilder() {
-            @Override
-            public void configure() throws Exception {
-                // setup a static ribbon server list with these 2 servers to start with
-                StaticServiceDiscovery servers = new StaticServiceDiscovery();
-                servers.addServer("myService@localhost:" + PORT1);
-                servers.addServer("myService@localhost:" + PORT2);
-
-                RibbonConfiguration configuration = new RibbonConfiguration();
-                RibbonServiceLoadBalancer loadBalancer = new RibbonServiceLoadBalancer(configuration);
-
-                from("direct:start")
-                        .serviceCall()
-                        .name("myService")
-                        .component("http")
-                        .loadBalancer(loadBalancer)
-                        .serviceDiscovery(servers)
-                        .end()
-                        .to("mock:result");
-                fromF("jetty:http://localhost:%d", PORT1)
-                        .to("mock:" + ROUTE_1_ID)
-                        .transform().constant("9090");
-                fromF("jetty:http://localhost:%d", PORT2)
-                        .to("mock:" + ROUTE_2_ID)
-                        .transform().constant("9091");
-            }
-        };
-    }
-}
diff --git a/components/camel-ribbon/src/test/java/org/apache/camel/component/ribbon/cloud/RibbonServiceCallUpdateRouteTest.java b/components/camel-ribbon/src/test/java/org/apache/camel/component/ribbon/cloud/RibbonServiceCallUpdateRouteTest.java
deleted file mode 100644
index 1b718576beb..00000000000
--- a/components/camel-ribbon/src/test/java/org/apache/camel/component/ribbon/cloud/RibbonServiceCallUpdateRouteTest.java
+++ /dev/null
@@ -1,108 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.camel.component.ribbon.cloud;
-
-import org.apache.camel.RoutesBuilder;
-import org.apache.camel.builder.RouteBuilder;
-import org.apache.camel.component.ribbon.RibbonConfiguration;
-import org.apache.camel.impl.cloud.StaticServiceDiscovery;
-import org.apache.camel.test.AvailablePortFinder;
-import org.apache.camel.test.junit5.CamelTestSupport;
-import org.apache.camel.util.ObjectHelper;
-import org.junit.jupiter.api.BeforeEach;
-import org.junit.jupiter.api.Test;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import static org.junit.jupiter.api.Assertions.assertEquals;
-
-public class RibbonServiceCallUpdateRouteTest extends CamelTestSupport {
-    private static final int PORT1 = AvailablePortFinder.getNextAvailable();
-    private static final int PORT2 = AvailablePortFinder.getNextAvailable();
-
-    private static final Logger LOG = LoggerFactory.getLogger(RibbonServiceCallUpdateRouteTest.class);
-    private final StaticServiceDiscovery servers = new StaticServiceDiscovery();
-
-    @Override
-    @BeforeEach
-    public void setUp() throws Exception {
-        // setup a static ribbon server list with these 2 servers to start with
-        servers.addServer("myService@localhost:" + PORT1);
-        servers.addServer("myService@localhost:" + PORT2);
-
-        super.setUp();
-    }
-
-    @Test
-    public void testServiceCall() throws Exception {
-        getMockEndpoint("mock:" + PORT1).expectedMessageCount(1);
-        getMockEndpoint("mock:" + PORT2).expectedMessageCount(1);
-        getMockEndpoint("mock:result").expectedMessageCount(2);
-
-        String out = template.requestBody("direct:start", null, String.class);
-        String out2 = template.requestBody("direct:start", null, String.class);
-        assertEquals("9091", out);
-        assertEquals("9090", out2);
-
-        assertMockEndpointsSatisfied();
-
-        // stop the first server and remove it from the known list of servers
-        context.getRouteController().stopRoute(String.valueOf(PORT1));
-        servers.removeServer(s -> ObjectHelper.equal("localhost", s.getHost()) && PORT1 == s.getPort());
-
-        // call the other active server
-        String out3 = template.requestBody("direct:start", null, String.class);
-        assertEquals("9091", out3);
-
-        // sleep a bit to make the server updated run and detect that a server is no longer in the list
-        LOG.debug("Sleeping to all the server list updated to run");
-        Thread.sleep(1000);
-        LOG.debug("Calling the service now");
-
-        // call again and it should call 9091 as its the only active server
-        String out4 = template.requestBody("direct:start", null, String.class);
-        assertEquals("9091", out4);
-    }
-
-    @Override
-    protected RoutesBuilder createRouteBuilder() throws Exception {
-        return new RouteBuilder() {
-            @Override
-            public void configure() throws Exception {
-                RibbonConfiguration configuration = new RibbonConfiguration();
-                // lets update quick so we do not have to sleep so much in the tests
-                configuration.addProperty("ServerListRefreshInterval", "250");
-                RibbonServiceLoadBalancer loadBalancer = new RibbonServiceLoadBalancer(configuration);
-
-                from("direct:start")
-                        .serviceCall()
-                        .name("myService")
-                        .component("http")
-                        .loadBalancer(loadBalancer)
-                        .serviceDiscovery(servers)
-                        .end()
-                        .to("mock:result");
-                fromF("jetty:http://localhost:%d", PORT1).routeId(String.valueOf(PORT1))
-                        .to("mock:" + PORT1)
-                        .transform().constant("9090");
-                fromF("jetty:http://localhost:%d", PORT2).routeId(String.valueOf(PORT2))
-                        .to("mock:" + PORT2)
-                        .transform().constant("9091");
-            }
-        };
-    }
-}
diff --git a/components/camel-ribbon/src/test/java/org/apache/camel/component/ribbon/cloud/SpringBeanServiceCallRouteTest.java b/components/camel-ribbon/src/test/java/org/apache/camel/component/ribbon/cloud/SpringBeanServiceCallRouteTest.java
deleted file mode 100644
index 5cb7eccc825..00000000000
--- a/components/camel-ribbon/src/test/java/org/apache/camel/component/ribbon/cloud/SpringBeanServiceCallRouteTest.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.camel.component.ribbon.cloud;
-
-import org.apache.camel.impl.cloud.DefaultServiceCallProcessor;
-import org.apache.camel.impl.cloud.StaticServiceDiscovery;
-import org.junit.jupiter.api.Test;
-import org.springframework.context.support.AbstractApplicationContext;
-import org.springframework.context.support.ClassPathXmlApplicationContext;
-import org.springframework.test.annotation.DirtiesContext;
-
-import static org.junit.jupiter.api.Assertions.assertNotNull;
-import static org.junit.jupiter.api.Assertions.assertTrue;
-
-@DirtiesContext
-public class SpringBeanServiceCallRouteTest extends SpringRibbonServiceCallRouteTest {
-    @Override
-    protected AbstractApplicationContext createApplicationContext() {
-        return new ClassPathXmlApplicationContext(
-                "org/apache/camel/component/ribbon/cloud/SpringBeanRibbonServiceCallRouteTest.xml");
-    }
-
-    @Test
-    public void testServiceCallConfiguration() throws Exception {
-        DefaultServiceCallProcessor processor = findServiceCallProcessor();
-
-        assertNotNull(processor.getLoadBalancer());
-        assertTrue(processor.getLoadBalancer() instanceof RibbonServiceLoadBalancer);
-
-        RibbonServiceLoadBalancer loadBalancer = (RibbonServiceLoadBalancer) processor.getLoadBalancer();
-        assertTrue(loadBalancer.getServiceDiscovery() instanceof StaticServiceDiscovery);
-    }
-}
diff --git a/components/camel-ribbon/src/test/java/org/apache/camel/component/ribbon/cloud/SpringDslRibbonPropertiesServiceCallRouteTest.java b/components/camel-ribbon/src/test/java/org/apache/camel/component/ribbon/cloud/SpringDslRibbonPropertiesServiceCallRouteTest.java
deleted file mode 100644
index 3f439bb5dc5..00000000000
--- a/components/camel-ribbon/src/test/java/org/apache/camel/component/ribbon/cloud/SpringDslRibbonPropertiesServiceCallRouteTest.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.camel.component.ribbon.cloud;
-
-import org.apache.camel.impl.cloud.DefaultServiceCallProcessor;
-import org.junit.jupiter.api.Test;
-import org.springframework.context.support.AbstractApplicationContext;
-import org.springframework.context.support.ClassPathXmlApplicationContext;
-import org.springframework.test.annotation.DirtiesContext;
-
-import static org.junit.jupiter.api.Assertions.assertNotNull;
-import static org.junit.jupiter.api.Assertions.assertNull;
-import static org.junit.jupiter.api.Assertions.assertTrue;
-
-@DirtiesContext
-public class SpringDslRibbonPropertiesServiceCallRouteTest extends SpringRibbonServiceCallRouteTest {
-    @Override
-    protected AbstractApplicationContext createApplicationContext() {
-        return new ClassPathXmlApplicationContext(
-                "org/apache/camel/component/ribbon/cloud/SpringDslRibbonPropertiesServiceCallRouteTest.xml");
-    }
-
-    @Test
-    public void testServiceCallConfiguration() throws Exception {
-        DefaultServiceCallProcessor processor = findServiceCallProcessor();
-
-        assertNotNull(processor.getLoadBalancer());
-        assertTrue(processor.getLoadBalancer() instanceof RibbonServiceLoadBalancer);
-
-        RibbonServiceLoadBalancer loadBalancer = (RibbonServiceLoadBalancer) processor.getLoadBalancer();
-        assertNull(loadBalancer.getServiceDiscovery());
-    }
-}
diff --git a/components/camel-ribbon/src/test/java/org/apache/camel/component/ribbon/cloud/SpringDslRibbonServiceCallRouteTest.java b/components/camel-ribbon/src/test/java/org/apache/camel/component/ribbon/cloud/SpringDslRibbonServiceCallRouteTest.java
deleted file mode 100644
index 2224c14c46b..00000000000
--- a/components/camel-ribbon/src/test/java/org/apache/camel/component/ribbon/cloud/SpringDslRibbonServiceCallRouteTest.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.camel.component.ribbon.cloud;
-
-import org.apache.camel.impl.cloud.DefaultServiceCallProcessor;
-import org.apache.camel.impl.cloud.StaticServiceDiscovery;
-import org.junit.jupiter.api.Test;
-import org.springframework.context.support.AbstractApplicationContext;
-import org.springframework.context.support.ClassPathXmlApplicationContext;
-import org.springframework.test.annotation.DirtiesContext;
-
-import static org.junit.jupiter.api.Assertions.assertNotNull;
-import static org.junit.jupiter.api.Assertions.assertTrue;
-
-@DirtiesContext
-public class SpringDslRibbonServiceCallRouteTest extends SpringRibbonServiceCallRouteTest {
-    @Override
-    protected AbstractApplicationContext createApplicationContext() {
-        return new ClassPathXmlApplicationContext(
-                "org/apache/camel/component/ribbon/cloud/SpringDslRibbonServiceCallRouteTest.xml");
-    }
-
-    @Test
-    public void testServiceCallConfiguration() throws Exception {
-        DefaultServiceCallProcessor processor = findServiceCallProcessor();
-
-        assertNotNull(processor.getLoadBalancer());
-        assertTrue(processor.getLoadBalancer() instanceof RibbonServiceLoadBalancer);
-
-        RibbonServiceLoadBalancer loadBalancer = (RibbonServiceLoadBalancer) processor.getLoadBalancer();
-        assertTrue(loadBalancer.getServiceDiscovery() instanceof StaticServiceDiscovery);
-    }
-}
diff --git a/components/camel-ribbon/src/test/java/org/apache/camel/component/ribbon/cloud/SpringRibbonServiceCallRouteTest.java b/components/camel-ribbon/src/test/java/org/apache/camel/component/ribbon/cloud/SpringRibbonServiceCallRouteTest.java
deleted file mode 100644
index 353a50d8080..00000000000
--- a/components/camel-ribbon/src/test/java/org/apache/camel/component/ribbon/cloud/SpringRibbonServiceCallRouteTest.java
+++ /dev/null
@@ -1,82 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.camel.component.ribbon.cloud;
-
-import java.util.Optional;
-
-import org.apache.camel.Navigate;
-import org.apache.camel.Processor;
-import org.apache.camel.PropertyInject;
-import org.apache.camel.Route;
-import org.apache.camel.impl.cloud.DefaultServiceCallProcessor;
-import org.apache.camel.test.spring.junit5.CamelSpringTestSupport;
-import org.junit.jupiter.api.Test;
-import org.springframework.test.annotation.DirtiesContext;
-
-import static org.junit.jupiter.api.Assertions.assertEquals;
-import static org.junit.jupiter.api.Assertions.assertNotNull;
-
-@DirtiesContext
-public abstract class SpringRibbonServiceCallRouteTest extends CamelSpringTestSupport {
-
-    @PropertyInject("firstPort")
-    private String firstPort;
-
-    @PropertyInject("secondPort")
-    private String secondPort;
-
-    @Test
-    public void testServiceCall() throws Exception {
-        getMockEndpoint("mock:{{firstPort}}").expectedMessageCount(1);
-        getMockEndpoint("mock:{{secondPort}}").expectedMessageCount(1);
-        getMockEndpoint("mock:result").expectedMessageCount(2);
-
-        String out = template.requestBody("direct:start", null, String.class);
-        String out2 = template.requestBody("direct:start", null, String.class);
-        assertEquals(secondPort, out);
-        assertEquals(firstPort, out2);
-
-        assertMockEndpointsSatisfied();
-    }
-
-    // ************************************
-    // Helpers
-    // ************************************
-
-    protected DefaultServiceCallProcessor findServiceCallProcessor() {
-        Route route = context().getRoute("scall");
-
-        assertNotNull(route, "ServiceCall Route should be present");
-
-        return findServiceCallProcessor(route.navigate())
-                .orElseThrow(() -> new IllegalStateException("Unable to find a ServiceCallProcessor"));
-    }
-
-    protected Optional<DefaultServiceCallProcessor> findServiceCallProcessor(Navigate<Processor> navigate) {
-        for (Processor processor : navigate.next()) {
-            if (processor instanceof DefaultServiceCallProcessor) {
-                return Optional.ofNullable((DefaultServiceCallProcessor) processor);
-            }
-
-            if (processor instanceof Navigate) {
-                return findServiceCallProcessor((Navigate<Processor>) processor);
-            }
-        }
-
-        return Optional.empty();
-    }
-}
diff --git a/components/camel-ribbon/src/test/resources/log4j2.properties b/components/camel-ribbon/src/test/resources/log4j2.properties
deleted file mode 100644
index 48259d8ea75..00000000000
--- a/components/camel-ribbon/src/test/resources/log4j2.properties
+++ /dev/null
@@ -1,32 +0,0 @@
-## ---------------------------------------------------------------------------
-## Licensed to the Apache Software Foundation (ASF) under one or more
-## contributor license agreements.  See the NOTICE file distributed with
-## this work for additional information regarding copyright ownership.
-## The ASF licenses this file to You under the Apache License, Version 2.0
-## (the "License"); you may not use this file except in compliance with
-## the License.  You may obtain a copy of the License at
-##
-##      http://www.apache.org/licenses/LICENSE-2.0
-##
-## Unless required by applicable law or agreed to in writing, software
-## distributed under the License is distributed on an "AS IS" BASIS,
-## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-## See the License for the specific language governing permissions and
-## limitations under the License.
-## ---------------------------------------------------------------------------
-
-appender.file.type = File
-appender.file.name = file
-appender.file.fileName = target/camel-ribbon-test.log
-appender.file.layout.type = PatternLayout
-appender.file.layout.pattern = %d [%-15.15t] %-5p %-30.30c{1} - %m%n
-appender.out.type = Console
-appender.out.name = out
-appender.out.layout.type = PatternLayout
-appender.out.layout.pattern = %d [%-15.15t] %-5p %-30.30c{1} - %m%n
-logger.kubernetes.name = org.apache.camel.component.kubernetes
-logger.kubernetes.level = DEBUG
-logger.ribbon.name = org.apache.camel.component.ribbon
-logger.ribbon.level = DEBUG
-rootLogger.level = INFO
-rootLogger.appenderRef.file.ref = file
diff --git a/components/camel-ribbon/src/test/resources/org/apache/camel/component/ribbon/cloud/SpringBeanRibbonServiceCallRouteTest.xml b/components/camel-ribbon/src/test/resources/org/apache/camel/component/ribbon/cloud/SpringBeanRibbonServiceCallRouteTest.xml
deleted file mode 100644
index 6de9bad1302..00000000000
--- a/components/camel-ribbon/src/test/resources/org/apache/camel/component/ribbon/cloud/SpringBeanRibbonServiceCallRouteTest.xml
+++ /dev/null
@@ -1,71 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-
-    Licensed to the Apache Software Foundation (ASF) under one or more
-    contributor license agreements.  See the NOTICE file distributed with
-    this work for additional information regarding copyright ownership.
-    The ASF licenses this file to You under the Apache License, Version 2.0
-    (the "License"); you may not use this file except in compliance with
-    the License.  You may obtain a copy of the License at
-
-         http://www.apache.org/licenses/LICENSE-2.0
-
-    Unless required by applicable law or agreed to in writing, software
-    distributed under the License is distributed on an "AS IS" BASIS,
-    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-    See the License for the specific language governing permissions and
-    limitations under the License.
-
--->
-<beans xmlns="http://www.springframework.org/schema/beans"
-       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-       xsi:schemaLocation="
-         http://www.springframework.org/schema/beans
-         http://www.springframework.org/schema/beans/spring-beans.xsd
-         http://camel.apache.org/schema/spring
-         http://camel.apache.org/schema/spring/camel-spring.xsd">
-         
-  <bean id="bridgePropertyPlaceholder" class="org.apache.camel.spring.spi.BridgePropertyPlaceholderConfigurer">
-    <property name="location" value="classpath:springbeanribbonservicecallroutetest.properties" />
-  </bean>
-
-  <!-- setup a static ribbon server list with these 2 servers to start with -->
-  <bean id="discovery" class="org.apache.camel.impl.cloud.StaticServiceDiscovery">
-    <property name="servers" value="localhost:${firstPort},localhost:${secondPort}"/>
-  </bean>
-
-  <bean id="balancer" class="org.apache.camel.component.ribbon.cloud.RibbonServiceLoadBalancer">
-    <constructor-arg index="0">
-      <bean class="org.apache.camel.component.ribbon.RibbonConfiguration"/>
-    </constructor-arg>
-  </bean>
-
-  <camelContext xmlns="http://camel.apache.org/schema/spring">
-
-    <!-- service call configuration to use ribbon -->
-    <serviceCallConfiguration id="ribbon" loadBalancerRef="balancer" serviceDiscoveryRef="discovery"/>
-
-    <route id="scall">
-      <from uri="direct:start"/>
-      <serviceCall name="myService" component="http"/>
-      <to uri="mock:result"/>
-    </route>
-
-    <route>
-      <from uri="jetty:http://localhost:{{firstPort}}"/>
-      <to uri="mock:{{firstPort}}"/>
-      <transform>
-        <constant>{{firstPort}}</constant>
-      </transform>
-    </route>
-
-    <route>
-      <from uri="jetty:http://localhost:{{secondPort}}"/>
-      <to uri="mock:{{secondPort}}"/>
-      <transform>
-        <constant>{{secondPort}}</constant>
-      </transform>
-    </route>
-  </camelContext>
-
-</beans>
diff --git a/components/camel-ribbon/src/test/resources/org/apache/camel/component/ribbon/cloud/SpringDslRibbonPropertiesServiceCallRouteTest.xml b/components/camel-ribbon/src/test/resources/org/apache/camel/component/ribbon/cloud/SpringDslRibbonPropertiesServiceCallRouteTest.xml
deleted file mode 100644
index 4cd67c1b69d..00000000000
--- a/components/camel-ribbon/src/test/resources/org/apache/camel/component/ribbon/cloud/SpringDslRibbonPropertiesServiceCallRouteTest.xml
+++ /dev/null
@@ -1,61 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-
-    Licensed to the Apache Software Foundation (ASF) under one or more
-    contributor license agreements.  See the NOTICE file distributed with
-    this work for additional information regarding copyright ownership.
-    The ASF licenses this file to You under the Apache License, Version 2.0
-    (the "License"); you may not use this file except in compliance with
-    the License.  You may obtain a copy of the License at
-
-         http://www.apache.org/licenses/LICENSE-2.0
-
-    Unless required by applicable law or agreed to in writing, software
-    distributed under the License is distributed on an "AS IS" BASIS,
-    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-    See the License for the specific language governing permissions and
-    limitations under the License.
-
--->
-<beans xmlns="http://www.springframework.org/schema/beans"
-       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-       xsi:schemaLocation="
-         http://www.springframework.org/schema/beans
-         http://www.springframework.org/schema/beans/spring-beans.xsd
-         http://camel.apache.org/schema/spring
-         http://camel.apache.org/schema/spring/camel-spring.xsd">
-
-  <bean id="bridgePropertyPlaceholder" class="org.apache.camel.spring.spi.BridgePropertyPlaceholderConfigurer">
-    <property name="location" value="classpath:springdslribbonpropertiesservicecallroutetest.properties" />
-  </bean> 
-
-  <camelContext xmlns="http://camel.apache.org/schema/spring">
-    <route id="scall">
-      <from uri="direct:start"/>
-      <serviceCall name="myService" component="http">
-        <!-- enable ribbon load balancer -->
-        <ribbonLoadBalancer clientName="myClient">
-          <properties key="listOfServers" value="localhost:{{firstPort}},localhost:{{secondPort}}"/>
-        </ribbonLoadBalancer>
-      </serviceCall>
-      <to uri="mock:result"/>
-    </route>
-
-    <route>
-      <from uri="jetty:http://localhost:{{firstPort}}"/>
-      <to uri="mock:{{firstPort}}"/>
-      <transform>
-        <constant>{{firstPort}}</constant>
-      </transform>
-    </route>
-
-    <route>
-      <from uri="jetty:http://localhost:{{secondPort}}"/>
-      <to uri="mock:{{secondPort}}"/>
-      <transform>
-        <constant>{{secondPort}}</constant>
-      </transform>
-    </route>
-  </camelContext>
-
-</beans>
diff --git a/components/camel-ribbon/src/test/resources/org/apache/camel/component/ribbon/cloud/SpringDslRibbonServiceCallRouteTest.xml b/components/camel-ribbon/src/test/resources/org/apache/camel/component/ribbon/cloud/SpringDslRibbonServiceCallRouteTest.xml
deleted file mode 100644
index 65578bd7a8b..00000000000
--- a/components/camel-ribbon/src/test/resources/org/apache/camel/component/ribbon/cloud/SpringDslRibbonServiceCallRouteTest.xml
+++ /dev/null
@@ -1,64 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-
-    Licensed to the Apache Software Foundation (ASF) under one or more
-    contributor license agreements.  See the NOTICE file distributed with
-    this work for additional information regarding copyright ownership.
-    The ASF licenses this file to You under the Apache License, Version 2.0
-    (the "License"); you may not use this file except in compliance with
-    the License.  You may obtain a copy of the License at
-
-         http://www.apache.org/licenses/LICENSE-2.0
-
-    Unless required by applicable law or agreed to in writing, software
-    distributed under the License is distributed on an "AS IS" BASIS,
-    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-    See the License for the specific language governing permissions and
-    limitations under the License.
-
--->
-<beans xmlns="http://www.springframework.org/schema/beans"
-       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-       xsi:schemaLocation="
-         http://www.springframework.org/schema/beans
-         http://www.springframework.org/schema/beans/spring-beans.xsd
-         http://camel.apache.org/schema/spring
-         http://camel.apache.org/schema/spring/camel-spring.xsd">
-         
-  <bean id="bridgePropertyPlaceholder" class="org.apache.camel.spring.spi.BridgePropertyPlaceholderConfigurer">
-    <property name="location" value="classpath:springdslribbonservicecallroutetest.properties" />
-  </bean> 
-
-  <camelContext xmlns="http://camel.apache.org/schema/spring">
-    <route id="scall">
-      <from uri="direct:start"/>
-      <serviceCall name="myService" component="http">
-        <!-- static list of servers -->
-        <staticServiceDiscovery>
-          <servers>localhost:{{firstPort}},localhost:{{secondPort}}</servers>
-        </staticServiceDiscovery>
-
-        <!-- enable ribbon load balancer -->
-        <ribbonLoadBalancer clientName="myClient"/>
-      </serviceCall>
-      <to uri="mock:result"/>
-    </route>
-
-    <route>
-      <from uri="jetty:http://localhost:{{firstPort}}"/>
-      <to uri="mock:{{firstPort}}"/>
-      <transform>
-        <constant>{{firstPort}}</constant>
-      </transform>
-    </route>
-
-    <route>
-      <from uri="jetty:http://localhost:{{secondPort}}"/>
-      <to uri="mock:{{secondPort}}"/>
-      <transform>
-        <constant>{{secondPort}}</constant>
-      </transform>
-    </route>
-  </camelContext>
-
-</beans>
diff --git a/components/camel-ribbon/src/test/resources/springbeanribbonservicecallroutetest.properties b/components/camel-ribbon/src/test/resources/springbeanribbonservicecallroutetest.properties
deleted file mode 100644
index 6fc3357f557..00000000000
--- a/components/camel-ribbon/src/test/resources/springbeanribbonservicecallroutetest.properties
+++ /dev/null
@@ -1,19 +0,0 @@
-## ---------------------------------------------------------------------------
-## Licensed to the Apache Software Foundation (ASF) under one or more
-## contributor license agreements.  See the NOTICE file distributed with
-## this work for additional information regarding copyright ownership.
-## The ASF licenses this file to You under the Apache License, Version 2.0
-## (the "License"); you may not use this file except in compliance with
-## the License.  You may obtain a copy of the License at
-##
-##      http://www.apache.org/licenses/LICENSE-2.0
-##
-## Unless required by applicable law or agreed to in writing, software
-## distributed under the License is distributed on an "AS IS" BASIS,
-## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-## See the License for the specific language governing permissions and
-## limitations under the License.
-## ---------------------------------------------------------------------------
-
-firstPort=9092
-secondPort=9093
diff --git a/components/camel-ribbon/src/test/resources/springdslribbonpropertiesservicecallroutetest.properties b/components/camel-ribbon/src/test/resources/springdslribbonpropertiesservicecallroutetest.properties
deleted file mode 100644
index 301958181c4..00000000000
--- a/components/camel-ribbon/src/test/resources/springdslribbonpropertiesservicecallroutetest.properties
+++ /dev/null
@@ -1,19 +0,0 @@
-## ---------------------------------------------------------------------------
-## Licensed to the Apache Software Foundation (ASF) under one or more
-## contributor license agreements.  See the NOTICE file distributed with
-## this work for additional information regarding copyright ownership.
-## The ASF licenses this file to You under the Apache License, Version 2.0
-## (the "License"); you may not use this file except in compliance with
-## the License.  You may obtain a copy of the License at
-##
-##      http://www.apache.org/licenses/LICENSE-2.0
-##
-## Unless required by applicable law or agreed to in writing, software
-## distributed under the License is distributed on an "AS IS" BASIS,
-## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-## See the License for the specific language governing permissions and
-## limitations under the License.
-## ---------------------------------------------------------------------------
-
-firstPort=9094
-secondPort=9095
diff --git a/components/camel-ribbon/src/test/resources/springdslribbonservicecallroutetest.properties b/components/camel-ribbon/src/test/resources/springdslribbonservicecallroutetest.properties
deleted file mode 100644
index e138a0a0534..00000000000
--- a/components/camel-ribbon/src/test/resources/springdslribbonservicecallroutetest.properties
+++ /dev/null
@@ -1,19 +0,0 @@
-## ---------------------------------------------------------------------------
-## Licensed to the Apache Software Foundation (ASF) under one or more
-## contributor license agreements.  See the NOTICE file distributed with
-## this work for additional information regarding copyright ownership.
-## The ASF licenses this file to You under the Apache License, Version 2.0
-## (the "License"); you may not use this file except in compliance with
-## the License.  You may obtain a copy of the License at
-##
-##      http://www.apache.org/licenses/LICENSE-2.0
-##
-## Unless required by applicable law or agreed to in writing, software
-## distributed under the License is distributed on an "AS IS" BASIS,
-## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-## See the License for the specific language governing permissions and
-## limitations under the License.
-## ---------------------------------------------------------------------------
-
-firstPort=9096
-secondPort=9097
diff --git a/components/pom.xml b/components/pom.xml
index 286e58c91c8..fe5145df4ef 100644
--- a/components/pom.xml
+++ b/components/pom.xml
@@ -78,9 +78,6 @@
         <module>camel-master</module>
         <module>camel-service</module>
 
-        <!-- build it first so it can be used by other component to test i.e. ServiceCall EIP -->
-        <module>camel-ribbon</module>
-
         <!-- regular modules in alphabetic order -->
         <module>camel-activemq</module>
         <module>camel-ahc-ws</module>
diff --git a/core/camel-cloud/src/main/java/org/apache/camel/impl/cloud/ServiceCallProcessorFactory.java b/core/camel-cloud/src/main/java/org/apache/camel/impl/cloud/ServiceCallProcessorFactory.java
index 7714291cbcc..7ef9a81ac37 100644
--- a/core/camel-cloud/src/main/java/org/apache/camel/impl/cloud/ServiceCallProcessorFactory.java
+++ b/core/camel-cloud/src/main/java/org/apache/camel/impl/cloud/ServiceCallProcessorFactory.java
@@ -219,10 +219,8 @@ public class ServiceCallProcessorFactory extends TypedProcessorFactory<ServiceCa
                                 ServiceDiscovery.class))
                 .orElseGet(
                         // Default, that's s little ugly but a load balancer may
-                        // live without
-                        // (i.e. the Ribbon one) so let's delegate the null check
-                        // to the actual
-                        // impl.
+                        // live without so let's delegate the null check
+                        // to the actual impl.
                         () -> null);
     }
 
diff --git a/core/camel-core-engine/src/main/docs/modules/eips/pages/serviceCall-eip.adoc b/core/camel-core-engine/src/main/docs/modules/eips/pages/serviceCall-eip.adoc
index b45a869ddb8..61f08d44a3f 100644
--- a/core/camel-core-engine/src/main/docs/modules/eips/pages/serviceCall-eip.adoc
+++ b/core/camel-core-engine/src/main/docs/modules/eips/pages/serviceCall-eip.adoc
@@ -499,90 +499,6 @@ from("direct:start")
     .to("mock:result");
 ----
 
-=== Load balancing services
-
-The Service Call EIP comes with its own load-balancer which is instantiated by default if a custom loadbalancer is not configured.
-It glues Service Discovery, Service Filter, Service Chooser and Service Expression together to load balance requests among the available services.
-
-If you need a more sophisticated load balancer you can use Ribbon by adding camel-ribbon to the mix,
-maven users will need to add the following dependency to their pom.xml
-
-NOTE: The `RibbonServiceLoadBalancer` has no concept of a current `Exchange`. 
-Service filters therefore receive a dummy exchange when used with Ribbon.
-
-
-[source,xml]
-----
-<dependency>
-    <groupId>org.apache.camel</groupId>
-    <artifactId>camel-ribbon</artifactId>
-    <!-- use the same version as your Camel core version -->
-    <version>x.y.z</version>
-</dependency>
-----
-
-Available options:
-
-[width="100%",cols="3,1m,6",options="header"]
-|===
-| Name | Java Type | Description
-| clientName | String | The Ribbon client name
-| properties | List<PropertyDefinition> | Custom client config properties
-|===
-
-To leverage Ribbon, it is required to explicit enable it:
-
-Here is how to do that in Java:
-
-[source,java]
-----
-from("direct:start")
-    .serviceCall("foo")
-        .ribbonLoadBalancer()
-    .to("mock:result");
-----
-
-And in XML:
-
-[source,xml]
-----
-<route>
-    <from uri="direct:start"/>
-    <serviceCall name="foo">
-        <ribbonLoadBalancer/>
-    </serviceCall>
-    <to uri="mock:result"/>
-</route>
-----
-
-You can configure Ribbon key programmatically using `RibbonConfiguration`:
-
-[source,java]
-----
-RibbonConfiguration configuration = new RibbonConfiguration();
-configuration.addProperty("listOfServers", "localhost:9090,localhost:9091");
-
-from("direct:start")
-    .serviceCall("foo")
-        .loadBalancer(new RibbonServiceLoadBalancer(configuration))
-    .to("mock:result");
-----
-
-Or leveraging XML specific configuration:
-
-[source,xml]
-----
-<route>
-    <from uri="direct:start"/>
-    <serviceCall name="foo">
-        <ribbonLoadBalancer>
-            <properties key="listOfServers" value="localhost:9090,localhost:9091"/>
-        </ribbonLoadBalancer>
-    </serviceCall>
-    <to uri="mock:result"/>
-</route>
-----
-
 === Shared configurations
 
 The Service Call EIP can be configured straight on the route definition or through shared configurations,
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
deleted file mode 100644
index ae0138e09ce..00000000000
--- a/core/camel-core-model/src/generated/java/org/apache/camel/model/cloud/RibbonServiceCallServiceLoadBalancerConfigurationConfigurer.java
+++ /dev/null
@@ -1,105 +0,0 @@
-/* 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/resources/org/apache/camel/model/cloud/blacklistServiceFilter.json b/core/camel-core-model/src/generated/resources/org/apache/camel/model/cloud/blacklistServiceFilter.json
index 7be4b9958e1..969158ef1fa 100644
--- a/core/camel-core-model/src/generated/resources/org/apache/camel/model/cloud/blacklistServiceFilter.json
+++ b/core/camel-core-model/src/generated/resources/org/apache/camel/model/cloud/blacklistServiceFilter.json
@@ -12,7 +12,7 @@
   },
   "properties": {
     "servers": { "kind": "element", "displayName": "Servers", "required": false, "type": "array", "javaType": "java.util.List<java.lang.String>", "deprecated": false, "autowired": false, "secret": false, "description": "Sets the server blacklist. Each entry can be a list of servers separated by comma in the format: servicehost:port,servicehost2:port,servicehost3:port" },
-    "properties": { "kind": "element", "displayName": "Properties", "label": "advanced", "required": false, "type": "array", "javaType": "java.util.List<org.apache.camel.model.PropertyDefinition>", "deprecated": false, "autowired": false, "secret": false, "description": "Set client properties to use. These properties are specific to what service call implementation are in use. For example if using ribbon, then the client properties are define in com.netflix.client.config.CommonClientConf [...]
+    "properties": { "kind": "element", "displayName": "Properties", "label": "advanced", "required": false, "type": "array", "javaType": "java.util.List<org.apache.camel.model.PropertyDefinition>", "deprecated": false, "autowired": false, "secret": false, "description": "Set client properties to use. These properties are specific to what service call implementation are in use. For example if using a different one, then the client properties are defined according to the specific service i [...]
     "id": { "kind": "attribute", "displayName": "Id", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "The id of this node" }
   }
 }
diff --git a/core/camel-core-model/src/generated/resources/org/apache/camel/model/cloud/cachingServiceDiscovery.json b/core/camel-core-model/src/generated/resources/org/apache/camel/model/cloud/cachingServiceDiscovery.json
index 0991639c7d9..8a07a2afa57 100644
--- a/core/camel-core-model/src/generated/resources/org/apache/camel/model/cloud/cachingServiceDiscovery.json
+++ b/core/camel-core-model/src/generated/resources/org/apache/camel/model/cloud/cachingServiceDiscovery.json
@@ -14,7 +14,7 @@
     "timeout": { "kind": "attribute", "displayName": "Timeout", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "60", "description": "Set the time the services will be retained." },
     "units": { "kind": "attribute", "displayName": "Units", "required": false, "type": "enum", "javaType": "java.util.concurrent.TimeUnit", "enum": [ "NANOSECONDS", "MICROSECONDS", "MILLISECONDS", "SECONDS", "MINUTES", "HOURS", "DAYS" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "SECONDS", "description": "Set the time unit for the timeout." },
     "serviceDiscoveryConfiguration": { "kind": "element", "displayName": "Service Discovery Configuration", "required": true, "type": "object", "javaType": "org.apache.camel.model.cloud.ServiceCallServiceDiscoveryConfiguration", "oneOf": [ "combinedServiceDiscovery", "consulServiceDiscovery", "dnsServiceDiscovery", "etcdServiceDiscovery", "kubernetesServiceDiscovery", "staticServiceDiscovery" ], "deprecated": false, "autowired": false, "secret": false, "description": "Set the service-cal [...]
-    "properties": { "kind": "element", "displayName": "Properties", "label": "advanced", "required": false, "type": "array", "javaType": "java.util.List<org.apache.camel.model.PropertyDefinition>", "deprecated": false, "autowired": false, "secret": false, "description": "Set client properties to use. These properties are specific to what service call implementation are in use. For example if using ribbon, then the client properties are define in com.netflix.client.config.CommonClientConf [...]
+    "properties": { "kind": "element", "displayName": "Properties", "label": "advanced", "required": false, "type": "array", "javaType": "java.util.List<org.apache.camel.model.PropertyDefinition>", "deprecated": false, "autowired": false, "secret": false, "description": "Set client properties to use. These properties are specific to what service call implementation are in use. For example if using a different one, then the client properties are defined according to the specific service i [...]
     "id": { "kind": "attribute", "displayName": "Id", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "The id of this node" }
   }
 }
diff --git a/core/camel-core-model/src/generated/resources/org/apache/camel/model/cloud/combinedServiceDiscovery.json b/core/camel-core-model/src/generated/resources/org/apache/camel/model/cloud/combinedServiceDiscovery.json
index a361606db9e..32693950a88 100644
--- a/core/camel-core-model/src/generated/resources/org/apache/camel/model/cloud/combinedServiceDiscovery.json
+++ b/core/camel-core-model/src/generated/resources/org/apache/camel/model/cloud/combinedServiceDiscovery.json
@@ -12,7 +12,7 @@
   },
   "properties": {
     "serviceDiscoveryConfigurations": { "kind": "element", "displayName": "Service Discovery Configurations", "required": true, "type": "array", "javaType": "java.util.List<org.apache.camel.model.cloud.ServiceCallServiceDiscoveryConfiguration>", "oneOf": [ "cachingServiceDiscovery", "consulServiceDiscovery", "dnsServiceDiscovery", "etcdServiceDiscovery", "kubernetesServiceDiscovery", "staticServiceDiscovery" ], "deprecated": false, "autowired": false, "secret": false, "description": "Lis [...]
-    "properties": { "kind": "element", "displayName": "Properties", "label": "advanced", "required": false, "type": "array", "javaType": "java.util.List<org.apache.camel.model.PropertyDefinition>", "deprecated": false, "autowired": false, "secret": false, "description": "Set client properties to use. These properties are specific to what service call implementation are in use. For example if using ribbon, then the client properties are define in com.netflix.client.config.CommonClientConf [...]
+    "properties": { "kind": "element", "displayName": "Properties", "label": "advanced", "required": false, "type": "array", "javaType": "java.util.List<org.apache.camel.model.PropertyDefinition>", "deprecated": false, "autowired": false, "secret": false, "description": "Set client properties to use. These properties are specific to what service call implementation are in use. For example if using a different one, then the client properties are defined according to the specific service i [...]
     "id": { "kind": "attribute", "displayName": "Id", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "The id of this node" }
   }
 }
diff --git a/core/camel-core-model/src/generated/resources/org/apache/camel/model/cloud/combinedServiceFilter.json b/core/camel-core-model/src/generated/resources/org/apache/camel/model/cloud/combinedServiceFilter.json
index f547e4a557a..edd3b44ef78 100644
--- a/core/camel-core-model/src/generated/resources/org/apache/camel/model/cloud/combinedServiceFilter.json
+++ b/core/camel-core-model/src/generated/resources/org/apache/camel/model/cloud/combinedServiceFilter.json
@@ -12,7 +12,7 @@
   },
   "properties": {
     "serviceFilterConfigurations": { "kind": "element", "displayName": "Service Filter Configurations", "required": true, "type": "array", "javaType": "java.util.List<org.apache.camel.model.cloud.ServiceCallServiceFilterConfiguration>", "oneOf": [ "blacklistServiceFilter", "customServiceFilter", "healthyServiceFilter", "passThroughServiceFilter" ], "deprecated": false, "autowired": false, "secret": false, "description": "List of ServiceFilter configuration to use" },
-    "properties": { "kind": "element", "displayName": "Properties", "label": "advanced", "required": false, "type": "array", "javaType": "java.util.List<org.apache.camel.model.PropertyDefinition>", "deprecated": false, "autowired": false, "secret": false, "description": "Set client properties to use. These properties are specific to what service call implementation are in use. For example if using ribbon, then the client properties are define in com.netflix.client.config.CommonClientConf [...]
+    "properties": { "kind": "element", "displayName": "Properties", "label": "advanced", "required": false, "type": "array", "javaType": "java.util.List<org.apache.camel.model.PropertyDefinition>", "deprecated": false, "autowired": false, "secret": false, "description": "Set client properties to use. These properties are specific to what service call implementation are in use. For example if using a different one, then the client properties are defined according to the specific service i [...]
     "id": { "kind": "attribute", "displayName": "Id", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "The id of this node" }
   }
 }
diff --git a/core/camel-core-model/src/generated/resources/org/apache/camel/model/cloud/consulServiceDiscovery.json b/core/camel-core-model/src/generated/resources/org/apache/camel/model/cloud/consulServiceDiscovery.json
index efb6683a742..939a64113ef 100644
--- a/core/camel-core-model/src/generated/resources/org/apache/camel/model/cloud/consulServiceDiscovery.json
+++ b/core/camel-core-model/src/generated/resources/org/apache/camel/model/cloud/consulServiceDiscovery.json
@@ -20,7 +20,7 @@
     "readTimeoutMillis": { "kind": "attribute", "displayName": "Read Timeout Millis", "required": false, "type": "integer", "javaType": "java.lang.Long", "deprecated": false, "autowired": false, "secret": false, "description": "Read timeout for OkHttpClient" },
     "writeTimeoutMillis": { "kind": "attribute", "displayName": "Write Timeout Millis", "required": false, "type": "integer", "javaType": "java.lang.Long", "deprecated": false, "autowired": false, "secret": false, "description": "Write timeout for OkHttpClient" },
     "blockSeconds": { "kind": "attribute", "displayName": "Block Seconds", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "10", "description": "The seconds to wait for a watch event, default 10 seconds" },
-    "properties": { "kind": "element", "displayName": "Properties", "label": "advanced", "required": false, "type": "array", "javaType": "java.util.List<org.apache.camel.model.PropertyDefinition>", "deprecated": false, "autowired": false, "secret": false, "description": "Set client properties to use. These properties are specific to what service call implementation are in use. For example if using ribbon, then the client properties are define in com.netflix.client.config.CommonClientConf [...]
+    "properties": { "kind": "element", "displayName": "Properties", "label": "advanced", "required": false, "type": "array", "javaType": "java.util.List<org.apache.camel.model.PropertyDefinition>", "deprecated": false, "autowired": false, "secret": false, "description": "Set client properties to use. These properties are specific to what service call implementation are in use. For example if using a different one, then the client properties are defined according to the specific service i [...]
     "id": { "kind": "attribute", "displayName": "Id", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "The id of this node" }
   }
 }
diff --git a/core/camel-core-model/src/generated/resources/org/apache/camel/model/cloud/customServiceFilter.json b/core/camel-core-model/src/generated/resources/org/apache/camel/model/cloud/customServiceFilter.json
index 333b5bd88de..25efec3de7c 100644
--- a/core/camel-core-model/src/generated/resources/org/apache/camel/model/cloud/customServiceFilter.json
+++ b/core/camel-core-model/src/generated/resources/org/apache/camel/model/cloud/customServiceFilter.json
@@ -12,7 +12,7 @@
   },
   "properties": {
     "ref": { "kind": "attribute", "displayName": "Ref", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Reference of a ServiceFilter" },
-    "properties": { "kind": "element", "displayName": "Properties", "label": "advanced", "required": false, "type": "array", "javaType": "java.util.List<org.apache.camel.model.PropertyDefinition>", "deprecated": false, "autowired": false, "secret": false, "description": "Set client properties to use. These properties are specific to what service call implementation are in use. For example if using ribbon, then the client properties are define in com.netflix.client.config.CommonClientConf [...]
+    "properties": { "kind": "element", "displayName": "Properties", "label": "advanced", "required": false, "type": "array", "javaType": "java.util.List<org.apache.camel.model.PropertyDefinition>", "deprecated": false, "autowired": false, "secret": false, "description": "Set client properties to use. These properties are specific to what service call implementation are in use. For example if using a different one, then the client properties are defined according to the specific service i [...]
     "id": { "kind": "attribute", "displayName": "Id", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "The id of this node" }
   }
 }
diff --git a/core/camel-core-model/src/generated/resources/org/apache/camel/model/cloud/defaultLoadBalancer.json b/core/camel-core-model/src/generated/resources/org/apache/camel/model/cloud/defaultLoadBalancer.json
index d9f7deae162..89aab217552 100644
--- a/core/camel-core-model/src/generated/resources/org/apache/camel/model/cloud/defaultLoadBalancer.json
+++ b/core/camel-core-model/src/generated/resources/org/apache/camel/model/cloud/defaultLoadBalancer.json
@@ -11,7 +11,7 @@
     "output": false
   },
   "properties": {
-    "properties": { "kind": "element", "displayName": "Properties", "label": "advanced", "required": false, "type": "array", "javaType": "java.util.List<org.apache.camel.model.PropertyDefinition>", "deprecated": false, "autowired": false, "secret": false, "description": "Set client properties to use. These properties are specific to what service call implementation are in use. For example if using ribbon, then the client properties are define in com.netflix.client.config.CommonClientConf [...]
+    "properties": { "kind": "element", "displayName": "Properties", "label": "advanced", "required": false, "type": "array", "javaType": "java.util.List<org.apache.camel.model.PropertyDefinition>", "deprecated": false, "autowired": false, "secret": false, "description": "Set client properties to use. These properties are specific to what service call implementation are in use. For example if using a different one, then the client properties are defined according to the specific service i [...]
     "id": { "kind": "attribute", "displayName": "Id", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "The id of this node" }
   }
 }
diff --git a/core/camel-core-model/src/generated/resources/org/apache/camel/model/cloud/dnsServiceDiscovery.json b/core/camel-core-model/src/generated/resources/org/apache/camel/model/cloud/dnsServiceDiscovery.json
index 776ce1fc181..fbeca3a3692 100644
--- a/core/camel-core-model/src/generated/resources/org/apache/camel/model/cloud/dnsServiceDiscovery.json
+++ b/core/camel-core-model/src/generated/resources/org/apache/camel/model/cloud/dnsServiceDiscovery.json
@@ -13,7 +13,7 @@
   "properties": {
     "proto": { "kind": "attribute", "displayName": "Proto", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "_tcp", "description": "The transport protocol of the desired service." },
     "domain": { "kind": "attribute", "displayName": "Domain", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "The domain name;" },
-    "properties": { "kind": "element", "displayName": "Properties", "label": "advanced", "required": false, "type": "array", "javaType": "java.util.List<org.apache.camel.model.PropertyDefinition>", "deprecated": false, "autowired": false, "secret": false, "description": "Set client properties to use. These properties are specific to what service call implementation are in use. For example if using ribbon, then the client properties are define in com.netflix.client.config.CommonClientConf [...]
+    "properties": { "kind": "element", "displayName": "Properties", "label": "advanced", "required": false, "type": "array", "javaType": "java.util.List<org.apache.camel.model.PropertyDefinition>", "deprecated": false, "autowired": false, "secret": false, "description": "Set client properties to use. These properties are specific to what service call implementation are in use. For example if using a different one, then the client properties are defined according to the specific service i [...]
     "id": { "kind": "attribute", "displayName": "Id", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "The id of this node" }
   }
 }
diff --git a/core/camel-core-model/src/generated/resources/org/apache/camel/model/cloud/etcdServiceDiscovery.json b/core/camel-core-model/src/generated/resources/org/apache/camel/model/cloud/etcdServiceDiscovery.json
index 26b0f3e3012..ffb3f43923f 100644
--- a/core/camel-core-model/src/generated/resources/org/apache/camel/model/cloud/etcdServiceDiscovery.json
+++ b/core/camel-core-model/src/generated/resources/org/apache/camel/model/cloud/etcdServiceDiscovery.json
@@ -17,7 +17,7 @@
     "timeout": { "kind": "attribute", "displayName": "Timeout", "required": false, "type": "integer", "javaType": "java.lang.Long", "deprecated": false, "autowired": false, "secret": false, "description": "To set the maximum time an action could take to complete." },
     "servicePath": { "kind": "attribute", "displayName": "Service Path", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "\/services\/", "description": "The path to look for for service discovery" },
     "type": { "kind": "attribute", "displayName": "Type", "required": false, "type": "enum", "javaType": "java.lang.String", "enum": [ "on-demand", "watch" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "on-demand", "description": "To set the discovery type, valid values are on-demand and watch." },
-    "properties": { "kind": "element", "displayName": "Properties", "label": "advanced", "required": false, "type": "array", "javaType": "java.util.List<org.apache.camel.model.PropertyDefinition>", "deprecated": false, "autowired": false, "secret": false, "description": "Set client properties to use. These properties are specific to what service call implementation are in use. For example if using ribbon, then the client properties are define in com.netflix.client.config.CommonClientConf [...]
+    "properties": { "kind": "element", "displayName": "Properties", "label": "advanced", "required": false, "type": "array", "javaType": "java.util.List<org.apache.camel.model.PropertyDefinition>", "deprecated": false, "autowired": false, "secret": false, "description": "Set client properties to use. These properties are specific to what service call implementation are in use. For example if using a different one, then the client properties are defined according to the specific service i [...]
     "id": { "kind": "attribute", "displayName": "Id", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "The id of this node" }
   }
 }
diff --git a/core/camel-core-model/src/generated/resources/org/apache/camel/model/cloud/healthyServiceFilter.json b/core/camel-core-model/src/generated/resources/org/apache/camel/model/cloud/healthyServiceFilter.json
index 071ec2a735b..b675cc1bd7b 100644
--- a/core/camel-core-model/src/generated/resources/org/apache/camel/model/cloud/healthyServiceFilter.json
+++ b/core/camel-core-model/src/generated/resources/org/apache/camel/model/cloud/healthyServiceFilter.json
@@ -11,7 +11,7 @@
     "output": false
   },
   "properties": {
-    "properties": { "kind": "element", "displayName": "Properties", "label": "advanced", "required": false, "type": "array", "javaType": "java.util.List<org.apache.camel.model.PropertyDefinition>", "deprecated": false, "autowired": false, "secret": false, "description": "Set client properties to use. These properties are specific to what service call implementation are in use. For example if using ribbon, then the client properties are define in com.netflix.client.config.CommonClientConf [...]
+    "properties": { "kind": "element", "displayName": "Properties", "label": "advanced", "required": false, "type": "array", "javaType": "java.util.List<org.apache.camel.model.PropertyDefinition>", "deprecated": false, "autowired": false, "secret": false, "description": "Set client properties to use. These properties are specific to what service call implementation are in use. For example if using a different one, then the client properties are defined according to the specific service i [...]
     "id": { "kind": "attribute", "displayName": "Id", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "The id of this node" }
   }
 }
diff --git a/core/camel-core-model/src/generated/resources/org/apache/camel/model/cloud/jaxb.index b/core/camel-core-model/src/generated/resources/org/apache/camel/model/cloud/jaxb.index
index fbeb9dfd92c..31a7f8eb088 100644
--- a/core/camel-core-model/src/generated/resources/org/apache/camel/model/cloud/jaxb.index
+++ b/core/camel-core-model/src/generated/resources/org/apache/camel/model/cloud/jaxb.index
@@ -11,7 +11,6 @@ EtcdServiceCallServiceDiscoveryConfiguration
 HealthyServiceCallServiceFilterConfiguration
 KubernetesServiceCallServiceDiscoveryConfiguration
 PassThroughServiceCallServiceFilterConfiguration
-RibbonServiceCallServiceLoadBalancerConfiguration
 ServiceCallConfiguration
 ServiceCallConfigurationDefinition
 ServiceCallDefinition
diff --git a/core/camel-core-model/src/generated/resources/org/apache/camel/model/cloud/kubernetesServiceDiscovery.json b/core/camel-core-model/src/generated/resources/org/apache/camel/model/cloud/kubernetesServiceDiscovery.json
index 4b6d5a6bed4..535ca088d16 100644
--- a/core/camel-core-model/src/generated/resources/org/apache/camel/model/cloud/kubernetesServiceDiscovery.json
+++ b/core/camel-core-model/src/generated/resources/org/apache/camel/model/cloud/kubernetesServiceDiscovery.json
@@ -30,7 +30,7 @@
     "clientKeyFile": { "kind": "attribute", "displayName": "Client Key File", "label": "client", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Sets the Client Keystore data that are loaded from the file when using client lookup" },
     "clientKeyPassphrase": { "kind": "attribute", "displayName": "Client Key Passphrase", "label": "client", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Sets the Client Keystore passphrase when using client lookup" },
     "trustCerts": { "kind": "attribute", "displayName": "Trust Certs", "label": "client", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Sets whether to turn on trust certificate check when using client lookup" },
-    "properties": { "kind": "element", "displayName": "Properties", "label": "advanced", "required": false, "type": "array", "javaType": "java.util.List<org.apache.camel.model.PropertyDefinition>", "deprecated": false, "autowired": false, "secret": false, "description": "Set client properties to use. These properties are specific to what service call implementation are in use. For example if using ribbon, then the client properties are define in com.netflix.client.config.CommonClientConf [...]
+    "properties": { "kind": "element", "displayName": "Properties", "label": "advanced", "required": false, "type": "array", "javaType": "java.util.List<org.apache.camel.model.PropertyDefinition>", "deprecated": false, "autowired": false, "secret": false, "description": "Set client properties to use. These properties are specific to what service call implementation are in use. For example if using a different one, then the client properties are defined according to the specific service i [...]
     "id": { "kind": "attribute", "displayName": "Id", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "The id of this node" }
   }
 }
diff --git a/core/camel-core-model/src/generated/resources/org/apache/camel/model/cloud/loadBalancerConfiguration.json b/core/camel-core-model/src/generated/resources/org/apache/camel/model/cloud/loadBalancerConfiguration.json
index d57930597a5..d39c000fc31 100644
--- a/core/camel-core-model/src/generated/resources/org/apache/camel/model/cloud/loadBalancerConfiguration.json
+++ b/core/camel-core-model/src/generated/resources/org/apache/camel/model/cloud/loadBalancerConfiguration.json
@@ -11,7 +11,7 @@
     "output": false
   },
   "properties": {
-    "properties": { "kind": "element", "displayName": "Properties", "label": "advanced", "required": false, "type": "array", "javaType": "java.util.List<org.apache.camel.model.PropertyDefinition>", "deprecated": false, "autowired": false, "secret": false, "description": "Set client properties to use. These properties are specific to what service call implementation are in use. For example if using ribbon, then the client properties are define in com.netflix.client.config.CommonClientConf [...]
+    "properties": { "kind": "element", "displayName": "Properties", "label": "advanced", "required": false, "type": "array", "javaType": "java.util.List<org.apache.camel.model.PropertyDefinition>", "deprecated": false, "autowired": false, "secret": false, "description": "Set client properties to use. These properties are specific to what service call implementation are in use. For example if using a different one, then the client properties are defined according to the specific service i [...]
     "id": { "kind": "attribute", "displayName": "Id", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "The id of this node" }
   }
 }
diff --git a/core/camel-core-model/src/generated/resources/org/apache/camel/model/cloud/passThroughServiceFilter.json b/core/camel-core-model/src/generated/resources/org/apache/camel/model/cloud/passThroughServiceFilter.json
index 1195ecb1ae8..bb63adb918a 100644
--- a/core/camel-core-model/src/generated/resources/org/apache/camel/model/cloud/passThroughServiceFilter.json
+++ b/core/camel-core-model/src/generated/resources/org/apache/camel/model/cloud/passThroughServiceFilter.json
@@ -11,7 +11,7 @@
     "output": false
   },
   "properties": {
-    "properties": { "kind": "element", "displayName": "Properties", "label": "advanced", "required": false, "type": "array", "javaType": "java.util.List<org.apache.camel.model.PropertyDefinition>", "deprecated": false, "autowired": false, "secret": false, "description": "Set client properties to use. These properties are specific to what service call implementation are in use. For example if using ribbon, then the client properties are define in com.netflix.client.config.CommonClientConf [...]
+    "properties": { "kind": "element", "displayName": "Properties", "label": "advanced", "required": false, "type": "array", "javaType": "java.util.List<org.apache.camel.model.PropertyDefinition>", "deprecated": false, "autowired": false, "secret": false, "description": "Set client properties to use. These properties are specific to what service call implementation are in use. For example if using a different one, then the client properties are defined according to the specific service i [...]
     "id": { "kind": "attribute", "displayName": "Id", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "The id of this node" }
   }
 }
diff --git a/core/camel-core-model/src/generated/resources/org/apache/camel/model/cloud/serviceCall.json b/core/camel-core-model/src/generated/resources/org/apache/camel/model/cloud/serviceCall.json
index d52db509c3b..32d559c419a 100644
--- a/core/camel-core-model/src/generated/resources/org/apache/camel/model/cloud/serviceCall.json
+++ b/core/camel-core-model/src/generated/resources/org/apache/camel/model/cloud/serviceCall.json
@@ -25,7 +25,7 @@
     "expressionRef": { "kind": "attribute", "displayName": "Expression Ref", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Set a reference to a custom Expression to use." },
     "serviceDiscoveryConfiguration": { "kind": "element", "displayName": "Service Discovery Configuration", "required": true, "type": "object", "javaType": "org.apache.camel.model.cloud.ServiceCallServiceDiscoveryConfiguration", "oneOf": [ "cachingServiceDiscovery", "combinedServiceDiscovery", "consulServiceDiscovery", "dnsServiceDiscovery", "etcdServiceDiscovery", "kubernetesServiceDiscovery", "staticServiceDiscovery", "zookeeperServiceDiscovery" ], "deprecated": false, "autowired": fal [...]
     "serviceFilterConfiguration": { "kind": "element", "displayName": "Service Filter Configuration", "required": true, "type": "object", "javaType": "org.apache.camel.model.cloud.ServiceCallServiceFilterConfiguration", "oneOf": [ "blacklistServiceFilter", "combinedServiceFilter", "customServiceFilter", "healthyServiceFilter", "passThroughServiceFilter" ], "deprecated": false, "autowired": false, "secret": false, "description": "Configures the ServiceFilter using the given configuration." },
-    "loadBalancerConfiguration": { "kind": "element", "displayName": "Load Balancer Configuration", "required": true, "type": "object", "javaType": "org.apache.camel.model.cloud.ServiceCallServiceLoadBalancerConfiguration", "oneOf": [ "defaultLoadBalancer", "ribbonLoadBalancer" ], "deprecated": false, "autowired": false, "secret": false, "description": "Configures the LoadBalancer using the given configuration." },
+    "loadBalancerConfiguration": { "kind": "element", "displayName": "Load Balancer Configuration", "required": true, "type": "object", "javaType": "org.apache.camel.model.cloud.ServiceCallServiceLoadBalancerConfiguration", "oneOf": [ "defaultLoadBalancer" ], "deprecated": false, "autowired": false, "secret": false, "description": "Configures the LoadBalancer using the given configuration." },
     "id": { "kind": "attribute", "displayName": "Id", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Sets the id of this node" },
     "description": { "kind": "element", "displayName": "Description", "required": false, "type": "object", "javaType": "org.apache.camel.model.DescriptionDefinition", "deprecated": false, "autowired": false, "secret": false, "description": "Sets the description of this node" }
   }
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 eec8d892abe..0e435721a46 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
@@ -23,7 +23,7 @@
     "expressionRef": { "kind": "attribute", "displayName": "Expression Ref", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Set a reference to a custom Expression to use." },
     "serviceDiscoveryConfiguration": { "kind": "element", "displayName": "Service Discovery Configuration", "required": true, "type": "object", "javaType": "org.apache.camel.model.cloud.ServiceCallServiceDiscoveryConfiguration", "oneOf": [ "cachingServiceDiscovery", "combinedServiceDiscovery", "consulServiceDiscovery", "dnsServiceDiscovery", "etcdServiceDiscovery", "kubernetesServiceDiscovery", "staticServiceDiscovery", "zookeeperServiceDiscovery" ], "deprecated": false, "autowired": fal [...]
     "serviceFilterConfiguration": { "kind": "element", "displayName": "Service Filter Configuration", "required": true, "type": "object", "javaType": "org.apache.camel.model.cloud.ServiceCallServiceFilterConfiguration", "oneOf": [ "blacklistServiceFilter", "combinedServiceFilter", "customServiceFilter", "healthyServiceFilter", "passThroughServiceFilter" ], "deprecated": false, "autowired": false, "secret": false, "description": "Configures the ServiceFilter using the given configuration." },
-    "loadBalancerConfiguration": { "kind": "element", "displayName": "Load Balancer Configuration", "required": true, "type": "object", "javaType": "org.apache.camel.model.cloud.ServiceCallServiceLoadBalancerConfiguration", "oneOf": [ "defaultLoadBalancer", "ribbonLoadBalancer" ], "deprecated": false, "autowired": false, "secret": false, "description": "Configures theL oadBalancer using the given configuration." },
+    "loadBalancerConfiguration": { "kind": "element", "displayName": "Load Balancer Configuration", "required": true, "type": "object", "javaType": "org.apache.camel.model.cloud.ServiceCallServiceLoadBalancerConfiguration", "oneOf": [ "defaultLoadBalancer" ], "deprecated": false, "autowired": false, "secret": false, "description": "Configures theL oadBalancer using the given configuration." },
     "id": { "kind": "attribute", "displayName": "Id", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "The id of this node" }
   }
 }
diff --git a/core/camel-core-model/src/generated/resources/org/apache/camel/model/cloud/serviceChooserConfiguration.json b/core/camel-core-model/src/generated/resources/org/apache/camel/model/cloud/serviceChooserConfiguration.json
index 8b691771252..4f01e7b8342 100644
--- a/core/camel-core-model/src/generated/resources/org/apache/camel/model/cloud/serviceChooserConfiguration.json
+++ b/core/camel-core-model/src/generated/resources/org/apache/camel/model/cloud/serviceChooserConfiguration.json
@@ -11,7 +11,7 @@
     "output": false
   },
   "properties": {
-    "properties": { "kind": "element", "displayName": "Properties", "label": "advanced", "required": false, "type": "array", "javaType": "java.util.List<org.apache.camel.model.PropertyDefinition>", "deprecated": false, "autowired": false, "secret": false, "description": "Set client properties to use. These properties are specific to what service call implementation are in use. For example if using ribbon, then the client properties are define in com.netflix.client.config.CommonClientConf [...]
+    "properties": { "kind": "element", "displayName": "Properties", "label": "advanced", "required": false, "type": "array", "javaType": "java.util.List<org.apache.camel.model.PropertyDefinition>", "deprecated": false, "autowired": false, "secret": false, "description": "Set client properties to use. These properties are specific to what service call implementation are in use. For example if using a different one, then the client properties are defined according to the specific service i [...]
     "id": { "kind": "attribute", "displayName": "Id", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "The id of this node" }
   }
 }
diff --git a/core/camel-core-model/src/generated/resources/org/apache/camel/model/cloud/serviceDiscoveryConfiguration.json b/core/camel-core-model/src/generated/resources/org/apache/camel/model/cloud/serviceDiscoveryConfiguration.json
index 0bcad2aedf5..2c189604b2a 100644
--- a/core/camel-core-model/src/generated/resources/org/apache/camel/model/cloud/serviceDiscoveryConfiguration.json
+++ b/core/camel-core-model/src/generated/resources/org/apache/camel/model/cloud/serviceDiscoveryConfiguration.json
@@ -11,7 +11,7 @@
     "output": false
   },
   "properties": {
-    "properties": { "kind": "element", "displayName": "Properties", "label": "advanced", "required": false, "type": "array", "javaType": "java.util.List<org.apache.camel.model.PropertyDefinition>", "deprecated": false, "autowired": false, "secret": false, "description": "Set client properties to use. These properties are specific to what service call implementation are in use. For example if using ribbon, then the client properties are define in com.netflix.client.config.CommonClientConf [...]
+    "properties": { "kind": "element", "displayName": "Properties", "label": "advanced", "required": false, "type": "array", "javaType": "java.util.List<org.apache.camel.model.PropertyDefinition>", "deprecated": false, "autowired": false, "secret": false, "description": "Set client properties to use. These properties are specific to what service call implementation are in use. For example if using a different one, then the client properties are defined according to the specific service i [...]
     "id": { "kind": "attribute", "displayName": "Id", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "The id of this node" }
   }
 }
diff --git a/core/camel-core-model/src/generated/resources/org/apache/camel/model/cloud/serviceExpression.json b/core/camel-core-model/src/generated/resources/org/apache/camel/model/cloud/serviceExpression.json
index 8bc7f641d94..26839b7e258 100644
--- a/core/camel-core-model/src/generated/resources/org/apache/camel/model/cloud/serviceExpression.json
+++ b/core/camel-core-model/src/generated/resources/org/apache/camel/model/cloud/serviceExpression.json
@@ -13,7 +13,7 @@
   "properties": {
     "hostHeader": { "kind": "attribute", "displayName": "Host Header", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "CamelServiceCallServiceHost", "description": "The header that holds the service host information, default ServiceCallConstants.SERVICE_HOST" },
     "portHeader": { "kind": "attribute", "displayName": "Port Header", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "CamelServiceCallServicePort", "description": "The header that holds the service port information, default ServiceCallConstants.SERVICE_PORT" },
-    "properties": { "kind": "element", "displayName": "Properties", "label": "advanced", "required": false, "type": "array", "javaType": "java.util.List<org.apache.camel.model.PropertyDefinition>", "deprecated": false, "autowired": false, "secret": false, "description": "Set client properties to use. These properties are specific to what service call implementation are in use. For example if using ribbon, then the client properties are define in com.netflix.client.config.CommonClientConf [...]
+    "properties": { "kind": "element", "displayName": "Properties", "label": "advanced", "required": false, "type": "array", "javaType": "java.util.List<org.apache.camel.model.PropertyDefinition>", "deprecated": false, "autowired": false, "secret": false, "description": "Set client properties to use. These properties are specific to what service call implementation are in use. For example if using a different one, then the client properties are defined according to the specific service i [...]
     "id": { "kind": "attribute", "displayName": "Id", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "The id of this node" }
   }
 }
diff --git a/core/camel-core-model/src/generated/resources/org/apache/camel/model/cloud/serviceFilterConfiguration.json b/core/camel-core-model/src/generated/resources/org/apache/camel/model/cloud/serviceFilterConfiguration.json
index 9547039228b..9d50b3455d8 100644
--- a/core/camel-core-model/src/generated/resources/org/apache/camel/model/cloud/serviceFilterConfiguration.json
+++ b/core/camel-core-model/src/generated/resources/org/apache/camel/model/cloud/serviceFilterConfiguration.json
@@ -11,7 +11,7 @@
     "output": false
   },
   "properties": {
-    "properties": { "kind": "element", "displayName": "Properties", "label": "advanced", "required": false, "type": "array", "javaType": "java.util.List<org.apache.camel.model.PropertyDefinition>", "deprecated": false, "autowired": false, "secret": false, "description": "Set client properties to use. These properties are specific to what service call implementation are in use. For example if using ribbon, then the client properties are define in com.netflix.client.config.CommonClientConf [...]
+    "properties": { "kind": "element", "displayName": "Properties", "label": "advanced", "required": false, "type": "array", "javaType": "java.util.List<org.apache.camel.model.PropertyDefinition>", "deprecated": false, "autowired": false, "secret": false, "description": "Set client properties to use. These properties are specific to what service call implementation are in use. For example if using a different one, then the client properties are defined according to the specific service i [...]
     "id": { "kind": "attribute", "displayName": "Id", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "The id of this node" }
   }
 }
diff --git a/core/camel-core-model/src/generated/resources/org/apache/camel/model/cloud/staticServiceDiscovery.json b/core/camel-core-model/src/generated/resources/org/apache/camel/model/cloud/staticServiceDiscovery.json
index f2b3da8b602..7ac41477006 100644
--- a/core/camel-core-model/src/generated/resources/org/apache/camel/model/cloud/staticServiceDiscovery.json
+++ b/core/camel-core-model/src/generated/resources/org/apache/camel/model/cloud/staticServiceDiscovery.json
@@ -12,7 +12,7 @@
   },
   "properties": {
     "servers": { "kind": "element", "displayName": "Servers", "required": false, "type": "array", "javaType": "java.util.List<java.lang.String>", "deprecated": false, "autowired": false, "secret": false, "description": "Sets the server list. Each entry can be a list of servers separated by comma in the format: servicehost:port,servicehost2:port,servicehost3:port" },
-    "properties": { "kind": "element", "displayName": "Properties", "label": "advanced", "required": false, "type": "array", "javaType": "java.util.List<org.apache.camel.model.PropertyDefinition>", "deprecated": false, "autowired": false, "secret": false, "description": "Set client properties to use. These properties are specific to what service call implementation are in use. For example if using ribbon, then the client properties are define in com.netflix.client.config.CommonClientConf [...]
+    "properties": { "kind": "element", "displayName": "Properties", "label": "advanced", "required": false, "type": "array", "javaType": "java.util.List<org.apache.camel.model.PropertyDefinition>", "deprecated": false, "autowired": false, "secret": false, "description": "Set client properties to use. These properties are specific to what service call implementation are in use. For example if using a different one, then the client properties are defined according to the specific service i [...]
     "id": { "kind": "attribute", "displayName": "Id", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "The id of this node" }
   }
 }
diff --git a/core/camel-core-model/src/generated/resources/org/apache/camel/model/cloud/zookeeperServiceDiscovery.json b/core/camel-core-model/src/generated/resources/org/apache/camel/model/cloud/zookeeperServiceDiscovery.json
index 19d09764954..891d30739e3 100644
--- a/core/camel-core-model/src/generated/resources/org/apache/camel/model/cloud/zookeeperServiceDiscovery.json
+++ b/core/camel-core-model/src/generated/resources/org/apache/camel/model/cloud/zookeeperServiceDiscovery.json
@@ -19,7 +19,7 @@
     "sessionTimeout": { "kind": "attribute", "displayName": "Session Timeout", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Session timeout." },
     "connectionTimeout": { "kind": "attribute", "displayName": "Connection Timeout", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Connection timeout." },
     "basePath": { "kind": "attribute", "displayName": "Base Path", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Set the base path to store in ZK" },
-    "properties": { "kind": "element", "displayName": "Properties", "label": "advanced", "required": false, "type": "array", "javaType": "java.util.List<org.apache.camel.model.PropertyDefinition>", "deprecated": false, "autowired": false, "secret": false, "description": "Set client properties to use. These properties are specific to what service call implementation are in use. For example if using ribbon, then the client properties are define in com.netflix.client.config.CommonClientConf [...]
+    "properties": { "kind": "element", "displayName": "Properties", "label": "advanced", "required": false, "type": "array", "javaType": "java.util.List<org.apache.camel.model.PropertyDefinition>", "deprecated": false, "autowired": false, "secret": false, "description": "Set client properties to use. These properties are specific to what service call implementation are in use. For example if using a different one, then the client properties are defined according to the specific service i [...]
     "id": { "kind": "attribute", "displayName": "Id", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "The id of this node" }
   }
 }
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
deleted file mode 100644
index f6d2da20698..00000000000
--- a/core/camel-core-model/src/main/java/org/apache/camel/model/cloud/RibbonServiceCallServiceLoadBalancerConfiguration.java
+++ /dev/null
@@ -1,132 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.camel.model.cloud;
-
-import javax.xml.bind.annotation.XmlAccessType;
-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;
-    @XmlAttribute
-    private String username;
-    @XmlAttribute
-    private String password;
-    @XmlAttribute
-    private String clientName;
-
-    public RibbonServiceCallServiceLoadBalancerConfiguration() {
-        this(null);
-    }
-
-    public RibbonServiceCallServiceLoadBalancerConfiguration(ServiceCallDefinition parent) {
-        super(parent, "ribbon-service-load-balancer");
-    }
-
-    // *************************************************************************
-    // Properties
-    // *************************************************************************
-
-    public String getNamespace() {
-        return namespace;
-    }
-
-    /**
-     * The namespace
-     */
-    public void setNamespace(String namespace) {
-        this.namespace = namespace;
-    }
-
-    public String getUsername() {
-        return username;
-    }
-
-    /**
-     * The username
-     */
-    public void setUsername(String username) {
-        this.username = username;
-    }
-
-    public String getPassword() {
-        return password;
-    }
-
-    /**
-     * The password
-     */
-    public void setPassword(String password) {
-        this.password = password;
-    }
-
-    public String getClientName() {
-        return clientName;
-    }
-
-    /**
-     * Sets the Ribbon client name
-     */
-    public void setClientName(String clientName) {
-        this.clientName = clientName;
-    }
-
-    // *************************************************************************
-    // Fluent API
-    // *************************************************************************
-
-    /**
-     * Sets the namespace
-     */
-    public RibbonServiceCallServiceLoadBalancerConfiguration namespace(String namespace) {
-        setNamespace(namespace);
-        return this;
-    }
-
-    /**
-     * Sets the username
-     */
-    public RibbonServiceCallServiceLoadBalancerConfiguration username(String username) {
-        setUsername(username);
-        return this;
-    }
-
-    /**
-     * Sets the password
-     */
-    public RibbonServiceCallServiceLoadBalancerConfiguration password(String password) {
-        setPassword(password);
-        return this;
-    }
-
-    /**
-     * Sets the Ribbon client name
-     */
-    public RibbonServiceCallServiceLoadBalancerConfiguration clientName(String clientName) {
-        setClientName(clientName);
-        return this;
-    }
-}
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 8eba9578610..be6ba46d155 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
@@ -57,8 +57,8 @@ public abstract class ServiceCallConfiguration extends IdentifiedType {
     /**
      * Set client properties to use.
      * <p/>
-     * These properties are specific to what service call implementation are in use. For example if using ribbon, then
-     * the client properties are define in com.netflix.client.config.CommonClientConfigKey.
+     * These properties are specific to what service call implementation are in use. For example if using a different
+     * one, then the client properties are defined according to the specific service in use.
      */
     public void setProperties(List<PropertyDefinition> properties) {
         this.properties = properties;
@@ -67,8 +67,8 @@ public abstract class ServiceCallConfiguration extends IdentifiedType {
     /**
      * Adds a custom property to use.
      * <p/>
-     * These properties are specific to what service call implementation are in use. For example if using ribbon, then
-     * the client properties are define in com.netflix.client.config.CommonClientConfigKey.
+     * These properties are specific to what service call implementation are in use. For example if using a different
+     * one, then the client properties are defined according to the specific service in use.
      */
     public ServiceCallConfiguration property(String key, String value) {
         if (properties == null) {
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 d3566dbed24..175f9f673ad 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
@@ -89,7 +89,6 @@ public class ServiceCallConfigurationDefinition extends IdentifiedType {
     private ServiceCallServiceFilterConfiguration serviceFilterConfiguration;
 
     @XmlElements({
-            @XmlElement(name = "ribbonLoadBalancer", type = RibbonServiceCallServiceLoadBalancerConfiguration.class),
             @XmlElement(name = "defaultLoadBalancer", type = DefaultServiceCallServiceLoadBalancerConfiguration.class) })
     private ServiceCallServiceLoadBalancerConfiguration loadBalancerConfiguration;
 
@@ -647,20 +646,4 @@ public class ServiceCallConfigurationDefinition extends IdentifiedType {
 
         return this;
     }
-
-    public ServiceCallConfigurationDefinition ribbonLoadBalancer() {
-        RibbonServiceCallServiceLoadBalancerConfiguration conf = new RibbonServiceCallServiceLoadBalancerConfiguration();
-        setLoadBalancerConfiguration(conf);
-
-        return this;
-    }
-
-    public ServiceCallConfigurationDefinition ribbonLoadBalancer(String clientName) {
-        RibbonServiceCallServiceLoadBalancerConfiguration conf = new RibbonServiceCallServiceLoadBalancerConfiguration();
-        conf.setClientName(clientName);
-
-        setLoadBalancerConfiguration(conf);
-
-        return this;
-    }
 }
diff --git a/core/camel-core-model/src/main/java/org/apache/camel/model/cloud/ServiceCallDefinition.java b/core/camel-core-model/src/main/java/org/apache/camel/model/cloud/ServiceCallDefinition.java
index ca043cf9188..6785877f3fa 100644
--- a/core/camel-core-model/src/main/java/org/apache/camel/model/cloud/ServiceCallDefinition.java
+++ b/core/camel-core-model/src/main/java/org/apache/camel/model/cloud/ServiceCallDefinition.java
@@ -96,7 +96,6 @@ public class ServiceCallDefinition extends NoOutputDefinition<ServiceCallDefinit
     private ServiceCallServiceFilterConfiguration serviceFilterConfiguration;
 
     @XmlElements({
-            @XmlElement(name = "ribbonLoadBalancer", type = RibbonServiceCallServiceLoadBalancerConfiguration.class),
             @XmlElement(name = "defaultLoadBalancer", type = DefaultServiceCallServiceLoadBalancerConfiguration.class) })
     private ServiceCallServiceLoadBalancerConfiguration loadBalancerConfiguration;
 
@@ -726,21 +725,4 @@ public class ServiceCallDefinition extends NoOutputDefinition<ServiceCallDefinit
 
         return this;
     }
-
-    public ServiceCallDefinition ribbonLoadBalancer() {
-        RibbonServiceCallServiceLoadBalancerConfiguration conf = new RibbonServiceCallServiceLoadBalancerConfiguration(this);
-        setLoadBalancerConfiguration(conf);
-
-        return this;
-    }
-
-    public ServiceCallDefinition ribbonLoadBalancer(String clientName) {
-        RibbonServiceCallServiceLoadBalancerConfiguration conf = new RibbonServiceCallServiceLoadBalancerConfiguration(this);
-        conf.setClientName(clientName);
-
-        setLoadBalancerConfiguration(conf);
-
-        return this;
-    }
-
 }
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 241720ff406..c7708088e3b 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
@@ -69,8 +69,8 @@ public class ServiceCallServiceFilterConfiguration extends ServiceCallConfigurat
     /**
      * Adds a custom property to use.
      * <p/>
-     * These properties are specific to what service call implementation are in use. For example if using ribbon, then
-     * the client properties are define in com.netflix.client.config.CommonClientConfigKey.
+     * These properties are specific to what service call implementation are in use. For example if using a different
+     * one, then the client properties are defined according to the specific service in use.
      */
     @Override
     public ServiceCallServiceFilterConfiguration property(String key, String value) {
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 a1f6721f854..613734cebd0 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
@@ -70,8 +70,8 @@ public class ServiceCallServiceLoadBalancerConfiguration extends ServiceCallConf
     /**
      * Adds a custom property to use.
      * <p/>
-     * These properties are specific to what service call implementation are in use. For example if using ribbon, then
-     * the client properties are define in com.netflix.client.config.CommonClientConfigKey.
+     * These properties are specific to what service call implementation are in use. For example if using a different
+     * one, then the client properties are defined according to the specific service in use.
      */
     @Override
     public ServiceCallServiceLoadBalancerConfiguration property(String key, String value) {
diff --git a/core/camel-xml-io/src/generated/java/org/apache/camel/xml/in/ModelParser.java b/core/camel-xml-io/src/generated/java/org/apache/camel/xml/in/ModelParser.java
index 94bdffd78ac..6b887d05ca6 100644
--- a/core/camel-xml-io/src/generated/java/org/apache/camel/xml/in/ModelParser.java
+++ b/core/camel-xml-io/src/generated/java/org/apache/camel/xml/in/ModelParser.java
@@ -1744,18 +1744,6 @@ public class ModelParser extends BaseParser {
         return doParse(new PassThroughServiceCallServiceFilterConfiguration(),
             identifiedTypeAttributeHandler(), serviceCallConfigurationElementHandler(), noValueHandler());
     }
-    protected RibbonServiceCallServiceLoadBalancerConfiguration doParseRibbonServiceCallServiceLoadBalancerConfiguration() throws IOException, XmlPullParserException {
-        return doParse(new RibbonServiceCallServiceLoadBalancerConfiguration(), (def, key, val) -> {
-            switch (key) {
-                case "clientName": def.setClientName(val); break;
-                case "namespace": def.setNamespace(val); break;
-                case "password": def.setPassword(val); break;
-                case "username": def.setUsername(val); break;
-                default: return identifiedTypeAttributeHandler().accept(def, key, val);
-            }
-            return true;
-        }, serviceCallConfigurationElementHandler(), noValueHandler());
-    }
     protected ServiceCallConfigurationDefinition doParseServiceCallConfigurationDefinition() throws IOException, XmlPullParserException {
         return doParse(new ServiceCallConfigurationDefinition(), (def, key, val) -> {
             switch (key) {
@@ -1772,7 +1760,6 @@ public class ModelParser extends BaseParser {
             return true;
         }, (def, key) -> {
             switch (key) {
-                case "ribbonLoadBalancer": def.setLoadBalancerConfiguration(doParseRibbonServiceCallServiceLoadBalancerConfiguration()); break;
                 case "defaultLoadBalancer": def.setLoadBalancerConfiguration(doParseDefaultServiceCallServiceLoadBalancerConfiguration()); break;
                 case "cachingServiceDiscovery": def.setServiceDiscoveryConfiguration(doParseCachingServiceCallServiceDiscoveryConfiguration()); break;
                 case "combinedServiceDiscovery": def.setServiceDiscoveryConfiguration(doParseCombinedServiceCallServiceDiscoveryConfiguration()); break;
@@ -1828,7 +1815,6 @@ public class ModelParser extends BaseParser {
             return true;
         }, (def, key) -> {
             switch (key) {
-                case "ribbonLoadBalancer": def.setLoadBalancerConfiguration(doParseRibbonServiceCallServiceLoadBalancerConfiguration()); break;
                 case "defaultLoadBalancer": def.setLoadBalancerConfiguration(doParseDefaultServiceCallServiceLoadBalancerConfiguration()); break;
                 case "cachingServiceDiscovery": def.setServiceDiscoveryConfiguration(doParseCachingServiceCallServiceDiscoveryConfiguration()); break;
                 case "combinedServiceDiscovery": def.setServiceDiscoveryConfiguration(doParseCombinedServiceCallServiceDiscoveryConfiguration()); break;
diff --git a/docs/components/modules/others/examples/json/ribbon.json b/docs/components/modules/others/examples/json/ribbon.json
deleted file mode 120000
index c63a341302c..00000000000
--- a/docs/components/modules/others/examples/json/ribbon.json
+++ /dev/null
@@ -1 +0,0 @@
-../../../../../../components/camel-ribbon/src/generated/resources/ribbon.json
\ No newline at end of file
diff --git a/docs/components/modules/others/nav.adoc b/docs/components/modules/others/nav.adoc
index 6d46753146e..66768e721d8 100644
--- a/docs/components/modules/others/nav.adoc
+++ b/docs/components/modules/others/nav.adoc
@@ -47,7 +47,6 @@
 ** xref:redis.adoc[Redis]
 ** xref:resilience4j.adoc[Resilience4j]
 ** xref:resourceresolver-github.adoc[Resourceresolver Github]
-** xref:ribbon.adoc[Ribbon]
 ** xref:rxjava.adoc[RxJava]
 ** xref:shiro.adoc[Shiro]
 ** xref:spring-main.adoc[Spring Main]
diff --git a/docs/components/modules/others/pages/ribbon.adoc b/docs/components/modules/others/pages/ribbon.adoc
deleted file mode 120000
index eee2d610f10..00000000000
--- a/docs/components/modules/others/pages/ribbon.adoc
+++ /dev/null
@@ -1 +0,0 @@
-../../../../../components/camel-ribbon/src/main/docs/ribbon.adoc
\ No newline at end of file
diff --git a/dsl/camel-yaml-dsl/camel-yaml-dsl-deserializers/src/generated/java/org/apache/camel/dsl/yaml/deserializers/ModelDeserializers.java b/dsl/camel-yaml-dsl/camel-yaml-dsl-deserializers/src/generated/java/org/apache/camel/dsl/yaml/deserializers/ModelDeserializers.java
index 367490d9ba6..4e7ad4b15f3 100644
--- a/dsl/camel-yaml-dsl/camel-yaml-dsl-deserializers/src/generated/java/org/apache/camel/dsl/yaml/deserializers/ModelDeserializers.java
+++ b/dsl/camel-yaml-dsl/camel-yaml-dsl-deserializers/src/generated/java/org/apache/camel/dsl/yaml/deserializers/ModelDeserializers.java
@@ -114,7 +114,6 @@ import org.apache.camel.model.cloud.EtcdServiceCallServiceDiscoveryConfiguration
 import org.apache.camel.model.cloud.HealthyServiceCallServiceFilterConfiguration;
 import org.apache.camel.model.cloud.KubernetesServiceCallServiceDiscoveryConfiguration;
 import org.apache.camel.model.cloud.PassThroughServiceCallServiceFilterConfiguration;
-import org.apache.camel.model.cloud.RibbonServiceCallServiceLoadBalancerConfiguration;
 import org.apache.camel.model.cloud.ServiceCallConfigurationDefinition;
 import org.apache.camel.model.cloud.ServiceCallDefinition;
 import org.apache.camel.model.cloud.ServiceCallExpressionConfiguration;
@@ -12554,74 +12553,6 @@ public final class ModelDeserializers extends YamlDeserializerSupport {
         }
     }
 
-    @YamlType(
-            types = org.apache.camel.model.cloud.RibbonServiceCallServiceLoadBalancerConfiguration.class,
-            order = org.apache.camel.dsl.yaml.common.YamlDeserializerResolver.ORDER_LOWEST - 1,
-            nodes = {
-                    "ribbon-load-balancer",
-                    "ribbonLoadBalancer"
-            },
-            properties = {
-                    @YamlProperty(name = "client-name", type = "string"),
-                    @YamlProperty(name = "id", type = "string"),
-                    @YamlProperty(name = "namespace", type = "string"),
-                    @YamlProperty(name = "password", type = "string"),
-                    @YamlProperty(name = "properties", type = "array:org.apache.camel.model.PropertyDefinition"),
-                    @YamlProperty(name = "username", type = "string")
-            }
-    )
-    public static class RibbonServiceCallServiceLoadBalancerConfigurationDeserializer extends YamlDeserializerBase<RibbonServiceCallServiceLoadBalancerConfiguration> {
-        public RibbonServiceCallServiceLoadBalancerConfigurationDeserializer() {
-            super(RibbonServiceCallServiceLoadBalancerConfiguration.class);
-        }
-
-        @Override
-        protected RibbonServiceCallServiceLoadBalancerConfiguration newInstance() {
-            return new RibbonServiceCallServiceLoadBalancerConfiguration();
-        }
-
-        @Override
-        protected boolean setProperty(RibbonServiceCallServiceLoadBalancerConfiguration target,
-                String propertyKey, String propertyName, Node node) {
-            switch(propertyKey) {
-                case "client-name": {
-                    String val = asText(node);
-                    target.setClientName(val);
-                    break;
-                }
-                case "id": {
-                    String val = asText(node);
-                    target.setId(val);
-                    break;
-                }
-                case "namespace": {
-                    String val = asText(node);
-                    target.setNamespace(val);
-                    break;
-                }
-                case "password": {
-                    String val = asText(node);
-                    target.setPassword(val);
-                    break;
-                }
-                case "properties": {
-                    java.util.List<org.apache.camel.model.PropertyDefinition> val = asFlatList(node, org.apache.camel.model.PropertyDefinition.class);
-                    target.setProperties(val);
-                    break;
-                }
-                case "username": {
-                    String val = asText(node);
-                    target.setUsername(val);
-                    break;
-                }
-                default: {
-                    return false;
-                }
-            }
-            return true;
-        }
-    }
-
     @YamlType(
             inline = true,
             types = org.apache.camel.model.RollbackDefinition.class,
@@ -13454,7 +13385,6 @@ public final class ModelDeserializers extends YamlDeserializerSupport {
                     @YamlProperty(name = "load-balancer-ref", type = "string"),
                     @YamlProperty(name = "pass-through-service-filter", type = "object:org.apache.camel.model.cloud.PassThroughServiceCallServiceFilterConfiguration"),
                     @YamlProperty(name = "pattern", type = "string"),
-                    @YamlProperty(name = "ribbon-load-balancer", type = "object:org.apache.camel.model.cloud.RibbonServiceCallServiceLoadBalancerConfiguration"),
                     @YamlProperty(name = "service-chooser-ref", type = "string"),
                     @YamlProperty(name = "service-discovery-ref", type = "string"),
                     @YamlProperty(name = "service-filter-ref", type = "string"),
@@ -13497,16 +13427,6 @@ public final class ModelDeserializers extends YamlDeserializerSupport {
                     target.setId(val);
                     break;
                 }
-                case "load-balancer-configuration": {
-                    MappingNode val = asMappingNode(node);
-                    setProperties(target, val);
-                    break;
-                }
-                case "ribbon-load-balancer": {
-                    org.apache.camel.model.cloud.RibbonServiceCallServiceLoadBalancerConfiguration val = asType(node, org.apache.camel.model.cloud.RibbonServiceCallServiceLoadBalancerConfiguration.class);
-                    target.setLoadBalancerConfiguration(val);
-                    break;
-                }
                 case "default-load-balancer": {
                     org.apache.camel.model.cloud.DefaultServiceCallServiceLoadBalancerConfiguration val = asType(node, org.apache.camel.model.cloud.DefaultServiceCallServiceLoadBalancerConfiguration.class);
                     target.setLoadBalancerConfiguration(val);
@@ -13656,7 +13576,6 @@ public final class ModelDeserializers extends YamlDeserializerSupport {
                     @YamlProperty(name = "name", type = "string", required = true),
                     @YamlProperty(name = "pass-through-service-filter", type = "object:org.apache.camel.model.cloud.PassThroughServiceCallServiceFilterConfiguration"),
                     @YamlProperty(name = "pattern", type = "string"),
-                    @YamlProperty(name = "ribbon-load-balancer", type = "object:org.apache.camel.model.cloud.RibbonServiceCallServiceLoadBalancerConfiguration"),
                     @YamlProperty(name = "service-chooser-ref", type = "string"),
                     @YamlProperty(name = "service-discovery-ref", type = "string"),
                     @YamlProperty(name = "service-filter-ref", type = "string"),
@@ -13709,16 +13628,6 @@ public final class ModelDeserializers extends YamlDeserializerSupport {
                     target.setInheritErrorHandler(java.lang.Boolean.valueOf(val));
                     break;
                 }
-                case "load-balancer-configuration": {
-                    MappingNode val = asMappingNode(node);
-                    setProperties(target, val);
-                    break;
-                }
-                case "ribbon-load-balancer": {
-                    org.apache.camel.model.cloud.RibbonServiceCallServiceLoadBalancerConfiguration val = asType(node, org.apache.camel.model.cloud.RibbonServiceCallServiceLoadBalancerConfiguration.class);
-                    target.setLoadBalancerConfiguration(val);
-                    break;
-                }
                 case "default-load-balancer": {
                     org.apache.camel.model.cloud.DefaultServiceCallServiceLoadBalancerConfiguration val = asType(node, org.apache.camel.model.cloud.DefaultServiceCallServiceLoadBalancerConfiguration.class);
                     target.setLoadBalancerConfiguration(val);
diff --git a/dsl/camel-yaml-dsl/camel-yaml-dsl-deserializers/src/generated/java/org/apache/camel/dsl/yaml/deserializers/ModelDeserializersResolver.java b/dsl/camel-yaml-dsl/camel-yaml-dsl-deserializers/src/generated/java/org/apache/camel/dsl/yaml/deserializers/ModelDeserializersResolver.java
index 80119762687..9c30cae98b7 100644
--- a/dsl/camel-yaml-dsl/camel-yaml-dsl-deserializers/src/generated/java/org/apache/camel/dsl/yaml/deserializers/ModelDeserializersResolver.java
+++ b/dsl/camel-yaml-dsl/camel-yaml-dsl-deserializers/src/generated/java/org/apache/camel/dsl/yaml/deserializers/ModelDeserializersResolver.java
@@ -355,9 +355,6 @@ public final class ModelDeserializersResolver implements YamlDeserializerResolve
             case "org.apache.camel.model.rest.RestsDefinition": return new ModelDeserializers.RestsDefinitionDeserializer();
             case "resumable": return new ModelDeserializers.ResumableDefinitionDeserializer();
             case "org.apache.camel.model.ResumableDefinition": return new ModelDeserializers.ResumableDefinitionDeserializer();
-            case "ribbon-load-balancer": return new ModelDeserializers.RibbonServiceCallServiceLoadBalancerConfigurationDeserializer();
-            case "ribbonLoadBalancer": return new ModelDeserializers.RibbonServiceCallServiceLoadBalancerConfigurationDeserializer();
-            case "org.apache.camel.model.cloud.RibbonServiceCallServiceLoadBalancerConfiguration": return new ModelDeserializers.RibbonServiceCallServiceLoadBalancerConfigurationDeserializer();
             case "rollback": return new ModelDeserializers.RollbackDefinitionDeserializer();
             case "org.apache.camel.model.RollbackDefinition": return new ModelDeserializers.RollbackDefinitionDeserializer();
             case "round-robin": return new ModelDeserializers.RoundRobinLoadBalancerDefinitionDeserializer();
diff --git a/dsl/camel-yaml-dsl/camel-yaml-dsl/src/generated/resources/camel-yaml-dsl.json b/dsl/camel-yaml-dsl/camel-yaml-dsl/src/generated/resources/camel-yaml-dsl.json
index 21f7378682c..23d1078612d 100644
--- a/dsl/camel-yaml-dsl/camel-yaml-dsl/src/generated/resources/camel-yaml-dsl.json
+++ b/dsl/camel-yaml-dsl/camel-yaml-dsl/src/generated/resources/camel-yaml-dsl.json
@@ -3895,32 +3895,6 @@
           }
         }
       },
-      "org.apache.camel.model.cloud.RibbonServiceCallServiceLoadBalancerConfiguration" : {
-        "type" : "object",
-        "properties" : {
-          "client-name" : {
-            "type" : "string"
-          },
-          "id" : {
-            "type" : "string"
-          },
-          "namespace" : {
-            "type" : "string"
-          },
-          "password" : {
-            "type" : "string"
-          },
-          "properties" : {
-            "type" : "array",
-            "items" : {
-              "$ref" : "#/items/definitions/org.apache.camel.model.PropertyDefinition"
-            }
-          },
-          "username" : {
-            "type" : "string"
-          }
-        }
-      },
       "org.apache.camel.model.cloud.ServiceCallConfigurationDefinition" : {
         "type" : "object",
         "properties" : {
@@ -3978,9 +3952,6 @@
           "pattern" : {
             "type" : "string"
           },
-          "ribbon-load-balancer" : {
-            "$ref" : "#/items/definitions/org.apache.camel.model.cloud.RibbonServiceCallServiceLoadBalancerConfiguration"
-          },
           "service-chooser-ref" : {
             "type" : "string"
           },
@@ -4073,9 +4044,6 @@
             "pattern" : {
               "type" : "string"
             },
-            "ribbon-load-balancer" : {
-              "$ref" : "#/items/definitions/org.apache.camel.model.cloud.RibbonServiceCallServiceLoadBalancerConfiguration"
-            },
             "service-chooser-ref" : {
               "type" : "string"
             },
diff --git a/dsl/camel-yaml-dsl/camel-yaml-dsl/src/generated/resources/camelYamlDsl.json b/dsl/camel-yaml-dsl/camel-yaml-dsl/src/generated/resources/camelYamlDsl.json
index 31e1177e853..afba13c54a3 100644
--- a/dsl/camel-yaml-dsl/camel-yaml-dsl/src/generated/resources/camelYamlDsl.json
+++ b/dsl/camel-yaml-dsl/camel-yaml-dsl/src/generated/resources/camelYamlDsl.json
@@ -3799,32 +3799,6 @@
           }
         }
       },
-      "org.apache.camel.model.cloud.RibbonServiceCallServiceLoadBalancerConfiguration" : {
-        "type" : "object",
-        "properties" : {
-          "clientName" : {
-            "type" : "string"
-          },
-          "id" : {
-            "type" : "string"
-          },
-          "namespace" : {
-            "type" : "string"
-          },
-          "password" : {
-            "type" : "string"
-          },
-          "properties" : {
-            "type" : "array",
-            "items" : {
-              "$ref" : "#/items/definitions/org.apache.camel.model.PropertyDefinition"
-            }
-          },
-          "username" : {
-            "type" : "string"
-          }
-        }
-      },
       "org.apache.camel.model.cloud.ServiceCallConfigurationDefinition" : {
         "type" : "object",
         "properties" : {
@@ -3882,9 +3856,6 @@
           "pattern" : {
             "type" : "string"
           },
-          "ribbonLoadBalancer" : {
-            "$ref" : "#/items/definitions/org.apache.camel.model.cloud.RibbonServiceCallServiceLoadBalancerConfiguration"
-          },
           "serviceChooserRef" : {
             "type" : "string"
           },
@@ -3977,9 +3948,6 @@
             "pattern" : {
               "type" : "string"
             },
-            "ribbonLoadBalancer" : {
-              "$ref" : "#/items/definitions/org.apache.camel.model.cloud.RibbonServiceCallServiceLoadBalancerConfiguration"
-            },
             "serviceChooserRef" : {
               "type" : "string"
             },
diff --git a/parent/pom.xml b/parent/pom.xml
index b69de6ce4c7..84eb9033032 100644
--- a/parent/pom.xml
+++ b/parent/pom.xml
@@ -459,8 +459,6 @@
         <resilience4j-version>1.7.1</resilience4j-version>
         <rest-assured-version>4.4.0</rest-assured-version>
         <resteasy-version>4.5.6.Final</resteasy-version>
-        <ribbon-version>2.3.0</ribbon-version>
-        <servo-version>0.10.1</servo-version>
         <roaster-version>2.23.2.Final</roaster-version>
         <robotframework-version>4.1.2</robotframework-version>
         <rome-version>1.18.0</rome-version>
@@ -2253,11 +2251,6 @@
 				<artifactId>camel-resteasy</artifactId>
 				<version>${project.version}</version>
 			</dependency>
-			<dependency>
-				<groupId>org.apache.camel</groupId>
-				<artifactId>camel-ribbon</artifactId>
-				<version>${project.version}</version>
-			</dependency>
 			<dependency>
 				<groupId>org.apache.camel</groupId>
 				<artifactId>camel-robotframework</artifactId>