Author: bhupendrab
Date: Thu Mar 15 03:42:24 2007
New Revision: 518570

URL: http://svn.apache.org/viewvc?view=rev&rev=518570
Log:
QPID-415
Default configuration for queues in virtualHost.xml doesn't get applied to the 
queue created after broker startup

Modified:
    
incubator/qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/AMQBrokerManagerMBean.java
    
incubator/qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/VirtualHostConfiguration.java
    
incubator/qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/handler/QueueDeclareHandler.java

Modified: 
incubator/qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/AMQBrokerManagerMBean.java
URL: 
http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/AMQBrokerManagerMBean.java?view=diff&rev=518570&r1=518569&r2=518570
==============================================================================
--- 
incubator/qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/AMQBrokerManagerMBean.java
 (original)
+++ 
incubator/qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/AMQBrokerManagerMBean.java
 Thu Mar 15 03:42:24 2007
@@ -36,6 +36,9 @@
 import org.apache.qpid.server.queue.QueueRegistry;
 import org.apache.qpid.server.store.MessageStore;
 import org.apache.qpid.server.virtualhost.VirtualHost;
+import org.apache.qpid.server.configuration.Configurator;
+import org.apache.qpid.server.configuration.VirtualHostConfiguration;
+import org.apache.commons.configuration.Configuration;
 
 /**
  * This MBean implements the broker management interface and exposes the
@@ -157,6 +160,12 @@
             if (queue.isDurable() && !queue.isAutoDelete())
             {
                 _messageStore.createQueue(queue);
+            }
+
+            Configuration virtualHostDefaultQueueConfiguration = 
VirtualHostConfiguration.getDefaultQueueConfiguration(queue);
+            if (virtualHostDefaultQueueConfiguration != null)
+            {
+                Configurator.configure(queue, 
virtualHostDefaultQueueConfiguration);
             }
             _queueRegistry.registerQueue(queue);
         }

Modified: 
incubator/qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/VirtualHostConfiguration.java
URL: 
http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/VirtualHostConfiguration.java?view=diff&rev=518570&r1=518569&r2=518570
==============================================================================
--- 
incubator/qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/VirtualHostConfiguration.java
 (original)
+++ 
incubator/qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/VirtualHostConfiguration.java
 Thu Mar 15 03:42:24 2007
@@ -43,7 +43,7 @@
 {
     private static final Logger _logger = 
Logger.getLogger(VirtualHostConfiguration.class);
 
-    XMLConfiguration _config;
+    private static XMLConfiguration _config;
 
     private static final String VIRTUALHOST_PROPERTY_BASE = "virtualhost.";
 
@@ -126,6 +126,27 @@
             }
 
         }
+    }
+
+    public static CompositeConfiguration getDefaultQueueConfiguration(AMQQueue 
queue)
+    {
+        CompositeConfiguration queueConfiguration = null;
+        if (_config == null)
+            return null;
+
+        Configuration vHostConfiguration = 
_config.subset(VIRTUALHOST_PROPERTY_BASE + queue.getVirtualHost().getName());
+
+        if (vHostConfiguration == null)
+            return null;
+
+        Configuration defaultQueueConfiguration = 
vHostConfiguration.subset("queues");
+        if (defaultQueueConfiguration != null)
+        {
+            queueConfiguration = new CompositeConfiguration();
+            queueConfiguration.addConfiguration(defaultQueueConfiguration);
+        }
+
+        return queueConfiguration;
     }
 
     private void configureQueue(VirtualHost virtualHost, String 
queueNameString, Configuration configuration) throws AMQException, 
ConfigurationException

Modified: 
incubator/qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/handler/QueueDeclareHandler.java
URL: 
http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/handler/QueueDeclareHandler.java?view=diff&rev=518570&r1=518569&r2=518570
==============================================================================
--- 
incubator/qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/handler/QueueDeclareHandler.java
 (original)
+++ 
incubator/qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/handler/QueueDeclareHandler.java
 Thu Mar 15 03:42:24 2007
@@ -34,6 +34,7 @@
 import org.apache.qpid.protocol.AMQConstant;
 import org.apache.qpid.protocol.AMQMethodEvent;
 import org.apache.qpid.server.configuration.Configurator;
+import org.apache.qpid.server.configuration.VirtualHostConfiguration;
 import org.apache.qpid.server.exchange.Exchange;
 import org.apache.qpid.server.exchange.ExchangeRegistry;
 import org.apache.qpid.server.protocol.AMQProtocolSession;
@@ -44,6 +45,7 @@
 import org.apache.qpid.server.store.MessageStore;
 import org.apache.qpid.server.virtualhost.VirtualHost;
 import org.apache.qpid.server.AMQChannel;
+import org.apache.commons.configuration.Configuration;
 
 public class QueueDeclareHandler implements 
StateAwareMethodListener<QueueDeclareBody>
 {
@@ -192,6 +194,12 @@
 
         }
 
+        Configuration virtualHostDefaultQueueConfiguration = 
VirtualHostConfiguration.getDefaultQueueConfiguration(queue);
+        if (virtualHostDefaultQueueConfiguration != null)
+        {
+            Configurator.configure(queue, 
virtualHostDefaultQueueConfiguration);
+        }
+        
         return queue;
     }
 }


Reply via email to