As per the discussion on QPID-792, I'm moving the discussion onto the dev list under. I have attempted to summarise the current behaviour and some of the comments expressed by Rob and Robbie.
Currently the clients (C++, python and JMS) resolves an address (with the 0-10 protocol) as follows. 1. If the name resolves to a queue, we treat it as a Queue 2. If the name resolves to an exchange, we treat is a Topic 3. If it doesn't resolve to either, we treat it as a Queue. Rob made the following comments "I don't think that we should be trying to do this because I'm pretty sure that it is impossible to determine what is a Queue and what is a Topic. I think the closest we can come is to say that an address that says you have to create a new temporary auto-delete exclusive queue for every consumer should be treated as a topic... but the converse is not true. As far as I am concerned the distinction between Queue and Topic is something that only the "administrator" can determine, and the code cannot determine dynamically." Robbie also expressed the following, "I also think that the (Java) client shouldnt be making gueses as to whether something is a Queue or a Topic, as I'm sure was fairly evident from previous mailings on the subject last year. If that questionable behaviour is causing pain, then we should at least consider simply not doing it. Destination is itself only the parent interface of Queue and Topic, it doesnt actually offer any methods (even the toString, though for backwards compatibility reasons admitedly) and really only serves to allow creating Topic and Queue consumers etc without having to have a specific Session type. I realise forcing users to specify queue or topic in the address string wouldnt be consistent with the other clients, but I do think its worth noting that the Java client isn't entirely consistent with the other clients for obvious reasons and trying to make it more so isnt necessarily always going to be a helpful or useful thing." Rob, further states that we could utilize the queue and topic qualifiers that is currently present in our JNDI mechanism. "I don't think the queue/topic distinction even needs to go into the address - it should only needs to be defined some way in the JNDI source e.g. in a properties file then things that begin queue.<NAME>=<address string> would be queues, and topic.<NAME>=<address string> would be topics" Regards, Rajith --------------------------------------------------------------------- Apache Qpid - AMQP Messaging Implementation Project: http://qpid.apache.org Use/Interact: mailto:dev-subscr...@qpid.apache.org