diff options
3 files changed, 54 insertions, 44 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 9da36c9b08..8e64aee174 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 @@ -24,6 +24,7 @@ import java.util.List; import java.util.Map; import java.util.HashMap; +import org.apache.commons.configuration.CompositeConfiguration; import org.apache.commons.configuration.Configuration; import org.apache.commons.configuration.ConfigurationException; import org.apache.qpid.server.configuration.plugins.ConfigurationPlugin; @@ -35,13 +36,17 @@ public class QueueConfiguration extends ConfigurationPlugin private String _name; private VirtualHostConfiguration _vHostConfig; - public QueueConfiguration(String name, Configuration config, VirtualHostConfiguration virtualHostConfiguration) throws ConfigurationException + public QueueConfiguration(String name, VirtualHostConfiguration virtualHostConfiguration) throws ConfigurationException { _vHostConfig = virtualHostConfiguration; - _config = config; _name = name; - setConfiguration("virtualhosts.virtualhost.queues.queue", config); + CompositeConfiguration mungedConf = new CompositeConfiguration(); + mungedConf.addConfiguration(_vHostConfig.getConfig().subset("queues.queue." + name)); + mungedConf.addConfiguration(_vHostConfig.getConfig().subset("queues")); + _config = mungedConf; + + setConfiguration("virtualhosts.virtualhost.queues.queue", mungedConf); } public String[] getElementsProcessed() 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 09ae3bd920..d3e5921e79 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 @@ -64,10 +64,7 @@ public class VirtualHostConfiguration extends ConfigurationPlugin while (i.hasNext()) { String queueName = (String) i.next(); - CompositeConfiguration mungedConf = new CompositeConfiguration(); - mungedConf.addConfiguration(_config.subset("queues.queue." + queueName)); - mungedConf.addConfiguration(_config.subset("queues")); - _queues.put(queueName, new QueueConfiguration(queueName, mungedConf, this)); + _queues.put(queueName, new QueueConfiguration(queueName, this)); } i = _config.getList("exchanges.exchange.name").iterator(); @@ -149,7 +146,7 @@ public class VirtualHostConfiguration extends ConfigurationPlugin { try { - return new QueueConfiguration(queueName, new PropertiesConfiguration(), this); + return new QueueConfiguration(queueName, this); } catch (ConfigurationException e) { diff --git a/java/broker/src/test/java/org/apache/qpid/server/configuration/QueueConfigurationTest.java b/java/broker/src/test/java/org/apache/qpid/server/configuration/QueueConfigurationTest.java index 5091e0285c..d2f2ae5eea 100644 --- a/java/broker/src/test/java/org/apache/qpid/server/configuration/QueueConfigurationTest.java +++ b/java/broker/src/test/java/org/apache/qpid/server/configuration/QueueConfigurationTest.java @@ -21,23 +21,22 @@ package org.apache.qpid.server.configuration; import junit.framework.TestCase; - +import org.apache.commons.configuration.CompositeConfiguration; import org.apache.commons.configuration.ConfigurationException; import org.apache.commons.configuration.PropertiesConfiguration; public class QueueConfigurationTest extends TestCase { - + private VirtualHostConfiguration _emptyConf; private PropertiesConfiguration _env; - private ServerConfiguration _fullServerConf; private VirtualHostConfiguration _fullHostConf; public void setUp() throws Exception { _env = new PropertiesConfiguration(); _emptyConf = new VirtualHostConfiguration("test", _env); - + PropertiesConfiguration fullEnv = new PropertiesConfiguration(); fullEnv.setProperty("queues.maximumMessageAge", 1); fullEnv.setProperty("queues.maximumQueueDepth", 1); @@ -46,92 +45,101 @@ public class QueueConfigurationTest extends TestCase fullEnv.setProperty("queues.minimumAlertRepeatGap", 1); _fullHostConf = new VirtualHostConfiguration("test", fullEnv); - + } public void testGetMaximumMessageAge() throws ConfigurationException { // Check default value - QueueConfiguration qConf = new QueueConfiguration("test", _env, _emptyConf); + QueueConfiguration qConf = new QueueConfiguration("test", _emptyConf); assertEquals(0, qConf.getMaximumMessageAge()); // Check explicit value - PropertiesConfiguration fullEnv = new PropertiesConfiguration(); - fullEnv.setProperty("maximumMessageAge", 2); - qConf = new QueueConfiguration("test", fullEnv, _fullHostConf); + VirtualHostConfiguration vhostConfig = overrideConfiguration("maximumMessageAge", 2); + + qConf = new QueueConfiguration("test", vhostConfig); assertEquals(2, qConf.getMaximumMessageAge()); - + // Check inherited value - qConf = new QueueConfiguration("test", _env, _fullHostConf); + qConf = new QueueConfiguration("test", _fullHostConf); assertEquals(1, qConf.getMaximumMessageAge()); } public void testGetMaximumQueueDepth() throws ConfigurationException { // Check default value - QueueConfiguration qConf = new QueueConfiguration("test", _env, _emptyConf); + QueueConfiguration qConf = new QueueConfiguration("test", _emptyConf); assertEquals(0, qConf.getMaximumQueueDepth()); // Check explicit value - PropertiesConfiguration fullEnv = new PropertiesConfiguration(); - fullEnv.setProperty("maximumQueueDepth", 2); - qConf = new QueueConfiguration("test", fullEnv, _fullHostConf); + VirtualHostConfiguration vhostConfig = overrideConfiguration("maximumQueueDepth", 2); + qConf = new QueueConfiguration("test", vhostConfig); assertEquals(2, qConf.getMaximumQueueDepth()); - + // Check inherited value - qConf = new QueueConfiguration("test", _env, _fullHostConf); + qConf = new QueueConfiguration("test", _fullHostConf); assertEquals(1, qConf.getMaximumQueueDepth()); } public void testGetMaximumMessageSize() throws ConfigurationException { // Check default value - QueueConfiguration qConf = new QueueConfiguration("test", _env, _emptyConf); + QueueConfiguration qConf = new QueueConfiguration("test", _emptyConf); assertEquals(0, qConf.getMaximumMessageSize()); // Check explicit value - PropertiesConfiguration fullEnv = new PropertiesConfiguration(); - fullEnv.setProperty("maximumMessageSize", 2); - qConf = new QueueConfiguration("test", fullEnv, _fullHostConf); + VirtualHostConfiguration vhostConfig = overrideConfiguration("maximumMessageSize", 2); + qConf = new QueueConfiguration("test", vhostConfig); assertEquals(2, qConf.getMaximumMessageSize()); - + // Check inherited value - qConf = new QueueConfiguration("test", _env, _fullHostConf); + qConf = new QueueConfiguration("test", _fullHostConf); assertEquals(1, qConf.getMaximumMessageSize()); } public void testGetMaximumMessageCount() throws ConfigurationException { - // Check default value - QueueConfiguration qConf = new QueueConfiguration("test", _env, _emptyConf); + // Check default value + QueueConfiguration qConf = new QueueConfiguration("test", _emptyConf); assertEquals(0, qConf.getMaximumMessageCount()); // Check explicit value - PropertiesConfiguration fullEnv = new PropertiesConfiguration(); - fullEnv.setProperty("maximumMessageCount", 2); - qConf = new QueueConfiguration("test", fullEnv, _fullHostConf); + VirtualHostConfiguration vhostConfig = overrideConfiguration("maximumMessageCount", 2); + qConf = new QueueConfiguration("test", vhostConfig); assertEquals(2, qConf.getMaximumMessageCount()); - + // Check inherited value - qConf = new QueueConfiguration("test", _env, _fullHostConf); + qConf = new QueueConfiguration("test", _fullHostConf); assertEquals(1, qConf.getMaximumMessageCount()); } public void testGetMinimumAlertRepeatGap() throws ConfigurationException { // Check default value - QueueConfiguration qConf = new QueueConfiguration("test", _env, _emptyConf); + QueueConfiguration qConf = new QueueConfiguration("test", _emptyConf); assertEquals(0, qConf.getMinimumAlertRepeatGap()); // Check explicit value - PropertiesConfiguration fullEnv = new PropertiesConfiguration(); - fullEnv.setProperty("minimumAlertRepeatGap", 2); - qConf = new QueueConfiguration("test", fullEnv, _fullHostConf); + VirtualHostConfiguration vhostConfig = overrideConfiguration("minimumAlertRepeatGap", 2); + qConf = new QueueConfiguration("test", vhostConfig); assertEquals(2, qConf.getMinimumAlertRepeatGap()); - + // Check inherited value - qConf = new QueueConfiguration("test", _env, _fullHostConf); + qConf = new QueueConfiguration("test", _fullHostConf); assertEquals(1, qConf.getMinimumAlertRepeatGap()); } + private VirtualHostConfiguration overrideConfiguration(String property, int value) + throws ConfigurationException + { + PropertiesConfiguration queueConfig = new PropertiesConfiguration(); + queueConfig.setProperty("queues.queue.test." + property, value); + + CompositeConfiguration config = new CompositeConfiguration(); + config.addConfiguration(_fullHostConf.getConfig()); + config.addConfiguration(queueConfig); + + return new VirtualHostConfiguration("test", config); + } + } |