You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by da...@apache.org on 2023/05/13 16:16:03 UTC

[camel] branch main updated: CAMEL-19337: camel-core-model - Fix circuitBreaker some options should be attributes and not elements.

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

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


The following commit(s) were added to refs/heads/main by this push:
     new a00c41d5540 CAMEL-19337: camel-core-model - Fix circuitBreaker some options should be attributes and not elements.
a00c41d5540 is described below

commit a00c41d5540ce848631ca934b1cfe284cd2ba6a9
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Sat May 13 18:03:13 2023 +0200

    CAMEL-19337: camel-core-model - Fix circuitBreaker some options should be attributes and not elements.
---
 .../catalog/models/resilience4jConfiguration.json  |  7 ++
 .../apache/camel/catalog/schemas/camel-spring.xsd  | 86 +++++++++++++++++-----
 .../camel/model/resilience4jConfiguration.json     |  7 ++
 .../model/Resilience4jConfigurationCommon.java     |  7 ++
 .../java/org/apache/camel/xml/in/ModelParser.java  | 26 +++----
 .../java/org/apache/camel/xml/out/ModelWriter.java | 20 ++---
 .../dsl/yaml/deserializers/ModelDeserializers.java | 42 +++++++++++
 .../generated/resources/schema/camel-yaml-dsl.json | 21 ++++++
 .../generated/resources/schema/camelYamlDsl.json   | 21 ++++++
 9 files changed, 190 insertions(+), 47 deletions(-)

diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/resilience4jConfiguration.json b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/resilience4jConfiguration.json
index fa87423edeb..c1d9e810a35 100644
--- a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/resilience4jConfiguration.json
+++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/resilience4jConfiguration.json
@@ -25,6 +25,13 @@
     "automaticTransitionFromOpenToHalfOpenEnabled": { "kind": "attribute", "displayName": "Automatic Transition From Open To Half Open Enabled", "label": "advanced", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Enables automatic transition from OPEN to HALF_OPEN state once the waitDurationInOpenState has passed." },
     "slowCallRateThreshold": { "kind": "attribute", "displayName": "Slow Call Rate Threshold", "label": "advanced", "required": false, "type": "number", "javaType": "java.lang.Float", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "100", "description": "Configures a threshold in percentage. The CircuitBreaker considers a call as slow when the call duration is greater than slowCallDurationThreshold Duration. When the percentage of slow calls is equal or greater  [...]
     "slowCallDurationThreshold": { "kind": "attribute", "displayName": "Slow Call Duration Threshold", "label": "advanced", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "60", "description": "Configures the duration threshold (seconds) above which calls are considered as slow and increase the slow calls percentage. Default value is 60 seconds." },
+    "bulkheadEnabled": { "kind": "attribute", "displayName": "Bulkhead Enabled", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether bulkhead is enabled or not on the circuit breaker. Default is false." },
+    "bulkheadMaxConcurrentCalls": { "kind": "attribute", "displayName": "Bulkhead Max Concurrent Calls", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "25", "description": "Configures the max amount of concurrent calls the bulkhead will support." },
+    "bulkheadMaxWaitDuration": { "kind": "attribute", "displayName": "Bulkhead Max Wait Duration", "label": "advanced", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "0", "description": "Configures a maximum amount of time which the calling thread will wait to enter the bulkhead. If bulkhead has space available, entry is guaranteed and immediate. If bulkhead is full, calling threads will co [...]
+    "timeoutEnabled": { "kind": "attribute", "displayName": "Timeout Enabled", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether timeout is enabled or not on the circuit breaker. Default is false." },
+    "timeoutExecutorService": { "kind": "attribute", "displayName": "Timeout Executor Service", "label": "advanced", "required": false, "type": "object", "javaType": "java.util.concurrent.ExecutorService", "deprecated": false, "autowired": false, "secret": false, "description": "References to a custom thread pool to use when timeout is enabled (uses ForkJoinPool#commonPool() by default)" },
+    "timeoutDuration": { "kind": "attribute", "displayName": "Timeout Duration", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "1000", "description": "Configures the thread execution timeout. Default value is 1 second." },
+    "timeoutCancelRunningFuture": { "kind": "attribute", "displayName": "Timeout Cancel Running Future", "label": "advanced", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Configures whether cancel is called on the running future. Defaults to true." },
     "id": { "kind": "attribute", "displayName": "Id", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "The id of this node" }
   }
 }
diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/schemas/camel-spring.xsd b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/schemas/camel-spring.xsd
index 19eccf3d812..fda3463a181 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
@@ -4712,23 +4712,7 @@ microprofile-fault-tolerance) to use for configuring the circuit breaker EIP.
             
       <xs:extension base="tns:identifiedType">
                 
-        <xs:sequence>
-                    
-          <xs:element minOccurs="0" name="bulkheadEnabled" type="xs:string"/>
-                    
-          <xs:element minOccurs="0" name="bulkheadMaxConcurrentCalls" type="xs:string"/>
-                    
-          <xs:element minOccurs="0" name="bulkheadMaxWaitDuration" type="xs:string"/>
-                    
-          <xs:element minOccurs="0" name="timeoutEnabled" type="xs:string"/>
-                    
-          <xs:element minOccurs="0" name="timeoutExecutorService" type="xs:string"/>
-                    
-          <xs:element minOccurs="0" name="timeoutDuration" type="xs:string"/>
-                    
-          <xs:element minOccurs="0" name="timeoutCancelRunningFuture" type="xs:string"/>
-                  
-        </xs:sequence>
+        <xs:sequence/>
                 
         <xs:attribute name="circuitBreaker" type="xs:string">
           <xs:annotation>
@@ -4876,6 +4860,74 @@ Default value: 60
             ]]></xs:documentation>
           </xs:annotation>
         </xs:attribute>
+                
+        <xs:attribute name="bulkheadEnabled" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Whether bulkhead is enabled or not on the circuit breaker. Default is false.
+Default value: false
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+                
+        <xs:attribute name="bulkheadMaxConcurrentCalls" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Configures the max amount of concurrent calls the bulkhead will support. Default
+value: 25
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+                
+        <xs:attribute name="bulkheadMaxWaitDuration" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Configures a maximum amount of time which the calling thread will wait to enter
+the bulkhead. If bulkhead has space available, entry is guaranteed and
+immediate. If bulkhead is full, calling threads will contest for space, if it
+becomes available. maxWaitDuration can be set to 0. Note: for threads running on
+an event-loop or equivalent (rx computation pool, etc), setting maxWaitDuration
+to 0 is highly recommended. Blocking an event-loop thread will most likely have
+a negative effect on application throughput. Default value: 0
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+                
+        <xs:attribute name="timeoutEnabled" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Whether timeout is enabled or not on the circuit breaker. Default is false.
+Default value: false
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+                
+        <xs:attribute name="timeoutExecutorService" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+References to a custom thread pool to use when timeout is enabled (uses
+ForkJoinPool#commonPool() by default).
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+                
+        <xs:attribute name="timeoutDuration" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Configures the thread execution timeout. Default value is 1 second. Default
+value: 1000
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+                
+        <xs:attribute name="timeoutCancelRunningFuture" type="xs:string">
+          <xs:annotation>
+            <xs:documentation xml:lang="en"><![CDATA[
+Configures whether cancel is called on the running future. Defaults to true.
+Default value: true
+            ]]></xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
               
       </xs:extension>
           
diff --git a/core/camel-core-model/src/generated/resources/org/apache/camel/model/resilience4jConfiguration.json b/core/camel-core-model/src/generated/resources/org/apache/camel/model/resilience4jConfiguration.json
index fa87423edeb..c1d9e810a35 100644
--- a/core/camel-core-model/src/generated/resources/org/apache/camel/model/resilience4jConfiguration.json
+++ b/core/camel-core-model/src/generated/resources/org/apache/camel/model/resilience4jConfiguration.json
@@ -25,6 +25,13 @@
     "automaticTransitionFromOpenToHalfOpenEnabled": { "kind": "attribute", "displayName": "Automatic Transition From Open To Half Open Enabled", "label": "advanced", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Enables automatic transition from OPEN to HALF_OPEN state once the waitDurationInOpenState has passed." },
     "slowCallRateThreshold": { "kind": "attribute", "displayName": "Slow Call Rate Threshold", "label": "advanced", "required": false, "type": "number", "javaType": "java.lang.Float", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "100", "description": "Configures a threshold in percentage. The CircuitBreaker considers a call as slow when the call duration is greater than slowCallDurationThreshold Duration. When the percentage of slow calls is equal or greater  [...]
     "slowCallDurationThreshold": { "kind": "attribute", "displayName": "Slow Call Duration Threshold", "label": "advanced", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "60", "description": "Configures the duration threshold (seconds) above which calls are considered as slow and increase the slow calls percentage. Default value is 60 seconds." },
+    "bulkheadEnabled": { "kind": "attribute", "displayName": "Bulkhead Enabled", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether bulkhead is enabled or not on the circuit breaker. Default is false." },
+    "bulkheadMaxConcurrentCalls": { "kind": "attribute", "displayName": "Bulkhead Max Concurrent Calls", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "25", "description": "Configures the max amount of concurrent calls the bulkhead will support." },
+    "bulkheadMaxWaitDuration": { "kind": "attribute", "displayName": "Bulkhead Max Wait Duration", "label": "advanced", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "0", "description": "Configures a maximum amount of time which the calling thread will wait to enter the bulkhead. If bulkhead has space available, entry is guaranteed and immediate. If bulkhead is full, calling threads will co [...]
+    "timeoutEnabled": { "kind": "attribute", "displayName": "Timeout Enabled", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether timeout is enabled or not on the circuit breaker. Default is false." },
+    "timeoutExecutorService": { "kind": "attribute", "displayName": "Timeout Executor Service", "label": "advanced", "required": false, "type": "object", "javaType": "java.util.concurrent.ExecutorService", "deprecated": false, "autowired": false, "secret": false, "description": "References to a custom thread pool to use when timeout is enabled (uses ForkJoinPool#commonPool() by default)" },
+    "timeoutDuration": { "kind": "attribute", "displayName": "Timeout Duration", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "1000", "description": "Configures the thread execution timeout. Default value is 1 second." },
+    "timeoutCancelRunningFuture": { "kind": "attribute", "displayName": "Timeout Cancel Running Future", "label": "advanced", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Configures whether cancel is called on the running future. Defaults to true." },
     "id": { "kind": "attribute", "displayName": "Id", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "The id of this node" }
   }
 }
diff --git a/core/camel-core-model/src/main/java/org/apache/camel/model/Resilience4jConfigurationCommon.java b/core/camel-core-model/src/main/java/org/apache/camel/model/Resilience4jConfigurationCommon.java
index f6223fc09dd..d61fade94f3 100644
--- a/core/camel-core-model/src/main/java/org/apache/camel/model/Resilience4jConfigurationCommon.java
+++ b/core/camel-core-model/src/main/java/org/apache/camel/model/Resilience4jConfigurationCommon.java
@@ -66,18 +66,25 @@ public class Resilience4jConfigurationCommon extends IdentifiedType {
     @XmlAttribute
     @Metadata(label = "advanced", defaultValue = "60", javaType = "java.lang.Integer")
     private String slowCallDurationThreshold;
+    @XmlAttribute
     @Metadata(defaultValue = "false", javaType = "java.lang.Boolean")
     private String bulkheadEnabled;
+    @XmlAttribute
     @Metadata(defaultValue = "25", javaType = "java.lang.Integer")
     private String bulkheadMaxConcurrentCalls;
+    @XmlAttribute
     @Metadata(label = "advanced", defaultValue = "0", javaType = "java.lang.Integer")
     private String bulkheadMaxWaitDuration;
+    @XmlAttribute
     @Metadata(defaultValue = "false", javaType = "java.lang.Boolean")
     private String timeoutEnabled;
+    @XmlAttribute
     @Metadata(label = "advanced", javaType = "java.util.concurrent.ExecutorService")
     private String timeoutExecutorService;
+    @XmlAttribute
     @Metadata(defaultValue = "1000", javaType = "java.lang.Integer")
     private String timeoutDuration;
+    @XmlAttribute
     @Metadata(label = "advanced", defaultValue = "true", javaType = "java.lang.Boolean")
     private String timeoutCancelRunningFuture;
 
diff --git a/core/camel-xml-io/src/generated/java/org/apache/camel/xml/in/ModelParser.java b/core/camel-xml-io/src/generated/java/org/apache/camel/xml/in/ModelParser.java
index ec3f3ecb43c..744b36e8a12 100644
--- a/core/camel-xml-io/src/generated/java/org/apache/camel/xml/in/ModelParser.java
+++ b/core/camel-xml-io/src/generated/java/org/apache/camel/xml/in/ModelParser.java
@@ -254,7 +254,7 @@ public class ModelParser extends BaseParser {
     }
     protected Resilience4jConfigurationDefinition doParseResilience4jConfigurationDefinition() throws IOException, XmlPullParserException {
         return doParse(new Resilience4jConfigurationDefinition(),
-            resilience4jConfigurationCommonAttributeHandler(), resilience4jConfigurationCommonElementHandler(), noValueHandler());
+            resilience4jConfigurationCommonAttributeHandler(), noElementHandler(), noValueHandler());
     }
     protected FaultToleranceConfigurationDefinition doParseFaultToleranceConfigurationDefinition() throws IOException, XmlPullParserException {
         return doParse(new FaultToleranceConfigurationDefinition(),
@@ -861,6 +861,9 @@ public class ModelParser extends BaseParser {
         return (def, key, val) -> {
             switch (key) {
                 case "automaticTransitionFromOpenToHalfOpenEnabled": def.setAutomaticTransitionFromOpenToHalfOpenEnabled(val); break;
+                case "bulkheadEnabled": def.setBulkheadEnabled(val); break;
+                case "bulkheadMaxConcurrentCalls": def.setBulkheadMaxConcurrentCalls(val); break;
+                case "bulkheadMaxWaitDuration": def.setBulkheadMaxWaitDuration(val); break;
                 case "circuitBreaker": def.setCircuitBreaker(val); break;
                 case "config": def.setConfig(val); break;
                 case "failureRateThreshold": def.setFailureRateThreshold(val); break;
@@ -871,6 +874,10 @@ public class ModelParser extends BaseParser {
                 case "slowCallDurationThreshold": def.setSlowCallDurationThreshold(val); break;
                 case "slowCallRateThreshold": def.setSlowCallRateThreshold(val); break;
                 case "throwExceptionWhenHalfOpenOrOpenState": def.setThrowExceptionWhenHalfOpenOrOpenState(val); break;
+                case "timeoutCancelRunningFuture": def.setTimeoutCancelRunningFuture(val); break;
+                case "timeoutDuration": def.setTimeoutDuration(val); break;
+                case "timeoutEnabled": def.setTimeoutEnabled(val); break;
+                case "timeoutExecutorService": def.setTimeoutExecutorService(val); break;
                 case "waitDurationInOpenState": def.setWaitDurationInOpenState(val); break;
                 case "writableStackTraceEnabled": def.setWritableStackTraceEnabled(val); break;
                 default: return identifiedTypeAttributeHandler().accept(def, key, val);
@@ -878,23 +885,8 @@ public class ModelParser extends BaseParser {
             return true;
         };
     }
-    protected <T extends Resilience4jConfigurationCommon> ElementHandler<T> resilience4jConfigurationCommonElementHandler() {
-        return (def, key) -> {
-            switch (key) {
-                case "bulkheadEnabled": def.setBulkheadEnabled(doParseText()); break;
-                case "bulkheadMaxConcurrentCalls": def.setBulkheadMaxConcurrentCalls(doParseText()); break;
-                case "bulkheadMaxWaitDuration": def.setBulkheadMaxWaitDuration(doParseText()); break;
-                case "timeoutCancelRunningFuture": def.setTimeoutCancelRunningFuture(doParseText()); break;
-                case "timeoutDuration": def.setTimeoutDuration(doParseText()); break;
-                case "timeoutEnabled": def.setTimeoutEnabled(doParseText()); break;
-                case "timeoutExecutorService": def.setTimeoutExecutorService(doParseText()); break;
-                default: return false;
-            }
-            return true;
-        };
-    }
     protected Resilience4jConfigurationCommon doParseResilience4jConfigurationCommon() throws IOException, XmlPullParserException {
-        return doParse(new Resilience4jConfigurationCommon(), resilience4jConfigurationCommonAttributeHandler(), resilience4jConfigurationCommonElementHandler(), noValueHandler());
+        return doParse(new Resilience4jConfigurationCommon(), resilience4jConfigurationCommonAttributeHandler(),  noElementHandler(), noValueHandler());
     }
     protected RestContextRefDefinition doParseRestContextRefDefinition() throws IOException, XmlPullParserException {
         return doParse(new RestContextRefDefinition(), (def, key, val) -> {
diff --git a/core/camel-xml-io/src/generated/java/org/apache/camel/xml/out/ModelWriter.java b/core/camel-xml-io/src/generated/java/org/apache/camel/xml/out/ModelWriter.java
index 0a597421cb9..d0c94e503f5 100644
--- a/core/camel-xml-io/src/generated/java/org/apache/camel/xml/out/ModelWriter.java
+++ b/core/camel-xml-io/src/generated/java/org/apache/camel/xml/out/ModelWriter.java
@@ -1920,8 +1920,13 @@ public class ModelWriter extends BaseWriter {
             throws IOException {
         doWriteIdentifiedTypeAttributes(def);
         doWriteAttribute("failureRateThreshold", def.getFailureRateThreshold());
+        doWriteAttribute("bulkheadMaxWaitDuration", def.getBulkheadMaxWaitDuration());
         doWriteAttribute("slowCallDurationThreshold", def.getSlowCallDurationThreshold());
+        doWriteAttribute("timeoutCancelRunningFuture", def.getTimeoutCancelRunningFuture());
         doWriteAttribute("minimumNumberOfCalls", def.getMinimumNumberOfCalls());
+        doWriteAttribute("timeoutDuration", def.getTimeoutDuration());
+        doWriteAttribute("timeoutEnabled", def.getTimeoutEnabled());
+        doWriteAttribute("timeoutExecutorService", def.getTimeoutExecutorService());
         doWriteAttribute("permittedNumberOfCallsInHalfOpenState", def.getPermittedNumberOfCallsInHalfOpenState());
         doWriteAttribute("throwExceptionWhenHalfOpenOrOpenState", def.getThrowExceptionWhenHalfOpenOrOpenState());
         doWriteAttribute("slowCallRateThreshold", def.getSlowCallRateThreshold());
@@ -1930,27 +1935,17 @@ public class ModelWriter extends BaseWriter {
         doWriteAttribute("circuitBreaker", def.getCircuitBreaker());
         doWriteAttribute("slidingWindowSize", def.getSlidingWindowSize());
         doWriteAttribute("config", def.getConfig());
+        doWriteAttribute("bulkheadMaxConcurrentCalls", def.getBulkheadMaxConcurrentCalls());
         doWriteAttribute("slidingWindowType", def.getSlidingWindowType());
+        doWriteAttribute("bulkheadEnabled", def.getBulkheadEnabled());
         doWriteAttribute("waitDurationInOpenState", def.getWaitDurationInOpenState());
     }
-    protected void doWriteResilience4jConfigurationCommonElements(
-            Resilience4jConfigurationCommon def)
-            throws IOException {
-        doWriteElement("bulkheadMaxWaitDuration", def.getBulkheadMaxWaitDuration(), this::doWriteString);
-        doWriteElement("timeoutCancelRunningFuture", def.getTimeoutCancelRunningFuture(), this::doWriteString);
-        doWriteElement("timeoutDuration", def.getTimeoutDuration(), this::doWriteString);
-        doWriteElement("timeoutEnabled", def.getTimeoutEnabled(), this::doWriteString);
-        doWriteElement("timeoutExecutorService", def.getTimeoutExecutorService(), this::doWriteString);
-        doWriteElement("bulkheadMaxConcurrentCalls", def.getBulkheadMaxConcurrentCalls(), this::doWriteString);
-        doWriteElement("bulkheadEnabled", def.getBulkheadEnabled(), this::doWriteString);
-    }
     protected void doWriteResilience4jConfigurationCommon(
             String name,
             Resilience4jConfigurationCommon def)
             throws IOException {
         startElement(name);
         doWriteResilience4jConfigurationCommonAttributes(def);
-        doWriteResilience4jConfigurationCommonElements(def);
         endElement();
     }
     protected void doWriteResilience4jConfigurationDefinition(
@@ -1959,7 +1954,6 @@ public class ModelWriter extends BaseWriter {
             throws IOException {
         startElement(name);
         doWriteResilience4jConfigurationCommonAttributes(def);
-        doWriteResilience4jConfigurationCommonElements(def);
         endElement();
     }
     protected void doWriteRestContextRefDefinition(
diff --git a/dsl/camel-yaml-dsl/camel-yaml-dsl-deserializers/src/generated/java/org/apache/camel/dsl/yaml/deserializers/ModelDeserializers.java b/dsl/camel-yaml-dsl/camel-yaml-dsl-deserializers/src/generated/java/org/apache/camel/dsl/yaml/deserializers/ModelDeserializers.java
index dc297390c55..ab61de5c701 100644
--- a/dsl/camel-yaml-dsl/camel-yaml-dsl-deserializers/src/generated/java/org/apache/camel/dsl/yaml/deserializers/ModelDeserializers.java
+++ b/dsl/camel-yaml-dsl/camel-yaml-dsl-deserializers/src/generated/java/org/apache/camel/dsl/yaml/deserializers/ModelDeserializers.java
@@ -11893,6 +11893,9 @@ public final class ModelDeserializers extends YamlDeserializerSupport {
             order = org.apache.camel.dsl.yaml.common.YamlDeserializerResolver.ORDER_LOWEST - 1,
             properties = {
                     @YamlProperty(name = "automatic-transition-from-open-to-half-open-enabled", type = "boolean"),
+                    @YamlProperty(name = "bulkhead-enabled", type = "boolean"),
+                    @YamlProperty(name = "bulkhead-max-concurrent-calls", type = "number"),
+                    @YamlProperty(name = "bulkhead-max-wait-duration", type = "number"),
                     @YamlProperty(name = "circuit-breaker", type = "string"),
                     @YamlProperty(name = "config", type = "string"),
                     @YamlProperty(name = "failure-rate-threshold", type = "number"),
@@ -11904,6 +11907,10 @@ public final class ModelDeserializers extends YamlDeserializerSupport {
                     @YamlProperty(name = "slow-call-duration-threshold", type = "number"),
                     @YamlProperty(name = "slow-call-rate-threshold", type = "number"),
                     @YamlProperty(name = "throw-exception-when-half-open-or-open-state", type = "boolean"),
+                    @YamlProperty(name = "timeout-cancel-running-future", type = "boolean"),
+                    @YamlProperty(name = "timeout-duration", type = "number"),
+                    @YamlProperty(name = "timeout-enabled", type = "boolean"),
+                    @YamlProperty(name = "timeout-executor-service", type = "string"),
                     @YamlProperty(name = "wait-duration-in-open-state", type = "number"),
                     @YamlProperty(name = "writable-stack-trace-enabled", type = "boolean")
             }
@@ -11927,6 +11934,21 @@ public final class ModelDeserializers extends YamlDeserializerSupport {
                     target.setAutomaticTransitionFromOpenToHalfOpenEnabled(val);
                     break;
                 }
+                case "bulkhead-enabled": {
+                    String val = asText(node);
+                    target.setBulkheadEnabled(val);
+                    break;
+                }
+                case "bulkhead-max-concurrent-calls": {
+                    String val = asText(node);
+                    target.setBulkheadMaxConcurrentCalls(val);
+                    break;
+                }
+                case "bulkhead-max-wait-duration": {
+                    String val = asText(node);
+                    target.setBulkheadMaxWaitDuration(val);
+                    break;
+                }
                 case "circuit-breaker": {
                     String val = asText(node);
                     target.setCircuitBreaker(val);
@@ -11982,6 +12004,26 @@ public final class ModelDeserializers extends YamlDeserializerSupport {
                     target.setThrowExceptionWhenHalfOpenOrOpenState(val);
                     break;
                 }
+                case "timeout-cancel-running-future": {
+                    String val = asText(node);
+                    target.setTimeoutCancelRunningFuture(val);
+                    break;
+                }
+                case "timeout-duration": {
+                    String val = asText(node);
+                    target.setTimeoutDuration(val);
+                    break;
+                }
+                case "timeout-enabled": {
+                    String val = asText(node);
+                    target.setTimeoutEnabled(val);
+                    break;
+                }
+                case "timeout-executor-service": {
+                    String val = asText(node);
+                    target.setTimeoutExecutorService(val);
+                    break;
+                }
                 case "wait-duration-in-open-state": {
                     String val = asText(node);
                     target.setWaitDurationInOpenState(val);
diff --git a/dsl/camel-yaml-dsl/camel-yaml-dsl/src/generated/resources/schema/camel-yaml-dsl.json b/dsl/camel-yaml-dsl/camel-yaml-dsl/src/generated/resources/schema/camel-yaml-dsl.json
index 8ac3947b7ba..43b22904ea8 100644
--- a/dsl/camel-yaml-dsl/camel-yaml-dsl/src/generated/resources/schema/camel-yaml-dsl.json
+++ b/dsl/camel-yaml-dsl/camel-yaml-dsl/src/generated/resources/schema/camel-yaml-dsl.json
@@ -2271,6 +2271,15 @@
           "automatic-transition-from-open-to-half-open-enabled" : {
             "type" : "boolean"
           },
+          "bulkhead-enabled" : {
+            "type" : "boolean"
+          },
+          "bulkhead-max-concurrent-calls" : {
+            "type" : "number"
+          },
+          "bulkhead-max-wait-duration" : {
+            "type" : "number"
+          },
           "circuit-breaker" : {
             "type" : "string"
           },
@@ -2305,6 +2314,18 @@
           "throw-exception-when-half-open-or-open-state" : {
             "type" : "boolean"
           },
+          "timeout-cancel-running-future" : {
+            "type" : "boolean"
+          },
+          "timeout-duration" : {
+            "type" : "number"
+          },
+          "timeout-enabled" : {
+            "type" : "boolean"
+          },
+          "timeout-executor-service" : {
+            "type" : "string"
+          },
           "wait-duration-in-open-state" : {
             "type" : "number"
           },
diff --git a/dsl/camel-yaml-dsl/camel-yaml-dsl/src/generated/resources/schema/camelYamlDsl.json b/dsl/camel-yaml-dsl/camel-yaml-dsl/src/generated/resources/schema/camelYamlDsl.json
index b6e5127f94e..6ddf8e25943 100644
--- a/dsl/camel-yaml-dsl/camel-yaml-dsl/src/generated/resources/schema/camelYamlDsl.json
+++ b/dsl/camel-yaml-dsl/camel-yaml-dsl/src/generated/resources/schema/camelYamlDsl.json
@@ -2181,6 +2181,15 @@
           "automaticTransitionFromOpenToHalfOpenEnabled" : {
             "type" : "boolean"
           },
+          "bulkheadEnabled" : {
+            "type" : "boolean"
+          },
+          "bulkheadMaxConcurrentCalls" : {
+            "type" : "number"
+          },
+          "bulkheadMaxWaitDuration" : {
+            "type" : "number"
+          },
           "circuitBreaker" : {
             "type" : "string"
           },
@@ -2215,6 +2224,18 @@
           "throwExceptionWhenHalfOpenOrOpenState" : {
             "type" : "boolean"
           },
+          "timeoutCancelRunningFuture" : {
+            "type" : "boolean"
+          },
+          "timeoutDuration" : {
+            "type" : "number"
+          },
+          "timeoutEnabled" : {
+            "type" : "boolean"
+          },
+          "timeoutExecutorService" : {
+            "type" : "string"
+          },
           "waitDurationInOpenState" : {
             "type" : "number"
           },