Skip to content

chore(deps): upgrade IBM MQ to 10.0 - #25107

Closed
davsclaus wants to merge 1 commit into
mainfrom
dependency/upgrade-ibmmq-10
Closed

chore(deps): upgrade IBM MQ to 10.0#25107
davsclaus wants to merge 1 commit into
mainfrom
dependency/upgrade-ibmmq-10

Conversation

@davsclaus

Copy link
Copy Markdown
Contributor

Summary

Upgrade IBM MQ client and container to version 10.0, combining PR #24040 and PR #24640:

  • com.ibm.mq:com.ibm.mq.jakarta.client: 9.4.5.1 → 10.0.0.0
  • Container image icr.io/ibm-messaging/mq: 9.4.5.0-r2 → 10.0.0.0-r2

Closes #24040
Closes #24640

Claude Code on behalf of davsclaus

Upgrade IBM MQ client dependency from 9.4.5.1 to 10.0.0.0 and
container image from 9.4.5.0-r2 to 10.0.0.0-r2.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Signed-off-by: Claus Ibsen <claus.ibsen@gmail.com>
@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.

@github-actions

Copy link
Copy Markdown
Contributor

🧪 CI tested the following changed modules:

  • catalog/camel-catalog
  • parent
  • test-infra/camel-test-infra-all
  • test-infra/camel-test-infra-ibmmq

🔬 Scalpel shadow comparison — Scalpel: 15 tested, 28 compile-only — current: 14 all tested

Maveniverse Scalpel detected 43 affected modules (current approach: 14).

⚠️ 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: com-ibm-mq-jakarta-client-version

Skip-tests mode would test 15 modules (3 direct + 12 downstream), skip tests for 28 (generated code, meta-modules)

Modules Scalpel would test (15)
  • camel-activemq
  • camel-activemq6
  • camel-amqp
  • camel-catalog
  • camel-jbang-mcp
  • camel-jbang-plugin-mcp
  • camel-jbang-plugin-route-parser
  • camel-jbang-plugin-tui
  • camel-jbang-plugin-validate
  • camel-jms
  • camel-launcher-container
  • camel-test-infra-all
  • camel-test-infra-ibmmq
  • camel-yaml-dsl-validator
  • camel-yaml-dsl-validator-maven-plugin
Modules with tests skipped (28)
  • 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
  • camel-yaml-dsl-deserializers
  • camel-yaml-dsl-maven-plugin
  • coverage
  • docs
  • dummy-component

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

All tested modules (43 modules)
  • Camel :: AMQP
  • Camel :: ActiveMQ 5.x
  • Camel :: ActiveMQ 6.x
  • Camel :: All Components Sync point
  • Camel :: Assembly
  • 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 :: Component DSL
  • Camel :: Coverage
  • Camel :: Docs
  • Camel :: Endpoint DSL
  • Camel :: Endpoint DSL :: Support
  • Camel :: Integration Tests
  • 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 :: JMS
  • Camel :: Kamelet Main
  • Camel :: Launcher
  • Camel :: Launcher :: Container
  • Camel :: Test Infra :: All test services
  • Camel :: Test Infra :: IBM MQ
  • Camel :: YAML DSL
  • Camel :: YAML DSL :: Deserializers
  • Camel :: YAML DSL :: Maven Plugins
  • Camel :: YAML DSL :: Validator
  • Camel :: YAML DSL :: Validator Maven Plugin

⚙️ View full build and test results

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

Claude Code on behalf of Guillaume Nodet

CI Failure — IBM MQ 10.0 reply-to behavior change

Both CI builds (Java 17 and Java 25) fail with a test regression in camel-jms:

Failing test: JmsReplyToIbmMQTest.testCustomJMSReplyToInOut
Error: expected: <My name is Camel> but was: <null>
Deterministic: Failed 3/3 retries — not flaky.

The test sends a message to DEV.QUEUE.1, consumes it with replyTo=queue:DEV.QUEUE.2, transforms the body to "My name is Camel", then expects the reply to arrive on DEV.QUEUE.2. With IBM MQ 10.0, the reply never arrives (returns null after the 20-second timeout).

This suggests IBM MQ 10.0 has a behavioral change in how JMSReplyTo queues are handled — possibly related to the queue: prefix format, reply routing, or default queue configuration in the 10.0 container image.

Worth investigating:

  1. Whether IBM MQ 10.0 changed the JMSReplyTo header format or queue name resolution
  2. Whether the DEV.QUEUE.2 queue exists by default in the 10.0 container image (it was pre-created in 9.x images)
  3. Whether the replyTo=queue:DEV.QUEUE.2 URI format needs adjustment for MQ 10.0

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

Review Summary

This PR bumps IBM MQ from 9.4.5.1 to 10.0.0.0 (client library) and the container image from 9.4.5.0-r2 to 10.0.0.0-r2 across 4 files. CI is deterministically failing because JmsReplyToIbmMQTest.testCustomJMSReplyToInOut returns null instead of the expected reply body — the test failed 3/3 retries on both Java 17 and Java 25 builds.

This same failure was already identified and flagged with CHANGES_REQUESTED by @apupier and @oscerd on predecessor PR #24040, and confirmed by @apupier to reproduce with 10.0.0.0-r1 as well. The root cause appears to be a behavioral change in IBM MQ 10.0's JMSReplyTo queue handling.

Findings

🔴 High: Deterministic CI failure
The upgrade breaks JmsReplyToIbmMQTest.testCustomJMSReplyToInOut. The reply message sent to DEV.QUEUE.2 (configured via replyTo=queue:DEV.QUEUE.2) never arrives under MQ 10.0. The PR needs to either:

  • (a) investigate and fix the test to accommodate MQ 10.0 behavior,
  • (b) document the behavioral change and adjust the test accordingly, or
  • (c) defer the upgrade until the root cause is understood.

🟡 Medium: MQ_APP_PASSWORD deprecation (pre-existing)
IBM deprecated the MQ_APP_PASSWORD environment variable starting from MQ 9.4.0.0, replacing it with Podman/Docker secrets (mqAppPassword). While this is pre-existing code not changed in this PR, a major version upgrade is a good opportunity to address it.

🔵 Low: Major version upgrade labeling
This is a major version boundary crossing (9.x → 10.0). The chore(deps) commit prefix typically signals routine minor/patch bumps. Consider documenting the behavioral changes from the IBM MQ 10.0 release notes in the PR description.

Note: The version bump itself is consistent and complete across all 4 files.


This review was generated by an AI agent and may contain inaccuracies. Please verify all suggestions before applying.

Claude Code on behalf of @gnodet

@gnodet

gnodet commented Aug 2, 2026

Copy link
Copy Markdown
Contributor

Claude Code on behalf of Guillaume Nodet

Closing as superseded by #25232, which includes the IBM MQ 10.0 upgrade from this PR plus a fix for the JmsReplyToIbmMQTest failure (IBM MQ 10.0 marks JMS_IBM_MsgToken as a reserved property, causing MessageFormatException when Camel copies vendor headers to outgoing messages).

Thank you @davsclaus for the original upgrade PR that identified this work!

@gnodet gnodet closed this Aug 2, 2026
@github-actions
github-actions Bot deleted the dependency/upgrade-ibmmq-10 branch August 2, 2026 07:17
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