diff options
| author | Rajith Muditha Attapattu <rajith@apache.org> | 2010-09-02 19:11:23 +0000 |
|---|---|---|
| committer | Rajith Muditha Attapattu <rajith@apache.org> | 2010-09-02 19:11:23 +0000 |
| commit | b1c54ac8df650989ebebd878af0b6e563ee527ab (patch) | |
| tree | 630cd27a3edf597638d79fdd974ea5be4f98c0fb /qpid/java/client/src/main | |
| parent | 874b06748d42a3eaa2d941dca58b366ac90eeded (diff) | |
| download | qpid-python-b1c54ac8df650989ebebd878af0b6e563ee527ab.tar.gz | |
QPID-2844
If an entry within the x-bindings doesn't contain an exchange, the address name is used as the exchange if address resolves to an exchange else amq.topic is used.
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@992061 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'qpid/java/client/src/main')
| -rw-r--r-- | qpid/java/client/src/main/java/org/apache/qpid/client/AMQSession_0_10.java | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/qpid/java/client/src/main/java/org/apache/qpid/client/AMQSession_0_10.java b/qpid/java/client/src/main/java/org/apache/qpid/client/AMQSession_0_10.java index 0563276457..41ad9f543e 100644 --- a/qpid/java/client/src/main/java/org/apache/qpid/client/AMQSession_0_10.java +++ b/qpid/java/client/src/main/java/org/apache/qpid/client/AMQSession_0_10.java @@ -343,16 +343,25 @@ public class AMQSession_0_10 extends AMQSession<BasicMessageConsumer_0_10, Basic List<Binding> bindings = new ArrayList<Binding>(); bindings.addAll(destination.getSourceNode().getBindings()); bindings.addAll(destination.getTargetNode().getBindings()); + + String defaultExchange = destination.getAddressType() == AMQDestination.TOPIC_TYPE ? + destination.getAddressName(): "amq.topic"; + for (Binding binding: bindings) { String queue = binding.getQueue() == null? queueName.asString(): binding.getQueue(); + + String exchange = binding.getExchange() == null ? + defaultExchange : + binding.getExchange(); + _logger.debug("Binding queue : " + queue + - " exchange: " + binding.getExchange() + + " exchange: " + exchange + " using binding key " + binding.getBindingKey() + " with args " + printMap(binding.getArgs())); getQpidSession().exchangeBind(queue, - binding.getExchange(), + exchange, binding.getBindingKey(), binding.getArgs()); } |
