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


Reply via email to