You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@camel.apache.org by "Claus Ibsen (Jira)" <ji...@apache.org> on 2026/07/25 20:34:00 UTC
[jira] [Resolved] (CAMEL-24258) camel-microprofile-fault-tolerance - Clean up dead code and improve JMX/observability parity
[ https://issues.apache.org/jira/browse/CAMEL-24258?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Claus Ibsen resolved CAMEL-24258.
---------------------------------
Resolution: Fixed
Fixed via PR https://github.com/apache/camel/pull/25111
> camel-microprofile-fault-tolerance - Clean up dead code and improve JMX/observability parity
> --------------------------------------------------------------------------------------------
>
> Key: CAMEL-24258
> URL: https://issues.apache.org/jira/browse/CAMEL-24258
> Project: Camel
> Issue Type: Improvement
> Components: eip
> Reporter: Claus Ibsen
> Assignee: Claus Ibsen
> Priority: Minor
> Fix For: 4.22.0
>
>
> Follow-up from the Circuit Breaker EIP modernization work (CAMEL-24137, CAMEL-21857).
> The camel-microprofile-fault-tolerance module has two areas that need attention:
> h3. 1. Remove dead timeoutPoolSize option
> {{timeoutPoolSize}} was deprecated in 4.22.0 (CAMEL-21857 switched to the TypedGuard API) but the reifier still reads and sets it. The field, getter, setter, copy constructor entry, and JMX attribute all exist despite the value having no effect. This dead code should be removed across:
> - {{FaultToleranceConfigurationCommon}} (model)
> - {{FaultToleranceConfiguration}} (runtime config)
> - {{FaultToleranceReifier}} (still calls {{target.setTimeoutPoolSize(...)}})
> - {{FaultToleranceProcessor}} (still exposes via @ManagedAttribute)
> - DSL builders ({{FaultToleranceConfigurationDefinition}}, etc.)
> h3. 2. JMX and observability parity with camel-resilience4j
> {{FaultToleranceProcessor}} is significantly behind {{ResilienceProcessor}} in terms of JMX managed attributes and operations:
> *Missing operations (all 4):*
> - {{transitionToCloseState()}}
> - {{transitionToOpenState()}}
> - {{transitionToHalfOpenState()}}
> - {{transitionToForcedOpenState()}}
> SmallRye FT's {{CircuitBreakerMaintenance}} API supports state transitions in recent versions, so at least some of these could be added.
> *Missing live metrics:*
> - {{getFailureRate()}} currently returns the _configured threshold_, not the _actual live failure rate_. The method name is misleading compared to its Resilience4j counterpart which returns live data from {{circuitBreaker.getMetrics()}}.
> - No live call counts (successful, failed, buffered, not-permitted)
> - No slow call metrics
> Some of these gaps are inherent to SmallRye FT's narrower API, but the state transitions and the misleading {{getFailureRate()}} method name should be addressable.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)