summaryrefslogtreecommitdiff
path: root/qpid/java/client
diff options
context:
space:
mode:
authorRajith Muditha Attapattu <rajith@apache.org>2010-09-02 19:11:23 +0000
committerRajith Muditha Attapattu <rajith@apache.org>2010-09-02 19:11:23 +0000
commitb1c54ac8df650989ebebd878af0b6e563ee527ab (patch)
tree630cd27a3edf597638d79fdd974ea5be4f98c0fb /qpid/java/client
parent874b06748d42a3eaa2d941dca58b366ac90eeded (diff)
downloadqpid-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')
-rw-r--r--qpid/java/client/src/main/java/org/apache/qpid/client/AMQSession_0_10.java13
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());
}