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/06/14 10:59:17 UTC

[camel] branch main updated: CAMEL-17879: remove left-overs from camel-hystrix

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 05595854aad CAMEL-17879: remove left-overs from camel-hystrix
05595854aad is described below

commit 05595854aadb81ccb408c1ca8c3c28c4dc835ec3
Author: Otavio Rodolfo Piske <an...@gmail.com>
AuthorDate: Tue Jun 14 11:31:29 2022 +0200

    CAMEL-17879: remove left-overs from camel-hystrix
---
 .../main/camel-main-configuration-metadata.json    |  32 -
 .../camel/catalog/models/circuitBreaker.json       |   2 +-
 .../apache/camel/catalog/models/onFallback.json    |   2 +-
 .../apache/camel/catalog/schemas/camel-spring.xsd  |  11 +-
 .../org/apache/camel/catalog/CamelCatalogTest.java |   1 -
 .../parser/helper/CamelJavaTreeParserHelper.java   |   4 +-
 .../ResilienceInheritErrorHandlerTest.java         |   4 +-
 .../spring/xml/handler/CamelNamespaceHandler.java  |   2 +-
 .../camel/catalog/impl/AbstractCamelCatalog.java   |   2 -
 .../org/apache/camel/model/circuitBreaker.json     |   2 +-
 .../org/apache/camel/model/onFallback.json         |   2 +-
 .../camel/model/CircuitBreakerDefinition.java      |   2 +-
 .../apache/camel/model/OnFallbackDefinition.java   |   7 +-
 .../apache/camel/model/ProcessorDefinition.java    |   2 +-
 .../camel/processor/DefaultProcessorFactory.java   |   2 -
 .../camel/reifier/CircuitBreakerReifier.java       |   2 +-
 .../HystrixConfigurationPropertiesConfigurer.java  | 276 -------
 .../camel-main-configuration-metadata.json         |  32 -
 core/camel-main/src/main/docs/main.adoc            |  39 -
 .../camel/main/HystrixConfigurationProperties.java | 809 ---------------------
 .../camel/main/MainConfigurationProperties.java    |  23 -
 .../maven/packaging/PrepareCamelMainMojo.java      |   7 +-
 22 files changed, 21 insertions(+), 1244 deletions(-)

diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/main/camel-main-configuration-metadata.json b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/main/camel-main-configuration-metadata.json
index 26c9225dcaf..2376528636f 100644
--- a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/main/camel-main-configuration-metadata.json
+++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/main/camel-main-configuration-metadata.json
@@ -9,7 +9,6 @@
     { "name": "camel.vault.azure", "description": "Camel Azure Key Vault configurations", "sourceType": "org.apache.camel.vault.AzureVaultConfiguration" },
     { "name": "camel.faulttolerance", "description": "Fault Tolerance EIP Circuit Breaker configurations", "sourceType": "org.apache.camel.main.FaultToleranceConfigurationProperties" },
     { "name": "camel.resilience4j", "description": "Resilience4j EIP Circuit Breaker configurations", "sourceType": "org.apache.camel.main.Resilience4jConfigurationProperties" },
-    { "name": "camel.hystrix", "description": "Hystrix (deprecated) EIP Circuit Breaker configurations", "sourceType": "org.apache.camel.main.HystrixConfigurationProperties" },
     { "name": "camel.lra", "description": "Camel Saga EIP (Long Running Actions) configurations", "sourceType": "org.apache.camel.main.LraConfigurationProperties" }
   ],
   "properties": [
@@ -147,37 +146,6 @@
     { "name": "camel.health.initialState", "description": "The initial state of health-checks (readiness). There are the following states: UP, DOWN, UNKNOWN. By default, the state is DOWN, is regarded as being pessimistic\/careful. This means that the overall health checks may report as DOWN during startup and then only if everything is up and running flip to being UP. Setting the initial state to UP, is regarded as being optimistic. This means that the overall health checks may report a [...]
     { "name": "camel.health.registryEnabled", "description": "Whether registry health check is enabled", "sourceType": "org.apache.camel.main.HealthConfigurationProperties", "type": "boolean", "javaType": "java.lang.Boolean", "defaultValue": true },
     { "name": "camel.health.routesEnabled", "description": "Whether routes health check is enabled", "sourceType": "org.apache.camel.main.HealthConfigurationProperties", "type": "boolean", "javaType": "java.lang.Boolean", "defaultValue": true },
-    { "name": "camel.hystrix.allowMaximumSizeToDivergeFromCoreSize", "description": "Allows the configuration for maximumSize to take effect. That value can then be equal to, or higher, than coreSize", "sourceType": "org.apache.camel.main.HystrixConfigurationProperties", "type": "boolean", "javaType": "java.lang.Boolean", "defaultValue": "false", "deprecated": true },
-    { "name": "camel.hystrix.circuitBreakerEnabled", "description": "Whether to use a HystrixCircuitBreaker or not. If false no circuit-breaker logic will be used and all requests permitted. This is similar in effect to circuitBreakerForceClosed() except that continues tracking metrics and knowing whether it should be open\/closed, this property results in not even instantiating a circuit-breaker.", "sourceType": "org.apache.camel.main.HystrixConfigurationProperties", "type": "boolean",  [...]
-    { "name": "camel.hystrix.circuitBreakerErrorThresholdPercentage", "description": "Error percentage threshold (as whole number such as 50) at which point the circuit breaker will trip open and reject requests. It will stay tripped for the duration defined in circuitBreakerSleepWindowInMilliseconds; The error percentage this is compared against comes from HystrixCommandMetrics.getHealthCounts().", "sourceType": "org.apache.camel.main.HystrixConfigurationProperties", "type": "integer",  [...]
-    { "name": "camel.hystrix.circuitBreakerForceClosed", "description": "If true the HystrixCircuitBreaker#allowRequest() will always return true to allow requests regardless of the error percentage from HystrixCommandMetrics.getHealthCounts(). The circuitBreakerForceOpen() property takes precedence so if it set to true this property does nothing.", "sourceType": "org.apache.camel.main.HystrixConfigurationProperties", "type": "boolean", "javaType": "java.lang.Boolean", "defaultValue": "f [...]
-    { "name": "camel.hystrix.circuitBreakerForceOpen", "description": "If true the HystrixCircuitBreaker.allowRequest() will always return false, causing the circuit to be open (tripped) and reject all requests. This property takes precedence over circuitBreakerForceClosed();", "sourceType": "org.apache.camel.main.HystrixConfigurationProperties", "type": "boolean", "javaType": "java.lang.Boolean", "defaultValue": "false", "deprecated": true },
-    { "name": "camel.hystrix.circuitBreakerRequestVolumeThreshold", "description": "Minimum number of requests in the metricsRollingStatisticalWindowInMilliseconds() that must exist before the HystrixCircuitBreaker will trip. If below this number the circuit will not trip regardless of error percentage.", "sourceType": "org.apache.camel.main.HystrixConfigurationProperties", "type": "integer", "javaType": "java.lang.Integer", "deprecated": true },
-    { "name": "camel.hystrix.circuitBreakerSleepWindowInMilliseconds", "description": "The time in milliseconds after a HystrixCircuitBreaker trips open that it should wait before trying requests again.", "sourceType": "org.apache.camel.main.HystrixConfigurationProperties", "type": "integer", "javaType": "java.lang.Integer", "deprecated": true },
-    { "name": "camel.hystrix.corePoolSize", "description": "Core thread-pool size that gets passed to java.util.concurrent.ThreadPoolExecutor#setCorePoolSize(int)", "sourceType": "org.apache.camel.main.HystrixConfigurationProperties", "type": "integer", "javaType": "java.lang.Integer", "deprecated": true },
-    { "name": "camel.hystrix.executionIsolationSemaphoreMaxConcurrentRequests", "description": "Number of concurrent requests permitted to HystrixCommand.run(). Requests beyond the concurrent limit will be rejected. Applicable only when executionIsolationStrategy == SEMAPHORE.", "sourceType": "org.apache.camel.main.HystrixConfigurationProperties", "type": "integer", "javaType": "java.lang.Integer", "deprecated": true },
-    { "name": "camel.hystrix.executionIsolationStrategy", "description": "What isolation strategy HystrixCommand.run() will be executed with. If THREAD then it will be executed on a separate thread and concurrent requests limited by the number of threads in the thread-pool. If SEMAPHORE then it will be executed on the calling thread and concurrent requests limited by the semaphore count.", "sourceType": "org.apache.camel.main.HystrixConfigurationProperties", "type": "string", "javaType": [...]
-    { "name": "camel.hystrix.executionIsolationThreadInterruptOnTimeout", "description": "Whether the execution thread should attempt an interrupt (using Future#cancel ) when a thread times out. Applicable only when executionIsolationStrategy() == THREAD.", "sourceType": "org.apache.camel.main.HystrixConfigurationProperties", "type": "boolean", "javaType": "java.lang.Boolean", "defaultValue": "false", "deprecated": true },
-    { "name": "camel.hystrix.executionTimeoutEnabled", "description": "Whether the timeout mechanism is enabled for this command", "sourceType": "org.apache.camel.main.HystrixConfigurationProperties", "type": "boolean", "javaType": "java.lang.Boolean", "defaultValue": "false", "deprecated": true },
-    { "name": "camel.hystrix.executionTimeoutInMilliseconds", "description": "Time in milliseconds at which point the command will timeout and halt execution. If executionIsolationThreadInterruptOnTimeout == true and the command is thread-isolated, the executing thread will be interrupted. If the command is semaphore-isolated and a HystrixObservableCommand, that command will get unsubscribed.", "sourceType": "org.apache.camel.main.HystrixConfigurationProperties", "type": "integer", "java [...]
-    { "name": "camel.hystrix.fallbackEnabled", "description": "Whether HystrixCommand.getFallback() should be attempted when failure occurs.", "sourceType": "org.apache.camel.main.HystrixConfigurationProperties", "type": "boolean", "javaType": "java.lang.Boolean", "defaultValue": "false", "deprecated": true },
-    { "name": "camel.hystrix.fallbackIsolationSemaphoreMaxConcurrentRequests", "description": "Number of concurrent requests permitted to HystrixCommand.getFallback(). Requests beyond the concurrent limit will fail-fast and not attempt retrieving a fallback.", "sourceType": "org.apache.camel.main.HystrixConfigurationProperties", "type": "integer", "javaType": "java.lang.Integer", "deprecated": true },
-    { "name": "camel.hystrix.groupKey", "description": "Sets the group key to use. The default value is CamelHystrix.", "sourceType": "org.apache.camel.main.HystrixConfigurationProperties", "type": "string", "javaType": "java.lang.String", "deprecated": true },
-    { "name": "camel.hystrix.keepAliveTime", "description": "Keep-alive time in minutes that gets passed to ThreadPoolExecutor#setKeepAliveTime(long,TimeUnit)", "sourceType": "org.apache.camel.main.HystrixConfigurationProperties", "type": "integer", "javaType": "java.lang.Integer", "deprecated": true },
-    { "name": "camel.hystrix.maximumSize", "description": "Maximum thread-pool size that gets passed to ThreadPoolExecutor#setMaximumPoolSize(int) . This is the maximum amount of concurrency that can be supported without starting to reject HystrixCommands. Please note that this setting only takes effect if you also set allowMaximumSizeToDivergeFromCoreSize", "sourceType": "org.apache.camel.main.HystrixConfigurationProperties", "type": "integer", "javaType": "java.lang.Integer", "deprecat [...]
-    { "name": "camel.hystrix.maxQueueSize", "description": "Max queue size that gets passed to BlockingQueue in HystrixConcurrencyStrategy.getBlockingQueue(int) This should only affect the instantiation of a threadpool - it is not eliglible to change a queue size on the fly. For that, use queueSizeRejectionThreshold().", "sourceType": "org.apache.camel.main.HystrixConfigurationProperties", "type": "integer", "javaType": "java.lang.Integer", "deprecated": true },
-    { "name": "camel.hystrix.metricsHealthSnapshotIntervalInMilliseconds", "description": "Time in milliseconds to wait between allowing health snapshots to be taken that calculate success and error percentages and affect HystrixCircuitBreaker.isOpen() status. On high-volume circuits the continual calculation of error percentage can become CPU intensive thus this controls how often it is calculated.", "sourceType": "org.apache.camel.main.HystrixConfigurationProperties", "type": "integer" [...]
-    { "name": "camel.hystrix.metricsRollingPercentileBucketSize", "description": "Maximum number of values stored in each bucket of the rolling percentile. This is passed into HystrixRollingPercentile inside HystrixCommandMetrics.", "sourceType": "org.apache.camel.main.HystrixConfigurationProperties", "type": "integer", "javaType": "java.lang.Integer", "deprecated": true },
-    { "name": "camel.hystrix.metricsRollingPercentileEnabled", "description": "Whether percentile metrics should be captured using HystrixRollingPercentile inside HystrixCommandMetrics.", "sourceType": "org.apache.camel.main.HystrixConfigurationProperties", "type": "boolean", "javaType": "java.lang.Boolean", "defaultValue": "false", "deprecated": true },
-    { "name": "camel.hystrix.metricsRollingPercentileWindowBuckets", "description": "Number of buckets the rolling percentile window is broken into. This is passed into HystrixRollingPercentile inside HystrixCommandMetrics.", "sourceType": "org.apache.camel.main.HystrixConfigurationProperties", "type": "integer", "javaType": "java.lang.Integer", "deprecated": true },
-    { "name": "camel.hystrix.metricsRollingPercentileWindowInMilliseconds", "description": "Duration of percentile rolling window in milliseconds. This is passed into HystrixRollingPercentile inside HystrixCommandMetrics.", "sourceType": "org.apache.camel.main.HystrixConfigurationProperties", "type": "integer", "javaType": "java.lang.Integer", "deprecated": true },
-    { "name": "camel.hystrix.metricsRollingStatisticalWindowBuckets", "description": "Number of buckets the rolling statistical window is broken into. This is passed into HystrixRollingNumber inside HystrixCommandMetrics.", "sourceType": "org.apache.camel.main.HystrixConfigurationProperties", "type": "integer", "javaType": "java.lang.Integer", "deprecated": true },
-    { "name": "camel.hystrix.metricsRollingStatisticalWindowInMilliseconds", "description": "This property sets the duration of the statistical rolling window, in milliseconds. This is how long metrics are kept for the thread pool. The window is divided into buckets and rolls by those increments.", "sourceType": "org.apache.camel.main.HystrixConfigurationProperties", "type": "integer", "javaType": "java.lang.Integer", "deprecated": true },
-    { "name": "camel.hystrix.queueSizeRejectionThreshold", "description": "Queue size rejection threshold is an artificial max size at which rejections will occur even if maxQueueSize has not been reached. This is done because the maxQueueSize of a BlockingQueue can not be dynamically changed and we want to support dynamically changing the queue size that affects rejections. This is used by HystrixCommand when queuing a thread for execution.", "sourceType": "org.apache.camel.main.Hystrix [...]
-    { "name": "camel.hystrix.requestLogEnabled", "description": "Whether HystrixCommand execution and events should be logged to HystrixRequestLog.", "sourceType": "org.apache.camel.main.HystrixConfigurationProperties", "type": "boolean", "javaType": "java.lang.Boolean", "defaultValue": "false", "deprecated": true },
-    { "name": "camel.hystrix.threadPoolKey", "description": "Sets the thread pool key to use. Will by default use the same value as groupKey has been configured to use.", "sourceType": "org.apache.camel.main.HystrixConfigurationProperties", "type": "string", "javaType": "java.lang.String", "deprecated": true },
-    { "name": "camel.hystrix.threadPoolRollingNumberStatisticalWindowBuckets", "description": "Number of buckets the rolling statistical window is broken into. This is passed into HystrixRollingNumber inside each HystrixThreadPoolMetrics instance.", "sourceType": "org.apache.camel.main.HystrixConfigurationProperties", "type": "integer", "javaType": "java.lang.Integer", "deprecated": true },
-    { "name": "camel.hystrix.threadPoolRollingNumberStatisticalWindowInMilliseconds", "description": "Duration of statistical rolling window in milliseconds. This is passed into HystrixRollingNumber inside each HystrixThreadPoolMetrics instance.", "sourceType": "org.apache.camel.main.HystrixConfigurationProperties", "type": "integer", "javaType": "java.lang.Integer", "deprecated": true },
     { "name": "camel.lra.coordinatorContextPath", "description": "The context-path for the LRA coordinator. Is default \/lra-coordinator", "sourceType": "org.apache.camel.main.LraConfigurationProperties", "type": "string", "javaType": "java.lang.String", "defaultValue": "\/lra-coordinator" },
     { "name": "camel.lra.coordinatorUrl", "description": "The URL for the LRA coordinator service that orchestrates the transactions", "sourceType": "org.apache.camel.main.LraConfigurationProperties", "type": "string", "javaType": "java.lang.String" },
     { "name": "camel.lra.localParticipantContextPath", "description": "The context-path for the local participant. Is default \/lra-participant", "sourceType": "org.apache.camel.main.LraConfigurationProperties", "type": "string", "javaType": "java.lang.String", "defaultValue": "\/lra-participant" },
diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/circuitBreaker.json b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/circuitBreaker.json
index aaf7a376cb7..82ba878e8ed 100644
--- a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/circuitBreaker.json
+++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/circuitBreaker.json
@@ -14,7 +14,7 @@
   "properties": {
     "resilience4jConfiguration": { "kind": "element", "displayName": "Resilience4j Configuration", "required": false, "type": "object", "javaType": "org.apache.camel.model.Resilience4jConfigurationDefinition", "deprecated": false, "autowired": false, "secret": false, "description": "Configures the circuit breaker to use Resilience4j with the given configuration." },
     "faultToleranceConfiguration": { "kind": "element", "displayName": "Fault Tolerance Configuration", "required": false, "type": "object", "javaType": "org.apache.camel.model.FaultToleranceConfigurationDefinition", "deprecated": false, "autowired": false, "secret": false, "description": "Configures the circuit breaker to use MicroProfile Fault Tolerance with the given configuration." },
-    "configuration": { "kind": "attribute", "displayName": "Configuration", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Refers to a circuit breaker configuration (such as hystrix, resillience4j, or microprofile-fault-tolerance) to use for configuring the circuit breaker EIP." },
+    "configuration": { "kind": "attribute", "displayName": "Configuration", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Refers to a circuit breaker configuration (such as resillience4j, or microprofile-fault-tolerance) to use for configuring the circuit breaker EIP." },
     "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/onFallback.json b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/onFallback.json
index ff64cb8bdc1..3b1867a86a8 100644
--- a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/onFallback.json
+++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/onFallback.json
@@ -12,7 +12,7 @@
     "output": false
   },
   "properties": {
-    "fallbackViaNetwork": { "kind": "attribute", "displayName": "Fallback Via Network", "label": "advanced", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the fallback goes over the network. If the fallback will go over the network it is another possible point of failure and so it also needs to be wrapped by a HystrixCommand. It is important to execute the fal [...]
+    "fallbackViaNetwork": { "kind": "attribute", "displayName": "Fallback Via Network", "label": "advanced", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the fallback goes over the network. If the fallback will go over the network it is another possible point of failure. It is important to execute the fallback command on a separate thread-pool, otherwise if t [...]
     "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/schemas/camel-spring.xsd b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/schemas/camel-spring.xsd
index 6095aaa734a..492505b696c 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
@@ -3904,7 +3904,7 @@ the branch that matched. Default value: false
         <xs:attribute name="configuration" type="xs:string">
           <xs:annotation>
             <xs:documentation xml:lang="en"><![CDATA[
-Refers to a circuit breaker configuration (such as hystrix, resillience4j, or
+Refers to a circuit breaker configuration (such as resillience4j, or
 microprofile-fault-tolerance) to use for configuring the circuit breaker EIP.
             ]]></xs:documentation>
           </xs:annotation>
@@ -9607,11 +9607,10 @@ Default value: false
           <xs:annotation>
             <xs:documentation xml:lang="en"><![CDATA[
 Whether the fallback goes over the network. If the fallback will go over the
-network it is another possible point of failure and so it also needs to be
-wrapped by a HystrixCommand. It is important to execute the fallback command on
-a separate thread-pool, otherwise if the main command were to become latent and
-fill the thread-pool this would prevent the fallback from running if the two
-commands share the same pool. Default value: false
+network it is another possible point of failure. It is important to execute the
+fallback command on a separate thread-pool, otherwise if the main command were
+to become latent and fill the thread-pool this would prevent the fallback from
+running if the two commands share the same pool. Default value: false
             ]]></xs:documentation>
           </xs:annotation>
         </xs:attribute>
diff --git a/catalog/camel-catalog/src/test/java/org/apache/camel/catalog/CamelCatalogTest.java b/catalog/camel-catalog/src/test/java/org/apache/camel/catalog/CamelCatalogTest.java
index f00dd1e743e..4c6ae210985 100644
--- a/catalog/camel-catalog/src/test/java/org/apache/camel/catalog/CamelCatalogTest.java
+++ b/catalog/camel-catalog/src/test/java/org/apache/camel/catalog/CamelCatalogTest.java
@@ -87,7 +87,6 @@ public class CamelCatalogTest {
         assertTrue(names.contains("swagger-java"));
         assertTrue(names.contains("test-spring"));
 
-        assertFalse(names.contains("hystrix"));
         assertFalse(names.contains("http-common"));
         assertFalse(names.contains("kura"));
         assertFalse(names.contains("core-osgi"));
diff --git a/catalog/camel-route-parser/src/main/java/org/apache/camel/parser/helper/CamelJavaTreeParserHelper.java b/catalog/camel-route-parser/src/main/java/org/apache/camel/parser/helper/CamelJavaTreeParserHelper.java
index c0a8f7e8812..4998ae436bf 100644
--- a/catalog/camel-route-parser/src/main/java/org/apache/camel/parser/helper/CamelJavaTreeParserHelper.java
+++ b/catalog/camel-route-parser/src/main/java/org/apache/camel/parser/helper/CamelJavaTreeParserHelper.java
@@ -117,7 +117,7 @@ public final class CamelJavaTreeParserHelper {
                 // should be set on the parent
                 parent.setRouteId(node.getRouteId());
             } else if ("end".equals(name) || "endParent".equals(name) || "endRest".equals(name)
-                    || "endDoTry".equals(name) || "endHystrix".equals(name)) {
+                    || "endDoTry".equals(name)) {
                 // parent should be grand parent
                 if (parent.getParent() != null) {
                     parent = parent.getParent();
@@ -232,7 +232,7 @@ public final class CamelJavaTreeParserHelper {
         String name = mi.getName().getIdentifier();
 
         // special for Java DSL having some endXXX
-        boolean isEnd = "end".equals(name) || "endChoice".equals(name) || "endDoTry".equals(name) || "endHystrix".equals(name)
+        boolean isEnd = "end".equals(name) || "endChoice".equals(name) || "endDoTry".equals(name)
                 || "endParent".equals(name) || "endRest".equals(name);
         boolean isRoute = "route".equals(name) || "from".equals(name) || "routeId".equals(name);
         // must be an eip model that has either input or output as we only want to track processors (also accept from)
diff --git a/components/camel-resilience4j/src/test/java/org/apache/camel/component/resilience4j/ResilienceInheritErrorHandlerTest.java b/components/camel-resilience4j/src/test/java/org/apache/camel/component/resilience4j/ResilienceInheritErrorHandlerTest.java
index 72e643ea9d2..9d1f15520c4 100644
--- a/components/camel-resilience4j/src/test/java/org/apache/camel/component/resilience4j/ResilienceInheritErrorHandlerTest.java
+++ b/components/camel-resilience4j/src/test/java/org/apache/camel/component/resilience4j/ResilienceInheritErrorHandlerTest.java
@@ -50,13 +50,13 @@ public class ResilienceInheritErrorHandlerTest extends CamelTestSupport {
                 errorHandler(deadLetterChannel("mock:dead").maximumRedeliveries(3).redeliveryDelay(0));
 
                 from("direct:start").to("log:start")
-                        // turn on Camel's error handler on hystrix so it can do
+                        // turn on Camel's error handler so it can do
                         // redeliveries
                         .circuitBreaker().inheritErrorHandler(true).to("mock:a")
                         .throwException(new IllegalArgumentException("Forced")).end().to("log:result").to("mock:result");
 
                 from("direct:start.with.timeout.enabled").to("log:direct:start.with.timeout.enabled")
-                        // turn on Camel's error handler on hystrix so it can do
+                        // turn on Camel's error handler on so it can do
                         // redeliveries
                         .circuitBreaker().inheritErrorHandler(true).resilience4jConfiguration().timeoutEnabled(true).timeoutDuration(2000).end()
                         .to("mock:a")
diff --git a/components/camel-spring-xml/src/main/java/org/apache/camel/spring/xml/handler/CamelNamespaceHandler.java b/components/camel-spring-xml/src/main/java/org/apache/camel/spring/xml/handler/CamelNamespaceHandler.java
index 369089422f9..88eb09c0c65 100644
--- a/components/camel-spring-xml/src/main/java/org/apache/camel/spring/xml/handler/CamelNamespaceHandler.java
+++ b/components/camel-spring-xml/src/main/java/org/apache/camel/spring/xml/handler/CamelNamespaceHandler.java
@@ -164,7 +164,7 @@ public class CamelNamespaceHandler extends NamespaceHandlerSupport {
         addBeanDefinitionParser("threadPool", CamelThreadPoolFactoryBean.class, true, true);
         addBeanDefinitionParser("redeliveryPolicyProfile", CamelRedeliveryPolicyFactoryBean.class, true, true);
 
-        // jmx agent, stream caching, hystrix, service call configurations and property placeholder cannot be used outside of the camel context
+        // jmx agent, stream caching, service call configurations and property placeholder cannot be used outside of the camel context
         addBeanDefinitionParser("jmxAgent", CamelJMXAgentDefinition.class, false, false);
         addBeanDefinitionParser("streamCaching", CamelStreamCachingStrategyDefinition.class, false, false);
         addBeanDefinitionParser("propertyPlaceholder", CamelPropertyPlaceholderDefinition.class, false, false);
diff --git a/core/camel-core-catalog/src/main/java/org/apache/camel/catalog/impl/AbstractCamelCatalog.java b/core/camel-core-catalog/src/main/java/org/apache/camel/catalog/impl/AbstractCamelCatalog.java
index f364cc05d8c..036ad72093a 100644
--- a/core/camel-core-catalog/src/main/java/org/apache/camel/catalog/impl/AbstractCamelCatalog.java
+++ b/core/camel-core-catalog/src/main/java/org/apache/camel/catalog/impl/AbstractCamelCatalog.java
@@ -1105,7 +1105,6 @@ public abstract class AbstractCamelCatalog {
                 doValidateConfigurationProperty(result, rows, name, value, longKey, nOption, suffix);
             }
         } else if (key.startsWith("main.")
-                || key.startsWith("hystrix.")
                 || key.startsWith("resilience4j.")
                 || key.startsWith("faulttolerance.")
                 || key.startsWith("threadpool.")
@@ -1281,7 +1280,6 @@ public abstract class AbstractCamelCatalog {
             || key.startsWith("camel.dataformat.")
             || key.startsWith("camel.language.")
             || key.startsWith("camel.main.")
-            || key.startsWith("camel.hystrix.")
             || key.startsWith("camel.resilience4j.")
             || key.startsWith("camel.faulttolerance.")
             || key.startsWith("camel.threadpool.")
diff --git a/core/camel-core-model/src/generated/resources/org/apache/camel/model/circuitBreaker.json b/core/camel-core-model/src/generated/resources/org/apache/camel/model/circuitBreaker.json
index aaf7a376cb7..82ba878e8ed 100644
--- a/core/camel-core-model/src/generated/resources/org/apache/camel/model/circuitBreaker.json
+++ b/core/camel-core-model/src/generated/resources/org/apache/camel/model/circuitBreaker.json
@@ -14,7 +14,7 @@
   "properties": {
     "resilience4jConfiguration": { "kind": "element", "displayName": "Resilience4j Configuration", "required": false, "type": "object", "javaType": "org.apache.camel.model.Resilience4jConfigurationDefinition", "deprecated": false, "autowired": false, "secret": false, "description": "Configures the circuit breaker to use Resilience4j with the given configuration." },
     "faultToleranceConfiguration": { "kind": "element", "displayName": "Fault Tolerance Configuration", "required": false, "type": "object", "javaType": "org.apache.camel.model.FaultToleranceConfigurationDefinition", "deprecated": false, "autowired": false, "secret": false, "description": "Configures the circuit breaker to use MicroProfile Fault Tolerance with the given configuration." },
-    "configuration": { "kind": "attribute", "displayName": "Configuration", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Refers to a circuit breaker configuration (such as hystrix, resillience4j, or microprofile-fault-tolerance) to use for configuring the circuit breaker EIP." },
+    "configuration": { "kind": "attribute", "displayName": "Configuration", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Refers to a circuit breaker configuration (such as resillience4j, or microprofile-fault-tolerance) to use for configuring the circuit breaker EIP." },
     "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/onFallback.json b/core/camel-core-model/src/generated/resources/org/apache/camel/model/onFallback.json
index ff64cb8bdc1..3b1867a86a8 100644
--- a/core/camel-core-model/src/generated/resources/org/apache/camel/model/onFallback.json
+++ b/core/camel-core-model/src/generated/resources/org/apache/camel/model/onFallback.json
@@ -12,7 +12,7 @@
     "output": false
   },
   "properties": {
-    "fallbackViaNetwork": { "kind": "attribute", "displayName": "Fallback Via Network", "label": "advanced", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the fallback goes over the network. If the fallback will go over the network it is another possible point of failure and so it also needs to be wrapped by a HystrixCommand. It is important to execute the fal [...]
+    "fallbackViaNetwork": { "kind": "attribute", "displayName": "Fallback Via Network", "label": "advanced", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the fallback goes over the network. If the fallback will go over the network it is another possible point of failure. It is important to execute the fallback command on a separate thread-pool, otherwise if t [...]
     "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/main/java/org/apache/camel/model/CircuitBreakerDefinition.java b/core/camel-core-model/src/main/java/org/apache/camel/model/CircuitBreakerDefinition.java
index 8f38e6359bc..d92f2c840d6 100644
--- a/core/camel-core-model/src/main/java/org/apache/camel/model/CircuitBreakerDefinition.java
+++ b/core/camel-core-model/src/main/java/org/apache/camel/model/CircuitBreakerDefinition.java
@@ -134,7 +134,7 @@ public class CircuitBreakerDefinition extends OutputDefinition<CircuitBreakerDef
     }
 
     /**
-     * Refers to a circuit breaker configuration (such as hystrix, resillience4j, or microprofile-fault-tolerance) to
+     * Refers to a circuit breaker configuration (such as resillience4j, or microprofile-fault-tolerance) to
      * use for configuring the circuit breaker EIP.
      */
     public void setConfiguration(String configuration) {
diff --git a/core/camel-core-model/src/main/java/org/apache/camel/model/OnFallbackDefinition.java b/core/camel-core-model/src/main/java/org/apache/camel/model/OnFallbackDefinition.java
index 27812fde7cf..3afed3903a3 100644
--- a/core/camel-core-model/src/main/java/org/apache/camel/model/OnFallbackDefinition.java
+++ b/core/camel-core-model/src/main/java/org/apache/camel/model/OnFallbackDefinition.java
@@ -90,10 +90,9 @@ public class OnFallbackDefinition extends OutputDefinition<OnFallbackDefinition>
     /**
      * Whether the fallback goes over the network.
      * <p/>
-     * If the fallback will go over the network it is another possible point of failure and so it also needs to be
-     * wrapped by a HystrixCommand. It is important to execute the fallback command on a separate thread-pool, otherwise
-     * if the main command were to become latent and fill the thread-pool this would prevent the fallback from running
-     * if the two commands share the same pool.
+     * If the fallback will go over the network it is another possible point of failure. It is important to execute the
+     * fallback command on a separate thread-pool, otherwise if the main command were to become latent and fill the
+     * thread-pool this would prevent the fallback from running if the two commands share the same pool.
      */
     public void setFallbackViaNetwork(String fallbackViaNetwork) {
         this.fallbackViaNetwork = fallbackViaNetwork;
diff --git a/core/camel-core-model/src/main/java/org/apache/camel/model/ProcessorDefinition.java b/core/camel-core-model/src/main/java/org/apache/camel/model/ProcessorDefinition.java
index 3dd1418045c..e3d4adfd5b9 100644
--- a/core/camel-core-model/src/main/java/org/apache/camel/model/ProcessorDefinition.java
+++ b/core/camel-core-model/src/main/java/org/apache/camel/model/ProcessorDefinition.java
@@ -1300,7 +1300,7 @@ public abstract class ProcessorDefinition<Type extends ProcessorDefinition<Type>
     /**
      * Creates a Circuit Breaker EIP.
      * <p/>
-     * This requires having an implementation on the classpath such as camel-hystrix, or
+     * This requires having an implementation on the classpath such as
      * camel-microprofile-fault-tolerance.
      *
      * @return the builder
diff --git a/core/camel-core-processor/src/main/java/org/apache/camel/processor/DefaultProcessorFactory.java b/core/camel-core-processor/src/main/java/org/apache/camel/processor/DefaultProcessorFactory.java
index 227c39a52f0..1ededba6bdd 100644
--- a/core/camel-core-processor/src/main/java/org/apache/camel/processor/DefaultProcessorFactory.java
+++ b/core/camel-core-processor/src/main/java/org/apache/camel/processor/DefaultProcessorFactory.java
@@ -44,8 +44,6 @@ import org.apache.camel.spi.annotations.JdkService;
  * name of the {@link ProcessorFactory} the Camel component implement, which gets called for creating the
  * {@link Processor}s for the EIP.
  * <p/>
- * The Hystrix EIP is such an example where the circuit breaker EIP (CircuitBreakerDefinition) is implemented in the
- * <tt>camel-hystrix</tt> component.
  */
 @JdkService(ProcessorFactory.FACTORY)
 public class DefaultProcessorFactory implements ProcessorFactory, BootstrapCloseable {
diff --git a/core/camel-core-reifier/src/main/java/org/apache/camel/reifier/CircuitBreakerReifier.java b/core/camel-core-reifier/src/main/java/org/apache/camel/reifier/CircuitBreakerReifier.java
index 14ba51f984b..0e31c7fe2ba 100644
--- a/core/camel-core-reifier/src/main/java/org/apache/camel/reifier/CircuitBreakerReifier.java
+++ b/core/camel-core-reifier/src/main/java/org/apache/camel/reifier/CircuitBreakerReifier.java
@@ -30,7 +30,7 @@ public class CircuitBreakerReifier extends ProcessorReifier<CircuitBreakerDefini
     @Override
     public Processor createProcessor() throws Exception {
         throw new IllegalStateException(
-                "Cannot find camel-hystrix, camel-resilience4j or camel-microprofile-fault-tolerance on the classpath.");
+                "Cannot find camel-resilience4j or camel-microprofile-fault-tolerance on the classpath.");
     }
 
 }
diff --git a/core/camel-main/src/generated/java/org/apache/camel/main/HystrixConfigurationPropertiesConfigurer.java b/core/camel-main/src/generated/java/org/apache/camel/main/HystrixConfigurationPropertiesConfigurer.java
deleted file mode 100644
index b0be6653451..00000000000
--- a/core/camel-main/src/generated/java/org/apache/camel/main/HystrixConfigurationPropertiesConfigurer.java
+++ /dev/null
@@ -1,276 +0,0 @@
-/* Generated by camel build tools - do NOT edit this file! */
-package org.apache.camel.main;
-
-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.main.HystrixConfigurationProperties;
-
-/**
- * Generated by camel build tools - do NOT edit this file!
- */
-@SuppressWarnings("unchecked")
-public class HystrixConfigurationPropertiesConfigurer 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("AllowMaximumSizeToDivergeFromCoreSize", java.lang.Boolean.class);
-        map.put("CircuitBreakerEnabled", java.lang.Boolean.class);
-        map.put("CircuitBreakerErrorThresholdPercentage", java.lang.Integer.class);
-        map.put("CircuitBreakerForceClosed", java.lang.Boolean.class);
-        map.put("CircuitBreakerForceOpen", java.lang.Boolean.class);
-        map.put("CircuitBreakerRequestVolumeThreshold", java.lang.Integer.class);
-        map.put("CircuitBreakerSleepWindowInMilliseconds", java.lang.Integer.class);
-        map.put("CorePoolSize", java.lang.Integer.class);
-        map.put("ExecutionIsolationSemaphoreMaxConcurrentRequests", java.lang.Integer.class);
-        map.put("ExecutionIsolationStrategy", java.lang.String.class);
-        map.put("ExecutionIsolationThreadInterruptOnTimeout", java.lang.Boolean.class);
-        map.put("ExecutionTimeoutEnabled", java.lang.Boolean.class);
-        map.put("ExecutionTimeoutInMilliseconds", java.lang.Integer.class);
-        map.put("FallbackEnabled", java.lang.Boolean.class);
-        map.put("FallbackIsolationSemaphoreMaxConcurrentRequests", java.lang.Integer.class);
-        map.put("GroupKey", java.lang.String.class);
-        map.put("KeepAliveTime", java.lang.Integer.class);
-        map.put("MaxQueueSize", java.lang.Integer.class);
-        map.put("MaximumSize", java.lang.Integer.class);
-        map.put("MetricsHealthSnapshotIntervalInMilliseconds", java.lang.Integer.class);
-        map.put("MetricsRollingPercentileBucketSize", java.lang.Integer.class);
-        map.put("MetricsRollingPercentileEnabled", java.lang.Boolean.class);
-        map.put("MetricsRollingPercentileWindowBuckets", java.lang.Integer.class);
-        map.put("MetricsRollingPercentileWindowInMilliseconds", java.lang.Integer.class);
-        map.put("MetricsRollingStatisticalWindowBuckets", java.lang.Integer.class);
-        map.put("MetricsRollingStatisticalWindowInMilliseconds", java.lang.Integer.class);
-        map.put("QueueSizeRejectionThreshold", java.lang.Integer.class);
-        map.put("RequestLogEnabled", java.lang.Boolean.class);
-        map.put("ThreadPoolKey", java.lang.String.class);
-        map.put("ThreadPoolRollingNumberStatisticalWindowBuckets", java.lang.Integer.class);
-        map.put("ThreadPoolRollingNumberStatisticalWindowInMilliseconds", java.lang.Integer.class);
-        ALL_OPTIONS = map;
-        ConfigurerStrategy.addBootstrapConfigurerClearer(HystrixConfigurationPropertiesConfigurer::clearBootstrapConfigurers);
-    }
-
-    @Override
-    public boolean configure(CamelContext camelContext, Object obj, String name, Object value, boolean ignoreCase) {
-        org.apache.camel.main.HystrixConfigurationProperties target = (org.apache.camel.main.HystrixConfigurationProperties) obj;
-        switch (ignoreCase ? name.toLowerCase() : name) {
-        case "allowmaximumsizetodivergefromcoresize":
-        case "AllowMaximumSizeToDivergeFromCoreSize": target.setAllowMaximumSizeToDivergeFromCoreSize(property(camelContext, java.lang.Boolean.class, value)); return true;
-        case "circuitbreakerenabled":
-        case "CircuitBreakerEnabled": target.setCircuitBreakerEnabled(property(camelContext, java.lang.Boolean.class, value)); return true;
-        case "circuitbreakererrorthresholdpercentage":
-        case "CircuitBreakerErrorThresholdPercentage": target.setCircuitBreakerErrorThresholdPercentage(property(camelContext, java.lang.Integer.class, value)); return true;
-        case "circuitbreakerforceclosed":
-        case "CircuitBreakerForceClosed": target.setCircuitBreakerForceClosed(property(camelContext, java.lang.Boolean.class, value)); return true;
-        case "circuitbreakerforceopen":
-        case "CircuitBreakerForceOpen": target.setCircuitBreakerForceOpen(property(camelContext, java.lang.Boolean.class, value)); return true;
-        case "circuitbreakerrequestvolumethreshold":
-        case "CircuitBreakerRequestVolumeThreshold": target.setCircuitBreakerRequestVolumeThreshold(property(camelContext, java.lang.Integer.class, value)); return true;
-        case "circuitbreakersleepwindowinmilliseconds":
-        case "CircuitBreakerSleepWindowInMilliseconds": target.setCircuitBreakerSleepWindowInMilliseconds(property(camelContext, java.lang.Integer.class, value)); return true;
-        case "corepoolsize":
-        case "CorePoolSize": target.setCorePoolSize(property(camelContext, java.lang.Integer.class, value)); return true;
-        case "executionisolationsemaphoremaxconcurrentrequests":
-        case "ExecutionIsolationSemaphoreMaxConcurrentRequests": target.setExecutionIsolationSemaphoreMaxConcurrentRequests(property(camelContext, java.lang.Integer.class, value)); return true;
-        case "executionisolationstrategy":
-        case "ExecutionIsolationStrategy": target.setExecutionIsolationStrategy(property(camelContext, java.lang.String.class, value)); return true;
-        case "executionisolationthreadinterruptontimeout":
-        case "ExecutionIsolationThreadInterruptOnTimeout": target.setExecutionIsolationThreadInterruptOnTimeout(property(camelContext, java.lang.Boolean.class, value)); return true;
-        case "executiontimeoutenabled":
-        case "ExecutionTimeoutEnabled": target.setExecutionTimeoutEnabled(property(camelContext, java.lang.Boolean.class, value)); return true;
-        case "executiontimeoutinmilliseconds":
-        case "ExecutionTimeoutInMilliseconds": target.setExecutionTimeoutInMilliseconds(property(camelContext, java.lang.Integer.class, value)); return true;
-        case "fallbackenabled":
-        case "FallbackEnabled": target.setFallbackEnabled(property(camelContext, java.lang.Boolean.class, value)); return true;
-        case "fallbackisolationsemaphoremaxconcurrentrequests":
-        case "FallbackIsolationSemaphoreMaxConcurrentRequests": target.setFallbackIsolationSemaphoreMaxConcurrentRequests(property(camelContext, java.lang.Integer.class, value)); return true;
-        case "groupkey":
-        case "GroupKey": target.setGroupKey(property(camelContext, java.lang.String.class, value)); return true;
-        case "keepalivetime":
-        case "KeepAliveTime": target.setKeepAliveTime(property(camelContext, java.lang.Integer.class, value)); return true;
-        case "maxqueuesize":
-        case "MaxQueueSize": target.setMaxQueueSize(property(camelContext, java.lang.Integer.class, value)); return true;
-        case "maximumsize":
-        case "MaximumSize": target.setMaximumSize(property(camelContext, java.lang.Integer.class, value)); return true;
-        case "metricshealthsnapshotintervalinmilliseconds":
-        case "MetricsHealthSnapshotIntervalInMilliseconds": target.setMetricsHealthSnapshotIntervalInMilliseconds(property(camelContext, java.lang.Integer.class, value)); return true;
-        case "metricsrollingpercentilebucketsize":
-        case "MetricsRollingPercentileBucketSize": target.setMetricsRollingPercentileBucketSize(property(camelContext, java.lang.Integer.class, value)); return true;
-        case "metricsrollingpercentileenabled":
-        case "MetricsRollingPercentileEnabled": target.setMetricsRollingPercentileEnabled(property(camelContext, java.lang.Boolean.class, value)); return true;
-        case "metricsrollingpercentilewindowbuckets":
-        case "MetricsRollingPercentileWindowBuckets": target.setMetricsRollingPercentileWindowBuckets(property(camelContext, java.lang.Integer.class, value)); return true;
-        case "metricsrollingpercentilewindowinmilliseconds":
-        case "MetricsRollingPercentileWindowInMilliseconds": target.setMetricsRollingPercentileWindowInMilliseconds(property(camelContext, java.lang.Integer.class, value)); return true;
-        case "metricsrollingstatisticalwindowbuckets":
-        case "MetricsRollingStatisticalWindowBuckets": target.setMetricsRollingStatisticalWindowBuckets(property(camelContext, java.lang.Integer.class, value)); return true;
-        case "metricsrollingstatisticalwindowinmilliseconds":
-        case "MetricsRollingStatisticalWindowInMilliseconds": target.setMetricsRollingStatisticalWindowInMilliseconds(property(camelContext, java.lang.Integer.class, value)); return true;
-        case "queuesizerejectionthreshold":
-        case "QueueSizeRejectionThreshold": target.setQueueSizeRejectionThreshold(property(camelContext, java.lang.Integer.class, value)); return true;
-        case "requestlogenabled":
-        case "RequestLogEnabled": target.setRequestLogEnabled(property(camelContext, java.lang.Boolean.class, value)); return true;
-        case "threadpoolkey":
-        case "ThreadPoolKey": target.setThreadPoolKey(property(camelContext, java.lang.String.class, value)); return true;
-        case "threadpoolrollingnumberstatisticalwindowbuckets":
-        case "ThreadPoolRollingNumberStatisticalWindowBuckets": target.setThreadPoolRollingNumberStatisticalWindowBuckets(property(camelContext, java.lang.Integer.class, value)); return true;
-        case "threadpoolrollingnumberstatisticalwindowinmilliseconds":
-        case "ThreadPoolRollingNumberStatisticalWindowInMilliseconds": target.setThreadPoolRollingNumberStatisticalWindowInMilliseconds(property(camelContext, java.lang.Integer.class, value)); return true;
-        default: return false;
-        }
-    }
-
-    @Override
-    public Map<String, Object> getAllOptions(Object target) {
-        return ALL_OPTIONS;
-    }
-
-    public static void clearBootstrapConfigurers() {
-        ALL_OPTIONS.clear();
-    }
-
-    @Override
-    public Class<?> getOptionType(String name, boolean ignoreCase) {
-        switch (ignoreCase ? name.toLowerCase() : name) {
-        case "allowmaximumsizetodivergefromcoresize":
-        case "AllowMaximumSizeToDivergeFromCoreSize": return java.lang.Boolean.class;
-        case "circuitbreakerenabled":
-        case "CircuitBreakerEnabled": return java.lang.Boolean.class;
-        case "circuitbreakererrorthresholdpercentage":
-        case "CircuitBreakerErrorThresholdPercentage": return java.lang.Integer.class;
-        case "circuitbreakerforceclosed":
-        case "CircuitBreakerForceClosed": return java.lang.Boolean.class;
-        case "circuitbreakerforceopen":
-        case "CircuitBreakerForceOpen": return java.lang.Boolean.class;
-        case "circuitbreakerrequestvolumethreshold":
-        case "CircuitBreakerRequestVolumeThreshold": return java.lang.Integer.class;
-        case "circuitbreakersleepwindowinmilliseconds":
-        case "CircuitBreakerSleepWindowInMilliseconds": return java.lang.Integer.class;
-        case "corepoolsize":
-        case "CorePoolSize": return java.lang.Integer.class;
-        case "executionisolationsemaphoremaxconcurrentrequests":
-        case "ExecutionIsolationSemaphoreMaxConcurrentRequests": return java.lang.Integer.class;
-        case "executionisolationstrategy":
-        case "ExecutionIsolationStrategy": return java.lang.String.class;
-        case "executionisolationthreadinterruptontimeout":
-        case "ExecutionIsolationThreadInterruptOnTimeout": return java.lang.Boolean.class;
-        case "executiontimeoutenabled":
-        case "ExecutionTimeoutEnabled": return java.lang.Boolean.class;
-        case "executiontimeoutinmilliseconds":
-        case "ExecutionTimeoutInMilliseconds": return java.lang.Integer.class;
-        case "fallbackenabled":
-        case "FallbackEnabled": return java.lang.Boolean.class;
-        case "fallbackisolationsemaphoremaxconcurrentrequests":
-        case "FallbackIsolationSemaphoreMaxConcurrentRequests": return java.lang.Integer.class;
-        case "groupkey":
-        case "GroupKey": return java.lang.String.class;
-        case "keepalivetime":
-        case "KeepAliveTime": return java.lang.Integer.class;
-        case "maxqueuesize":
-        case "MaxQueueSize": return java.lang.Integer.class;
-        case "maximumsize":
-        case "MaximumSize": return java.lang.Integer.class;
-        case "metricshealthsnapshotintervalinmilliseconds":
-        case "MetricsHealthSnapshotIntervalInMilliseconds": return java.lang.Integer.class;
-        case "metricsrollingpercentilebucketsize":
-        case "MetricsRollingPercentileBucketSize": return java.lang.Integer.class;
-        case "metricsrollingpercentileenabled":
-        case "MetricsRollingPercentileEnabled": return java.lang.Boolean.class;
-        case "metricsrollingpercentilewindowbuckets":
-        case "MetricsRollingPercentileWindowBuckets": return java.lang.Integer.class;
-        case "metricsrollingpercentilewindowinmilliseconds":
-        case "MetricsRollingPercentileWindowInMilliseconds": return java.lang.Integer.class;
-        case "metricsrollingstatisticalwindowbuckets":
-        case "MetricsRollingStatisticalWindowBuckets": return java.lang.Integer.class;
-        case "metricsrollingstatisticalwindowinmilliseconds":
-        case "MetricsRollingStatisticalWindowInMilliseconds": return java.lang.Integer.class;
-        case "queuesizerejectionthreshold":
-        case "QueueSizeRejectionThreshold": return java.lang.Integer.class;
-        case "requestlogenabled":
-        case "RequestLogEnabled": return java.lang.Boolean.class;
-        case "threadpoolkey":
-        case "ThreadPoolKey": return java.lang.String.class;
-        case "threadpoolrollingnumberstatisticalwindowbuckets":
-        case "ThreadPoolRollingNumberStatisticalWindowBuckets": return java.lang.Integer.class;
-        case "threadpoolrollingnumberstatisticalwindowinmilliseconds":
-        case "ThreadPoolRollingNumberStatisticalWindowInMilliseconds": return java.lang.Integer.class;
-        default: return null;
-        }
-    }
-
-    @Override
-    public Object getOptionValue(Object obj, String name, boolean ignoreCase) {
-        org.apache.camel.main.HystrixConfigurationProperties target = (org.apache.camel.main.HystrixConfigurationProperties) obj;
-        switch (ignoreCase ? name.toLowerCase() : name) {
-        case "allowmaximumsizetodivergefromcoresize":
-        case "AllowMaximumSizeToDivergeFromCoreSize": return target.getAllowMaximumSizeToDivergeFromCoreSize();
-        case "circuitbreakerenabled":
-        case "CircuitBreakerEnabled": return target.getCircuitBreakerEnabled();
-        case "circuitbreakererrorthresholdpercentage":
-        case "CircuitBreakerErrorThresholdPercentage": return target.getCircuitBreakerErrorThresholdPercentage();
-        case "circuitbreakerforceclosed":
-        case "CircuitBreakerForceClosed": return target.getCircuitBreakerForceClosed();
-        case "circuitbreakerforceopen":
-        case "CircuitBreakerForceOpen": return target.getCircuitBreakerForceOpen();
-        case "circuitbreakerrequestvolumethreshold":
-        case "CircuitBreakerRequestVolumeThreshold": return target.getCircuitBreakerRequestVolumeThreshold();
-        case "circuitbreakersleepwindowinmilliseconds":
-        case "CircuitBreakerSleepWindowInMilliseconds": return target.getCircuitBreakerSleepWindowInMilliseconds();
-        case "corepoolsize":
-        case "CorePoolSize": return target.getCorePoolSize();
-        case "executionisolationsemaphoremaxconcurrentrequests":
-        case "ExecutionIsolationSemaphoreMaxConcurrentRequests": return target.getExecutionIsolationSemaphoreMaxConcurrentRequests();
-        case "executionisolationstrategy":
-        case "ExecutionIsolationStrategy": return target.getExecutionIsolationStrategy();
-        case "executionisolationthreadinterruptontimeout":
-        case "ExecutionIsolationThreadInterruptOnTimeout": return target.getExecutionIsolationThreadInterruptOnTimeout();
-        case "executiontimeoutenabled":
-        case "ExecutionTimeoutEnabled": return target.getExecutionTimeoutEnabled();
-        case "executiontimeoutinmilliseconds":
-        case "ExecutionTimeoutInMilliseconds": return target.getExecutionTimeoutInMilliseconds();
-        case "fallbackenabled":
-        case "FallbackEnabled": return target.getFallbackEnabled();
-        case "fallbackisolationsemaphoremaxconcurrentrequests":
-        case "FallbackIsolationSemaphoreMaxConcurrentRequests": return target.getFallbackIsolationSemaphoreMaxConcurrentRequests();
-        case "groupkey":
-        case "GroupKey": return target.getGroupKey();
-        case "keepalivetime":
-        case "KeepAliveTime": return target.getKeepAliveTime();
-        case "maxqueuesize":
-        case "MaxQueueSize": return target.getMaxQueueSize();
-        case "maximumsize":
-        case "MaximumSize": return target.getMaximumSize();
-        case "metricshealthsnapshotintervalinmilliseconds":
-        case "MetricsHealthSnapshotIntervalInMilliseconds": return target.getMetricsHealthSnapshotIntervalInMilliseconds();
-        case "metricsrollingpercentilebucketsize":
-        case "MetricsRollingPercentileBucketSize": return target.getMetricsRollingPercentileBucketSize();
-        case "metricsrollingpercentileenabled":
-        case "MetricsRollingPercentileEnabled": return target.getMetricsRollingPercentileEnabled();
-        case "metricsrollingpercentilewindowbuckets":
-        case "MetricsRollingPercentileWindowBuckets": return target.getMetricsRollingPercentileWindowBuckets();
-        case "metricsrollingpercentilewindowinmilliseconds":
-        case "MetricsRollingPercentileWindowInMilliseconds": return target.getMetricsRollingPercentileWindowInMilliseconds();
-        case "metricsrollingstatisticalwindowbuckets":
-        case "MetricsRollingStatisticalWindowBuckets": return target.getMetricsRollingStatisticalWindowBuckets();
-        case "metricsrollingstatisticalwindowinmilliseconds":
-        case "MetricsRollingStatisticalWindowInMilliseconds": return target.getMetricsRollingStatisticalWindowInMilliseconds();
-        case "queuesizerejectionthreshold":
-        case "QueueSizeRejectionThreshold": return target.getQueueSizeRejectionThreshold();
-        case "requestlogenabled":
-        case "RequestLogEnabled": return target.getRequestLogEnabled();
-        case "threadpoolkey":
-        case "ThreadPoolKey": return target.getThreadPoolKey();
-        case "threadpoolrollingnumberstatisticalwindowbuckets":
-        case "ThreadPoolRollingNumberStatisticalWindowBuckets": return target.getThreadPoolRollingNumberStatisticalWindowBuckets();
-        case "threadpoolrollingnumberstatisticalwindowinmilliseconds":
-        case "ThreadPoolRollingNumberStatisticalWindowInMilliseconds": return target.getThreadPoolRollingNumberStatisticalWindowInMilliseconds();
-        default: return null;
-        }
-    }
-}
-
diff --git a/core/camel-main/src/generated/resources/META-INF/camel-main-configuration-metadata.json b/core/camel-main/src/generated/resources/META-INF/camel-main-configuration-metadata.json
index 26c9225dcaf..2376528636f 100644
--- a/core/camel-main/src/generated/resources/META-INF/camel-main-configuration-metadata.json
+++ b/core/camel-main/src/generated/resources/META-INF/camel-main-configuration-metadata.json
@@ -9,7 +9,6 @@
     { "name": "camel.vault.azure", "description": "Camel Azure Key Vault configurations", "sourceType": "org.apache.camel.vault.AzureVaultConfiguration" },
     { "name": "camel.faulttolerance", "description": "Fault Tolerance EIP Circuit Breaker configurations", "sourceType": "org.apache.camel.main.FaultToleranceConfigurationProperties" },
     { "name": "camel.resilience4j", "description": "Resilience4j EIP Circuit Breaker configurations", "sourceType": "org.apache.camel.main.Resilience4jConfigurationProperties" },
-    { "name": "camel.hystrix", "description": "Hystrix (deprecated) EIP Circuit Breaker configurations", "sourceType": "org.apache.camel.main.HystrixConfigurationProperties" },
     { "name": "camel.lra", "description": "Camel Saga EIP (Long Running Actions) configurations", "sourceType": "org.apache.camel.main.LraConfigurationProperties" }
   ],
   "properties": [
@@ -147,37 +146,6 @@
     { "name": "camel.health.initialState", "description": "The initial state of health-checks (readiness). There are the following states: UP, DOWN, UNKNOWN. By default, the state is DOWN, is regarded as being pessimistic\/careful. This means that the overall health checks may report as DOWN during startup and then only if everything is up and running flip to being UP. Setting the initial state to UP, is regarded as being optimistic. This means that the overall health checks may report a [...]
     { "name": "camel.health.registryEnabled", "description": "Whether registry health check is enabled", "sourceType": "org.apache.camel.main.HealthConfigurationProperties", "type": "boolean", "javaType": "java.lang.Boolean", "defaultValue": true },
     { "name": "camel.health.routesEnabled", "description": "Whether routes health check is enabled", "sourceType": "org.apache.camel.main.HealthConfigurationProperties", "type": "boolean", "javaType": "java.lang.Boolean", "defaultValue": true },
-    { "name": "camel.hystrix.allowMaximumSizeToDivergeFromCoreSize", "description": "Allows the configuration for maximumSize to take effect. That value can then be equal to, or higher, than coreSize", "sourceType": "org.apache.camel.main.HystrixConfigurationProperties", "type": "boolean", "javaType": "java.lang.Boolean", "defaultValue": "false", "deprecated": true },
-    { "name": "camel.hystrix.circuitBreakerEnabled", "description": "Whether to use a HystrixCircuitBreaker or not. If false no circuit-breaker logic will be used and all requests permitted. This is similar in effect to circuitBreakerForceClosed() except that continues tracking metrics and knowing whether it should be open\/closed, this property results in not even instantiating a circuit-breaker.", "sourceType": "org.apache.camel.main.HystrixConfigurationProperties", "type": "boolean",  [...]
-    { "name": "camel.hystrix.circuitBreakerErrorThresholdPercentage", "description": "Error percentage threshold (as whole number such as 50) at which point the circuit breaker will trip open and reject requests. It will stay tripped for the duration defined in circuitBreakerSleepWindowInMilliseconds; The error percentage this is compared against comes from HystrixCommandMetrics.getHealthCounts().", "sourceType": "org.apache.camel.main.HystrixConfigurationProperties", "type": "integer",  [...]
-    { "name": "camel.hystrix.circuitBreakerForceClosed", "description": "If true the HystrixCircuitBreaker#allowRequest() will always return true to allow requests regardless of the error percentage from HystrixCommandMetrics.getHealthCounts(). The circuitBreakerForceOpen() property takes precedence so if it set to true this property does nothing.", "sourceType": "org.apache.camel.main.HystrixConfigurationProperties", "type": "boolean", "javaType": "java.lang.Boolean", "defaultValue": "f [...]
-    { "name": "camel.hystrix.circuitBreakerForceOpen", "description": "If true the HystrixCircuitBreaker.allowRequest() will always return false, causing the circuit to be open (tripped) and reject all requests. This property takes precedence over circuitBreakerForceClosed();", "sourceType": "org.apache.camel.main.HystrixConfigurationProperties", "type": "boolean", "javaType": "java.lang.Boolean", "defaultValue": "false", "deprecated": true },
-    { "name": "camel.hystrix.circuitBreakerRequestVolumeThreshold", "description": "Minimum number of requests in the metricsRollingStatisticalWindowInMilliseconds() that must exist before the HystrixCircuitBreaker will trip. If below this number the circuit will not trip regardless of error percentage.", "sourceType": "org.apache.camel.main.HystrixConfigurationProperties", "type": "integer", "javaType": "java.lang.Integer", "deprecated": true },
-    { "name": "camel.hystrix.circuitBreakerSleepWindowInMilliseconds", "description": "The time in milliseconds after a HystrixCircuitBreaker trips open that it should wait before trying requests again.", "sourceType": "org.apache.camel.main.HystrixConfigurationProperties", "type": "integer", "javaType": "java.lang.Integer", "deprecated": true },
-    { "name": "camel.hystrix.corePoolSize", "description": "Core thread-pool size that gets passed to java.util.concurrent.ThreadPoolExecutor#setCorePoolSize(int)", "sourceType": "org.apache.camel.main.HystrixConfigurationProperties", "type": "integer", "javaType": "java.lang.Integer", "deprecated": true },
-    { "name": "camel.hystrix.executionIsolationSemaphoreMaxConcurrentRequests", "description": "Number of concurrent requests permitted to HystrixCommand.run(). Requests beyond the concurrent limit will be rejected. Applicable only when executionIsolationStrategy == SEMAPHORE.", "sourceType": "org.apache.camel.main.HystrixConfigurationProperties", "type": "integer", "javaType": "java.lang.Integer", "deprecated": true },
-    { "name": "camel.hystrix.executionIsolationStrategy", "description": "What isolation strategy HystrixCommand.run() will be executed with. If THREAD then it will be executed on a separate thread and concurrent requests limited by the number of threads in the thread-pool. If SEMAPHORE then it will be executed on the calling thread and concurrent requests limited by the semaphore count.", "sourceType": "org.apache.camel.main.HystrixConfigurationProperties", "type": "string", "javaType": [...]
-    { "name": "camel.hystrix.executionIsolationThreadInterruptOnTimeout", "description": "Whether the execution thread should attempt an interrupt (using Future#cancel ) when a thread times out. Applicable only when executionIsolationStrategy() == THREAD.", "sourceType": "org.apache.camel.main.HystrixConfigurationProperties", "type": "boolean", "javaType": "java.lang.Boolean", "defaultValue": "false", "deprecated": true },
-    { "name": "camel.hystrix.executionTimeoutEnabled", "description": "Whether the timeout mechanism is enabled for this command", "sourceType": "org.apache.camel.main.HystrixConfigurationProperties", "type": "boolean", "javaType": "java.lang.Boolean", "defaultValue": "false", "deprecated": true },
-    { "name": "camel.hystrix.executionTimeoutInMilliseconds", "description": "Time in milliseconds at which point the command will timeout and halt execution. If executionIsolationThreadInterruptOnTimeout == true and the command is thread-isolated, the executing thread will be interrupted. If the command is semaphore-isolated and a HystrixObservableCommand, that command will get unsubscribed.", "sourceType": "org.apache.camel.main.HystrixConfigurationProperties", "type": "integer", "java [...]
-    { "name": "camel.hystrix.fallbackEnabled", "description": "Whether HystrixCommand.getFallback() should be attempted when failure occurs.", "sourceType": "org.apache.camel.main.HystrixConfigurationProperties", "type": "boolean", "javaType": "java.lang.Boolean", "defaultValue": "false", "deprecated": true },
-    { "name": "camel.hystrix.fallbackIsolationSemaphoreMaxConcurrentRequests", "description": "Number of concurrent requests permitted to HystrixCommand.getFallback(). Requests beyond the concurrent limit will fail-fast and not attempt retrieving a fallback.", "sourceType": "org.apache.camel.main.HystrixConfigurationProperties", "type": "integer", "javaType": "java.lang.Integer", "deprecated": true },
-    { "name": "camel.hystrix.groupKey", "description": "Sets the group key to use. The default value is CamelHystrix.", "sourceType": "org.apache.camel.main.HystrixConfigurationProperties", "type": "string", "javaType": "java.lang.String", "deprecated": true },
-    { "name": "camel.hystrix.keepAliveTime", "description": "Keep-alive time in minutes that gets passed to ThreadPoolExecutor#setKeepAliveTime(long,TimeUnit)", "sourceType": "org.apache.camel.main.HystrixConfigurationProperties", "type": "integer", "javaType": "java.lang.Integer", "deprecated": true },
-    { "name": "camel.hystrix.maximumSize", "description": "Maximum thread-pool size that gets passed to ThreadPoolExecutor#setMaximumPoolSize(int) . This is the maximum amount of concurrency that can be supported without starting to reject HystrixCommands. Please note that this setting only takes effect if you also set allowMaximumSizeToDivergeFromCoreSize", "sourceType": "org.apache.camel.main.HystrixConfigurationProperties", "type": "integer", "javaType": "java.lang.Integer", "deprecat [...]
-    { "name": "camel.hystrix.maxQueueSize", "description": "Max queue size that gets passed to BlockingQueue in HystrixConcurrencyStrategy.getBlockingQueue(int) This should only affect the instantiation of a threadpool - it is not eliglible to change a queue size on the fly. For that, use queueSizeRejectionThreshold().", "sourceType": "org.apache.camel.main.HystrixConfigurationProperties", "type": "integer", "javaType": "java.lang.Integer", "deprecated": true },
-    { "name": "camel.hystrix.metricsHealthSnapshotIntervalInMilliseconds", "description": "Time in milliseconds to wait between allowing health snapshots to be taken that calculate success and error percentages and affect HystrixCircuitBreaker.isOpen() status. On high-volume circuits the continual calculation of error percentage can become CPU intensive thus this controls how often it is calculated.", "sourceType": "org.apache.camel.main.HystrixConfigurationProperties", "type": "integer" [...]
-    { "name": "camel.hystrix.metricsRollingPercentileBucketSize", "description": "Maximum number of values stored in each bucket of the rolling percentile. This is passed into HystrixRollingPercentile inside HystrixCommandMetrics.", "sourceType": "org.apache.camel.main.HystrixConfigurationProperties", "type": "integer", "javaType": "java.lang.Integer", "deprecated": true },
-    { "name": "camel.hystrix.metricsRollingPercentileEnabled", "description": "Whether percentile metrics should be captured using HystrixRollingPercentile inside HystrixCommandMetrics.", "sourceType": "org.apache.camel.main.HystrixConfigurationProperties", "type": "boolean", "javaType": "java.lang.Boolean", "defaultValue": "false", "deprecated": true },
-    { "name": "camel.hystrix.metricsRollingPercentileWindowBuckets", "description": "Number of buckets the rolling percentile window is broken into. This is passed into HystrixRollingPercentile inside HystrixCommandMetrics.", "sourceType": "org.apache.camel.main.HystrixConfigurationProperties", "type": "integer", "javaType": "java.lang.Integer", "deprecated": true },
-    { "name": "camel.hystrix.metricsRollingPercentileWindowInMilliseconds", "description": "Duration of percentile rolling window in milliseconds. This is passed into HystrixRollingPercentile inside HystrixCommandMetrics.", "sourceType": "org.apache.camel.main.HystrixConfigurationProperties", "type": "integer", "javaType": "java.lang.Integer", "deprecated": true },
-    { "name": "camel.hystrix.metricsRollingStatisticalWindowBuckets", "description": "Number of buckets the rolling statistical window is broken into. This is passed into HystrixRollingNumber inside HystrixCommandMetrics.", "sourceType": "org.apache.camel.main.HystrixConfigurationProperties", "type": "integer", "javaType": "java.lang.Integer", "deprecated": true },
-    { "name": "camel.hystrix.metricsRollingStatisticalWindowInMilliseconds", "description": "This property sets the duration of the statistical rolling window, in milliseconds. This is how long metrics are kept for the thread pool. The window is divided into buckets and rolls by those increments.", "sourceType": "org.apache.camel.main.HystrixConfigurationProperties", "type": "integer", "javaType": "java.lang.Integer", "deprecated": true },
-    { "name": "camel.hystrix.queueSizeRejectionThreshold", "description": "Queue size rejection threshold is an artificial max size at which rejections will occur even if maxQueueSize has not been reached. This is done because the maxQueueSize of a BlockingQueue can not be dynamically changed and we want to support dynamically changing the queue size that affects rejections. This is used by HystrixCommand when queuing a thread for execution.", "sourceType": "org.apache.camel.main.Hystrix [...]
-    { "name": "camel.hystrix.requestLogEnabled", "description": "Whether HystrixCommand execution and events should be logged to HystrixRequestLog.", "sourceType": "org.apache.camel.main.HystrixConfigurationProperties", "type": "boolean", "javaType": "java.lang.Boolean", "defaultValue": "false", "deprecated": true },
-    { "name": "camel.hystrix.threadPoolKey", "description": "Sets the thread pool key to use. Will by default use the same value as groupKey has been configured to use.", "sourceType": "org.apache.camel.main.HystrixConfigurationProperties", "type": "string", "javaType": "java.lang.String", "deprecated": true },
-    { "name": "camel.hystrix.threadPoolRollingNumberStatisticalWindowBuckets", "description": "Number of buckets the rolling statistical window is broken into. This is passed into HystrixRollingNumber inside each HystrixThreadPoolMetrics instance.", "sourceType": "org.apache.camel.main.HystrixConfigurationProperties", "type": "integer", "javaType": "java.lang.Integer", "deprecated": true },
-    { "name": "camel.hystrix.threadPoolRollingNumberStatisticalWindowInMilliseconds", "description": "Duration of statistical rolling window in milliseconds. This is passed into HystrixRollingNumber inside each HystrixThreadPoolMetrics instance.", "sourceType": "org.apache.camel.main.HystrixConfigurationProperties", "type": "integer", "javaType": "java.lang.Integer", "deprecated": true },
     { "name": "camel.lra.coordinatorContextPath", "description": "The context-path for the LRA coordinator. Is default \/lra-coordinator", "sourceType": "org.apache.camel.main.LraConfigurationProperties", "type": "string", "javaType": "java.lang.String", "defaultValue": "\/lra-coordinator" },
     { "name": "camel.lra.coordinatorUrl", "description": "The URL for the LRA coordinator service that orchestrates the transactions", "sourceType": "org.apache.camel.main.LraConfigurationProperties", "type": "string", "javaType": "java.lang.String" },
     { "name": "camel.lra.localParticipantContextPath", "description": "The context-path for the local participant. Is default \/lra-participant", "sourceType": "org.apache.camel.main.LraConfigurationProperties", "type": "string", "javaType": "java.lang.String", "defaultValue": "\/lra-participant" },
diff --git a/core/camel-main/src/main/docs/main.adoc b/core/camel-main/src/main/docs/main.adoc
index c9bd04497a3..6bbd722441a 100644
--- a/core/camel-main/src/main/docs/main.adoc
+++ b/core/camel-main/src/main/docs/main.adoc
@@ -286,45 +286,6 @@ The camel.resilience4j supports 19 options, which are listed below.
 | *camel.resilience4j.writable{zwsp}StackTraceEnabled* | Enables writable stack traces. When set to false, Exception.getStackTrace returns a zero length array. This may be used to reduce log spam when the circuit breaker is open as the cause of the exceptions is already known (the circuit breaker is short-circuiting calls). | false | Boolean
 |===
 
-=== Hystrix (deprecated) EIP Circuit Breaker configurations
-The camel.hystrix supports 31 options, which are listed below.
-
-[width="100%",cols="2,5,^1,2",options="header"]
-|===
-| Name | Description | Default | Type
-| *camel.hystrix.allowMaximumSize{zwsp}ToDivergeFromCoreSize* | Allows the configuration for maximumSize to take effect. That value can then be equal to, or higher, than coreSize | false | Boolean
-| *camel.hystrix.circuitBreaker{zwsp}Enabled* | Whether to use a HystrixCircuitBreaker or not. If false no circuit-breaker logic will be used and all requests permitted. This is similar in effect to circuitBreakerForceClosed() except that continues tracking metrics and knowing whether it should be open/closed, this property results in not even instantiating a circuit-breaker. | false | Boolean
-| *camel.hystrix.circuitBreaker{zwsp}ErrorThresholdPercentage* | Error percentage threshold (as whole number such as 50) at which point the circuit breaker will trip open and reject requests. It will stay tripped for the duration defined in circuitBreakerSleepWindowInMilliseconds; The error percentage this is compared against comes from HystrixCommandMetrics.getHealthCounts(). |  | Integer
-| *camel.hystrix.circuitBreaker{zwsp}ForceClosed* | If true the HystrixCircuitBreaker#allowRequest() will always return true to allow requests regardless of the error percentage from HystrixCommandMetrics.getHealthCounts(). The circuitBreakerForceOpen() property takes precedence so if it set to true this property does nothing. | false | Boolean
-| *camel.hystrix.circuitBreaker{zwsp}ForceOpen* | If true the HystrixCircuitBreaker.allowRequest() will always return false, causing the circuit to be open (tripped) and reject all requests. This property takes precedence over circuitBreakerForceClosed(); | false | Boolean
-| *camel.hystrix.circuitBreaker{zwsp}RequestVolumeThreshold* | Minimum number of requests in the metricsRollingStatisticalWindowInMilliseconds() that must exist before the HystrixCircuitBreaker will trip. If below this number the circuit will not trip regardless of error percentage. |  | Integer
-| *camel.hystrix.circuitBreaker{zwsp}SleepWindowInMilliseconds* | The time in milliseconds after a HystrixCircuitBreaker trips open that it should wait before trying requests again. |  | Integer
-| *camel.hystrix.corePoolSize* | Core thread-pool size that gets passed to java.util.concurrent.ThreadPoolExecutor#setCorePoolSize(int) |  | Integer
-| *camel.hystrix.execution{zwsp}IsolationSemaphoreMax{zwsp}ConcurrentRequests* | Number of concurrent requests permitted to HystrixCommand.run(). Requests beyond the concurrent limit will be rejected. Applicable only when executionIsolationStrategy == SEMAPHORE. |  | Integer
-| *camel.hystrix.execution{zwsp}IsolationStrategy* | What isolation strategy HystrixCommand.run() will be executed with. If THREAD then it will be executed on a separate thread and concurrent requests limited by the number of threads in the thread-pool. If SEMAPHORE then it will be executed on the calling thread and concurrent requests limited by the semaphore count. |  | String
-| *camel.hystrix.execution{zwsp}IsolationThreadInterruptOn{zwsp}Timeout* | Whether the execution thread should attempt an interrupt (using Future#cancel ) when a thread times out. Applicable only when executionIsolationStrategy() == THREAD. | false | Boolean
-| *camel.hystrix.executionTimeout{zwsp}Enabled* | Whether the timeout mechanism is enabled for this command | false | Boolean
-| *camel.hystrix.executionTimeout{zwsp}InMilliseconds* | Time in milliseconds at which point the command will timeout and halt execution. If executionIsolationThreadInterruptOnTimeout == true and the command is thread-isolated, the executing thread will be interrupted. If the command is semaphore-isolated and a HystrixObservableCommand, that command will get unsubscribed. |  | Integer
-| *camel.hystrix.fallbackEnabled* | Whether HystrixCommand.getFallback() should be attempted when failure occurs. | false | Boolean
-| *camel.hystrix.fallback{zwsp}IsolationSemaphoreMax{zwsp}ConcurrentRequests* | Number of concurrent requests permitted to HystrixCommand.getFallback(). Requests beyond the concurrent limit will fail-fast and not attempt retrieving a fallback. |  | Integer
-| *camel.hystrix.groupKey* | Sets the group key to use. The default value is CamelHystrix. |  | String
-| *camel.hystrix.keepAliveTime* | Keep-alive time in minutes that gets passed to ThreadPoolExecutor#setKeepAliveTime(long,TimeUnit) |  | Integer
-| *camel.hystrix.maximumSize* | Maximum thread-pool size that gets passed to ThreadPoolExecutor#setMaximumPoolSize(int) . This is the maximum amount of concurrency that can be supported without starting to reject HystrixCommands. Please note that this setting only takes effect if you also set allowMaximumSizeToDivergeFromCoreSize |  | Integer
-| *camel.hystrix.maxQueueSize* | Max queue size that gets passed to BlockingQueue in HystrixConcurrencyStrategy.getBlockingQueue(int) This should only affect the instantiation of a threadpool - it is not eliglible to change a queue size on the fly. For that, use queueSizeRejectionThreshold(). |  | Integer
-| *camel.hystrix.metricsHealth{zwsp}SnapshotIntervalInMilliseconds* | Time in milliseconds to wait between allowing health snapshots to be taken that calculate success and error percentages and affect HystrixCircuitBreaker.isOpen() status. On high-volume circuits the continual calculation of error percentage can become CPU intensive thus this controls how often it is calculated. |  | Integer
-| *camel.hystrix.metricsRolling{zwsp}PercentileBucketSize* | Maximum number of values stored in each bucket of the rolling percentile. This is passed into HystrixRollingPercentile inside HystrixCommandMetrics. |  | Integer
-| *camel.hystrix.metricsRolling{zwsp}PercentileEnabled* | Whether percentile metrics should be captured using HystrixRollingPercentile inside HystrixCommandMetrics. | false | Boolean
-| *camel.hystrix.metricsRolling{zwsp}PercentileWindowBuckets* | Number of buckets the rolling percentile window is broken into. This is passed into HystrixRollingPercentile inside HystrixCommandMetrics. |  | Integer
-| *camel.hystrix.metricsRolling{zwsp}PercentileWindowInMilliseconds* | Duration of percentile rolling window in milliseconds. This is passed into HystrixRollingPercentile inside HystrixCommandMetrics. |  | Integer
-| *camel.hystrix.metricsRolling{zwsp}StatisticalWindowBuckets* | Number of buckets the rolling statistical window is broken into. This is passed into HystrixRollingNumber inside HystrixCommandMetrics. |  | Integer
-| *camel.hystrix.metricsRolling{zwsp}StatisticalWindowIn{zwsp}Milliseconds* | This property sets the duration of the statistical rolling window, in milliseconds. This is how long metrics are kept for the thread pool. The window is divided into buckets and rolls by those increments. |  | Integer
-| *camel.hystrix.queueSize{zwsp}RejectionThreshold* | Queue size rejection threshold is an artificial max size at which rejections will occur even if maxQueueSize has not been reached. This is done because the maxQueueSize of a BlockingQueue can not be dynamically changed and we want to support dynamically changing the queue size that affects rejections. This is used by HystrixCommand when queuing a thread for execution. |  | Integer
-| *camel.hystrix.requestLog{zwsp}Enabled* | Whether HystrixCommand execution and events should be logged to HystrixRequestLog. | false | Boolean
-| *camel.hystrix.threadPoolKey* | Sets the thread pool key to use. Will by default use the same value as groupKey has been configured to use. |  | String
-| *camel.hystrix.threadPool{zwsp}RollingNumberStatisticalWindow{zwsp}Buckets* | Number of buckets the rolling statistical window is broken into. This is passed into HystrixRollingNumber inside each HystrixThreadPoolMetrics instance. |  | Integer
-| *camel.hystrix.threadPool{zwsp}RollingNumberStatisticalWindow{zwsp}InMilliseconds* | Duration of statistical rolling window in milliseconds. This is passed into HystrixRollingNumber inside each HystrixThreadPoolMetrics instance. |  | Integer
-|===
-
 === Camel Saga EIP (Long Running Actions) configurations
 The camel.lra supports 4 options, which are listed below.
 
diff --git a/core/camel-main/src/main/java/org/apache/camel/main/HystrixConfigurationProperties.java b/core/camel-main/src/main/java/org/apache/camel/main/HystrixConfigurationProperties.java
deleted file mode 100644
index 87af0a9ee77..00000000000
--- a/core/camel-main/src/main/java/org/apache/camel/main/HystrixConfigurationProperties.java
+++ /dev/null
@@ -1,809 +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.main;
-
-import java.util.concurrent.BlockingQueue;
-import java.util.concurrent.Future;
-import java.util.concurrent.ThreadPoolExecutor;
-import java.util.concurrent.TimeUnit;
-
-import org.apache.camel.spi.BootstrapCloseable;
-import org.apache.camel.spi.Configurer;
-
-/**
- * Global configuration for Hystrix EIP circuit breaker.
- */
-@Configurer(bootstrap = true, extended = true)
-@Deprecated
-public class HystrixConfigurationProperties implements BootstrapCloseable {
-
-    private MainConfigurationProperties parent;
-
-    private String groupKey;
-    private String threadPoolKey;
-    private Boolean circuitBreakerEnabled;
-    private Integer circuitBreakerErrorThresholdPercentage;
-    private Boolean circuitBreakerForceClosed;
-    private Boolean circuitBreakerForceOpen;
-    private Integer circuitBreakerRequestVolumeThreshold;
-    private Integer circuitBreakerSleepWindowInMilliseconds;
-    private Integer executionIsolationSemaphoreMaxConcurrentRequests;
-    private String executionIsolationStrategy;
-    private Boolean executionIsolationThreadInterruptOnTimeout;
-    private Integer executionTimeoutInMilliseconds;
-    private Boolean executionTimeoutEnabled;
-    private Integer fallbackIsolationSemaphoreMaxConcurrentRequests;
-    private Boolean fallbackEnabled;
-    private Integer metricsHealthSnapshotIntervalInMilliseconds;
-    private Integer metricsRollingPercentileBucketSize;
-    private Boolean metricsRollingPercentileEnabled;
-    private Integer metricsRollingPercentileWindowInMilliseconds;
-    private Integer metricsRollingPercentileWindowBuckets;
-    private Integer metricsRollingStatisticalWindowInMilliseconds;
-    private Integer metricsRollingStatisticalWindowBuckets;
-    private Boolean requestLogEnabled;
-    // thread-pool
-    private Integer corePoolSize;
-    private Integer maximumSize;
-    private Integer keepAliveTime;
-    private Integer maxQueueSize;
-    private Integer queueSizeRejectionThreshold;
-    private Integer threadPoolRollingNumberStatisticalWindowInMilliseconds;
-    private Integer threadPoolRollingNumberStatisticalWindowBuckets;
-    private Boolean allowMaximumSizeToDivergeFromCoreSize;
-
-    public HystrixConfigurationProperties(MainConfigurationProperties parent) {
-        this.parent = parent;
-    }
-
-    public MainConfigurationProperties end() {
-        return parent;
-    }
-
-    @Override
-    public void close() {
-        parent = null;
-    }
-
-    // getter and setters
-    // --------------------------------------------------------------
-
-    public String getGroupKey() {
-        return groupKey;
-    }
-
-    /**
-     * Sets the group key to use. The default value is CamelHystrix.
-     */
-    public void setGroupKey(String groupKey) {
-        this.groupKey = groupKey;
-    }
-
-    public String getThreadPoolKey() {
-        return threadPoolKey;
-    }
-
-    /**
-     * Sets the thread pool key to use. Will by default use the same value as groupKey has been configured to use.
-     */
-    public void setThreadPoolKey(String threadPoolKey) {
-        this.threadPoolKey = threadPoolKey;
-    }
-
-    public Boolean getCircuitBreakerEnabled() {
-        return circuitBreakerEnabled;
-    }
-
-    /**
-     * Whether to use a HystrixCircuitBreaker or not. If false no circuit-breaker logic will be used and all requests
-     * permitted.
-     * <p>
-     * This is similar in effect to circuitBreakerForceClosed() except that continues tracking metrics and knowing
-     * whether it should be open/closed, this property results in not even instantiating a circuit-breaker.
-     */
-    public void setCircuitBreakerEnabled(Boolean circuitBreakerEnabled) {
-        this.circuitBreakerEnabled = circuitBreakerEnabled;
-    }
-
-    public Integer getCircuitBreakerErrorThresholdPercentage() {
-        return circuitBreakerErrorThresholdPercentage;
-    }
-
-    /**
-     * Error percentage threshold (as whole number such as 50) at which point the circuit breaker will trip open and
-     * reject requests.
-     * <p>
-     * It will stay tripped for the duration defined in circuitBreakerSleepWindowInMilliseconds;
-     * <p>
-     * The error percentage this is compared against comes from HystrixCommandMetrics.getHealthCounts().
-     */
-    public void setCircuitBreakerErrorThresholdPercentage(Integer circuitBreakerErrorThresholdPercentage) {
-        this.circuitBreakerErrorThresholdPercentage = circuitBreakerErrorThresholdPercentage;
-    }
-
-    public Boolean getCircuitBreakerForceClosed() {
-        return circuitBreakerForceClosed;
-    }
-
-    /**
-     * If true the HystrixCircuitBreaker#allowRequest() will always return true to allow requests regardless of the
-     * error percentage from HystrixCommandMetrics.getHealthCounts().
-     * <p>
-     * The circuitBreakerForceOpen() property takes precedence so if it set to true this property does nothing.
-     */
-    public void setCircuitBreakerForceClosed(Boolean circuitBreakerForceClosed) {
-        this.circuitBreakerForceClosed = circuitBreakerForceClosed;
-    }
-
-    public Boolean getCircuitBreakerForceOpen() {
-        return circuitBreakerForceOpen;
-    }
-
-    /**
-     * If true the HystrixCircuitBreaker.allowRequest() will always return false, causing the circuit to be open
-     * (tripped) and reject all requests.
-     * <p>
-     * This property takes precedence over circuitBreakerForceClosed();
-     */
-    public void setCircuitBreakerForceOpen(Boolean circuitBreakerForceOpen) {
-        this.circuitBreakerForceOpen = circuitBreakerForceOpen;
-    }
-
-    public Integer getCircuitBreakerRequestVolumeThreshold() {
-        return circuitBreakerRequestVolumeThreshold;
-    }
-
-    /**
-     * Minimum number of requests in the metricsRollingStatisticalWindowInMilliseconds() that must exist before the
-     * HystrixCircuitBreaker will trip.
-     * <p>
-     * If below this number the circuit will not trip regardless of error percentage.
-     */
-    public void setCircuitBreakerRequestVolumeThreshold(Integer circuitBreakerRequestVolumeThreshold) {
-        this.circuitBreakerRequestVolumeThreshold = circuitBreakerRequestVolumeThreshold;
-    }
-
-    public Integer getCircuitBreakerSleepWindowInMilliseconds() {
-        return circuitBreakerSleepWindowInMilliseconds;
-    }
-
-    /**
-     * The time in milliseconds after a HystrixCircuitBreaker trips open that it should wait before trying requests
-     * again.
-     */
-    public void setCircuitBreakerSleepWindowInMilliseconds(Integer circuitBreakerSleepWindowInMilliseconds) {
-        this.circuitBreakerSleepWindowInMilliseconds = circuitBreakerSleepWindowInMilliseconds;
-    }
-
-    public Integer getExecutionIsolationSemaphoreMaxConcurrentRequests() {
-        return executionIsolationSemaphoreMaxConcurrentRequests;
-    }
-
-    /**
-     * Number of concurrent requests permitted to HystrixCommand.run(). Requests beyond the concurrent limit will be
-     * rejected.
-     * <p>
-     * Applicable only when executionIsolationStrategy == SEMAPHORE.
-     */
-    public void setExecutionIsolationSemaphoreMaxConcurrentRequests(Integer executionIsolationSemaphoreMaxConcurrentRequests) {
-        this.executionIsolationSemaphoreMaxConcurrentRequests = executionIsolationSemaphoreMaxConcurrentRequests;
-    }
-
-    public String getExecutionIsolationStrategy() {
-        return executionIsolationStrategy;
-    }
-
-    /**
-     * What isolation strategy HystrixCommand.run() will be executed with.
-     * <p>
-     * If THREAD then it will be executed on a separate thread and concurrent requests limited by the number of threads
-     * in the thread-pool.
-     * <p>
-     * If SEMAPHORE then it will be executed on the calling thread and concurrent requests limited by the semaphore
-     * count.
-     */
-    public void setExecutionIsolationStrategy(String executionIsolationStrategy) {
-        this.executionIsolationStrategy = executionIsolationStrategy;
-    }
-
-    public Boolean getExecutionIsolationThreadInterruptOnTimeout() {
-        return executionIsolationThreadInterruptOnTimeout;
-    }
-
-    /**
-     * Whether the execution thread should attempt an interrupt (using {@link Future#cancel}) when a thread times out.
-     * <p>
-     * Applicable only when executionIsolationStrategy() == THREAD.
-     */
-    public void setExecutionIsolationThreadInterruptOnTimeout(Boolean executionIsolationThreadInterruptOnTimeout) {
-        this.executionIsolationThreadInterruptOnTimeout = executionIsolationThreadInterruptOnTimeout;
-    }
-
-    public Integer getExecutionTimeoutInMilliseconds() {
-        return executionTimeoutInMilliseconds;
-    }
-
-    /**
-     * Time in milliseconds at which point the command will timeout and halt execution.
-     * <p>
-     * If {@link #executionIsolationThreadInterruptOnTimeout} == true and the command is thread-isolated, the executing
-     * thread will be interrupted. If the command is semaphore-isolated and a HystrixObservableCommand, that command
-     * will get unsubscribed.
-     */
-    public void setExecutionTimeoutInMilliseconds(Integer executionTimeoutInMilliseconds) {
-        this.executionTimeoutInMilliseconds = executionTimeoutInMilliseconds;
-    }
-
-    public Boolean getExecutionTimeoutEnabled() {
-        return executionTimeoutEnabled;
-    }
-
-    /**
-     * Whether the timeout mechanism is enabled for this command
-     */
-    public void setExecutionTimeoutEnabled(Boolean executionTimeoutEnabled) {
-        this.executionTimeoutEnabled = executionTimeoutEnabled;
-    }
-
-    public Integer getFallbackIsolationSemaphoreMaxConcurrentRequests() {
-        return fallbackIsolationSemaphoreMaxConcurrentRequests;
-    }
-
-    /**
-     * Number of concurrent requests permitted to HystrixCommand.getFallback(). Requests beyond the concurrent limit
-     * will fail-fast and not attempt retrieving a fallback.
-     */
-    public void setFallbackIsolationSemaphoreMaxConcurrentRequests(Integer fallbackIsolationSemaphoreMaxConcurrentRequests) {
-        this.fallbackIsolationSemaphoreMaxConcurrentRequests = fallbackIsolationSemaphoreMaxConcurrentRequests;
-    }
-
-    public Boolean getFallbackEnabled() {
-        return fallbackEnabled;
-    }
-
-    /**
-     * Whether HystrixCommand.getFallback() should be attempted when failure occurs.
-     */
-    public void setFallbackEnabled(Boolean fallbackEnabled) {
-        this.fallbackEnabled = fallbackEnabled;
-    }
-
-    public Integer getMetricsHealthSnapshotIntervalInMilliseconds() {
-        return metricsHealthSnapshotIntervalInMilliseconds;
-    }
-
-    /**
-     * Time in milliseconds to wait between allowing health snapshots to be taken that calculate success and error
-     * percentages and affect HystrixCircuitBreaker.isOpen() status.
-     * <p>
-     * On high-volume circuits the continual calculation of error percentage can become CPU intensive thus this controls
-     * how often it is calculated.
-     */
-    public void setMetricsHealthSnapshotIntervalInMilliseconds(Integer metricsHealthSnapshotIntervalInMilliseconds) {
-        this.metricsHealthSnapshotIntervalInMilliseconds = metricsHealthSnapshotIntervalInMilliseconds;
-    }
-
-    public Integer getMetricsRollingPercentileBucketSize() {
-        return metricsRollingPercentileBucketSize;
-    }
-
-    /**
-     * Maximum number of values stored in each bucket of the rolling percentile. This is passed into
-     * HystrixRollingPercentile inside HystrixCommandMetrics.
-     */
-    public void setMetricsRollingPercentileBucketSize(Integer metricsRollingPercentileBucketSize) {
-        this.metricsRollingPercentileBucketSize = metricsRollingPercentileBucketSize;
-    }
-
-    public Boolean getMetricsRollingPercentileEnabled() {
-        return metricsRollingPercentileEnabled;
-    }
-
-    /**
-     * Whether percentile metrics should be captured using HystrixRollingPercentile inside HystrixCommandMetrics.
-     */
-    public void setMetricsRollingPercentileEnabled(Boolean metricsRollingPercentileEnabled) {
-        this.metricsRollingPercentileEnabled = metricsRollingPercentileEnabled;
-    }
-
-    public Integer getMetricsRollingPercentileWindowInMilliseconds() {
-        return metricsRollingPercentileWindowInMilliseconds;
-    }
-
-    /**
-     * Duration of percentile rolling window in milliseconds. This is passed into HystrixRollingPercentile inside
-     * HystrixCommandMetrics.
-     */
-    public void setMetricsRollingPercentileWindowInMilliseconds(Integer metricsRollingPercentileWindowInMilliseconds) {
-        this.metricsRollingPercentileWindowInMilliseconds = metricsRollingPercentileWindowInMilliseconds;
-    }
-
-    public Integer getMetricsRollingPercentileWindowBuckets() {
-        return metricsRollingPercentileWindowBuckets;
-    }
-
-    /**
-     * Number of buckets the rolling percentile window is broken into. This is passed into HystrixRollingPercentile
-     * inside HystrixCommandMetrics.
-     */
-    public void setMetricsRollingPercentileWindowBuckets(Integer metricsRollingPercentileWindowBuckets) {
-        this.metricsRollingPercentileWindowBuckets = metricsRollingPercentileWindowBuckets;
-    }
-
-    public Integer getMetricsRollingStatisticalWindowInMilliseconds() {
-        return metricsRollingStatisticalWindowInMilliseconds;
-    }
-
-    /**
-     * This property sets the duration of the statistical rolling window, in milliseconds. This is how long metrics are
-     * kept for the thread pool.
-     *
-     * The window is divided into buckets and “rolls” by those increments.
-     */
-    public void setMetricsRollingStatisticalWindowInMilliseconds(Integer metricsRollingStatisticalWindowInMilliseconds) {
-        this.metricsRollingStatisticalWindowInMilliseconds = metricsRollingStatisticalWindowInMilliseconds;
-    }
-
-    public Integer getMetricsRollingStatisticalWindowBuckets() {
-        return metricsRollingStatisticalWindowBuckets;
-    }
-
-    /**
-     * Number of buckets the rolling statistical window is broken into. This is passed into HystrixRollingNumber inside
-     * HystrixCommandMetrics.
-     */
-    public void setMetricsRollingStatisticalWindowBuckets(Integer metricsRollingStatisticalWindowBuckets) {
-        this.metricsRollingStatisticalWindowBuckets = metricsRollingStatisticalWindowBuckets;
-    }
-
-    public Boolean getRequestLogEnabled() {
-        return requestLogEnabled;
-    }
-
-    /**
-     * Whether HystrixCommand execution and events should be logged to HystrixRequestLog.
-     */
-    public void setRequestLogEnabled(Boolean requestLogEnabled) {
-        this.requestLogEnabled = requestLogEnabled;
-    }
-
-    public Integer getCorePoolSize() {
-        return corePoolSize;
-    }
-
-    /**
-     * Core thread-pool size that gets passed to {@link java.util.concurrent.ThreadPoolExecutor#setCorePoolSize(int)}
-     */
-    public void setCorePoolSize(Integer corePoolSize) {
-        this.corePoolSize = corePoolSize;
-    }
-
-    public Integer getMaximumSize() {
-        return maximumSize;
-    }
-
-    /**
-     * Maximum thread-pool size that gets passed to {@link ThreadPoolExecutor#setMaximumPoolSize(int)}. This is the
-     * maximum amount of concurrency that can be supported without starting to reject HystrixCommands. Please note that
-     * this setting only takes effect if you also set allowMaximumSizeToDivergeFromCoreSize
-     */
-    public void setMaximumSize(Integer maximumSize) {
-        this.maximumSize = maximumSize;
-    }
-
-    public Integer getKeepAliveTime() {
-        return keepAliveTime;
-    }
-
-    /**
-     * Keep-alive time in minutes that gets passed to {@link ThreadPoolExecutor#setKeepAliveTime(long, TimeUnit)}
-     */
-    public void setKeepAliveTime(Integer keepAliveTime) {
-        this.keepAliveTime = keepAliveTime;
-    }
-
-    public Integer getMaxQueueSize() {
-        return maxQueueSize;
-    }
-
-    /**
-     * Max queue size that gets passed to {@link BlockingQueue} in HystrixConcurrencyStrategy.getBlockingQueue(int)
-     *
-     * This should only affect the instantiation of a threadpool - it is not eliglible to change a queue size on the
-     * fly. For that, use queueSizeRejectionThreshold().
-     */
-    public void setMaxQueueSize(Integer maxQueueSize) {
-        this.maxQueueSize = maxQueueSize;
-    }
-
-    public Integer getQueueSizeRejectionThreshold() {
-        return queueSizeRejectionThreshold;
-    }
-
-    /**
-     * Queue size rejection threshold is an artificial max size at which rejections will occur even if
-     * {@link #maxQueueSize} has not been reached. This is done because the {@link #maxQueueSize} of a
-     * {@link BlockingQueue} can not be dynamically changed and we want to support dynamically changing the queue size
-     * that affects rejections.
-     * <p>
-     * This is used by HystrixCommand when queuing a thread for execution.
-     */
-    public void setQueueSizeRejectionThreshold(Integer queueSizeRejectionThreshold) {
-        this.queueSizeRejectionThreshold = queueSizeRejectionThreshold;
-    }
-
-    public Integer getThreadPoolRollingNumberStatisticalWindowInMilliseconds() {
-        return threadPoolRollingNumberStatisticalWindowInMilliseconds;
-    }
-
-    /**
-     * Duration of statistical rolling window in milliseconds. This is passed into HystrixRollingNumber inside each
-     * HystrixThreadPoolMetrics instance.
-     */
-    public void setThreadPoolRollingNumberStatisticalWindowInMilliseconds(
-            Integer threadPoolRollingNumberStatisticalWindowInMilliseconds) {
-        this.threadPoolRollingNumberStatisticalWindowInMilliseconds = threadPoolRollingNumberStatisticalWindowInMilliseconds;
-    }
-
-    public Integer getThreadPoolRollingNumberStatisticalWindowBuckets() {
-        return threadPoolRollingNumberStatisticalWindowBuckets;
-    }
-
-    /**
-     * Number of buckets the rolling statistical window is broken into. This is passed into HystrixRollingNumber inside
-     * each HystrixThreadPoolMetrics instance.
-     */
-    public void setThreadPoolRollingNumberStatisticalWindowBuckets(Integer threadPoolRollingNumberStatisticalWindowBuckets) {
-        this.threadPoolRollingNumberStatisticalWindowBuckets = threadPoolRollingNumberStatisticalWindowBuckets;
-    }
-
-    public Boolean getAllowMaximumSizeToDivergeFromCoreSize() {
-        return allowMaximumSizeToDivergeFromCoreSize;
-    }
-
-    /**
-     * Allows the configuration for maximumSize to take effect. That value can then be equal to, or higher, than
-     * coreSize
-     */
-    public void setAllowMaximumSizeToDivergeFromCoreSize(Boolean allowMaximumSizeToDivergeFromCoreSize) {
-        this.allowMaximumSizeToDivergeFromCoreSize = allowMaximumSizeToDivergeFromCoreSize;
-    }
-
-    // fluent builders
-    // --------------------------------------------------------------
-
-    /**
-     * Sets the group key to use. The default value is CamelHystrix.
-     */
-    public HystrixConfigurationProperties withGroupKey(String groupKey) {
-        this.groupKey = groupKey;
-        return this;
-    }
-
-    /**
-     * Sets the thread pool key to use. Will by default use the same value as groupKey has been configured to use.
-     */
-    public HystrixConfigurationProperties withThreadPoolKey(String threadPoolKey) {
-        this.threadPoolKey = threadPoolKey;
-        return this;
-    }
-
-    /**
-     * Whether to use a HystrixCircuitBreaker or not. If false no circuit-breaker logic will be used and all requests
-     * permitted.
-     * <p>
-     * This is similar in effect to circuitBreakerForceClosed() except that continues tracking metrics and knowing
-     * whether it should be open/closed, this property results in not even instantiating a circuit-breaker.
-     */
-    public HystrixConfigurationProperties withCircuitBreakerEnabled(Boolean circuitBreakerEnabled) {
-        this.circuitBreakerEnabled = circuitBreakerEnabled;
-        return this;
-    }
-
-    /**
-     * Error percentage threshold (as whole number such as 50) at which point the circuit breaker will trip open and
-     * reject requests.
-     * <p>
-     * It will stay tripped for the duration defined in circuitBreakerSleepWindowInMilliseconds;
-     * <p>
-     * The error percentage this is compared against comes from HystrixCommandMetrics.getHealthCounts().
-     */
-    public HystrixConfigurationProperties withCircuitBreakerErrorThresholdPercentage(
-            Integer circuitBreakerErrorThresholdPercentage) {
-        this.circuitBreakerErrorThresholdPercentage = circuitBreakerErrorThresholdPercentage;
-        return this;
-    }
-
-    /**
-     * If true the HystrixCircuitBreaker#allowRequest() will always return true to allow requests regardless of the
-     * error percentage from HystrixCommandMetrics.getHealthCounts().
-     * <p>
-     * The circuitBreakerForceOpen() property takes precedence so if it set to true this property does nothing.
-     */
-    public HystrixConfigurationProperties withCircuitBreakerForceClosed(Boolean circuitBreakerForceClosed) {
-        this.circuitBreakerForceClosed = circuitBreakerForceClosed;
-        return this;
-    }
-
-    /**
-     * If true the HystrixCircuitBreaker.allowRequest() will always return false, causing the circuit to be open
-     * (tripped) and reject all requests.
-     * <p>
-     * This property takes precedence over circuitBreakerForceClosed();
-     */
-    public HystrixConfigurationProperties withCircuitBreakerForceOpen(Boolean circuitBreakerForceOpen) {
-        this.circuitBreakerForceOpen = circuitBreakerForceOpen;
-        return this;
-    }
-
-    /**
-     * Minimum number of requests in the metricsRollingStatisticalWindowInMilliseconds() that must exist before the
-     * HystrixCircuitBreaker will trip.
-     * <p>
-     * If below this number the circuit will not trip regardless of error percentage.
-     */
-    public HystrixConfigurationProperties withCircuitBreakerRequestVolumeThreshold(
-            Integer circuitBreakerRequestVolumeThreshold) {
-        this.circuitBreakerRequestVolumeThreshold = circuitBreakerRequestVolumeThreshold;
-        return this;
-    }
-
-    /**
-     * The time in milliseconds after a HystrixCircuitBreaker trips open that it should wait before trying requests
-     * again.
-     */
-    public HystrixConfigurationProperties withCircuitBreakerSleepWindowInMilliseconds(
-            Integer circuitBreakerSleepWindowInMilliseconds) {
-        this.circuitBreakerSleepWindowInMilliseconds = circuitBreakerSleepWindowInMilliseconds;
-        return this;
-    }
-
-    /**
-     * Number of concurrent requests permitted to HystrixCommand.run(). Requests beyond the concurrent limit will be
-     * rejected.
-     * <p>
-     * Applicable only when executionIsolationStrategy == SEMAPHORE.
-     */
-    public HystrixConfigurationProperties withExecutionIsolationSemaphoreMaxConcurrentRequests(
-            Integer executionIsolationSemaphoreMaxConcurrentRequests) {
-        this.executionIsolationSemaphoreMaxConcurrentRequests = executionIsolationSemaphoreMaxConcurrentRequests;
-        return this;
-    }
-
-    /**
-     * What isolation strategy HystrixCommand.run() will be executed with.
-     * <p>
-     * If THREAD then it will be executed on a separate thread and concurrent requests limited by the number of threads
-     * in the thread-pool.
-     * <p>
-     * If SEMAPHORE then it will be executed on the calling thread and concurrent requests limited by the semaphore
-     * count.
-     */
-    public HystrixConfigurationProperties withExecutionIsolationStrategy(String executionIsolationStrategy) {
-        this.executionIsolationStrategy = executionIsolationStrategy;
-        return this;
-    }
-
-    /**
-     * Whether the execution thread should attempt an interrupt (using {@link Future#cancel}) when a thread times out.
-     * <p>
-     * Applicable only when executionIsolationStrategy() == THREAD.
-     */
-    public HystrixConfigurationProperties withExecutionIsolationThreadInterruptOnTimeout(
-            Boolean executionIsolationThreadInterruptOnTimeout) {
-        this.executionIsolationThreadInterruptOnTimeout = executionIsolationThreadInterruptOnTimeout;
-        return this;
-    }
-
-    /**
-     * Time in milliseconds at which point the command will timeout and halt execution.
-     * <p>
-     * If {@link #executionIsolationThreadInterruptOnTimeout} == true and the command is thread-isolated, the executing
-     * thread will be interrupted. If the command is semaphore-isolated and a HystrixObservableCommand, that command
-     * will get unsubscribed.
-     */
-    public HystrixConfigurationProperties withExecutionTimeoutInMilliseconds(Integer executionTimeoutInMilliseconds) {
-        this.executionTimeoutInMilliseconds = executionTimeoutInMilliseconds;
-        return this;
-    }
-
-    /**
-     * Whether the timeout mechanism is enabled for this command
-     */
-    public HystrixConfigurationProperties withExecutionTimeoutEnabled(Boolean executionTimeoutEnabled) {
-        this.executionTimeoutEnabled = executionTimeoutEnabled;
-        return this;
-    }
-
-    /**
-     * Number of concurrent requests permitted to HystrixCommand.getFallback(). Requests beyond the concurrent limit
-     * will fail-fast and not attempt retrieving a fallback.
-     */
-    public HystrixConfigurationProperties withFallbackIsolationSemaphoreMaxConcurrentRequests(
-            Integer fallbackIsolationSemaphoreMaxConcurrentRequests) {
-        this.fallbackIsolationSemaphoreMaxConcurrentRequests = fallbackIsolationSemaphoreMaxConcurrentRequests;
-        return this;
-    }
-
-    /**
-     * Whether HystrixCommand.getFallback() should be attempted when failure occurs.
-     */
-    public HystrixConfigurationProperties withFallbackEnabled(Boolean fallbackEnabled) {
-        this.fallbackEnabled = fallbackEnabled;
-        return this;
-    }
-
-    /**
-     * Time in milliseconds to wait between allowing health snapshots to be taken that calculate success and error
-     * percentages and affect HystrixCircuitBreaker.isOpen() status.
-     * <p>
-     * On high-volume circuits the continual calculation of error percentage can become CPU intensive thus this controls
-     * how often it is calculated.
-     */
-    public HystrixConfigurationProperties withMetricsHealthSnapshotIntervalInMilliseconds(
-            Integer metricsHealthSnapshotIntervalInMilliseconds) {
-        this.metricsHealthSnapshotIntervalInMilliseconds = metricsHealthSnapshotIntervalInMilliseconds;
-        return this;
-    }
-
-    /**
-     * Maximum number of values stored in each bucket of the rolling percentile. This is passed into
-     * HystrixRollingPercentile inside HystrixCommandMetrics.
-     */
-    public HystrixConfigurationProperties withMetricsRollingPercentileBucketSize(Integer metricsRollingPercentileBucketSize) {
-        this.metricsRollingPercentileBucketSize = metricsRollingPercentileBucketSize;
-        return this;
-    }
-
-    /**
-     * Whether percentile metrics should be captured using HystrixRollingPercentile inside HystrixCommandMetrics.
-     */
-    public HystrixConfigurationProperties withMetricsRollingPercentileEnabled(Boolean metricsRollingPercentileEnabled) {
-        this.metricsRollingPercentileEnabled = metricsRollingPercentileEnabled;
-        return this;
-    }
-
-    /**
-     * Duration of percentile rolling window in milliseconds. This is passed into HystrixRollingPercentile inside
-     * HystrixCommandMetrics.
-     */
-    public HystrixConfigurationProperties withMetricsRollingPercentileWindowInMilliseconds(
-            Integer metricsRollingPercentileWindowInMilliseconds) {
-        this.metricsRollingPercentileWindowInMilliseconds = metricsRollingPercentileWindowInMilliseconds;
-        return this;
-    }
-
-    /**
-     * Number of buckets the rolling percentile window is broken into. This is passed into HystrixRollingPercentile
-     * inside HystrixCommandMetrics.
-     */
-    public HystrixConfigurationProperties withMetricsRollingPercentileWindowBuckets(
-            Integer metricsRollingPercentileWindowBuckets) {
-        this.metricsRollingPercentileWindowBuckets = metricsRollingPercentileWindowBuckets;
-        return this;
-    }
-
-    /**
-     * This property sets the duration of the statistical rolling window, in milliseconds. This is how long metrics are
-     * kept for the thread pool.
-     *
-     * The window is divided into buckets and “rolls” by those increments.
-     */
-    public HystrixConfigurationProperties withMetricsRollingStatisticalWindowInMilliseconds(
-            Integer metricsRollingStatisticalWindowInMilliseconds) {
-        this.metricsRollingStatisticalWindowInMilliseconds = metricsRollingStatisticalWindowInMilliseconds;
-        return this;
-    }
-
-    /**
-     * Number of buckets the rolling statistical window is broken into. This is passed into HystrixRollingNumber inside
-     * HystrixCommandMetrics.
-     */
-    public HystrixConfigurationProperties withMetricsRollingStatisticalWindowBuckets(
-            Integer metricsRollingStatisticalWindowBuckets) {
-        this.metricsRollingStatisticalWindowBuckets = metricsRollingStatisticalWindowBuckets;
-        return this;
-    }
-
-    /**
-     * Whether HystrixCommand execution and events should be logged to HystrixRequestLog.
-     */
-    public HystrixConfigurationProperties withRequestLogEnabled(Boolean requestLogEnabled) {
-        this.requestLogEnabled = requestLogEnabled;
-        return this;
-    }
-
-    /**
-     * Core thread-pool size that gets passed to {@link java.util.concurrent.ThreadPoolExecutor#setCorePoolSize(int)}
-     */
-    public HystrixConfigurationProperties withCorePoolSize(Integer corePoolSize) {
-        this.corePoolSize = corePoolSize;
-        return this;
-    }
-
-    /**
-     * Maximum thread-pool size that gets passed to {@link ThreadPoolExecutor#setMaximumPoolSize(int)}. This is the
-     * maximum amount of concurrency that can be supported without starting to reject HystrixCommands. Please note that
-     * this setting only takes effect if you also set allowMaximumSizeToDivergeFromCoreSize
-     */
-    public HystrixConfigurationProperties withMaximumSize(Integer maximumSize) {
-        this.maximumSize = maximumSize;
-        return this;
-    }
-
-    /**
-     * Keep-alive time in minutes that gets passed to {@link ThreadPoolExecutor#setKeepAliveTime(long, TimeUnit)}
-     */
-    public HystrixConfigurationProperties withKeepAliveTime(Integer keepAliveTime) {
-        this.keepAliveTime = keepAliveTime;
-        return this;
-    }
-
-    /**
-     * Max queue size that gets passed to {@link BlockingQueue} in HystrixConcurrencyStrategy.getBlockingQueue(int)
-     *
-     * This should only affect the instantiation of a threadpool - it is not eliglible to change a queue size on the
-     * fly. For that, use queueSizeRejectionThreshold().
-     */
-    public HystrixConfigurationProperties withMaxQueueSize(Integer maxQueueSize) {
-        this.maxQueueSize = maxQueueSize;
-        return this;
-    }
-
-    /**
-     * Queue size rejection threshold is an artificial max size at which rejections will occur even if
-     * {@link #maxQueueSize} has not been reached. This is done because the {@link #maxQueueSize} of a
-     * {@link BlockingQueue} can not be dynamically changed and we want to support dynamically changing the queue size
-     * that affects rejections.
-     * <p>
-     * This is used by HystrixCommand when queuing a thread for execution.
-     */
-    public HystrixConfigurationProperties withQueueSizeRejectionThreshold(Integer queueSizeRejectionThreshold) {
-        this.queueSizeRejectionThreshold = queueSizeRejectionThreshold;
-        return this;
-    }
-
-    /**
-     * Duration of statistical rolling window in milliseconds. This is passed into HystrixRollingNumber inside each
-     * HystrixThreadPoolMetrics instance.
-     */
-    public HystrixConfigurationProperties withThreadPoolRollingNumberStatisticalWindowInMilliseconds(
-            Integer threadPoolRollingNumberStatisticalWindowInMilliseconds) {
-        this.threadPoolRollingNumberStatisticalWindowInMilliseconds = threadPoolRollingNumberStatisticalWindowInMilliseconds;
-        return this;
-    }
-
-    /**
-     * Number of buckets the rolling statistical window is broken into. This is passed into HystrixRollingNumber inside
-     * each HystrixThreadPoolMetrics instance.
-     */
-    public HystrixConfigurationProperties withThreadPoolRollingNumberStatisticalWindowBuckets(
-            Integer threadPoolRollingNumberStatisticalWindowBuckets) {
-        this.threadPoolRollingNumberStatisticalWindowBuckets = threadPoolRollingNumberStatisticalWindowBuckets;
-        return this;
-    }
-
-    /**
-     * Allows the configuration for maximumSize to take effect. That value can then be equal to, or higher, than
-     * coreSize
-     */
-    public HystrixConfigurationProperties withAllowMaximumSizeToDivergeFromCoreSize(
-            Boolean allowMaximumSizeToDivergeFromCoreSize) {
-        this.allowMaximumSizeToDivergeFromCoreSize = allowMaximumSizeToDivergeFromCoreSize;
-        return this;
-    }
-}
diff --git a/core/camel-main/src/main/java/org/apache/camel/main/MainConfigurationProperties.java b/core/camel-main/src/main/java/org/apache/camel/main/MainConfigurationProperties.java
index 9ca67da6388..a3bab9c95e7 100644
--- a/core/camel-main/src/main/java/org/apache/camel/main/MainConfigurationProperties.java
+++ b/core/camel-main/src/main/java/org/apache/camel/main/MainConfigurationProperties.java
@@ -55,7 +55,6 @@ public class MainConfigurationProperties extends DefaultConfigurationProperties<
     private HealthConfigurationProperties healthConfigurationProperties;
     private LraConfigurationProperties lraConfigurationProperties;
     private ThreadPoolConfigurationProperties threadPoolProperties;
-    private HystrixConfigurationProperties hystrixConfigurationProperties;
     private Resilience4jConfigurationProperties resilience4jConfigurationProperties;
     private FaultToleranceConfigurationProperties faultToleranceConfigurationProperties;
     private RestConfigurationProperties restConfigurationProperties;
@@ -75,10 +74,6 @@ public class MainConfigurationProperties extends DefaultConfigurationProperties<
             threadPoolProperties.close();
             threadPoolProperties = null;
         }
-        if (hystrixConfigurationProperties != null) {
-            hystrixConfigurationProperties.close();
-            hystrixConfigurationProperties = null;
-        }
         if (resilience4jConfigurationProperties != null) {
             resilience4jConfigurationProperties.close();
             resilience4jConfigurationProperties = null;
@@ -159,24 +154,6 @@ public class MainConfigurationProperties extends DefaultConfigurationProperties<
         return threadPoolProperties != null;
     }
 
-    /**
-     * To configure Circuit Breaker EIP with Hystrix
-     */
-    @Deprecated
-    public HystrixConfigurationProperties hystrix() {
-        if (hystrixConfigurationProperties == null) {
-            hystrixConfigurationProperties = new HystrixConfigurationProperties(this);
-        }
-        return hystrixConfigurationProperties;
-    }
-
-    /**
-     * Whether there has been any Hystrix EIP configuration specified
-     */
-    public boolean hasHystrixConfiguration() {
-        return hystrixConfigurationProperties != null;
-    }
-
     /**
      * To configure Circuit Breaker EIP with Resilience4j
      */
diff --git a/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/PrepareCamelMainMojo.java b/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/PrepareCamelMainMojo.java
index d3b1f945880..bfdaa2ca8c2 100644
--- a/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/PrepareCamelMainMojo.java
+++ b/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/PrepareCamelMainMojo.java
@@ -187,9 +187,7 @@ public class PrepareCamelMainMojo extends AbstractGeneratorMojo {
                 List<MainModel.MainOptionModel> model = parseConfigurationSource(file);
                 // compute prefix for name
                 String prefix;
-                if (file.getName().contains("Hystrix")) {
-                    prefix = "camel.hystrix.";
-                } else if (file.getName().contains("Resilience")) {
+                if (file.getName().contains("Resilience")) {
                     prefix = "camel.resilience4j.";
                 } else if (file.getName().contains("FaultTolerance")) {
                     prefix = "camel.faulttolerance.";
@@ -308,9 +306,6 @@ public class PrepareCamelMainMojo extends AbstractGeneratorMojo {
                     .add(new MainGroupModel(
                             "camel.resilience4j", "Resilience4j EIP Circuit Breaker configurations",
                             "org.apache.camel.main.Resilience4jConfigurationProperties"));
-            model.getGroups().add(new MainGroupModel(
-                    "camel.hystrix", "Hystrix (deprecated) EIP Circuit Breaker configurations",
-                    "org.apache.camel.main.HystrixConfigurationProperties"));
             model.getGroups().add(new MainGroupModel(
                     "camel.lra", "Camel Saga EIP (Long Running Actions) configurations",
                     "org.apache.camel.main.LraConfigurationProperties"));