diff options
| author | Robert Godfrey <rgodfrey@apache.org> | 2013-06-02 01:31:50 +0000 |
|---|---|---|
| committer | Robert Godfrey <rgodfrey@apache.org> | 2013-06-02 01:31:50 +0000 |
| commit | b2b98176096655c24b188d9890ed837ec8e73ca5 (patch) | |
| tree | 7fffc276eedbbbcfb7488ec0d99dcfe2a444ea1b /java | |
| parent | f83f52deb36df5277dbcde0913e37693ae7b1b9e (diff) | |
| download | qpid-python-b2b98176096655c24b188d9890ed837ec8e73ca5.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/qpid@1488638 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'java')
| -rw-r--r-- | java/broker/src/main/java/org/apache/qpid/server/configuration/QueueConfiguration.java | 7 | ||||
| -rw-r--r-- | java/broker/src/main/java/org/apache/qpid/server/virtualhost/VirtualHostImpl.java | 11 |
2 files changed, 13 insertions, 5 deletions
diff --git a/java/broker/src/main/java/org/apache/qpid/server/configuration/QueueConfiguration.java b/java/broker/src/main/java/org/apache/qpid/server/configuration/QueueConfiguration.java index 7a54bdaa66..f37d06f117 100644 --- a/java/broker/src/main/java/org/apache/qpid/server/configuration/QueueConfiguration.java +++ b/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/java/broker/src/main/java/org/apache/qpid/server/virtualhost/VirtualHostImpl.java b/java/broker/src/main/java/org/apache/qpid/server/virtualhost/VirtualHostImpl.java index 32f7464b27..c63c32188d 100644 --- a/java/broker/src/main/java/org/apache/qpid/server/virtualhost/VirtualHostImpl.java +++ b/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() |
