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

davsclaus pushed a commit to branch feature/CAMEL-24215-devconsole-config
in repository https://gitbox.apache.org/repos/asf/camel.git

commit db067523a6f9616d2f4b76c824cb4e6794055d7b
Author: Claus Ibsen <[email protected]>
AuthorDate: Sat Jul 25 13:17:33 2026 +0200

    CAMEL-24215: Circuit breaker dev consoles expose configuration details
    
    Co-Authored-By: Claude Opus 4.6 <[email protected]>
    Signed-off-by: Claus Ibsen <[email protected]>
---
 .../faulttolerance/FaultToleranceConsole.java      | 16 ++++++++++++++++
 .../component/resilience4j/ResilienceConsole.java  | 22 ++++++++++++++++++++++
 2 files changed, 38 insertions(+)

diff --git 
a/components/camel-microprofile/camel-microprofile-fault-tolerance/src/main/java/org/apache/camel/component/microprofile/faulttolerance/FaultToleranceConsole.java
 
b/components/camel-microprofile/camel-microprofile-fault-tolerance/src/main/java/org/apache/camel/component/microprofile/faulttolerance/FaultToleranceConsole.java
index 04a1dbd551c7..14f6ce4f96f6 100644
--- 
a/components/camel-microprofile/camel-microprofile-fault-tolerance/src/main/java/org/apache/camel/component/microprofile/faulttolerance/FaultToleranceConsole.java
+++ 
b/components/camel-microprofile/camel-microprofile-fault-tolerance/src/main/java/org/apache/camel/component/microprofile/faulttolerance/FaultToleranceConsole.java
@@ -84,6 +84,22 @@ public class FaultToleranceConsole extends 
AbstractDevConsole {
             jo.put("id", cb.getId());
             jo.put("routeId", cb.getRouteId());
             jo.put("state", cb.getCircuitBreakerState());
+            // configuration
+            JsonObject config = new JsonObject();
+            config.put("delay", cb.getDelay());
+            config.put("failureRate", cb.getFailureRate());
+            config.put("requestVolumeThreshold", 
cb.getRequestVolumeThreshold());
+            config.put("successThreshold", cb.getSuccessThreshold());
+            config.put("bulkheadEnabled", cb.isBulkheadEnabled());
+            if (cb.isBulkheadEnabled()) {
+                config.put("bulkheadMaxConcurrentCalls", 
cb.getBulkheadMaxConcurrentCalls());
+                config.put("bulkheadWaitingTaskQueue", 
cb.getBulkheadWaitingTaskQueue());
+            }
+            config.put("timeoutEnabled", cb.isTimeoutEnabled());
+            if (cb.isTimeoutEnabled()) {
+                config.put("timeoutDuration", cb.getTimeoutDuration());
+            }
+            jo.put("configuration", config);
             list.add(jo);
         }
         root.put("circuitBreakers", list);
diff --git 
a/components/camel-resilience4j/src/main/java/org/apache/camel/component/resilience4j/ResilienceConsole.java
 
b/components/camel-resilience4j/src/main/java/org/apache/camel/component/resilience4j/ResilienceConsole.java
index ae0af7cf6590..3c16c6ee7545 100644
--- 
a/components/camel-resilience4j/src/main/java/org/apache/camel/component/resilience4j/ResilienceConsole.java
+++ 
b/components/camel-resilience4j/src/main/java/org/apache/camel/component/resilience4j/ResilienceConsole.java
@@ -99,6 +99,28 @@ public class ResilienceConsole extends AbstractDevConsole {
             jo.put("failedCalls", cb.getNumberOfFailedCalls());
             jo.put("notPermittedCalls", cb.getNumberOfNotPermittedCalls());
             jo.put("failureRate", cb.getFailureRate());
+            // configuration
+            JsonObject config = new JsonObject();
+            config.put("failureRateThreshold", 
cb.getCircuitBreakerFailureRateThreshold());
+            config.put("slowCallRateThreshold", 
cb.getCircuitBreakerSlowCallRateThreshold());
+            config.put("minimumNumberOfCalls", 
cb.getCircuitBreakerMinimumNumberOfCalls());
+            config.put("permittedNumberOfCallsInHalfOpenState",
+                    
cb.getCircuitBreakerPermittedNumberOfCallsInHalfOpenState());
+            config.put("slidingWindowSize", 
cb.getCircuitBreakerSlidingWindowSize());
+            config.put("slidingWindowType", 
cb.getCircuitBreakerSlidingWindowType());
+            config.put("waitDurationInOpenState", 
cb.getCircuitBreakerWaitDurationInOpenState());
+            config.put("automaticTransitionFromOpenToHalfOpen",
+                    cb.isCircuitBreakerTransitionFromOpenToHalfOpenEnabled());
+            config.put("bulkheadEnabled", cb.isBulkheadEnabled());
+            if (cb.isBulkheadEnabled()) {
+                config.put("bulkheadMaxConcurrentCalls", 
cb.getBulkheadMaxConcurrentCalls());
+                config.put("bulkheadMaxWaitDuration", 
cb.getBulkheadMaxWaitDuration());
+            }
+            config.put("timeoutEnabled", cb.isTimeoutEnabled());
+            if (cb.isTimeoutEnabled()) {
+                config.put("timeoutDuration", cb.getTimeoutDuration());
+            }
+            jo.put("configuration", config);
             list.add(jo);
         }
         root.put("circuitBreakers", list);

Reply via email to