Skip to content

CAMEL-26981: camel-main - the Rest DSL binding uses the camel.dataformat options - #30012

Merged
davsclaus merged 2 commits into
apache:mainfrom
Croway:CAMEL-26981-rest-binding-dataformat-options
Nov 15, 2026
Merged

davsclaus merged 2 commits into
apache:mainfrom
Croway:CAMEL-26981-rest-binding-dataformat-options

Conversation

@Croway

@Croway Croway commented Nov 15, 2026 •

Copy link
Copy Markdown
Contributor

JIRA: CAMEL-26981

  • With Camel Main, camel.dataformat.<name>.* configured the data format used by marshal()/unmarshal(), but the Rest DSL binding created new json/xml data formats and only applied restConfiguration data format properties (e.g. camel.dataformat.jackson.include=NON_NULL was ignored in REST responses).
  • RestBindingAdviceFactory now copies the options of the configured data format into the binding's data formats, as DataFormatReifier does for route data formats (CAMEL-22352); the json.in./json.out./xml.in./xml.out. properties are applied afterwards and still win.
  • Not copied: objectMapper and xmlMapper (the generic data format may have created its mapper when it started, the request and response data formats keep their own), allowUnmarshallType and allowJmsType (a header must not choose the request body type), and unmarshalType, useList, collectionType and the JAXB partClass (the verb's type/outType decides the body type).

Tests: JacksonRestBindingMainTest (camel-jackson, new test-scoped camel-main dependency), JaxbRestBindingPartClassTest (camel-jaxb).
Upgrade guide: 4.24, "camel-main - the camel.dataformat options apply to the Rest DSL binding"; rest-dsl-binding.adoc documents the precedence and the options that are not copied.

Claude Code on behalf of Federico Mariani

…mat options

The json and xml data formats of the Rest DSL binding start from the options of the data format configured on the
context, as route data formats do; the rest dataFormatProperties still take precedence.
@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-bot gnodet-bot 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.

LGTM. The fix correctly mirrors the DataFormatReifier pattern to propagate camel.dataformat.<name>.* options into the REST DSL binding's data formats, with a well-motivated exclusion set for mapper instances and type-header options. Test coverage is solid (include propagation, json.out.* precedence, allowUnmarshallType exclusion).

This review was generated by an AI agent, Hermès on behalf of @gnodet.

@github-actions

github-actions Bot commented Nov 15, 2026 •

Copy link
Copy Markdown
Contributor

🧪 CI tested the following changed modules:

  • components/camel-jackson
  • components/camel-jaxb
  • core/camel-support
  • docs

ℹ️ 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: 585 of 726 tested, 0 compile-only — current: 585 all tested

Maveniverse Scalpel detected 585 affected modules (current approach: 585).

Skip-tests mode would test 585 modules (4 direct + 33 downstream), skip tests for 0 (generated code, meta-modules)

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

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

Build reactor — dependencies compiled but only changed modules were tested (4 modules, 1m 23s total)

Total reactor time: 1m 23s

Module Duration Status
Camel :: JAXB 25.2s SUCCESS
Camel :: Jackson 24.6s SUCCESS
Camel :: Support 18.4s SUCCESS
Camel :: Docs 14.4s SUCCESS

Top 20 slowest modules:

  • Camel :: JAXB (25.2s)
  • Camel :: Jackson (24.6s)
  • Camel :: Support (18.4s)
  • Camel :: Docs (14.4s)

⚙️ View full build and test results

@davsclaus davsclaus 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.

Thanks @Croway, this closes a real gap between marshal().json() and the REST binding. createDataFormat copies only when the generic data format is known to the context and has the same class, and the json.in./json.out./xml.in./xml.out. properties are applied afterwards, so they still win (restDataFormatPropertiesComeFirst). Leaving out allowUnmarshallType/allowJmsType is the right security call: otherwise a global opt-in meant for a route would let an external HTTP caller pick the request body class with CamelJacksonUnmarshalType, and restBindingDoesNotTakeTheUnmarshalTypeHeader pins it. The Jackson 3 FAIL_ON_UNKNOWN_PROPERTIES default still applies, and JAXB sets contextPath from the verb type after the copy.

Findings:

  1. The body-type options are copied too: unmarshalType, useList and collectionType (Jackson, Jackson 3, Jackson XML; unmarshalType also for Gson, Fastjson and JSON-B). setupJson sets them only when the verb has a type/outType. So camel.dataformat.jackson.unmarshal-type=com.acme.Order, meant for an unmarshal().json() route, now makes every REST verb without type bind its request body to Order, where before it bound to maps/lists, and a body that does not fit Order now fails. In the binding the verb decides the body type, the same reasoning as for allowUnmarshallType. Could we add them to NOT_INHERITED_OPTIONS (RestBindingAdviceFactory.java:51) and mention them in the upgrade guide and rest-dsl-binding.adoc next to the other four?
    private static final Set<String> NOT_INHERITED_OPTIONS = Set.of(
            "objectmapper", "xmlmapper", "allowunmarshalltype", "allowjmstype",
            "unmarshaltype", "uselist", "collectiontype");
    A test with camel.dataformat.jackson.unmarshal-type and a verb without type would pin it.
  2. [Suggestion] copyOptions repeats the configurer lookup and the getAllOptions/getOptionValue loop of DataFormatReifier.configureDataFormat (CAMEL-22352). One helper in camel-support used by both would keep them in step.

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

… of the configured data format

unmarshalType, useList, collectionType and the JAXB partClass are not copied from the camel.dataformat options: the
type and outType of the verb decide the body type.
@Croway

Croway commented Nov 15, 2026

Copy link
Copy Markdown
Contributor Author

@davsclaus

  1. Done in 5bff9ae: unmarshalType, useList and collectionType are no longer copied, so a verb without type binds to maps/lists again; restBindingDoesNotTakeTheBodyTypeOptions sets the three with camel.dataformat.jackson.* (it failed before the change). JAXB partClass is left out too, as JaxbDataFormat.unmarshal uses it whenever it is set (JaxbRestBindingPartClassTest); both docs list the excluded options.
  2. Not changed: this PR keeps the fix to the binding and leaves DataFormatReifier.configureDataFormat untouched (it merges the values with the route's own options and copies all of them, the binding leaves some out). A shared camel-support helper can be a follow-up.

Claude Code on behalf of Federico Mariani

@gnodet-bot gnodet-bot 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.

Following up on my earlier review — the previous findings are all addressed.

davsclaus's finding #1 (body-type options leaking into REST binding) is correctly fixed: unmarshalType, useList, collectionType, and partClass are added to NOT_INHERITED_OPTIONS. The new tests restBindingDoesNotTakeTheBodyTypeOptions and JaxbRestBindingPartClassTest both verify the exclusion with assertions that would fail without the fix. Docs (camel-4x-upgrade-guide-4_24.adoc and rest-dsl-binding.adoc) list all 8 excluded options accurately.

LGTM.

This review was generated by an AI agent, Hermès on behalf of @gnodet.

@davsclaus davsclaus 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.

Thanks @Croway, 5bff9ae closes finding 1. unmarshalType, useList, collectionType and the JAXB partClass are now in NOT_INHERITED_OPTIONS (RestBindingAdviceFactory.java:51), compared lower-case against the capitalised configurer keys, so Gson, JSON-B and Fastjson unmarshalType are covered too. Both new tests pin the change:

  • In restBindingDoesNotTakeTheBodyTypeOptions, each of the three options would break the untyped put() on its own if it were still copied: unmarshalType would give a TestOtherPojo, and useList or collectionType would make the JSON object fail to unmarshal.
  • JaxbRestBindingPartClassTest would get a Bar (unwrapped by ignoreJAXBElement) instead of a PurchaseOrder without the fix.

The upgrade guide and rest-dsl-binding.adoc list the same eight options as the code. Keeping the shared camel-support helper out of this PR is fine with me, given that the reifier merges route options and copies everything.

LGTM (the JDK 21 build is still running and gates the merge).

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

@davsclaus davsclaus added this to the 4.24.0 milestone Nov 15, 2026
@davsclaus davsclaus added the bug Something isn't working label Nov 15, 2026
@davsclaus
davsclaus merged commit b31df0a into apache:main Nov 15, 2026
7 checks passed
@Croway
Croway deleted the CAMEL-26981-rest-binding-dataformat-options branch November 15, 2026 15:40
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Something isn't working components core docs

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants