diff options
| author | Martin Ritchie <ritchiem@apache.org> | 2010-05-20 15:19:25 +0000 |
|---|---|---|
| committer | Martin Ritchie <ritchiem@apache.org> | 2010-05-20 15:19:25 +0000 |
| commit | 440a0bc536faeb0454732153bedb1262065810d2 (patch) | |
| tree | bd4d9ad51a144de73bef9389bf5c39d3f819c7a4 | |
| parent | 875b9b35146a0e1c9da2c4de7c1dcf0a45698f52 (diff) | |
| download | qpid-python-440a0bc536faeb0454732153bedb1262065810d2.tar.gz | |
QPID-1447 : Clean up TopicDeletePolicy Test and provide validation and testing of Configuration loading.
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@946668 13f79535-47bb-0310-9956-ffa450edef68
5 files changed, 74 insertions, 12 deletions
diff --git a/java/broker-plugins/experimental/slowconsumerdetection/src/main/java/org/apache/qpid/server/virtualhost/plugin/policies/TopicDeletePolicy.java b/java/broker-plugins/experimental/slowconsumerdetection/src/main/java/org/apache/qpid/server/virtualhost/plugin/policies/TopicDeletePolicy.java index 36892cdcb0..04abaacc74 100644 --- a/java/broker-plugins/experimental/slowconsumerdetection/src/main/java/org/apache/qpid/server/virtualhost/plugin/policies/TopicDeletePolicy.java +++ b/java/broker-plugins/experimental/slowconsumerdetection/src/main/java/org/apache/qpid/server/virtualhost/plugin/policies/TopicDeletePolicy.java @@ -20,6 +20,7 @@ */ package org.apache.qpid.server.virtualhost.plugin.policies; +import org.apache.commons.configuration.ConfigurationException; import org.apache.log4j.Logger; import org.apache.qpid.AMQException; import org.apache.qpid.protocol.AMQConstant; @@ -39,19 +40,12 @@ public class TopicDeletePolicy implements SlowConsumerPolicyPlugin public static class TopicDeletePolicyFactory implements SlowConsumerPolicyPluginFactory { - public SlowConsumerPolicyPlugin newInstance(SlowConsumerDetectionPolicyConfiguration configuration) + public SlowConsumerPolicyPlugin newInstance(SlowConsumerDetectionPolicyConfiguration configuration) throws ConfigurationException { TopicDeletePolicyConfiguration config = configuration.getConfiguration(TopicDeletePolicyConfiguration.class); - - if (config != null) - { - return new TopicDeletePolicy(config); - } - else - { - return null; - } + + return new TopicDeletePolicy(config); } public String getPluginName() diff --git a/java/broker-plugins/experimental/slowconsumerdetection/src/main/java/org/apache/qpid/server/virtualhost/plugin/policies/TopicDeletePolicyConfiguration.java b/java/broker-plugins/experimental/slowconsumerdetection/src/main/java/org/apache/qpid/server/virtualhost/plugin/policies/TopicDeletePolicyConfiguration.java index 69996b026f..30c1b05b4e 100644 --- a/java/broker-plugins/experimental/slowconsumerdetection/src/main/java/org/apache/qpid/server/virtualhost/plugin/policies/TopicDeletePolicyConfiguration.java +++ b/java/broker-plugins/experimental/slowconsumerdetection/src/main/java/org/apache/qpid/server/virtualhost/plugin/policies/TopicDeletePolicyConfiguration.java @@ -56,7 +56,8 @@ public class TopicDeletePolicyConfiguration extends ConfigurationPlugin public boolean deletePersistent() { - return _configuration.containsKey("delete-persistent"); + // If we don't have configuration then we don't deletePersistent Queues + return (_configuration != null && _configuration.containsKey("delete-persistent")); } } diff --git a/java/broker-plugins/experimental/slowconsumerdetection/src/main/java/org/apache/qpid/slowconsumerdetection/policies/SlowConsumerPolicyPluginFactory.java b/java/broker-plugins/experimental/slowconsumerdetection/src/main/java/org/apache/qpid/slowconsumerdetection/policies/SlowConsumerPolicyPluginFactory.java index 2bd7b67e91..c142139009 100644 --- a/java/broker-plugins/experimental/slowconsumerdetection/src/main/java/org/apache/qpid/slowconsumerdetection/policies/SlowConsumerPolicyPluginFactory.java +++ b/java/broker-plugins/experimental/slowconsumerdetection/src/main/java/org/apache/qpid/slowconsumerdetection/policies/SlowConsumerPolicyPluginFactory.java @@ -20,11 +20,12 @@ */ package org.apache.qpid.slowconsumerdetection.policies; +import org.apache.commons.configuration.ConfigurationException; import org.apache.qpid.server.configuration.plugin.SlowConsumerDetectionPolicyConfiguration; import org.apache.qpid.server.plugins.PluginFactory; public interface SlowConsumerPolicyPluginFactory extends PluginFactory { - public SlowConsumerPolicyPlugin newInstance(SlowConsumerDetectionPolicyConfiguration configuration); + public SlowConsumerPolicyPlugin newInstance(SlowConsumerDetectionPolicyConfiguration configuration) throws ConfigurationException; } diff --git a/java/broker-plugins/experimental/slowconsumerdetection/src/test/java/org/apache/qpid/server/virtualhost/plugin/policies/TopicDeletePolicyConfigurationTest.java b/java/broker-plugins/experimental/slowconsumerdetection/src/test/java/org/apache/qpid/server/virtualhost/plugin/policies/TopicDeletePolicyConfigurationTest.java new file mode 100644 index 0000000000..ba203fdf84 --- /dev/null +++ b/java/broker-plugins/experimental/slowconsumerdetection/src/test/java/org/apache/qpid/server/virtualhost/plugin/policies/TopicDeletePolicyConfigurationTest.java @@ -0,0 +1,65 @@ +/* + * + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + * + */ +package org.apache.qpid.server.virtualhost.plugin.policies; + +import junit.framework.TestCase; +import org.apache.commons.configuration.CompositeConfiguration; +import org.apache.commons.configuration.ConfigurationException; +import org.apache.commons.configuration.XMLConfiguration; + +public class TopicDeletePolicyConfigurationTest extends TestCase +{ + + public void testNoConfigNoDeletePersistent() + { + TopicDeletePolicyConfiguration config = new TopicDeletePolicyConfiguration(); + + assertFalse("TopicDelete Configuration with no config should not delete persistent queues.", + config.deletePersistent()); + } + + + public void testConfigDeletePersistent() + { + TopicDeletePolicyConfiguration config = new TopicDeletePolicyConfiguration(); + + XMLConfiguration xmlconfig = new XMLConfiguration(); + + xmlconfig.addProperty("delete-persistent",""); + + // Create a CompositeConfiguration as this is what the broker uses + CompositeConfiguration composite = new CompositeConfiguration(); + composite.addConfiguration(xmlconfig); + + try + { + config.setConfiguration("",composite); + } + catch (ConfigurationException e) + { + fail(e.getMessage()); + } + + assertTrue("A configured TopicDelete should delete persistent queues.", + config.deletePersistent()); + } + +} diff --git a/java/broker-plugins/experimental/slowconsumerdetection/src/test/java/org/apache/qpid/server/virtualhost/plugin/policies/TopicDeletePolicyTest.java b/java/broker-plugins/experimental/slowconsumerdetection/src/test/java/org/apache/qpid/server/virtualhost/plugin/policies/TopicDeletePolicyTest.java index 9a7ab67b85..aba1a339ef 100644 --- a/java/broker-plugins/experimental/slowconsumerdetection/src/test/java/org/apache/qpid/server/virtualhost/plugin/policies/TopicDeletePolicyTest.java +++ b/java/broker-plugins/experimental/slowconsumerdetection/src/test/java/org/apache/qpid/server/virtualhost/plugin/policies/TopicDeletePolicyTest.java @@ -228,6 +228,7 @@ public class TopicDeletePolicyTest extends TestCase */ public void testPersistentTopicIsClosedAndDeleted() { + //Set the config to delete persistent queues _config.getConfig().addProperty("delete-persistent", ""); TopicDeletePolicy policy = new TopicDeletePolicy(_config); |
