You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by rg...@apache.org on 2013/06/02 03:31:51 UTC

svn commit: r1488638 - in /qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server: configuration/QueueConfiguration.java virtualhost/VirtualHostImpl.java

Author: rgodfrey
Date: Sun Jun  2 01:31:50 2013
New Revision: 1488638

URL: http://svn.apache.org/r1488638
Log:
QPID-4899 : [Java Broker] Allow setting queue binding arguments in XML config file

Modified:
    qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/QueueConfiguration.java
    qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/virtualhost/VirtualHostImpl.java

Modified: qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/QueueConfiguration.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/QueueConfiguration.java?rev=1488638&r1=1488637&r2=1488638&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/QueueConfiguration.java (original)
+++ qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/QueueConfiguration.java Sun Jun  2 01:31:50 2013
@@ -23,6 +23,7 @@ package org.apache.qpid.server.configura
 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 
     {
         return getMap("argument");
     }
+
+    public Map<String,String> getBindingArguments(String routingKey)
+    {
+
+        return getConfig().containsKey(routingKey+".bindingArgument") ? getMap(routingKey+".bindingArgument") : null;
+    }
 }

Modified: qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/virtualhost/VirtualHostImpl.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/virtualhost/VirtualHostImpl.java?rev=1488638&r1=1488637&r2=1488638&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/virtualhost/VirtualHostImpl.java (original)
+++ qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/virtualhost/VirtualHostImpl.java Sun Jun  2 01:31:50 2013
@@ -390,25 +390,26 @@ public class VirtualHostImpl implements 
             }
             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()



---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org