Repository navigation
CAMEL-25878: Upgrade Citrus to 5.1.0 - #28173
Conversation
Citrus 5.1.0 no longer sends the default Content-Type text/plain on a bodyless HTTP request (citrusframework/citrus#1826), so a camel test of a REST DSL route with bindingMode=json needs no Content-Type on its GETs. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Signed-off-by: Claus Ibsen <claus.ibsen@gmail.com>
|
🌟 Thank you for your contribution to the Apache Camel project! 🌟 🐫 Apache Camel Committers, please review the following items:
|
gnodet-bot
left a comment
There was a problem hiding this comment.
Clean, minimal dependency bump (5.0.2→5.1.0) with correct scope (single property change in parent/pom.xml). No concerns. ✅
This review was generated by an AI agent, Hermès on behalf of @gnodet.
✅ Generated files are up to dateAn earlier CI run reported uncommitted generated changes; the latest run no longer does. |
|
🧪 CI tested the following changed modules:
✅ POM dependency changes: targeted tests included Changed properties: citrus-version Modules affected by dependency changes (1)
🔬 Scalpel shadow comparison — Scalpel: 9 of 707 tested, 3 compile-only — current: 1 all testedMaveniverse Scalpel detected 9 affected modules (current approach: 1). Changed properties: citrus-version Skip-tests mode would test 9 modules (4 direct + 0 downstream), skip tests for 3 (generated code, meta-modules)
|
| Module | Duration | Status |
|---|---|---|
| Camel :: JPA | 57.4s | SUCCESS |
| Camel :: Launcher | 53.8s | SUCCESS |
| Camel :: JBang :: MCP | 43.1s | SUCCESS |
| Camel :: JBang :: Plugin :: Validate | 29.9s | SUCCESS |
| Camel :: Test :: Citrus | 29.7s | SUCCESS |
| Camel :: YAML DSL | 24.1s | SUCCESS |
| Camel :: Catalog :: Camel Catalog | 23.4s | SUCCESS |
| Camel :: YAML DSL :: Validator | 23.3s | SUCCESS |
| Camel :: Component DSL | 20.1s | SUCCESS |
| Camel :: Kamelet Main | 15.2s | SUCCESS |
| Camel :: Docs | 14.4s | SUCCESS |
| Camel :: JBang :: Plugin :: Kubernetes | 13.5s | SUCCESS |
| Camel :: JBang :: Plugin :: Testing | 13.5s | SUCCESS |
| Camel :: Catalog :: Camel Report Maven Plugin | 10.2s | SUCCESS |
| Camel :: YAML DSL :: Deserializers | 9.6s | SUCCESS |
| Camel :: All Components Sync point | 9.6s | SUCCESS |
| Camel :: Catalog :: Camel Route Parser | 7.0s | SUCCESS |
| Camel :: YAML DSL :: Validator Maven Plugin | 4.8s | SUCCESS |
| Camel :: Catalog :: Maven | 3.6s | SUCCESS |
| Camel :: YAML DSL :: Maven Plugins | 3.4s | SUCCESS |
| Camel :: Catalog :: Suggest (deprecated) | 2.5s | SUCCESS |
| Camel :: Coverage | 2.2s | SUCCESS |
| Camel :: Assembly | 1.9s | SUCCESS |
| Camel :: Catalog :: Dummy Component | 1.7s | SUCCESS |
| Camel :: JBang :: Integration tests | 1.3s | SUCCESS |
| Camel :: JBang :: Plugin :: Edit | 1.3s | SUCCESS |
| Camel :: JBang :: Main | 1.3s | SUCCESS |
| Camel :: JBang :: Plugin :: Generate | 1.1s | SUCCESS |
| Camel :: Catalog :: Console | 1.1s | SUCCESS |
| Camel :: Endpoint DSL :: Support | 0.8s | SUCCESS |
| Camel :: JBang :: Plugin :: MCP | 0.6s | SUCCESS |
| Camel :: Launcher :: Container | 0.5s | SUCCESS |
| Camel :: Endpoint DSL | n/a | |
| Camel :: Integration Tests | n/a | |
| Camel :: JBang :: Core | n/a | |
| Camel :: JBang :: Plugin :: TUI | n/a |
Top 20 slowest modules:
Camel :: JPA(57.4s)Camel :: Launcher(53.8s)Camel :: JBang :: MCP(43.1s)Camel :: JBang :: Plugin :: Validate(29.9s)Camel :: Test :: Citrus(29.7s)Camel :: YAML DSL(24.1s)Camel :: Catalog :: Camel Catalog(23.4s)Camel :: YAML DSL :: Validator(23.3s)Camel :: Component DSL(20.1s)Camel :: Kamelet Main(15.2s)Camel :: Docs(14.4s)Camel :: JBang :: Plugin :: Kubernetes(13.5s)Camel :: JBang :: Plugin :: Testing(13.5s)Camel :: Catalog :: Camel Report Maven Plugin(10.2s)Camel :: YAML DSL :: Deserializers(9.6s)Camel :: All Components Sync point(9.6s)Camel :: Catalog :: Camel Route Parser(7.0s)Camel :: YAML DSL :: Validator Maven Plugin(4.8s)Camel :: Catalog :: Maven(3.6s)Camel :: YAML DSL :: Maven Plugins(3.4s)
oscerd
left a comment
There was a problem hiding this comment.
TL;DR
The upgrade is clean and ready to merge: Citrus 5.1.0 is on Central, CI is green on JDK 21 and 25, none of the 5.1.0 changes touch an API Camel calls, and the regenerated test agent pages match the corrected option texts of 5.1.0.
Blockers
- None
Other findings: 2, neither blocks this PR
- Not caused by this PR:
TestPluginExporterstill addsorg.citrusframework:citrus-junit5:${citrus.version}. From Citrus 5.0.0 on the artifact iscitrus-junit-jupiter(citrus-junit5ends at 4.10.3 on Central), socamel exportof a project with atest/folder writes a dependency that does not resolve, on main and on camel-4.22.x (5.0.0). Could we fix it in a follow-up Jira?deps.add(asDependency("citrus-junit-jupiter"));also provides theorg.citrusframework.junit.jupiter.CitrusSupportthatjunit-test.tmplimports. - Optional, your call: a line in
camel-4x-upgrade-guide-4_24.adocsayingcamel test(Citrus 5.1.0) no longer sends a defaultContent-Typeon GET/HEAD/OPTIONS/TRACE, for anyone whose tests check that header on the receiving side.
Checked
- Release notes: https://github.com/citrusframework/citrus/releases/tag/v5.1.0 (v5.0.2...v5.1.0). Relevant items are #1829, #1832, #1770, #1772 and #1739. Diffing the 5.0.2 and 5.1.0 sources of the classes
camel-test-citrusandcamel-jbang-plugin-testuse shows no signature change, and the bytecode is still Java 17. - Central: https://repo1.maven.org/maven2/org/citrusframework/citrus-jbang/5.1.0/ returns 200, as do citrus-api, citrus-base and citrus-validation-json/xml/text/yaml 5.1.0.
- Transitives: Spring 7.0.9, Spring Boot 4.1.1, Jackson 2.22.3/3.2.3, picocli 4.7.7, log4j 2.25.5 and httpclient5 5.6.4 equal
parent/pom.xml; no new major line. - CI: camel-test-citrus 41/41 and
TestPluginTest6/6 on JDK 21 and 25.citrus-versionis the only version reference; the weekly bot regenerates the SBOM.
Reviewed with Claude Code on behalf of oscerd. This review was generated by an AI agent and may contain inaccuracies; please verify all suggestions before applying.
Upgrades Citrus from 5.0.2 to 5.1.0 (CAMEL-25878), used by
camel-test-citrusand bycamel-jbang-plugin-test(camel test).Citrus 5.1.0 no longer sends the default
Content-Type: text/plainon a bodyless HTTP request (citrusframework/citrus#1826, citrusframework/citrus#1829). With that header, a REST DSL route withbindingMode: jsonanswers a GET with 500, so Citrus tests of such routes had to set the Content-Type on every GET (apache/camel-jbang-examples#129). Its Spring (7.0.9) and Spring Boot (4.1.1) versions match Camel's.The plugin reads the Citrus version at runtime (
CitrusVersion.version()), soparent/pom.xmlis the only change.Tested locally:
camel-test-citrus:mvn verify, 41 tests pass.camel-jbang-plugin-test:mvn verify, 6 tests pass.camel test runof the camel-jbang-examplescontracts/rest-code-firsttest, with the Content-Type workaround removed from its GETs, passes (Citrus 5.1.0, integration on Camel 4.23.0).Claude Code on behalf of davsclaus
🤖 Generated with Claude Code