Author: ritchiem
Date: Fri May 21 21:09:52 2010
New Revision: 947177

URL: http://svn.apache.org/viewvc?rev=947177&view=rev
Log:
QPID-2581 : Update ConfigurationPlugin to provide a validateConfiguration() 
method simplifying the plugins

Modified:
    
qpid/trunk/qpid/java/broker-plugins/experimental/slowconsumerdetection/src/main/java/org/apache/qpid/server/configuration/plugin/SlowConsumerDetectionConfiguration.java
    
qpid/trunk/qpid/java/broker-plugins/experimental/slowconsumerdetection/src/main/java/org/apache/qpid/server/configuration/plugin/SlowConsumerDetectionPolicyConfiguration.java
    
qpid/trunk/qpid/java/broker-plugins/experimental/slowconsumerdetection/src/main/java/org/apache/qpid/server/configuration/plugin/SlowConsumerDetectionQueueConfiguration.java
    
qpid/trunk/qpid/java/broker-plugins/experimental/slowconsumerdetection/src/main/java/org/apache/qpid/server/virtualhost/plugin/policies/TopicDeletePolicyConfiguration.java
    
qpid/trunk/qpid/java/broker-plugins/experimental/slowconsumerdetection/src/test/java/org/apache/qpid/server/virtualhost/plugin/SlowConsumerDetectionConfigurationTest.java
    
qpid/trunk/qpid/java/broker-plugins/experimental/slowconsumerdetection/src/test/java/org/apache/qpid/server/virtualhost/plugin/SlowConsumerDetectionQueueConfigurationTest.java
    
qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/QueueConfiguration.java
    
qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/ServerConfiguration.java
    
qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/VirtualHostConfiguration.java
    
qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/plugins/ConfigurationPlugin.java
    
qpid/trunk/qpid/java/broker/src/test/java/org/apache/qpid/server/configuration/plugins/ConfigurationPluginTest.java

Modified: 
qpid/trunk/qpid/java/broker-plugins/experimental/slowconsumerdetection/src/main/java/org/apache/qpid/server/configuration/plugin/SlowConsumerDetectionConfiguration.java
URL: 
http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-plugins/experimental/slowconsumerdetection/src/main/java/org/apache/qpid/server/configuration/plugin/SlowConsumerDetectionConfiguration.java?rev=947177&r1=947176&r2=947177&view=diff
==============================================================================
--- 
qpid/trunk/qpid/java/broker-plugins/experimental/slowconsumerdetection/src/main/java/org/apache/qpid/server/configuration/plugin/SlowConsumerDetectionConfiguration.java
 (original)
+++ 
qpid/trunk/qpid/java/broker-plugins/experimental/slowconsumerdetection/src/main/java/org/apache/qpid/server/configuration/plugin/SlowConsumerDetectionConfiguration.java
 Fri May 21 21:09:52 2010
@@ -65,39 +65,11 @@ public class SlowConsumerDetectionConfig
     }
 
     @Override
-    public void setConfiguration(String path, Configuration configuration) 
throws ConfigurationException
+    public void validateConfiguration() throws ConfigurationException
     {
-        super.setConfiguration(path, configuration);
+        validatePositiveLong("delay");
 
-        //Validate Configuration
-
-        try
-        {
-            long delay = _configuration.getLong("delay");
-            if (delay <= 0)
-            {
-                throw new ConfigurationException("Slow Consumer Detection 
Delay must be a Positive Long value.");
-            }
-        }
-        catch (Exception e)
-        {
-            Throwable last = e;
-
-            // Find the first cause
-            if (e instanceof ConversionException)
-            {
-                Throwable t = e.getCause();
-                while (t != null)
-                {
-                    last = t;
-                    t = last.getCause();
-                }
-            }
-
-            throw new ConfigurationException("Unable to configure Slow 
Consumer Detection invalid delay:"+ _configuration.getString("delay"), last);
-        }
-
-        String timeUnit = _configuration.getString("timeunit");
+        String timeUnit = getStringValue("timeunit");
 
 
         if (timeUnit != null)
@@ -108,7 +80,7 @@ public class SlowConsumerDetectionConfig
             }
             catch (IllegalArgumentException iae)
             {
-                throw new ConfigurationException("Unable to configure Slow 
Consumer Detection invalid TimeUnit:" + timeUnit);            
+                throw new ConfigurationException("Unable to configure Slow 
Consumer Detection invalid TimeUnit:" + timeUnit);
             }
         }
 

Modified: 
qpid/trunk/qpid/java/broker-plugins/experimental/slowconsumerdetection/src/main/java/org/apache/qpid/server/configuration/plugin/SlowConsumerDetectionPolicyConfiguration.java
URL: 
http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-plugins/experimental/slowconsumerdetection/src/main/java/org/apache/qpid/server/configuration/plugin/SlowConsumerDetectionPolicyConfiguration.java?rev=947177&r1=947176&r2=947177&view=diff
==============================================================================
--- 
qpid/trunk/qpid/java/broker-plugins/experimental/slowconsumerdetection/src/main/java/org/apache/qpid/server/configuration/plugin/SlowConsumerDetectionPolicyConfiguration.java
 (original)
+++ 
qpid/trunk/qpid/java/broker-plugins/experimental/slowconsumerdetection/src/main/java/org/apache/qpid/server/configuration/plugin/SlowConsumerDetectionPolicyConfiguration.java
 Fri May 21 21:09:52 2010
@@ -59,10 +59,9 @@ public class SlowConsumerDetectionPolicy
         return getStringValue("name");
     }
 
-    public void setConfiguration(String path, Configuration configuration) 
throws ConfigurationException
+    @Override
+    public void validateConfiguration() throws ConfigurationException
     {
-        super.setConfiguration(path,configuration);
-
         if (getPolicyName() == null)
         {
             throw new ConfigurationException("No Slow consumer policy 
defined.");

Modified: 
qpid/trunk/qpid/java/broker-plugins/experimental/slowconsumerdetection/src/main/java/org/apache/qpid/server/configuration/plugin/SlowConsumerDetectionQueueConfiguration.java
URL: 
http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-plugins/experimental/slowconsumerdetection/src/main/java/org/apache/qpid/server/configuration/plugin/SlowConsumerDetectionQueueConfiguration.java?rev=947177&r1=947176&r2=947177&view=diff
==============================================================================
--- 
qpid/trunk/qpid/java/broker-plugins/experimental/slowconsumerdetection/src/main/java/org/apache/qpid/server/configuration/plugin/SlowConsumerDetectionQueueConfiguration.java
 (original)
+++ 
qpid/trunk/qpid/java/broker-plugins/experimental/slowconsumerdetection/src/main/java/org/apache/qpid/server/configuration/plugin/SlowConsumerDetectionQueueConfiguration.java
 Fri May 21 21:09:52 2010
@@ -81,10 +81,8 @@ public class SlowConsumerDetectionQueueC
     }
 
     @Override
-    public void setConfiguration(String path, Configuration configuration) 
throws ConfigurationException
+     public void validateConfiguration() throws ConfigurationException
     {
-        super.setConfiguration(path, configuration);
-
         if (!containsPositiveLong("messageAge") &&
             !containsPositiveLong("depth") &&
             !containsPositiveLong("messageCount"))
@@ -102,8 +100,7 @@ public class SlowConsumerDetectionQueueC
 
         if (policyConfig == null)
         {
-            throw new ConfigurationException("No Slow Consumer Policy 
specified at:'" +
-                                             path + "'. Known Policies:" + 
factories.keySet());
+            throw new ConfigurationException("No Slow Consumer Policy 
specified. Known Policies:" + factories.keySet());
         }
 
         if (_logger.isDebugEnabled())

Modified: 
qpid/trunk/qpid/java/broker-plugins/experimental/slowconsumerdetection/src/main/java/org/apache/qpid/server/virtualhost/plugin/policies/TopicDeletePolicyConfiguration.java
URL: 
http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-plugins/experimental/slowconsumerdetection/src/main/java/org/apache/qpid/server/virtualhost/plugin/policies/TopicDeletePolicyConfiguration.java?rev=947177&r1=947176&r2=947177&view=diff
==============================================================================
--- 
qpid/trunk/qpid/java/broker-plugins/experimental/slowconsumerdetection/src/main/java/org/apache/qpid/server/virtualhost/plugin/policies/TopicDeletePolicyConfiguration.java
 (original)
+++ 
qpid/trunk/qpid/java/broker-plugins/experimental/slowconsumerdetection/src/main/java/org/apache/qpid/server/virtualhost/plugin/policies/TopicDeletePolicyConfiguration.java
 Fri May 21 21:09:52 2010
@@ -54,6 +54,12 @@ public class TopicDeletePolicyConfigurat
         return new String[]{"delete-persistent"};
     }
 
+    @Override
+    public void validateConfiguration() throws ConfigurationException
+    {
+        // No validation requried.
+    }
+
     public boolean deletePersistent()
     {
         // If we don't have configuration then we don't deletePersistent 
Queues 

Modified: 
qpid/trunk/qpid/java/broker-plugins/experimental/slowconsumerdetection/src/test/java/org/apache/qpid/server/virtualhost/plugin/SlowConsumerDetectionConfigurationTest.java
URL: 
http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-plugins/experimental/slowconsumerdetection/src/test/java/org/apache/qpid/server/virtualhost/plugin/SlowConsumerDetectionConfigurationTest.java?rev=947177&r1=947176&r2=947177&view=diff
==============================================================================
--- 
qpid/trunk/qpid/java/broker-plugins/experimental/slowconsumerdetection/src/test/java/org/apache/qpid/server/virtualhost/plugin/SlowConsumerDetectionConfigurationTest.java
 (original)
+++ 
qpid/trunk/qpid/java/broker-plugins/experimental/slowconsumerdetection/src/test/java/org/apache/qpid/server/virtualhost/plugin/SlowConsumerDetectionConfigurationTest.java
 Fri May 21 21:09:52 2010
@@ -138,7 +138,7 @@ public class SlowConsumerDetectionConfig
             assertEquals("Cause not correct",
                          ConfigurationException.class, cause.getClass());
             assertEquals("Incorrect message.",
-                         "Slow Consumer Detection Delay must be a Positive 
Long value.",
+                         "SlowConsumerDetectionConfiguration: 'delay' must be 
a Positive Long value.",
                          cause.getMessage());
         }
     }
@@ -170,7 +170,7 @@ public class SlowConsumerDetectionConfig
             assertEquals("Cause not correct",
                          ConfigurationException.class, cause.getClass());
             assertEquals("Incorrect message.",
-                         "Slow Consumer Detection Delay must be a Positive 
Long value.",
+                         "SlowConsumerDetectionConfiguration: 'delay' must be 
a Positive Long value.",
                          cause.getMessage());
         }
     }
@@ -194,7 +194,7 @@ public class SlowConsumerDetectionConfig
         }
         catch (ConfigurationException e)
         {
-            assertEquals("Incorrect message.", "Unable to configure Slow 
Consumer Detection invalid delay:null", e.getMessage());
+            assertEquals("Incorrect message.", 
"SlowConsumerDetectionConfiguration: unable to configure invalid delay:null", 
e.getMessage());
         }
     }
 
@@ -205,7 +205,7 @@ public class SlowConsumerDetectionConfig
 
         String TIMEUNIT = "foo";
         XMLConfiguration xmlconfig = new XMLConfiguration();
-
+                                                                               
 
         xmlconfig.addProperty("delay", "10");
         xmlconfig.addProperty("timeunit", TIMEUNIT);
 

Modified: 
qpid/trunk/qpid/java/broker-plugins/experimental/slowconsumerdetection/src/test/java/org/apache/qpid/server/virtualhost/plugin/SlowConsumerDetectionQueueConfigurationTest.java
URL: 
http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-plugins/experimental/slowconsumerdetection/src/test/java/org/apache/qpid/server/virtualhost/plugin/SlowConsumerDetectionQueueConfigurationTest.java?rev=947177&r1=947176&r2=947177&view=diff
==============================================================================
--- 
qpid/trunk/qpid/java/broker-plugins/experimental/slowconsumerdetection/src/test/java/org/apache/qpid/server/virtualhost/plugin/SlowConsumerDetectionQueueConfigurationTest.java
 (original)
+++ 
qpid/trunk/qpid/java/broker-plugins/experimental/slowconsumerdetection/src/test/java/org/apache/qpid/server/virtualhost/plugin/SlowConsumerDetectionQueueConfigurationTest.java
 Fri May 21 21:09:52 2010
@@ -69,7 +69,7 @@ public class SlowConsumerDetectionQueueC
         }
         catch (ConfigurationException e)
         {
-            assertEquals("No Slow Consumer Policy specified at:''. Known 
Policies:[]",
+            assertEquals("No Slow Consumer Policy specified. Known 
Policies:[]",
                          e.getMessage());
         }
     }
@@ -125,7 +125,7 @@ public class SlowConsumerDetectionQueueC
         }
         catch (ConfigurationException e)
         {
-            assertEquals("No Slow Consumer Policy specified at:''. Known 
Policies:[]",
+            assertEquals("No Slow Consumer Policy specified. Known 
Policies:[]",
                          e.getMessage());
         }
     }
@@ -154,7 +154,7 @@ public class SlowConsumerDetectionQueueC
         }
         catch (ConfigurationException e)
         {
-            assertEquals("No Slow Consumer Policy specified at:''. Known 
Policies:[]",
+            assertEquals("No Slow Consumer Policy specified. Known 
Policies:[]",
                          e.getMessage());
         }
     }
@@ -183,7 +183,7 @@ public class SlowConsumerDetectionQueueC
         }
         catch (ConfigurationException e)
         {
-            assertEquals("No Slow Consumer Policy specified at:''. Known 
Policies:[]",
+            assertEquals("No Slow Consumer Policy specified. Known 
Policies:[]",
                          e.getMessage());
         }
     }

Modified: 
qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/QueueConfiguration.java
URL: 
http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/QueueConfiguration.java?rev=947177&r1=947176&r2=947177&view=diff
==============================================================================
--- 
qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/QueueConfiguration.java
 (original)
+++ 
qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/QueueConfiguration.java
 Fri May 21 21:09:52 2010
@@ -68,6 +68,12 @@ public class QueueConfiguration extends 
         };
     }
 
+    @Override
+    public void validateConfiguration() throws ConfigurationException
+    {
+        //Currently doesn't do validation
+    }
+
     public VirtualHostConfiguration getVirtualHostConfiguration()
     {
         return _vHostConfig;

Modified: 
qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/ServerConfiguration.java
URL: 
http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/ServerConfiguration.java?rev=947177&r1=947176&r2=947177&view=diff
==============================================================================
--- 
qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/ServerConfiguration.java
 (original)
+++ 
qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/ServerConfiguration.java
 Fri May 21 21:09:52 2010
@@ -192,6 +192,12 @@ public class ServerConfiguration extends
         return new String[]{""};
     }
 
+    @Override
+    public void validateConfiguration() throws ConfigurationException
+    {
+        //Currently doesn't do validation
+    }
+
     /*
      * Modified to enforce virtualhosts configuration in external file or main 
file, but not
      * both, as a fix for QPID-2360 and QPID-2361.

Modified: 
qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/VirtualHostConfiguration.java
URL: 
http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/VirtualHostConfiguration.java?rev=947177&r1=947176&r2=947177&view=diff
==============================================================================
--- 
qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/VirtualHostConfiguration.java
 (original)
+++ 
qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/VirtualHostConfiguration.java
 Fri May 21 21:09:52 2010
@@ -206,6 +206,12 @@ public class VirtualHostConfiguration ex
 
     }
 
+    @Override
+    public void validateConfiguration() throws ConfigurationException
+    {
+        //Currently doesn't do validation
+    }
+
     public int getHouseKeepingThreadCount()
     {
         return getIntValue("housekeeping.poolSize", 
Runtime.getRuntime().availableProcessors());

Modified: 
qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/plugins/ConfigurationPlugin.java
URL: 
http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/plugins/ConfigurationPlugin.java?rev=947177&r1=947176&r2=947177&view=diff
==============================================================================
--- 
qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/plugins/ConfigurationPlugin.java
 (original)
+++ 
qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/plugins/ConfigurationPlugin.java
 Fri May 21 21:09:52 2010
@@ -156,8 +156,12 @@ public abstract class ConfigurationPlugi
                 _pluginConfiguration.put(elementHandler.getClass(), 
elementHandler);
             }
         }
+
+        validateConfiguration();
     }
 
+    abstract public void validateConfiguration() throws ConfigurationException;
+
     protected boolean hasConfiguration()
     {
         return _configuration != null;

Modified: 
qpid/trunk/qpid/java/broker/src/test/java/org/apache/qpid/server/configuration/plugins/ConfigurationPluginTest.java
URL: 
http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker/src/test/java/org/apache/qpid/server/configuration/plugins/ConfigurationPluginTest.java?rev=947177&r1=947176&r2=947177&view=diff
==============================================================================
--- 
qpid/trunk/qpid/java/broker/src/test/java/org/apache/qpid/server/configuration/plugins/ConfigurationPluginTest.java
 (original)
+++ 
qpid/trunk/qpid/java/broker/src/test/java/org/apache/qpid/server/configuration/plugins/ConfigurationPluginTest.java
 Fri May 21 21:09:52 2010
@@ -28,8 +28,8 @@ import org.apache.commons.configuration.
 import java.util.List;
 
 /**
- * Test that verifies that given a configuration the
- * Plugin manager
+ * Test that verifies that given a Configuration a ConfigurationPlugin can
+ * process and validate that data.
  */
 public class ConfigurationPluginTest extends TestCase
 {
@@ -48,6 +48,12 @@ public class ConfigurationPluginTest ext
                                 "true", "list", "double"};
         }
 
+        @Override
+        public void validateConfiguration() throws ConfigurationException
+        {
+            // no validation requried
+        }
+
         public String getName()
         {
             return getStringValue("name");
@@ -58,6 +64,7 @@ public class ConfigurationPluginTest ext
             return getStringValue("[...@property]");
         }
 
+
     }
 
     ConfigPlugin _plugin;
@@ -170,6 +177,8 @@ public class ConfigurationPluginTest ext
 
     public void testBoolean()
     {
+        assertTrue("Boolean value not returned", 
_plugin.containsBoolean("boolean"));
+        assertFalse("Boolean value not returned", 
_plugin.containsBoolean("NonExistent"));
         assertTrue("Boolean value not returned", 
_plugin.getBooleanValue("boolean"));
         assertFalse("default String value not returned", 
_plugin.getBooleanValue("NonExistent"));
         assertTrue("set default String value not returned", 
_plugin.getBooleanValue("NonExistent", true));



---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project:      http://qpid.apache.org
Use/Interact: mailto:commits-subscr...@qpid.apache.org

Reply via email to