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