summaryrefslogtreecommitdiff
path: root/java
diff options
context:
space:
mode:
authorBhupendra Bhusman Bhardwaj <bhupendrab@apache.org>2007-03-15 10:42:24 +0000
committerBhupendra Bhusman Bhardwaj <bhupendrab@apache.org>2007-03-15 10:42:24 +0000
commitbbc2f087fb974cd976c423bdbdd9ca6123d06ccb (patch)
tree4c9c688f2e0b14eb6fda6767406ed4f4127021a8 /java
parentb62a0b64225fc5a8654c246c4f143d534b016848 (diff)
downloadqpid-python-bbc2f087fb974cd976c423bdbdd9ca6123d06ccb.tar.gz
QPID-415
Default configuration for queues in virtualHost.xml doesn't get applied to the queue created after broker startup git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@518570 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'java')
-rw-r--r--java/broker/src/main/java/org/apache/qpid/server/AMQBrokerManagerMBean.java9
-rw-r--r--java/broker/src/main/java/org/apache/qpid/server/configuration/VirtualHostConfiguration.java23
-rw-r--r--java/broker/src/main/java/org/apache/qpid/server/handler/QueueDeclareHandler.java8
3 files changed, 39 insertions, 1 deletions
diff --git a/java/broker/src/main/java/org/apache/qpid/server/AMQBrokerManagerMBean.java b/java/broker/src/main/java/org/apache/qpid/server/AMQBrokerManagerMBean.java
index adb2630bcf..386b0e6c45 100644
--- a/java/broker/src/main/java/org/apache/qpid/server/AMQBrokerManagerMBean.java
+++ b/java/broker/src/main/java/org/apache/qpid/server/AMQBrokerManagerMBean.java
@@ -36,6 +36,9 @@ import org.apache.qpid.server.queue.AMQQueue;
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
@@ -158,6 +161,12 @@ public class AMQBrokerManagerMBean extends AMQManagedObject implements ManagedBr
{
_messageStore.createQueue(queue);
}
+
+ Configuration virtualHostDefaultQueueConfiguration = VirtualHostConfiguration.getDefaultQueueConfiguration(queue);
+ if (virtualHostDefaultQueueConfiguration != null)
+ {
+ Configurator.configure(queue, virtualHostDefaultQueueConfiguration);
+ }
_queueRegistry.registerQueue(queue);
}
catch (AMQException ex)
diff --git a/java/broker/src/main/java/org/apache/qpid/server/configuration/VirtualHostConfiguration.java b/java/broker/src/main/java/org/apache/qpid/server/configuration/VirtualHostConfiguration.java
index a35a46f305..8573902af4 100644
--- a/java/broker/src/main/java/org/apache/qpid/server/configuration/VirtualHostConfiguration.java
+++ b/java/broker/src/main/java/org/apache/qpid/server/configuration/VirtualHostConfiguration.java
@@ -43,7 +43,7 @@ public class VirtualHostConfiguration
{
private static final Logger _logger = Logger.getLogger(VirtualHostConfiguration.class);
- XMLConfiguration _config;
+ private static XMLConfiguration _config;
private static final String VIRTUALHOST_PROPERTY_BASE = "virtualhost.";
@@ -128,6 +128,27 @@ public class VirtualHostConfiguration
}
}
+ 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
{
CompositeConfiguration queueConfiguration = new CompositeConfiguration();
diff --git a/java/broker/src/main/java/org/apache/qpid/server/handler/QueueDeclareHandler.java b/java/broker/src/main/java/org/apache/qpid/server/handler/QueueDeclareHandler.java
index 8b2467f47d..9e0a1019f2 100644
--- a/java/broker/src/main/java/org/apache/qpid/server/handler/QueueDeclareHandler.java
+++ b/java/broker/src/main/java/org/apache/qpid/server/handler/QueueDeclareHandler.java
@@ -34,6 +34,7 @@ import org.apache.qpid.framing.QueueDeclareOkBody;
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.state.StateAwareMethodListener;
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 @@ public class QueueDeclareHandler implements StateAwareMethodListener<QueueDeclar
}
+ Configuration virtualHostDefaultQueueConfiguration = VirtualHostConfiguration.getDefaultQueueConfiguration(queue);
+ if (virtualHostDefaultQueueConfiguration != null)
+ {
+ Configurator.configure(queue, virtualHostDefaultQueueConfiguration);
+ }
+
return queue;
}
}