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;
}
}