summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMartin Ritchie <ritchiem@apache.org>2010-05-20 15:19:25 +0000
committerMartin Ritchie <ritchiem@apache.org>2010-05-20 15:19:25 +0000
commit440a0bc536faeb0454732153bedb1262065810d2 (patch)
treebd4d9ad51a144de73bef9389bf5c39d3f819c7a4
parent875b9b35146a0e1c9da2c4de7c1dcf0a45698f52 (diff)
downloadqpid-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
-rw-r--r--java/broker-plugins/experimental/slowconsumerdetection/src/main/java/org/apache/qpid/server/virtualhost/plugin/policies/TopicDeletePolicy.java14
-rw-r--r--java/broker-plugins/experimental/slowconsumerdetection/src/main/java/org/apache/qpid/server/virtualhost/plugin/policies/TopicDeletePolicyConfiguration.java3
-rw-r--r--java/broker-plugins/experimental/slowconsumerdetection/src/main/java/org/apache/qpid/slowconsumerdetection/policies/SlowConsumerPolicyPluginFactory.java3
-rw-r--r--java/broker-plugins/experimental/slowconsumerdetection/src/test/java/org/apache/qpid/server/virtualhost/plugin/policies/TopicDeletePolicyConfigurationTest.java65
-rw-r--r--java/broker-plugins/experimental/slowconsumerdetection/src/test/java/org/apache/qpid/server/virtualhost/plugin/policies/TopicDeletePolicyTest.java1
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);