While I was working on adding addressing support to the JMS 0-9-1 client [1] and looking at how I might implement a subscription where the subscription was to a set of queues (rather than a single queue) [2], I came across a couple of issues with the address implementation that I think I should probably discuss before I go ahead an "fix" them.
Firstly the addressing syntax definition in http://qpid.apache.org/releases/qpid-trunk/programming/book/section-addresses.html#section-address-string-bnf defines the following: x-subscribe: { ... <subscribe-overrides> ... } However the JMS client looks for x-subscribes (note the plural). I presume this is just a mistake and should be corrected (though probably allowing the pluralised version for backward compatibility). Secondly I would think that an address which explicitly or implicitly defines its assertion policy to be "never" should not fail in the act of creation if the node does not exist (otherwise what is the point of assert: never ). However it seems that the JMS client always explicitly tests for the presence of either a queue or an exchange and if it finds neither (even if the policy is assert" never) it fails. Moreover there are tests checking this behaviour. I would like to change this behaviour also, as it prevents the creation of subscriptions to pseudo-nodes which are not queues or exchanges (for instance the multi queue subscription case). Clearly the act of attempting to subscribe to something the broker cannot resolve will still result in an error on the broker side, which seems to me the expected behaviour of assert: never. Thoughts? -- Rob [1] https://issues.apache.org/jira/browse/QPID-6037 [2] https://issues.apache.org/jira/browse/QPID-6040
