I'm currently trying to tidy up some of the message conversion code inside the Java Broker, and wondering what the correct approach is with reply-to.
In 1.0 the reply-to address is a simple string (which may have some structure when the OASIS Addressing spec is finalised, but until now can really be thought of as opaque). In 0-10 the reply-to consists of an exchange and a routing-key pair... (which means that if you want to reply to a given queue you can use the default no-name exchange, and the queue name as the routing key). The naive approach for a 1.0 address "foo" is (I guess) to look up on the broker side to see if the given there is an exchange named "foo" (in which case translate to 0-10 {exchange="foo", routing-key=""}) or a queue named "foo" (in which case translate to a 0-10 {exchange="",routing-key="foo"). However what if there is neither an exchange nor a queue named foo... In the opposite direction if you have an 0-10 address {exchange="foo",routing-key="bar"} how do we translate that into a 1-0 address. Does the C++ broker have an answer for this yet? My current train of thought is that I'll translate 1-0 addresses of the form "foo/bar" into exchange="foo", routing-key="bar" (and will also treat 1.0 links to destinations of that form accordingly). Addresses which begin with a "/" will be treated as AMQP Global addresses (per the emerging specs)... for conversion to 0-10 purposes that will be the no-name exchange and the address will go into the routing key. Addresses with no "/" will be treated as a queue - unless there is no queue in which case it will fall back to looking for an exchange (this is the Java Broker's default behaviour for any address)... Where there is no queue or exchange the reply-to conversion will treat it as per a global address {exchange="",routing-key=address}. As above, does the C++ broker have a better answer already? -- Rob