kenliao94 commented on PR #1364: URL: https://github.com/apache/activemq/pull/1364#issuecomment-2537555045
@cshannon makes sense. Thank you for your through review! Regarding 7.3.6 and 7.3.9: I will bring back the flag idea I mentioned in the description. During my exploration, I used the exact approach as Qpid JMS, add a setter method and an attribute to ActiveMQMessage. If that attribute is true. It will throw exception. As stated in the `jakarta.jms.Message` interface, message header getters can throw `JMSException`. The caveat is the implementation `ActiveMQMessage` those methods don't throw exception. As a result, when I declared throw in the implementation, it propagates out and caused many compilation failure in even the MQTT packages. That being said, I agree with your assessment that we need to prevent message headers and properties being accessed so I need more work on that. Regarding 7.3.3 and 7.3.8: I think I see your points now. Basically ordering within same destination and same delivery mode is already honored by the broker. So we are on the same page that 7.3.3 is already met as is. However, when it comes to 7.3.8, across destination from the same producer, the message order is not honored and I think you are right with the example you provided. When I looked at it initially, it is a map and there's no mechanism in the transport layer that make sure it is honored but I forgot about that case. I will push a new revision ASAP. Regarding legacy vs compliant mode, in this PR, it is differentiated by what API the client application uses. If the application uses the Jakarta Messaging API, async send with CompletionListener, it will get the behavior as described in the spec, I.E compliant mode. If the client application decides to cast the `MessageProducer` to `ActiveMQMessageProducer` and uses the AsyncCallback API, then it will get the legacy mode. In our public doc, we will mark AsyncCallback as deprecated and make a statement that in ActiveMQ 6 we will support both but encourage the use of compliant mode. ActiveMQ 7, we will remove it. -- 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: gitbox-unsubscr...@activemq.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org --------------------------------------------------------------------- To unsubscribe, e-mail: gitbox-unsubscr...@activemq.apache.org For additional commands, e-mail: gitbox-h...@activemq.apache.org For further information, visit: https://activemq.apache.org/contact