Skip to content

CAMEL-24137: Circuit Breaker EIP modernization (phase 1)#24957

Merged
davsclaus merged 3 commits into
mainfrom
fix/CAMEL-24137-circuit-breaker-modernize
Jul 21, 2026
Merged

CAMEL-24137: Circuit Breaker EIP modernization (phase 1)#24957
davsclaus merged 3 commits into
mainfrom
fix/CAMEL-24137-circuit-breaker-modernize

Conversation

@davsclaus

@davsclaus davsclaus commented Jul 20, 2026

Copy link
Copy Markdown
Contributor

Summary

Circuit Breaker EIP modernization — phase 1 of CAMEL-24137. Covers sub-items Z1, Z4, Z5, Z6, Z7, and Z8.

Z1 — Remove Vavr dependency: Replaced the single Vavr Try monad usage in ResilienceProcessor with a plain try-catch. Removed io.vavr:vavr and io.vavr:vavr-match direct dependencies and the vavr-version property from parent/pom.xml (no other module used Vavr).

Z4 — Duration type migration: Changed 4 duration fields from int (seconds/millis) to String with javaType = "java.time.Duration" in Resilience4jConfigurationCommon. The reifier now uses parseDuration() which accepts Camel duration expressions (60s, 1m, 500ms) and also plain numbers as milliseconds. Old int overloads are deprecated with @Deprecated(since = "4.22", forRemoval = true).

Z5 — Expose new resilience4j 2.x options: Added slidingWindowSynchronizationStrategy (LOCK_FREE/SYNCHRONIZED), maxWaitDurationInHalfOpenState, and bulkheadFairCallHandlingEnabled to the model, definition, reifier, and camel-main configuration properties. Includes wiring test verifying DSL → resilience4j config propagation.

Z6 — Deprecate onFallbackViaNetwork(): Marked as @Deprecated(forRemoval = true) with descriptive Javadoc — a Hystrix-era concept both current implementations reject.

Z7 — Improve micrometerEnabled description: Updated the Javadoc/metadata description to clarify this is a global setting requiring the camel-resilience4j-micrometer JAR.

Z8 — Fix exchange property bugs: Fixed RESPONSE_TIMED_OUT only being set in the no-fallback path, and EXCEPTION_CAUGHT being null during timeouts (exception was on caller thread, not the exchange). Added 4 tests covering the timeout × fallback × pooled-exchange matrix.

Review feedback addressed:

  • Fixed Resilience4jConfigurationProperties — changed 4 duration fields from Integer to String (defaults like "60s") to prevent silent 1000× duration reduction for application.properties users
  • Added 3 new Z5 fields to Resilience4jConfigurationProperties with @Metadata annotations
  • Regenerated Resilience4jConfigurationPropertiesConfigurer
  • Deprecated 4 int overloads in Resilience4jConfigurationDefinition
  • Expanded upgrade guide with application.properties migration examples and deprecated overloads documentation
  • Added ResilienceNewOptionsTest with 3 wiring tests for Z5 options

Test plan

  • ResilienceTimeoutWithFallbackTest — timeout with fallback sets RESPONSE_TIMED_OUT=true and RESPONSE_SUCCESSFUL_EXECUTION=false
  • ResilienceTimeoutWithFallbackPooledExchangeTest — same with pooled exchange
  • ResilienceTimeoutWithoutFallbackTest — timeout without fallback sets both properties correctly
  • ResilienceTimeoutWithoutFallbackPooledExchangeTest — same with pooled exchange
  • ResilienceNewOptionsTest — Z5 options propagate from DSL to resilience4j config objects
  • All existing resilience4j tests continue to pass
  • Full reactor build passes (mvn clean install -DskipTests)

🤖 Generated with Claude Code

@gnodet gnodet left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Excellent modernization work — the Vavr removal, exchange property bug fixes, and new resilience4j 2.x feature exposure are all clean and well-tested. However, there's a gap in the duration unit migration that would silently break camel-main users.

Critical: Resilience4jConfigurationProperties not updated — silently breaks application.properties users

core/camel-main/src/main/java/org/apache/camel/main/Resilience4jConfigurationProperties.java was not modified by this PR. It still uses Integer type with default 60 for waitDurationInOpenState and slowCallDurationThreshold.

The flow for a user setting camel.resilience4j.waitDurationInOpenState=60 in application.properties:

  1. Resilience4jConfigurationProperties.waitDurationInOpenState is set to Integer 60
  2. Copied to Resilience4jConfigurationDefinition as String "60"
  3. The reifier now calls Duration.ofMillis(parseDuration("60")) = 60 milliseconds

Before this PR, step 3 was Duration.ofSeconds(parseLong("60")) = 60 seconds. The same raw value now produces a 1000× shorter duration with no warning. This is especially impactful since camel-main is the common configuration path for Camel Quarkus and Camel Spring Boot users.

This class needs:

  • waitDurationInOpenState and slowCallDurationThreshold: change type to String, default to "60000" (or "60s")
  • Add the three new fields: slidingWindowSynchronizationStrategy, maxWaitDurationInHalfOpenState, bulkheadFairCallHandlingEnabled
  • Regenerate Resilience4jConfigurationPropertiesConfigurer

Important: int overloads silently change semantics

The waitDurationInOpenState(int) and slowCallDurationThreshold(int) Java API overloads still exist and store Integer.toString(value). Before this PR, the reifier parsed with Duration.ofSeconds(), now with Duration.ofMillis(parseDuration()). So waitDurationInOpenState(60) changes from 60 seconds to 60 milliseconds — compiles without error, fails at runtime with a circuit breaker that re-closes nearly instantly.

Consider either deprecating these int overloads or explicitly mentioning them in the upgrade guide (the current upgrade guide covers string-based configuration but not the Java API).

Suggestion: Upgrade guide could mention the camel-main properties path

The upgrade guide examples show the Java DSL migration clearly but don't mention that users configuring via camel.resilience4j.* in application.properties are also affected. Calling this out would help since it's a common configuration path.

What looks great

  • Z1 (Vavr removal): Clean replacement — Try.ofCallable().andThen().recover().get() → try-catch preserves identical semantics.
  • Z8 (Exchange property fixes): Excellent root cause analysis — RESPONSE_TIMED_OUT was only set in the no-fallback path, and EXCEPTION_CAUGHT was null during timeouts because the TimeoutException is thrown on the caller thread rather than set on the exchange. The fix using exchange.getException() != null ? exchange.getException() : throwable is correct.
  • Z6 (Deprecation): forRemoval = true is appropriate for a Hystrix-era concept both implementations reject with UnsupportedOperationException.
  • Test coverage for Z8: Four new tests cover the timeout × fallback × pooled-exchange matrix nicely.

Minor

  • No tests for the three new resilience4j 2.x options (Z5) — a basic wiring test verifying DSL options propagate to CircuitBreakerConfig/BulkheadConfig would catch incorrect enum names or method references.
  • CI is still pending.

Reviewed with Claude Code on behalf of gnodet. This review was generated by an AI agent and may contain inaccuracies; please verify all suggestions before applying.

@github-actions

Copy link
Copy Markdown
Contributor

🌟 Thank you for your contribution to the Apache Camel project! 🌟
🤖 CI automation will test this PR automatically.

🐫 Apache Camel Committers, please review the following items:

  • First-time contributors require MANUAL approval for the GitHub Actions to run
  • You can use the command /component-test (camel-)component-name1 (camel-)component-name2.. to request a test from the test bot although they are normally detected and executed by CI.
  • You can label PRs using skip-tests and test-dependents to fine-tune the checks executed by this PR.
  • Build and test logs are available in the summary page. Only Apache Camel committers have access to the summary.

⚠️ Be careful when sharing logs. Review their contents before sharing them publicly.

@gnodet gnodet left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

All review feedback addressed in 4a0738698ea6 — thank you for the thorough response:

  1. Resilience4jConfigurationProperties fixed — all duration fields changed from Integer to String with "60s" defaults. Three new fields (slidingWindowSynchronizationStrategy, maxWaitDurationInHalfOpenState, bulkheadFairCallHandlingEnabled) added. Generated configurer regenerated. ✅

  2. int overloads deprecated — all four overloads now carry @Deprecated(since = "4.22", forRemoval = true) with Javadoc pointing to the String alternatives. ✅

  3. Upgrade guide expanded — explicit application.properties migration section with before/after examples, plus deprecation notice for Java DSL int overloads. ✅

  4. Wiring test addedResilienceNewOptionsTest (144 lines) verifies all three new resilience4j 2.x options propagate correctly through the DSL to CircuitBreakerConfig/BulkheadConfig. ✅

CI still pending on the new commit.

Reviewed with Claude Code on behalf of gnodet. This review was generated by an AI agent and may contain inaccuracies; please verify all suggestions before applying.

@davsclaus davsclaus left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks @gnodet — all four items from your review have been addressed in 4a07386:

1. Critical: Resilience4jConfigurationProperties updated — Changed waitDurationInOpenState and slowCallDurationThreshold from Integer to String type with defaults "60s" instead of 60 (Integer). bulkheadMaxWaitDuration and timeoutDuration also changed to String. Added the three new Z5 fields (slidingWindowSynchronizationStrategy, maxWaitDurationInHalfOpenState, bulkheadFairCallHandlingEnabled) with @Metadata annotations matching the model. Regenerated Resilience4jConfigurationPropertiesConfigurer.

2. int overloads deprecated — All four int overloads (waitDurationInOpenState(int), slowCallDurationThreshold(int), bulkheadMaxWaitDuration(int), timeoutDuration(int)) now carry @Deprecated(since = "4.22", forRemoval = true) with Javadoc pointing to the String overload.

3. Upgrade guide expanded — Added application.properties migration examples showing camel.resilience4j.waitDurationInOpenState = 6060s or 60000. Also documented the deprecated int Java API overloads.

4. Z5 wiring test addedResilienceNewOptionsTest with 3 tests verifying DSL options propagate to CircuitBreakerConfig/BulkheadConfig: slidingWindowSynchronizationStrategy(LOCK_FREE), maxWaitDurationInHalfOpenState(30s), bulkheadFairCallHandlingEnabled(false).

Full reactor build passes (mvn clean install -DskipTests).

Claude Code on behalf of davsclaus

@davsclaus
davsclaus requested a review from gnodet July 20, 2026 16:44
@github-actions

github-actions Bot commented Jul 20, 2026

Copy link
Copy Markdown
Contributor

🧪 CI tested the following changed modules:

  • catalog/camel-catalog
  • components/camel-resilience4j
  • core/camel-core-model
  • core/camel-java-io
  • core/camel-main
  • core/camel-xml-io
  • core/camel-yaml-io
  • docs
  • dsl/camel-yaml-dsl/camel-yaml-dsl-deserializers
  • dsl/camel-yaml-dsl/camel-yaml-dsl
  • parent

ℹ️ Dependent modules were not tested because the total number of affected modules exceeded the threshold (50). Use the test-dependents label to force testing all dependents.


🔬 Scalpel shadow comparison — Scalpel: 547 tested, 25 compile-only — current: 543 all tested

Maveniverse Scalpel detected 572 affected modules (current approach: 543).

⚠️ Modules only in Scalpel (29)
  • apache-camel
  • camel-allcomponents
  • camel-catalog
  • camel-catalog-console
  • camel-catalog-lucene
  • camel-catalog-maven
  • camel-catalog-suggest
  • camel-componentdsl
  • camel-csimple-maven-plugin
  • camel-endpointdsl
  • camel-endpointdsl-support
  • camel-itest
  • camel-jbang-core
  • camel-jbang-it
  • camel-jbang-main
  • camel-jbang-plugin-edit
  • camel-jbang-plugin-generate
  • camel-jbang-plugin-kubernetes
  • camel-jbang-plugin-test
  • camel-kamelet-main
  • camel-launcher
  • camel-report-maven-plugin
  • camel-route-parser
  • camel-yaml-dsl
  • camel-yaml-dsl-deserializers
  • camel-yaml-dsl-maven-plugin
  • coverage
  • docs
  • dummy-component

Changed properties: vavr-version

Skip-tests mode would test 547 modules (10 direct + 537 downstream), skip tests for 25 (generated code, meta-modules)

Modules Scalpel would test (547)
  • archetypes
  • camel-a2a
  • camel-activemq
  • camel-activemq6
  • camel-ai-parent
  • camel-ai-tool
  • camel-amqp
  • camel-api-component-maven-plugin
  • camel-arangodb
  • camel-archetype-api-component
  • camel-archetype-component
  • camel-archetype-dataformat
  • camel-archetype-java
  • camel-archetype-main
  • camel-archetype-spring
  • camel-as2
  • camel-as2-api
  • camel-as2-parent
  • camel-asn1
  • camel-asterisk
  • camel-atmosphere-websocket
  • camel-atom
  • camel-attachments
  • camel-avro
  • camel-avro-rpc
  • camel-avro-rpc-jetty
  • camel-avro-rpc-parent
  • camel-avro-rpc-spi
  • camel-aws-bedrock
  • camel-aws-cloudtrail
  • camel-aws-common
  • camel-aws-config
  • camel-aws-parameter-store
  • camel-aws-parent
  • camel-aws-secrets-manager
  • camel-aws-security-hub
  • camel-aws2-athena
  • camel-aws2-comprehend
  • camel-aws2-cw
  • camel-aws2-ddb
  • camel-aws2-ec2
  • camel-aws2-ecs
  • camel-aws2-eks
  • camel-aws2-eventbridge
  • camel-aws2-iam
  • camel-aws2-kinesis
  • camel-aws2-kms
  • camel-aws2-lambda
  • camel-aws2-mq
  • camel-aws2-msk
  • camel-aws2-polly
  • camel-aws2-redshift
  • camel-aws2-rekognition
  • camel-aws2-s3
  • camel-aws2-s3-vectors
  • camel-aws2-ses
  • camel-aws2-sns
  • camel-aws2-sqs
  • camel-aws2-step-functions
  • camel-aws2-sts
  • camel-aws2-textract
  • camel-aws2-timestream
  • camel-aws2-transcribe
  • camel-aws2-translate
  • camel-azure-common
  • camel-azure-cosmosdb
  • camel-azure-eventgrid
  • camel-azure-eventhubs
  • camel-azure-files
  • camel-azure-functions
  • camel-azure-key-vault
  • camel-azure-parent
  • camel-azure-schema-registry
  • camel-azure-servicebus
  • camel-azure-storage-blob
  • camel-azure-storage-datalake
  • camel-azure-storage-queue
  • camel-barcode
  • camel-base64
  • camel-bean
  • camel-bean-validator
  • camel-beanio
  • camel-bindy
  • camel-bonita
  • camel-box
  • camel-box-api
  • camel-box-parent
  • camel-braintree
  • camel-browse
  • camel-caffeine
  • camel-camunda
  • camel-cassandraql
  • camel-catalog
  • camel-cbor
  • camel-chatscript
  • camel-chunk
  • camel-cli-connector
  • camel-cli-debug
  • camel-clickup
  • camel-cloudevents
  • camel-cluster
  • camel-cm-sms
  • camel-coap
  • camel-cometd
  • camel-console
  • camel-consul
  • camel-controlbus
  • camel-core
  • camel-core-all
  • camel-core-engine
  • camel-core-languages
  • camel-core-model
  • camel-core-reifier
  • camel-core-xml
  • camel-couchbase
  • camel-couchdb
  • camel-cron
  • camel-crypto
  • camel-crypto-pgp
  • camel-csimple-joor
  • camel-csv
  • camel-cxf-common
  • camel-cxf-parent
  • camel-cxf-rest
  • camel-cxf-soap
  • camel-cxf-spring-common
  • camel-cxf-spring-rest
  • camel-cxf-spring-soap
  • camel-cxf-spring-transport
  • camel-cxf-transport
  • camel-cyberark-vault
  • camel-dapr
  • camel-dataformat
  • camel-dataset
  • camel-datasonnet
  • camel-debezium-common
  • camel-debezium-common-parent
  • camel-debezium-db2
  • camel-debezium-maven-plugin
  • camel-debezium-mongodb
  • camel-debezium-mysql
  • camel-debezium-oracle
  • camel-debezium-parent
  • camel-debezium-postgres
  • camel-debezium-sqlserver
  • camel-debug
  • camel-dfdl
  • camel-dhis2
  • camel-dhis2-api
  • camel-dhis2-parent
  • camel-diagram
  • camel-digitalocean
  • camel-direct
  • camel-disruptor
  • camel-djl
  • camel-dns
  • camel-docker
  • camel-docling
  • camel-drill
  • camel-dropbox
  • camel-dsl-modeline
  • camel-dsl-support
  • camel-dynamic-router
  • camel-ehcache
  • camel-elasticsearch
  • camel-elasticsearch-rest-client
  • camel-event
  • camel-exec
  • camel-fastjson
  • camel-fhir
  • camel-fhir-api
  • camel-fhir-parent
  • camel-file
  • camel-file-watch
  • camel-flatpack
  • camel-flink
  • camel-flowable
  • camel-fop
  • camel-fory
  • camel-freemarker
  • camel-ftp
  • camel-ftp-common
  • camel-geocoder
  • camel-git
  • camel-github2
  • camel-google-bigquery
  • camel-google-calendar
  • camel-google-common
  • camel-google-drive
  • camel-google-firestore
  • camel-google-functions
  • camel-google-mail
  • camel-google-parent
  • camel-google-pubsub
  • camel-google-secret-manager
  • camel-google-sheets
  • camel-google-speech-to-text
  • camel-google-storage
  • camel-google-text-to-speech
  • camel-google-vertexai
  • camel-google-vision
  • camel-graphql
  • camel-grok
  • camel-groovy
  • camel-grpc
  • camel-gson
  • camel-hashicorp-vault
  • camel-hazelcast
  • camel-headersmap
  • camel-health
  • camel-hl7
  • camel-http
  • camel-http-base
  • camel-http-common
  • camel-huawei-parent
  • camel-huaweicloud-common
  • camel-huaweicloud-dms
  • camel-huaweicloud-frs
  • camel-huaweicloud-functiongraph
  • camel-huaweicloud-iam
  • camel-huaweicloud-imagerecognition
  • camel-huaweicloud-obs
  • camel-huaweicloud-smn
  • camel-huggingface
  • camel-ibm-cos
  • camel-ibm-parent
  • camel-ibm-secrets-manager
  • camel-ibm-watson-discovery
  • camel-ibm-watson-language
  • camel-ibm-watson-speech-to-text
  • camel-ibm-watson-text-to-speech
  • camel-ibm-watsonx-ai
  • camel-ibm-watsonx-data
  • camel-ical
  • camel-iec60870
  • camel-iggy
  • camel-ignite
  • camel-infinispan
  • camel-infinispan-common
  • camel-infinispan-embedded
  • camel-infinispan-parent
  • camel-influxdb
  • camel-influxdb2
  • camel-irc
  • camel-ironmq
  • camel-iso8583
  • camel-jackson
  • camel-jackson-avro
  • camel-jackson-protobuf
  • camel-jackson3
  • camel-jackson3-avro
  • camel-jackson3-protobuf
  • camel-jackson3xml
  • camel-jacksonxml
  • camel-jandex
  • camel-jasypt
  • camel-java-io
  • camel-java-joor-dsl
  • camel-javascript
  • camel-jaxb
  • camel-jbang-console
  • camel-jbang-mcp
  • camel-jbang-plugin-mcp
  • camel-jbang-plugin-route-parser
  • camel-jbang-plugin-tui
  • camel-jbang-plugin-validate
  • camel-jcache
  • camel-jcr
  • camel-jdbc
  • camel-jetty
  • camel-jetty-common
  • camel-jfr
  • camel-jgroups
  • camel-jgroups-raft
  • camel-jira
  • camel-jms
  • camel-jmx
  • camel-jolt
  • camel-jooq
  • camel-joor
  • camel-jpa
  • camel-jq
  • camel-jsch
  • camel-jslt
  • camel-json-patch
  • camel-json-validator
  • camel-jsonapi
  • camel-jsonata
  • camel-jsonb
  • camel-jsonpath
  • camel-jsoup
  • camel-jt400
  • camel-jta
  • camel-jte
  • camel-kafka
  • camel-kamelet
  • camel-kamelet-main-support
  • camel-keycloak
  • camel-knative
  • camel-knative-api
  • camel-knative-http
  • camel-knative-parent
  • camel-kserve
  • camel-kubernetes
  • camel-kudu
  • camel-langchain4j-agent
  • camel-langchain4j-agent-api
  • camel-langchain4j-chat
  • camel-langchain4j-core
  • camel-langchain4j-embeddings
  • camel-langchain4j-embeddingstore
  • camel-langchain4j-embeddingstore-api
  • camel-langchain4j-tokenizer
  • camel-langchain4j-tools
  • camel-langchain4j-web-search
  • camel-language
  • camel-launcher-container
  • camel-ldap
  • camel-ldif
  • camel-leveldb
  • camel-log
  • camel-lra
  • camel-lucene
  • camel-lumberjack
  • camel-lzf
  • camel-mail
  • camel-mail-microsoft-oauth
  • camel-main
  • camel-management
  • camel-mapstruct
  • camel-master
  • camel-maven-plugin
  • camel-mdc
  • camel-metrics
  • camel-micrometer
  • camel-micrometer-observability
  • camel-micrometer-prometheus
  • camel-microprofile-config
  • camel-microprofile-fault-tolerance
  • camel-microprofile-health
  • camel-microprofile-parent
  • camel-milo
  • camel-milvus
  • camel-mina
  • camel-mina-sftp
  • camel-minio
  • camel-mllp
  • camel-mock
  • camel-mongodb
  • camel-mongodb-gridfs
  • camel-mustache
  • camel-mvel
  • camel-mybatis
  • camel-nats
  • camel-neo4j
  • camel-netty
  • camel-netty-http
  • camel-oaipmh
  • camel-oauth
  • camel-observability-services
  • camel-observation
  • camel-ocsf
  • camel-ognl
  • camel-olingo2
  • camel-olingo2-api
  • camel-olingo2-parent
  • camel-olingo4
  • camel-olingo4-api
  • camel-olingo4-parent
  • camel-once
  • camel-openai
  • camel-openapi-java
  • camel-openapi-rest-dsl-generator
  • camel-openapi-validator
  • camel-opensearch
  • camel-openstack
  • camel-opentelemetry
  • camel-opentelemetry-metrics
  • camel-opentelemetry2
  • camel-optaplanner
  • camel-paho
  • camel-paho-mqtt5
  • camel-parquet-avro
  • camel-pdf
  • camel-pg-replication-slot
  • camel-pgevent
  • camel-pgvector
  • camel-pinecone
  • camel-platform-http
  • camel-platform-http-jolokia
  • camel-platform-http-main
  • camel-platform-http-vertx
  • camel-plc4x
  • camel-pqc
  • camel-printer
  • camel-protobuf
  • camel-pubnub
  • camel-pulsar
  • camel-python
  • camel-qdrant
  • camel-quartz
  • camel-quickfix
  • camel-reactive-executor-tomcat
  • camel-reactive-executor-vertx
  • camel-reactive-streams
  • camel-reactor
  • camel-redis
  • camel-ref
  • camel-resilience4j
  • camel-resilience4j-micrometer
  • camel-resourceresolver-github
  • camel-rest
  • camel-rest-openapi
  • camel-restdsl-openapi-plugin
  • camel-robotframework
  • camel-rocketmq
  • camel-rss
  • camel-rxjava
  • camel-saga
  • camel-salesforce
  • camel-salesforce-codegen
  • camel-salesforce-maven-plugin
  • camel-salesforce-parent
  • camel-sap-netweaver
  • camel-saxon
  • camel-scheduler
  • camel-schematron
  • camel-seda
  • camel-servicenow
  • camel-servicenow-maven-plugin
  • camel-servicenow-parent
  • camel-servlet
  • camel-shell
  • camel-shiro
  • camel-sjms
  • camel-sjms2
  • camel-slack
  • camel-smb
  • camel-smooks
  • camel-smpp
  • camel-snakeyaml
  • camel-snmp
  • camel-soap
  • camel-solr
  • camel-splunk
  • camel-splunk-hec
  • camel-spring
  • camel-spring-ai-chat
  • camel-spring-ai-embeddings
  • camel-spring-ai-image
  • camel-spring-ai-parent
  • camel-spring-ai-tools
  • camel-spring-ai-vector-store
  • camel-spring-batch
  • camel-spring-cloud-config
  • camel-spring-jdbc
  • camel-spring-ldap
  • camel-spring-main
  • camel-spring-parent
  • camel-spring-rabbitmq
  • camel-spring-redis
  • camel-spring-security
  • camel-spring-ws
  • camel-spring-xml
  • camel-sql
  • camel-ssh
  • camel-stax
  • camel-stitch
  • camel-stream
  • camel-streamcaching-test
  • camel-stringtemplate
  • camel-stripe
  • camel-stub
  • camel-swift
  • camel-syslog
  • camel-tahu
  • camel-tarfile
  • camel-telegram
  • camel-telemetry
  • camel-telemetry-dev
  • camel-tensorflow-serving
  • camel-test-infra-all
  • camel-test-infra-artemis
  • camel-test-infra-core
  • camel-test-infra-smb
  • camel-test-junit5
  • camel-test-junit6
  • camel-test-main-junit5
  • camel-test-main-junit6
  • camel-test-parent
  • camel-test-spring-junit5
  • camel-test-spring-junit6
  • camel-threadpoolfactory-vertx
  • camel-thrift
  • camel-thymeleaf
  • camel-tika
  • camel-timer
  • camel-tracing
  • camel-twilio
  • camel-twitter
  • camel-undertow
  • camel-undertow-spring-security
  • camel-univocity-parsers
  • camel-validator
  • camel-velocity
  • camel-vertx
  • camel-vertx-common
  • camel-vertx-http
  • camel-vertx-parent
  • camel-vertx-websocket
  • camel-wal
  • camel-wasm
  • camel-weather
  • camel-weaviate
  • camel-web3j
  • camel-webhook
  • camel-whatsapp
  • camel-wordpress
  • camel-workday
  • camel-xchange
  • camel-xj
  • camel-xml-io
  • camel-xml-io-dsl
  • camel-xml-jaxb
  • camel-xml-jaxb-dsl
  • camel-xml-jaxb-dsl-test-definition
  • camel-xml-jaxb-dsl-test-spring
  • camel-xml-jaxp
  • camel-xmlsecurity
  • camel-xmpp
  • camel-xpath
  • camel-xslt
  • camel-xslt-saxon
  • camel-yaml-dsl
  • camel-yaml-dsl-common
  • camel-yaml-dsl-deserializers
  • camel-yaml-dsl-validator
  • camel-yaml-dsl-validator-maven-plugin
  • camel-yaml-io
  • camel-zeebe
  • camel-zendesk
  • camel-zip-deflater
  • camel-zipfile
  • camel-zookeeper
  • camel-zookeeper-master
  • components
  • docs
Modules with tests skipped (25)
  • apache-camel
  • camel-allcomponents
  • camel-catalog-console
  • camel-catalog-lucene
  • camel-catalog-maven
  • camel-catalog-suggest
  • camel-componentdsl
  • camel-csimple-maven-plugin
  • camel-endpointdsl
  • camel-endpointdsl-support
  • camel-itest
  • camel-jbang-core
  • camel-jbang-it
  • camel-jbang-main
  • camel-jbang-plugin-edit
  • camel-jbang-plugin-generate
  • camel-jbang-plugin-kubernetes
  • camel-jbang-plugin-test
  • camel-kamelet-main
  • camel-launcher
  • camel-report-maven-plugin
  • camel-route-parser
  • camel-yaml-dsl-maven-plugin
  • coverage
  • dummy-component

ℹ️ Shadow mode — Scalpel observes but does not affect test execution. Learn more

Build reactor — dependencies compiled but only changed modules were tested (572 modules)
  • Camel :: AI :: A2A
  • Camel :: AI :: ChatScript
  • Camel :: AI :: Deep Java Library
  • Camel :: AI :: Docling
  • Camel :: AI :: Hugging Face
  • Camel :: AI :: KServe
  • Camel :: AI :: LangChain4j :: Agent
  • Camel :: AI :: LangChain4j :: Agent :: API
  • Camel :: AI :: LangChain4j :: Chat
  • Camel :: AI :: LangChain4j :: Core
  • Camel :: AI :: LangChain4j :: Embedding
  • Camel :: AI :: LangChain4j :: Embedding Store :: API
  • Camel :: AI :: LangChain4j :: EmbeddingStore
  • Camel :: AI :: LangChain4j :: Tokenizer
  • Camel :: AI :: LangChain4j :: Tools
  • Camel :: AI :: LangChain4j :: Web Search
  • Camel :: AI :: Milvus
  • Camel :: AI :: Neo4j
  • Camel :: AI :: OpenAI
  • Camel :: AI :: PGVector
  • Camel :: AI :: Parent
  • Camel :: AI :: Pinecone
  • Camel :: AI :: Qdrant
  • Camel :: AI :: TensorFlow Serving
  • Camel :: AI :: Tool
  • Camel :: AI :: Weaviate
  • Camel :: AMQP
  • Camel :: AS2 :: API
  • Camel :: AS2 :: Component
  • Camel :: AS2 :: Parent
  • Camel :: ASN.1
  • Camel :: AWS :: Common
  • Camel :: AWS :: Parent
  • Camel :: AWS CloudTrail
  • Camel :: AWS Config
  • Camel :: AWS Redshift Data
  • Camel :: AWS Rekognition
  • Camel :: AWS Security Hub
  • Camel :: AWS Step Functions
  • Camel :: AWS Timestream
  • Camel :: AWS2 :: Transcribe
  • Camel :: AWS2 Athena
  • Camel :: AWS2 Bedrock
  • Camel :: AWS2 CW
  • Camel :: AWS2 Comprehend
  • Camel :: AWS2 DDB
  • Camel :: AWS2 EC2
  • Camel :: AWS2 ECS
  • Camel :: AWS2 EKS
  • Camel :: AWS2 Eventbridge
  • Camel :: AWS2 IAM
  • Camel :: AWS2 KMS
  • Camel :: AWS2 Kinesis
  • Camel :: AWS2 Lambda
  • Camel :: AWS2 MQ
  • Camel :: AWS2 MSK
  • Camel :: AWS2 Parameter Store
  • Camel :: AWS2 Polly
  • Camel :: AWS2 S3
  • Camel :: AWS2 S3 Vectors
  • Camel :: AWS2 SES
  • Camel :: AWS2 SNS
  • Camel :: AWS2 SQS
  • Camel :: AWS2 STS
  • Camel :: AWS2 Secrets Manager
  • Camel :: AWS2 Textract
  • Camel :: AWS2 Translate
  • Camel :: ActiveMQ 5.x
  • Camel :: ActiveMQ 6.x
  • Camel :: All Components Sync point
  • Camel :: All Core Sync point
  • Camel :: ArangoDB
  • Camel :: Archetypes
  • Camel :: Archetypes :: API Component
  • Camel :: Archetypes :: Component
  • Camel :: Archetypes :: Data Format
  • Camel :: Archetypes :: Java Router
  • Camel :: Archetypes :: Main
  • Camel :: Archetypes :: Spring XML Based Router (deprecated)
  • Camel :: Assembly
  • Camel :: Asterisk
  • Camel :: Atmosphere WebSocket Servlet
  • Camel :: Atom
  • Camel :: Attachments
  • Camel :: Avro
  • Camel :: Avro RPC
  • Camel :: Avro RPC :: Jetty
  • Camel :: Avro RPC :: Parent
  • Camel :: Avro RPC :: Spi
  • Camel :: Azure :: Common
  • Camel :: Azure :: CosmosDB
  • Camel :: Azure :: Event Grid
  • Camel :: Azure :: Event Hubs
  • Camel :: Azure :: Files
  • Camel :: Azure :: Functions
  • Camel :: Azure :: Key Vault
  • Camel :: Azure :: Parent
  • Camel :: Azure :: Schema Registry
  • Camel :: Azure :: ServiceBus
  • Camel :: Azure :: Storage Blob
  • Camel :: Azure :: Storage Datalake
  • Camel :: Azure :: Storage Queue
  • Camel :: Barcode
  • Camel :: Base64
  • Camel :: Bean
  • Camel :: Bean validator
  • Camel :: BeanIO
  • Camel :: Bindy
  • Camel :: Bonita
  • Camel :: Box :: API
  • Camel :: Box :: Component
  • Camel :: Box :: Parent
  • Camel :: Braintree
  • Camel :: Browse
  • Camel :: CBOR
  • Camel :: CM SMS
  • Camel :: CSV
  • Camel :: CXF :: Common
  • Camel :: CXF :: Common :: Spring
  • Camel :: CXF :: Parent
  • Camel :: CXF :: REST
  • Camel :: CXF :: REST :: Spring
  • Camel :: CXF :: SOAP
  • Camel :: CXF :: SOAP :: Spring
  • Camel :: CXF :: Transport
  • Camel :: CXF :: Transport :: Spring
  • Camel :: Caffeine
  • Camel :: Camunda
  • Camel :: Cassandra CQL
  • Camel :: Catalog :: CSimple Maven Plugin (deprecated)
  • Camel :: Catalog :: Camel Catalog
  • Camel :: Catalog :: Camel Report Maven Plugin
  • Camel :: Catalog :: Camel Route Parser
  • Camel :: Catalog :: Console
  • Camel :: Catalog :: Dummy Component
  • Camel :: Catalog :: Lucene (deprecated)
  • Camel :: Catalog :: Maven
  • Camel :: Catalog :: Suggest
  • Camel :: Chunk
  • Camel :: ClickUp
  • Camel :: CloudEvents
  • Camel :: Cluster
  • Camel :: CoAP
  • Camel :: Cometd
  • Camel :: Common Telemetry
  • Camel :: Common Tracing (deprecated)
  • Camel :: Component DSL
  • Camel :: Components
  • Camel :: Console
  • Camel :: Consul
  • Camel :: Controlbus
  • Camel :: Core
  • Camel :: Core Engine
  • Camel :: Core Languages
  • Camel :: Core Model
  • Camel :: Core Reifier
  • Camel :: Core XML
  • Camel :: CouchDB
  • Camel :: Couchbase
  • Camel :: Coverage
  • Camel :: Cron
  • Camel :: Crypto
  • Camel :: Crypto PGP
  • Camel :: CyberArk Vault
  • Camel :: DFDL
  • Camel :: DHIS2
  • Camel :: DHIS2 :: Parent
  • Camel :: DHIS2 API
  • Camel :: DNS
  • Camel :: DSL :: CLI Connector
  • Camel :: DSL :: CLI Debug
  • Camel :: DSL :: Modeline
  • Camel :: DSL :: Support
  • Camel :: Dapr
  • Camel :: DataSet
  • Camel :: DataSonnet
  • Camel :: Dataformat
  • Camel :: Debezium :: Common
  • Camel :: Debezium :: Common :: Parent
  • Camel :: Debezium :: DB2
  • Camel :: Debezium :: Maven Plugin
  • Camel :: Debezium :: MongoDB
  • Camel :: Debezium :: MySQL
  • Camel :: Debezium :: Oracle
  • Camel :: Debezium :: Parent
  • Camel :: Debezium :: PostgreSQL
  • Camel :: Debezium :: SQL Server
  • Camel :: Debugging
  • Camel :: Diagram
  • Camel :: DigitalOcean (deprecated)
  • Camel :: Direct
  • Camel :: Disruptor
  • Camel :: Docker
  • Camel :: Docs
  • Camel :: Drill
  • Camel :: Dropbox
  • Camel :: Dynamic Router
  • Camel :: Ehcache
  • Camel :: ElasticSearch Rest Client
  • Camel :: Elasticsearch Java API Client
  • Camel :: Endpoint DSL
  • Camel :: Endpoint DSL :: Support
  • Camel :: Event
  • Camel :: Exec
  • Camel :: FHIR
  • Camel :: FHIR :: API
  • Camel :: FHIR :: Parent
  • Camel :: FOP
  • Camel :: FTP
  • Camel :: FTP Common
  • Camel :: Fastjson
  • Camel :: File
  • Camel :: File Watch
  • Camel :: FlatPack
  • Camel :: Flink
  • Camel :: Flowable
  • Camel :: Fory
  • Camel :: Freemarker
  • Camel :: Geocoder
  • Camel :: Git
  • Camel :: GitHub2
  • Camel :: Google :: BigQuery
  • Camel :: Google :: Calendar
  • Camel :: Google :: Common
  • Camel :: Google :: Drive
  • Camel :: Google :: Firestore
  • Camel :: Google :: Functions
  • Camel :: Google :: Mail
  • Camel :: Google :: Parent
  • Camel :: Google :: PubSub
  • Camel :: Google :: Secret Manager
  • Camel :: Google :: Sheets
  • Camel :: Google :: Speech To Text
  • Camel :: Google :: Storage
  • Camel :: Google :: Text To Speech
  • Camel :: Google :: Vertex AI
  • Camel :: Google :: Vision
  • Camel :: GraphQL
  • Camel :: Grok
  • Camel :: Groovy
  • Camel :: Gson
  • Camel :: HL7
  • Camel :: HTTP
  • Camel :: HTTP :: Base
  • Camel :: HTTP :: Common
  • Camel :: HashiCorp :: Key Vault
  • Camel :: HazelCast
  • Camel :: Headers Map (deprecated)
  • Camel :: Health
  • Camel :: Huawei Cloud :: Common
  • Camel :: Huawei Cloud :: DMS
  • Camel :: Huawei Cloud :: FaceRecognition
  • Camel :: Huawei Cloud :: FunctionGraph
  • Camel :: Huawei Cloud :: IAM
  • Camel :: Huawei Cloud :: ImageRecognition
  • Camel :: Huawei Cloud :: OBS
  • Camel :: Huawei Cloud :: Parent
  • Camel :: Huawei Cloud :: SimpleNotification
  • Camel :: IBM :: Cloud Object Storage
  • Camel :: IBM :: Parent
  • Camel :: IBM :: Secrets Manager
  • Camel :: IBM :: Watson Discovery
  • Camel :: IBM :: Watson Language
  • Camel :: IBM :: Watson Speech to Text
  • Camel :: IBM :: Watson Text to Speech
  • Camel :: IBM :: watsonx.ai
  • Camel :: IBM :: watsonx.data
  • Camel :: IEC 60870 (deprecated)
  • Camel :: IRC (deprecated)
  • Camel :: ISO-8583
  • Camel :: Iggy
  • Camel :: Ignite
  • Camel :: Infinispan :: Common
  • Camel :: Infinispan :: Embedded
  • Camel :: Infinispan :: Parent
  • Camel :: Infinispan :: Remote
  • Camel :: InfluxDB
  • Camel :: InfluxDB2
  • Camel :: Integration Tests
  • Camel :: Integration Tests :: Stream Caching Tests
  • Camel :: IronMQ
  • Camel :: JAXB
  • Camel :: JBang :: Console
  • Camel :: JBang :: Core
  • Camel :: JBang :: Integration tests
  • Camel :: JBang :: MCP
  • Camel :: JBang :: Main
  • Camel :: JBang :: Plugin :: Edit
  • Camel :: JBang :: Plugin :: Generate
  • Camel :: JBang :: Plugin :: Kubernetes
  • Camel :: JBang :: Plugin :: MCP
  • Camel :: JBang :: Plugin :: Route Parser
  • Camel :: JBang :: Plugin :: TUI
  • Camel :: JBang :: Plugin :: Testing
  • Camel :: JBang :: Plugin :: Validate
  • Camel :: JCR
  • Camel :: JCache
  • Camel :: JDBC
  • Camel :: JGroups
  • Camel :: JGroups Raft
  • Camel :: JIRA
  • Camel :: JMS
  • Camel :: JMX
  • Camel :: JOOQ
  • Camel :: JPA
  • Camel :: JQ
  • Camel :: JSON validator
  • Camel :: JSON-B
  • Camel :: JSONATA
  • Camel :: JSon Path
  • Camel :: JSonApi
  • Camel :: JSoup
  • Camel :: JTA
  • Camel :: Jackson
  • Camel :: Jackson 3
  • Camel :: Jackson 3 Avro
  • Camel :: Jackson 3 Protobuf
  • Camel :: Jackson 3 XML
  • Camel :: Jackson Avro
  • Camel :: Jackson Protobuf
  • Camel :: Jackson XML
  • Camel :: Jandex
  • Camel :: Jasypt
  • Camel :: Java DSL IO
  • Camel :: Java DSL with jOOR
  • Camel :: Java Flight Recorder
  • Camel :: Java Template Engine
  • Camel :: Java Toolbox for IBM i
  • Camel :: JavaScript
  • Camel :: Jetty
  • Camel :: Jetty :: Common
  • Camel :: Jolt
  • Camel :: Jsch
  • Camel :: Jslt
  • Camel :: JsonPatch (deprecated)
  • Camel :: Kafka
  • Camel :: Kamelet
  • Camel :: Kamelet Main
  • Camel :: Kamelet Main :: Support
  • Camel :: Keycloak
  • Camel :: Knative :: Parent
  • Camel :: Knative API
  • Camel :: Knative Component
  • Camel :: Knative HTTP
  • Camel :: Kubernetes
  • Camel :: Kudu
  • Camel :: LDAP
  • Camel :: LDIF
  • Camel :: LZF
  • Camel :: Language
  • Camel :: Launcher
  • Camel :: Launcher :: Container
  • Camel :: LevelDB (deprecated)
  • Camel :: Log
  • Camel :: Long-Running-Action
  • Camel :: Lucene
  • Camel :: Lumberjack
  • Camel :: MDC
  • Camel :: MINA
  • Camel :: MINA SFTP
  • Camel :: MLLP
  • Camel :: MVEL
  • Camel :: Mail
  • Camel :: Mail :: Microsoft OAuth
  • Camel :: Main
  • Camel :: Management
  • Camel :: MapStruct
  • Camel :: Master
  • Camel :: Maven Plugins :: Camel API Component Plugin
  • Camel :: Maven Plugins :: Camel Maven Plugin
  • Camel :: Maven Plugins :: OpenApi REST DSL Generator
  • Camel :: Metrics
  • Camel :: MicroProfile :: Config
  • Camel :: MicroProfile :: Fault Tolerance
  • Camel :: MicroProfile :: Health
  • Camel :: MicroProfile :: Parent
  • Camel :: Micrometer
  • Camel :: Micrometer :: Observability 2
  • Camel :: Micrometer :: Observation (deprecated)
  • Camel :: Micrometer :: Prometheus
  • Camel :: Milo
  • Camel :: MinIO
  • Camel :: Mock
  • Camel :: MongoDB
  • Camel :: MongoDB GridFS
  • Camel :: Mustache
  • Camel :: MyBatis
  • Camel :: Nats
  • Camel :: Netty
  • Camel :: Netty HTTP
  • Camel :: OAIPMH
  • Camel :: OAuth
  • Camel :: OCSF
  • Camel :: OGNL (deprecated)
  • Camel :: Observability Services
  • Camel :: Olingo2 (Deprecated) :: API
  • Camel :: Olingo2 (Deprecated) :: Component
  • Camel :: Olingo2 (Deprecated) :: Parent
  • Camel :: Olingo4 (Deprecated) :: API
  • Camel :: Olingo4 (Deprecated) :: Component
  • Camel :: Olingo4 (Deprecated) :: Parent
  • Camel :: Once
  • Camel :: OpenAPI :: Validator
  • Camel :: OpenApi Java
  • Camel :: OpenSearch Java API Client
  • Camel :: OpenStack
  • Camel :: OpenTelemetry (deprecated)
  • Camel :: Opentelemetry 2
  • Camel :: Opentelemetry Metrics
  • Camel :: OptaPlanner
  • Camel :: PDF
  • Camel :: PLC4X
  • Camel :: PQC
  • Camel :: Paho (deprecated)
  • Camel :: Paho MQTT 5
  • Camel :: Parent
  • Camel :: Parquet Avro
  • Camel :: PgEvent
  • Camel :: PgReplicationSlot
  • Camel :: Platform HTTP
  • Camel :: Platform HTTP :: Jolokia
  • Camel :: Platform HTTP :: Main
  • Camel :: Platform HTTP :: Vert.x
  • Camel :: Printer
  • Camel :: Protobuf
  • Camel :: PubNub
  • Camel :: Pulsar
  • Camel :: Python
  • Camel :: Quartz
  • Camel :: QuickFIX/J
  • Camel :: REST
  • Camel :: REST OpenApi
  • Camel :: RSS
  • Camel :: Reactive Executor :: Tomcat
  • Camel :: Reactive Executor :: Vert.x (deprecated)
  • Camel :: Reactive Streams
  • Camel :: Reactor
  • Camel :: Redis
  • Camel :: Ref
  • Camel :: Resilience4j
  • Camel :: Resilience4j :: Micrometer
  • Camel :: ResourceResolver GitHub
  • Camel :: RobotFramework
  • Camel :: RocketMQ
  • Camel :: RxJava
  • Camel :: SAP NetWeaver
  • Camel :: SMB
  • Camel :: SMPP
  • Camel :: SNMP
  • Camel :: SOAP
  • Camel :: SQL
  • Camel :: SSH
  • Camel :: SWIFT
  • Camel :: Saga
  • Camel :: Salesforce
  • Camel :: Salesforce :: CodeGen
  • Camel :: Salesforce :: Maven Plugin
  • Camel :: Salesforce :: Parent
  • Camel :: Saxon
  • Camel :: Scheduler
  • Camel :: Schematron
  • Camel :: Seda
  • Camel :: ServiceNow :: Component
  • Camel :: ServiceNow :: Maven Plugin
  • Camel :: ServiceNow :: Parent
  • Camel :: Servlet
  • Camel :: Shell
  • Camel :: Shiro
  • Camel :: Simple JMS
  • Camel :: Simple JMS2
  • Camel :: Slack
  • Camel :: Smooks :: Parent
  • Camel :: SnakeYAML
  • Camel :: Solr
  • Camel :: Splunk (deprecated)
  • Camel :: Splunk HEC
  • Camel :: Spring
  • Camel :: Spring :: Parent
  • Camel :: Spring AI :: Chat
  • Camel :: Spring AI :: Embeddings
  • Camel :: Spring AI :: Image
  • Camel :: Spring AI :: Parent
  • Camel :: Spring AI :: Tools
  • Camel :: Spring AI :: Vector Store
  • Camel :: Spring Batch
  • Camel :: Spring Cloud Config
  • Camel :: Spring JDBC
  • Camel :: Spring LDAP
  • Camel :: Spring Main
  • Camel :: Spring RabbitMQ
  • Camel :: Spring Redis
  • Camel :: Spring Security
  • Camel :: Spring Web Services
  • Camel :: Spring XML
  • Camel :: StAX
  • Camel :: Stitch
  • Camel :: Stream
  • Camel :: StringTemplate
  • Camel :: Stripe
  • Camel :: Stub
  • Camel :: Syslog
  • Camel :: Tahu
  • Camel :: Tar File
  • Camel :: Telegram
  • Camel :: Telemetry :: Dev
  • Camel :: Test :: JUnit5
  • Camel :: Test :: JUnit6
  • Camel :: Test :: Main :: JUnit5
  • Camel :: Test :: Main :: JUnit6
  • Camel :: Test :: Parent
  • Camel :: Test :: Spring :: JUnit5
  • Camel :: Test Infra :: All test services
  • Camel :: Test Infra :: Artemis
  • Camel :: Test Infra :: Core
  • Camel :: Test Infra :: Server Message Block
  • Camel :: Thread Pool Factory :: Vert.x (deprecated)
  • Camel :: Thrift
  • Camel :: Thymeleaf
  • Camel :: Tika
  • Camel :: Timer
  • Camel :: Tooling :: OpenApi REST DSL Generator
  • Camel :: Twilio
  • Camel :: Twitter
  • Camel :: Undertow
  • Camel :: Undertow Spring Security
  • Camel :: UniVocity Parsers
  • Camel :: Validator
  • Camel :: Velocity
  • Camel :: Vert.x :: Common
  • Camel :: Vert.x :: HTTP
  • Camel :: Vert.x :: Parent
  • Camel :: Vert.x :: WebSocket
  • Camel :: Vertx
  • Camel :: WAL
  • Camel :: Wasm
  • Camel :: Weather
  • Camel :: Web3j
  • Camel :: Webhook
  • Camel :: Whatsapp
  • Camel :: Wordpress
  • Camel :: Workday
  • Camel :: XChange
  • Camel :: XJ
  • Camel :: XML DSL Jaxb :: Test :: Definition
  • Camel :: XML DSL Jaxb :: Test :: Spring
  • Camel :: XML DSL with camel-xml-io
  • Camel :: XML DSL with camel-xml-jaxb
  • Camel :: XML IO
  • Camel :: XML JAXB
  • Camel :: XML JAXP
  • Camel :: XML Security
  • Camel :: XMPP
  • Camel :: XPath
  • Camel :: XSLT
  • Camel :: XSLT Saxon
  • Camel :: YAML DSL
  • Camel :: YAML DSL :: Common
  • Camel :: YAML DSL :: Deserializers
  • Camel :: YAML DSL :: Maven Plugins
  • Camel :: YAML DSL :: Validator
  • Camel :: YAML DSL :: Validator Maven Plugin
  • Camel :: YAML IO
  • Camel :: Zeebe (deprecated)
  • Camel :: Zendesk
  • Camel :: Zip Deflater
  • Camel :: Zip File
  • Camel :: Zookeeper
  • Camel :: Zookeeper Master
  • Camel :: csimple jOOR (deprecated)
  • Camel :: gRPC
  • Camel :: iCal
  • Camel :: jOOR

⚙️ View full build and test results

@davsclaus
davsclaus force-pushed the fix/CAMEL-24137-circuit-breaker-modernize branch from 4a07386 to ca760c1 Compare July 20, 2026 17:39
@davsclaus

Copy link
Copy Markdown
Contributor Author

Need to be rebased on #24960

@davsclaus
davsclaus force-pushed the fix/CAMEL-24137-circuit-breaker-modernize branch from ca760c1 to 6d8c71e Compare July 20, 2026 20:41

@gnodet gnodet left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Follow-up review: commit 6d8c71e — address review feedback

The follow-up commit cleanly addresses remaining gaps from the initial circuit breaker modernization:

Changes reviewed

  1. ConfigurationProperties alignmentwaitDurationInOpenState, slowCallDurationThreshold, bulkheadMaxWaitDuration, timeoutDuration migrated from Integer to String in Resilience4jConfigurationProperties, aligning with the ConfigurationDefinition changes from the first commit. This means camel.resilience4j.* application properties now accept Camel duration expressions (e.g. 60s, 1m).

  2. Backward compatibility — 4 int-accepting overloads properly deprecated with @Deprecated(since = "4.22", forRemoval = true) and @link to the String replacements. Good migration path.

  3. New options wired to ConfigurationPropertiesslidingWindowSynchronizationStrategy, maxWaitDurationInHalfOpenState, bulkheadFairCallHandlingEnabled all added with correct @Metadata annotations (defaults, enums).

  4. ResilienceNewOptionsTest — Good wiring test covering all 3 new options: verifies LOCK_FREE strategy, "30s" → 30000ms parsing, and bulkhead fair call handling flag. Test follows Camel conventions (CamelTestSupport, Navigate traversal for processor discovery).

  5. Documentationmain.adoc table updated with new types/options, upgrade guide formatting improved.

LGTM ✅

Reviewed with Claude Code on behalf of gnodet. This review was generated by an AI agent and may contain inaccuracies; please verify all suggestions before applying.

davsclaus and others added 2 commits July 21, 2026 07:29
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Signed-off-by: Claus Ibsen <claus.ibsen@gmail.com>
…eprecate int overloads, upgrade guide, wiring test

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Signed-off-by: Claus Ibsen <claus.ibsen@gmail.com>
@davsclaus
davsclaus force-pushed the fix/CAMEL-24137-circuit-breaker-modernize branch from 6d8c71e to d62ca4f Compare July 21, 2026 05:29
…dering fix

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Signed-off-by: Claus Ibsen <claus.ibsen@gmail.com>
@davsclaus davsclaus added this to the 4.22.0 milestone Jul 21, 2026
@davsclaus davsclaus self-assigned this Jul 21, 2026
@davsclaus davsclaus added the enhancement New feature or request label Jul 21, 2026
@davsclaus
davsclaus merged commit c5b1068 into main Jul 21, 2026
4 of 6 checks passed
@davsclaus
davsclaus deleted the fix/CAMEL-24137-circuit-breaker-modernize branch July 21, 2026 07:53
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants