[
https://issues.apache.org/jira/browse/CAMEL-26155?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Claus Ibsen reassigned CAMEL-26155:
-----------------------------------
Assignee: Claus Ibsen
> camel-rocketmq - with waitForSendResult=false the producer returns true and
> calls the callback later, and the header names are spelled CamelRockerMQ
> ----------------------------------------------------------------------------------------------------------------------------------------------------
>
> Key: CAMEL-26155
> URL: https://issues.apache.org/jira/browse/CAMEL-26155
> Project: Camel
> Issue Type: Bug
> Components: camel-rocketmq
> Reporter: Claus Ibsen
> Assignee: Claus Ibsen
> Priority: Minor
> Fix For: 4.24.0
>
>
> Found while adding the catalog body types of rocketmq, hivemq, iggy and
> kafka-share (CAMEL-24961, PR #28394).
> h4. 1. waitForSendResult=false breaks the async callback contract
> {{RocketMQProducer.processInOnly}} (main 2a465aa4814c, line 202) returns
> {{!waitForSendResult}} (line 229), so with {{waitForSendResult=false}} it
> returns true (done synchronously), but {{callback.done(true)}} is called
> later from the RocketMQ {{SendCallback}} (lines 219 and 225), on the client
> thread. A processor that returns true must have called the callback before it
> returns. Read in the code, not run.
> Proposed: with {{waitForSendResult=false}} call {{callback.done(true)}} right
> after the send is started and only log the send result in the
> {{SendCallback}}.
> h4. 2. The header names are spelled CamelRockerMQ
> The header constants of {{RocketMQConstants}} (line 25 onwards:
> {{CamelRockerMQTopic}}, {{CamelRockerMQTag}}, {{CamelRockerMQKey}},
> {{CamelRockerMQOverrideTopicName}}...) say {{RockerMQ}} instead of
> {{RocketMQ}}. These names are released, so users set them as they are. Read
> in the code, not run.
> Proposed: add the {{CamelRocketMQ*}} names, read both for a while, and note
> the change in the upgrade guide.
> h4. 3. The test-infra broker cannot be reached from a Docker Desktop host
> {{RocketMQBrokerContainer}} (test-infra/camel-test-infra-rocketmq, line 30)
> starts the broker without an advertised address, so the broker registers the
> container IP with the name server. Tests running on a Docker Desktop host
> (macOS) cannot connect to that IP. Checked on 4.24.0-SNAPSHOT with rocketmq
> 5.3.3 in Docker.
> Proposed: set {{brokerIP1}} in the broker config to an address the host can
> reach (with the mapped ports).
> h4. 4. The tests are skipped on aarch64 though the image runs there
> The {{camel-rocketmq}} {{pom.xml}} (line 40) sets {{skipTests.aarch64}} and
> {{skipITs.aarch64}} with the comment that the container is only available on
> x86, but the rocketmq 5.3.3 image runs on aarch64 (checked on 4.24.0-SNAPSHOT
> on an arm64 Mac).
> Proposed: remove the aarch64 skip.
> _Claude Code on behalf of davsclaus_
--
This message was sent by Atlassian Jira
(v10.3.26#10030026)