apupier opened a new pull request, #21958: URL: https://github.com/apache/camel/pull/21958
inetgration tests for Kafka 4.x Problem Explanation The Kafka transaction tests were failing with Strimzi container after upgrading to Kafka 4 due to a network exception in the AddPartitionsToTxnManager. The error occurred because: Missing inter-broker listener configuration: The StrimziContainer didn't have a dedicated BROKER listener for internal broker-to-broker communication Transaction manager connection failure: When Kafka transactions tried to add partitions, the AddPartitionsToTxnManager attempted to connect to the broker using the inter-broker listener, but it defaulted to PLAINTEXT which was configured for external access only Port mismatch: The transaction manager tried connecting to localhost:43347 (a random port) instead of the correct internal listener Solution Applied Updated StrimziContainer.java to match the working configuration pattern from ConfluentContainer.java: Changes Made: Added dedicated BROKER listener (line 50): Changed from: PLAINTEXT://0.0.0.0:9092,CONTROLLER://0.0.0.0:9093 Changed to: PLAINTEXT://0.0.0.0:9092,BROKER://0.0.0.0:9093,CONTROLLER://0.0.0.0:9094 Updated listener security protocol map (line 52): Added BROKER:PLAINTEXT mapping Added inter-broker listener name (line 53): New: KAFKA_INTER_BROKER_LISTENER_NAME=BROKER Updated controller quorum voters (line 54): Changed from: 1@localhost:9093 Changed to: 1@localhost:9094 (controller now on separate port) Updated advertised listeners (line 89): Added BROKER listener: BROKER://localhost:9093 Added inter.broker.listener.name override (line 67): Ensures the configuration is properly passed to Kafka server This fix ensures that internal broker communication (including transaction coordination) uses the dedicated BROKER listener on localhost:9093, while external clients connect via PLAINTEXT on the mapped port. The configuration now properly supports Kafka 4.x transactions in KRaft mode. co-authored: IBM Bob IDE 1.0.0 # Description <!-- - Write a pull request description that is detailed enough to understand what the pull request does, how, and why. --> # Target - [ ] I checked that the commit is targeting the correct branch (Camel 4 uses the `main` branch) # Tracking - [ ] If this is a large change, bug fix, or code improvement, I checked there is a [JIRA issue](https://issues.apache.org/jira/browse/CAMEL) filed for the change (usually before you start working on it). <!-- # *Note*: trivial changes like, typos, minor documentation fixes and other small items do not require a JIRA issue. In this case your pull request should address just this issue, without pulling in other changes. --> # Apache Camel coding standards and style - [ ] I checked that each commit in the pull request has a meaningful subject line and body. <!-- If you're unsure, you can format the pull request title like `[CAMEL-XXX] Fixes bug in camel-file component`, where you replace `CAMEL-XXX` with the appropriate JIRA issue. --> - [ ] I have run `mvn clean install -DskipTests` locally from root folder and I have committed all auto-generated changes. <!-- You can run the aforementioned command in your module so that the build auto-formats your code. This will also be verified as part of the checks and your PR may be rejected if if there are uncommited changes after running `mvn clean install -DskipTests`. You can learn more about the contribution guidelines at https://github.com/apache/camel/blob/main/CONTRIBUTING.md --> -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
