Hi Erik, The difference comes about in part due to the new client implementing the AMQP JMS Mapping work progressing at the AMQP Bindings & Mappings TC at OASIS, while the old client does not.
We aimed to allow the JMSMessageID and JMSCorrelationID handling to be able to handle the 4 different message and correlation id types defined in AMQP 1.0 (string, UUID, binary, and unsigned long) and support an arriving message JMSMessageID being roundtripped through the application and back into a JMS message as a JMSCorrelationID value and lead to the appropriate value being included as the correlation-id in the outgoing AMQP message. JMS allows for the JMSCorrelationId header to be either a JMSMessageID value, signalled by starting with "ID:", or an application-specific string (or a seperate set of bytes methods, which we will ignore for now). As part of handling this, and to allow for other clients that dont want to have to add/remove the weird "ID:" prefix when doing a messageid->correlationid interaction with the JMS client, we elected to have the client always strip the first "ID:" prefix from the provided correlaion value when sending it on the wire (also needed to support round-tripping the non-string id types from message id and back through correlation id as a string), and used a message annotation to signal if it was an application-specific value that didnt have the "ID:" prefix originally. When receiving, that annotation is then queried to indicate if the value should not have the "ID:" prefixed to it. It would seem you are receving messages from a different client than the new JMS client, created from different message objects such that they have a correlation-id but dont have the annotation, leading to the client to add the prefix on receipt. I'll need to have a think around whether we can just invert the annotation usage to cater for that or if someone else would be needed. Robbie On 4 June 2015 at 12:38, Erik Aschenbrenner <[email protected]> wrote: > Dear Qpid users, > > here is another difference I noticed between the old and the new client API: > > The correlation ID of a received message which can be obtained via (JMS) > Message.getJMSCorrelationID() now has the prefix "ID:". So I had to change > my code because my application uses this ID to map between sent requests and > received responses. > > Why did this change? It would have been great if changing the Qpid client > would have worked without changing code at all because actually the > interface is still JMS. > > Regards, > Erik > > > > -- > View this message in context: > http://qpid.2158936.n2.nabble.com/Changing-from-old-Qpid-JMS-client-to-Qpid-JMS-0-2-0-tp7625652p7625829.html > Sent from the Apache Qpid users mailing list archive at Nabble.com. > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [email protected] > For additional commands, e-mail: [email protected] > --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
