In the final 0-10 spec the no-local field was removed from the message.subscribe command definition.

To get the python tests of that feature working over that final spec, I have added the means to request similar behaviour. However rather than passing an argument to the message.subscribe command, it is now passed to the queue.declare command. Note the existing 'arguments' field (of type map) is used for this so although the functionality is proprietary, the wire protocol has not been modified; this is simply utilising an intended extension point.

The functionality is only available on exclusive queues (which is why queue.declare seemed a better place to me for the extra argument than e.g. exchange.bind).

If an exclusive queue is declared with the added argument 'no-local' specified (doesn't actually matter what the value is), then messages published by the same connection as the session who 'owns' the queue will not be enqueued but silently dropped. I think this will support the necessary semantics for JMS; if not, or if an alternative approach is preferred for some reason, shout and we can always change it.

Reply via email to