[rabbitmq-discuss] Patch to support amq.topic in STOMP adaptor

Tony Garnock-Jones tonyg at lshift.net
Mon Jun 16 16:49:11 BST 2008

Hi Artur,

Thanks for the patch! It's a useful feature.

I've applied something that captures the essence of your enhancement, 
with a few minor differences:

  - I've made the threading of State more visible

  - I've changed the headers used to feed the "arguments" for
    both queue.declare and queue.bind to "X-Q-"prefixed and
    "X-B-"prefixed, respectively, rather than simply "X-"prefixed.

The change is present in Mercurial on both 'default' and 
'rabbitmq_v1_3_0_branch' branches. Let me know if it works for you.

I have one question for you and the group at large - the new code 
supports *exactly one* binding between an exchange and the 
destination-queue. AMQP supports zero or more. How should we expose this 
as STOMP headers?

We could have multiple "bind" headers, containing "exchange,routingkey" 
or similar; the problem then is what happens when an exchange name 
contains a comma (or other delimiter).

If we're going to have to solve the escaping-of-delimiters problem 
anyway - and it looks like we are, if we want this multiple-bind feature 
- then we may as well have *two* kinds of delimiter, for a single "bind" 
header of the form

  bind: exchange1,routingkeypattern1;exchange2,routingkeypattern2;...

Yuck. Any thoughts?

(Backslash-escaping? Gross, but viable?)

  [][][] Tony Garnock-Jones     | Mob: +44 (0)7905 974 211
    [][] LShift Ltd             | Tel: +44 (0)20 7729 7060
  []  [] http://www.lshift.net/ | Email: tonyg at lshift.net

More information about the rabbitmq-discuss mailing list