summaryrefslogtreecommitdiff
path: root/qpid/java
diff options
context:
space:
mode:
authorRobert Godfrey <rgodfrey@apache.org>2013-06-02 01:31:50 +0000
committerRobert Godfrey <rgodfrey@apache.org>2013-06-02 01:31:50 +0000
commit58899e7c6e228192388159dd8ebb9809acadf128 (patch)
tree10308dda48ff1df15a22e377df976213507526d2 /qpid/java
parentd9e7adfc3bc7dd35ff162456e265e8626e0be252 (diff)
downloadqpid-python-58899e7c6e228192388159dd8ebb9809acadf128.tar.gz
QPID-4899 : [Java Broker] Allow setting queue binding arguments in XML config file
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1488638 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'qpid/java')
-rw-r--r--qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/QueueConfiguration.java7
-rw-r--r--qpid/java/broker/src/main/java/org/apache/qpid/server/virtualhost/VirtualHostImpl.java11
2 files changed, 13 insertions, 5 deletions
diff --git a/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/QueueConfiguration.java b/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/QueueConfiguration.java
index 7a54bdaa66..f37d06f117 100644
--- a/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/QueueConfiguration.java
+++ b/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/QueueConfiguration.java
@@ -23,6 +23,7 @@ package org.apache.qpid.server.configuration;
import java.util.Collections;
import java.util.Map;
import org.apache.commons.configuration.CompositeConfiguration;
+import org.apache.commons.configuration.Configuration;
import org.apache.commons.configuration.ConfigurationException;
import org.apache.qpid.exchange.ExchangeDefaults;
@@ -201,4 +202,10 @@ public class QueueConfiguration extends AbstractConfiguration
{
return getMap("argument");
}
+
+ public Map<String,String> getBindingArguments(String routingKey)
+ {
+
+ return getConfig().containsKey(routingKey+".bindingArgument") ? getMap(routingKey+".bindingArgument") : null;
+ }
}
diff --git a/qpid/java/broker/src/main/java/org/apache/qpid/server/virtualhost/VirtualHostImpl.java b/qpid/java/broker/src/main/java/org/apache/qpid/server/virtualhost/VirtualHostImpl.java
index 32f7464b27..c63c32188d 100644
--- a/qpid/java/broker/src/main/java/org/apache/qpid/server/virtualhost/VirtualHostImpl.java
+++ b/qpid/java/broker/src/main/java/org/apache/qpid/server/virtualhost/VirtualHostImpl.java
@@ -390,25 +390,26 @@ public class VirtualHostImpl implements VirtualHost, IConnectionRegistry.Registr
}
else
{
- configureBinding(queue, exchange, routingKey);
+
+ configureBinding(queue, exchange, routingKey, (Map) queueConfiguration.getBindingArguments(routingKey));
}
}
- if (!exchange.equals(defaultExchange))
+ if (!exchange.equals(defaultExchange) && !routingKeys.contains(queueName))
{
//bind the queue to the named exchange using its name
- configureBinding(queue, exchange, queueName);
+ configureBinding(queue, exchange, queueName, null);
}
}
- private void configureBinding(AMQQueue queue, Exchange exchange, String routingKey) throws AMQException
+ private void configureBinding(AMQQueue queue, Exchange exchange, String routingKey, Map<String,Object> arguments) throws AMQException
{
if (_logger.isInfoEnabled())
{
_logger.info("Binding queue:" + queue + " with routing key '" + routingKey + "' to exchange:" + exchange.getName());
}
- exchange.addBinding(routingKey, queue, null);
+ exchange.addBinding(routingKey, queue, arguments);
}
public String getName()