diff options
| author | Robert Gemmell <robbie@apache.org> | 2010-05-31 16:07:22 +0000 |
|---|---|---|
| committer | Robert Gemmell <robbie@apache.org> | 2010-05-31 16:07:22 +0000 |
| commit | 89c0b02beeb0fa9463cc3da0abd6f0af3aba3284 (patch) | |
| tree | d4ef9997383093bbc3627a1815684a8bf24ed577 /java/broker-plugins | |
| parent | 3a575db71a1de1a06d8f1d1dbb517ad8e9decf9b (diff) | |
| download | qpid-python-89c0b02beeb0fa9463cc3da0abd6f0af3aba3284.tar.gz | |
QPID-1447: Updated to use newer configuration plugin interface
Applied patch from Andrew Kennedy <andrew.international@gmail.com>
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@949786 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'java/broker-plugins')
8 files changed, 110 insertions, 55 deletions
diff --git a/java/broker-plugins/experimental/slowconsumerdetection/src/main/java/org/apache/qpid/server/configuration/plugin/SlowConsumerDetectionConfiguration.java b/java/broker-plugins/experimental/slowconsumerdetection/src/main/java/org/apache/qpid/server/configuration/plugin/SlowConsumerDetectionConfiguration.java index b1b7a3c8c9..dd63c9b698 100644 --- a/java/broker-plugins/experimental/slowconsumerdetection/src/main/java/org/apache/qpid/server/configuration/plugin/SlowConsumerDetectionConfiguration.java +++ b/java/broker-plugins/experimental/slowconsumerdetection/src/main/java/org/apache/qpid/server/configuration/plugin/SlowConsumerDetectionConfiguration.java @@ -26,6 +26,8 @@ import org.apache.commons.configuration.ConversionException; import org.apache.qpid.server.configuration.plugins.ConfigurationPlugin; import org.apache.qpid.server.configuration.plugins.ConfigurationPluginFactory; +import java.util.Arrays; +import java.util.List; import java.util.concurrent.TimeUnit; public class SlowConsumerDetectionConfiguration extends ConfigurationPlugin @@ -39,9 +41,9 @@ public class SlowConsumerDetectionConfiguration extends ConfigurationPlugin return slowConsumerConfig; } - public String[] getParentPaths() + public List<String> getParentPaths() { - return new String[]{"virtualhosts.virtualhost.slow-consumer-detection"}; + return Arrays.asList("virtualhosts.virtualhost.slow-consumer-detection"); } } @@ -71,7 +73,6 @@ public class SlowConsumerDetectionConfiguration extends ConfigurationPlugin String timeUnit = getStringValue("timeunit"); - if (timeUnit != null) { try @@ -84,7 +85,6 @@ public class SlowConsumerDetectionConfiguration extends ConfigurationPlugin } } - System.out.println("Configured SCDC"); System.out.println("Delay:" + getDelay()); System.out.println("TimeUnit:" + getTimeUnit()); diff --git a/java/broker-plugins/experimental/slowconsumerdetection/src/main/java/org/apache/qpid/server/configuration/plugin/SlowConsumerDetectionPolicyConfiguration.java b/java/broker-plugins/experimental/slowconsumerdetection/src/main/java/org/apache/qpid/server/configuration/plugin/SlowConsumerDetectionPolicyConfiguration.java index 134395097d..4527fa576b 100644 --- a/java/broker-plugins/experimental/slowconsumerdetection/src/main/java/org/apache/qpid/server/configuration/plugin/SlowConsumerDetectionPolicyConfiguration.java +++ b/java/broker-plugins/experimental/slowconsumerdetection/src/main/java/org/apache/qpid/server/configuration/plugin/SlowConsumerDetectionPolicyConfiguration.java @@ -25,27 +25,27 @@ import org.apache.commons.configuration.ConfigurationException; import org.apache.qpid.server.configuration.plugins.ConfigurationPlugin; import org.apache.qpid.server.configuration.plugins.ConfigurationPluginFactory; +import java.util.Arrays; +import java.util.List; + public class SlowConsumerDetectionPolicyConfiguration extends ConfigurationPlugin { - - public static class SlowConsumerDetectionPolicyConfigurationFactory - implements ConfigurationPluginFactory + public static class SlowConsumerDetectionPolicyConfigurationFactory implements ConfigurationPluginFactory { - public ConfigurationPlugin newInstance(String path, - Configuration config) - throws ConfigurationException + public ConfigurationPlugin newInstance(String path, Configuration config) throws ConfigurationException { - SlowConsumerDetectionPolicyConfiguration slowConsumerConfig = - new SlowConsumerDetectionPolicyConfiguration(); + SlowConsumerDetectionPolicyConfiguration slowConsumerConfig = new SlowConsumerDetectionPolicyConfiguration(); slowConsumerConfig.setConfiguration(path, config); return slowConsumerConfig; } - public String[] getParentPaths() + public List<String> getParentPaths() { - return new String[]{ + return Arrays.asList( "virtualhosts.virtualhost.queues.slow-consumer-detection.policy", - "virtualhosts.virtualhost.queues.queue.slow-consumer-detection.policy"}; + "virtualhosts.virtualhost.queues.queue.slow-consumer-detection.policy", + "virtualhosts.virtualhost.topics.slow-consumer-detection.policy", + "virtualhosts.virtualhost.queues.topics.topic.slow-consumer-detection.policy"); } } @@ -67,5 +67,4 @@ public class SlowConsumerDetectionPolicyConfiguration extends ConfigurationPlugi throw new ConfigurationException("No Slow consumer policy defined."); } } - } diff --git a/java/broker-plugins/experimental/slowconsumerdetection/src/main/java/org/apache/qpid/server/configuration/plugin/SlowConsumerDetectionQueueConfiguration.java b/java/broker-plugins/experimental/slowconsumerdetection/src/main/java/org/apache/qpid/server/configuration/plugin/SlowConsumerDetectionQueueConfiguration.java index 75b836bfa8..c094c7eb6d 100644 --- a/java/broker-plugins/experimental/slowconsumerdetection/src/main/java/org/apache/qpid/server/configuration/plugin/SlowConsumerDetectionQueueConfiguration.java +++ b/java/broker-plugins/experimental/slowconsumerdetection/src/main/java/org/apache/qpid/server/configuration/plugin/SlowConsumerDetectionQueueConfiguration.java @@ -20,6 +20,11 @@ */ package org.apache.qpid.server.configuration.plugin; +import java.util.Arrays; +import java.util.Iterator; +import java.util.List; +import java.util.Map; + import org.apache.commons.configuration.Configuration; import org.apache.commons.configuration.ConfigurationException; import org.apache.qpid.server.configuration.plugins.ConfigurationPlugin; @@ -29,9 +34,6 @@ import org.apache.qpid.server.registry.ApplicationRegistry; import org.apache.qpid.slowconsumerdetection.policies.SlowConsumerPolicyPlugin; import org.apache.qpid.slowconsumerdetection.policies.SlowConsumerPolicyPluginFactory; -import java.util.Iterator; -import java.util.Map; - public class SlowConsumerDetectionQueueConfiguration extends ConfigurationPlugin { private SlowConsumerPolicyPlugin _policyPlugin; @@ -45,12 +47,14 @@ public class SlowConsumerDetectionQueueConfiguration extends ConfigurationPlugin return slowConsumerConfig; } - public String[] getParentPaths() + public List<String> getParentPaths() { - return new String[]{"virtualhosts.virtualhost.queues.slow-consumer-detection", - "virtualhosts.virtualhost.queues.queue.slow-consumer-detection"}; + return Arrays.asList( + "virtualhosts.virtualhost.queues.slow-consumer-detection", + "virtualhosts.virtualhost.queues.queue.slow-consumer-detection", + "virtualhosts.virtualhost.topics.slow-consumer-detection", + "virtualhosts.virtualhost.queues.topics.topic.slow-consumer-detection"); } - } public String[] getElementsProcessed() @@ -81,7 +85,7 @@ public class SlowConsumerDetectionQueueConfiguration extends ConfigurationPlugin } @Override - public void validateConfiguration() throws ConfigurationException + public void validateConfiguration() throws ConfigurationException { if (!containsPositiveLong("messageAge") && !containsPositiveLong("depth") && @@ -91,12 +95,10 @@ public class SlowConsumerDetectionQueueConfiguration extends ConfigurationPlugin "('messageAge','depth' or 'messageCount') must be specified."); } - SlowConsumerDetectionPolicyConfiguration policyConfig = - getConfiguration(SlowConsumerDetectionPolicyConfiguration.class); + SlowConsumerDetectionPolicyConfiguration policyConfig = getConfiguration(SlowConsumerDetectionPolicyConfiguration.class); PluginManager pluginManager = ApplicationRegistry.getInstance().getPluginManager(); - Map<String, SlowConsumerPolicyPluginFactory> factories = - pluginManager.getPlugins(SlowConsumerPolicyPluginFactory.class); + Map<String, SlowConsumerPolicyPluginFactory> factories = pluginManager.getPlugins(SlowConsumerPolicyPluginFactory.class); if (policyConfig == null) { @@ -122,7 +124,7 @@ public class SlowConsumerDetectionQueueConfiguration extends ConfigurationPlugin _logger.debug("Available factories:" + factories); } - SlowConsumerPolicyPluginFactory pluginFactory = factories.get(policyConfig.getPolicyName().toLowerCase()); + SlowConsumerPolicyPluginFactory<SlowConsumerPolicyPlugin> pluginFactory = factories.get(policyConfig.getPolicyName().toLowerCase()); if (pluginFactory == null) { @@ -131,5 +133,4 @@ public class SlowConsumerDetectionQueueConfiguration extends ConfigurationPlugin _policyPlugin = pluginFactory.newInstance(policyConfig); } - } diff --git a/java/broker-plugins/experimental/slowconsumerdetection/src/main/java/org/apache/qpid/server/virtualhost/plugin/SlowConsumerDetection.java b/java/broker-plugins/experimental/slowconsumerdetection/src/main/java/org/apache/qpid/server/virtualhost/plugin/SlowConsumerDetection.java index 7723a4109e..dac5fa58f8 100644 --- a/java/broker-plugins/experimental/slowconsumerdetection/src/main/java/org/apache/qpid/server/virtualhost/plugin/SlowConsumerDetection.java +++ b/java/broker-plugins/experimental/slowconsumerdetection/src/main/java/org/apache/qpid/server/virtualhost/plugin/SlowConsumerDetection.java @@ -20,39 +20,55 @@ */ package org.apache.qpid.server.virtualhost.plugin; -import org.apache.log4j.Logger; +import java.util.concurrent.TimeUnit; + +import org.apache.commons.configuration.ConfigurationException; import org.apache.qpid.server.configuration.plugin.SlowConsumerDetectionConfiguration; import org.apache.qpid.server.configuration.plugin.SlowConsumerDetectionQueueConfiguration; +import org.apache.qpid.server.configuration.plugins.ConfigurationPlugin; import org.apache.qpid.server.queue.AMQQueue; import org.apache.qpid.server.virtualhost.VirtualHost; import org.apache.qpid.server.virtualhost.plugins.VirtualHostHouseKeepingPlugin; import org.apache.qpid.server.virtualhost.plugins.VirtualHostPluginFactory; -import org.apache.qpid.slowconsumerdetection.policies.SlowConsumerPolicyPlugin; - -import java.util.concurrent.TimeUnit; class SlowConsumerDetection extends VirtualHostHouseKeepingPlugin { - Logger _logger = Logger.getLogger(SlowConsumerDetection.class); private SlowConsumerDetectionConfiguration _config; public static class SlowConsumerFactory implements VirtualHostPluginFactory { - public VirtualHostHouseKeepingPlugin newInstance(VirtualHost vhost) + public Class<SlowConsumerDetection> getPluginClass() + { + return SlowConsumerDetection.class; + } + + public String getPluginName() { - return new SlowConsumerDetection(vhost); + return SlowConsumerDetection.class.getName(); + } + + public SlowConsumerDetection newInstance(VirtualHost vhost) throws ConfigurationException + { + SlowConsumerDetection plugin = new SlowConsumerDetection(vhost); + plugin.configure(vhost.getConfiguration()); + return plugin; } } - public SlowConsumerDetection(VirtualHost vhost) + public void configure(ConfigurationPlugin config) throws ConfigurationException { - super(vhost); - _config = vhost.getConfiguration().getConfiguration(SlowConsumerDetectionConfiguration.class); + _config = config.getConfiguration(SlowConsumerDetectionConfiguration.class); + if (_config == null) { throw new IllegalArgumentException("Plugin has not been configured"); } } + + public SlowConsumerDetection(VirtualHost vhost) + { + super(vhost); + } @Override public void execute() @@ -60,12 +76,11 @@ class SlowConsumerDetection extends VirtualHostHouseKeepingPlugin _logger.info("Starting the SlowConsumersDetection job"); for (AMQQueue q : _virtualhost.getQueueRegistry().getQueues()) { - _logger.debug("Checking consumer status for queue: " - + q.getName()); + _logger.debug("Checking consumer status for queue: " + q.getName()); try { SlowConsumerDetectionQueueConfiguration config = - q.getConfiguration().getConfiguration(SlowConsumerDetectionQueueConfiguration.class); + q.getConfiguration().getConfiguration(SlowConsumerDetectionQueueConfiguration.class); if (checkQueueStatus(q, config)) { @@ -106,6 +121,7 @@ class SlowConsumerDetection extends VirtualHostHouseKeepingPlugin { if (config != null) { + _logger.info("Retrieved Queue(" + q.getName() + ") Config:" + config); if ((config.getMessageCount() != 0 && q.getMessageCount() >= config.getMessageCount()) || (config.getDepth() != 0 && q.getQueueDepth() >= config.getDepth()) || (config.getMessageAge() != 0 && q.getOldestMessageArrivalTime() >= config.getMessageAge())) @@ -124,4 +140,19 @@ class SlowConsumerDetection extends VirtualHostHouseKeepingPlugin } return false; } + + public String getPluginName() + { + return SlowConsumerDetection.class.getName(); + } + + public boolean isConfigured() + { + return _config != null && _virtualhost != null; + } + + public void configure() throws ConfigurationException + { + // Empty + } } 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 04abaacc74..e9b2d02f89 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 @@ -26,7 +26,9 @@ import org.apache.qpid.AMQException; import org.apache.qpid.protocol.AMQConstant; import org.apache.qpid.server.binding.Binding; import org.apache.qpid.server.configuration.plugin.SlowConsumerDetectionPolicyConfiguration; +import org.apache.qpid.server.configuration.plugins.ConfigurationPlugin; import org.apache.qpid.server.exchange.TopicExchange; +import org.apache.qpid.server.plugins.Plugin; import org.apache.qpid.server.protocol.AMQSessionModel; import org.apache.qpid.server.queue.AMQQueue; import org.apache.qpid.slowconsumerdetection.policies.SlowConsumerPolicyPlugin; @@ -39,12 +41,11 @@ public class TopicDeletePolicy implements SlowConsumerPolicyPlugin public static class TopicDeletePolicyFactory implements SlowConsumerPolicyPluginFactory { - - public SlowConsumerPolicyPlugin newInstance(SlowConsumerDetectionPolicyConfiguration configuration) throws ConfigurationException + public TopicDeletePolicy newInstance(ConfigurationPlugin configuration) throws ConfigurationException { TopicDeletePolicyConfiguration config = configuration.getConfiguration(TopicDeletePolicyConfiguration.class); - + return new TopicDeletePolicy(config); } @@ -52,6 +53,11 @@ public class TopicDeletePolicy implements SlowConsumerPolicyPlugin { return "topicdelete"; } + + public Class<TopicDeletePolicy> getPluginClass() + { + return TopicDeletePolicy.class; + } } public TopicDeletePolicy(TopicDeletePolicyConfiguration config) @@ -121,4 +127,22 @@ public class TopicDeletePolicy implements SlowConsumerPolicyPlugin return false; } + + @Override + public String getPluginName() + { + return "topicdelete"; + } + + @Override + public boolean isConfigured() + { + return _configuration != null; + } + + @Override + public void configure() throws ConfigurationException + { + // Empty + } } 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 ecd83fb27c..def337e241 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 @@ -20,6 +20,9 @@ */ package org.apache.qpid.server.virtualhost.plugin.policies; +import java.util.Arrays; +import java.util.List; + import org.apache.commons.configuration.Configuration; import org.apache.commons.configuration.ConfigurationException; import org.apache.qpid.server.configuration.plugins.ConfigurationPlugin; @@ -41,11 +44,11 @@ public class TopicDeletePolicyConfiguration extends ConfigurationPlugin return slowConsumerConfig; } - public String[] getParentPaths() + public List<String> getParentPaths() { - return new String[]{ + return Arrays.asList( "virtualhosts.virtualhost.queues.slow-consumer-detection.policy.topicDelete", - "virtualhosts.virtualhost.queues.queue.slow-consumer-detection.policy.topicDelete"}; + "virtualhosts.virtualhost.queues.queue.slow-consumer-detection.policy.topicDelete"); } } diff --git a/java/broker-plugins/experimental/slowconsumerdetection/src/main/java/org/apache/qpid/slowconsumerdetection/policies/SlowConsumerPolicyPlugin.java b/java/broker-plugins/experimental/slowconsumerdetection/src/main/java/org/apache/qpid/slowconsumerdetection/policies/SlowConsumerPolicyPlugin.java index 0d80ef41dc..7f600abdc9 100644 --- a/java/broker-plugins/experimental/slowconsumerdetection/src/main/java/org/apache/qpid/slowconsumerdetection/policies/SlowConsumerPolicyPlugin.java +++ b/java/broker-plugins/experimental/slowconsumerdetection/src/main/java/org/apache/qpid/slowconsumerdetection/policies/SlowConsumerPolicyPlugin.java @@ -20,9 +20,10 @@ */ package org.apache.qpid.slowconsumerdetection.policies; +import org.apache.qpid.server.plugins.Plugin; import org.apache.qpid.server.queue.AMQQueue; -public interface SlowConsumerPolicyPlugin +public interface SlowConsumerPolicyPlugin extends Plugin { public void performPolicy(AMQQueue Queue); } 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 c142139009..b2fe6766a6 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,12 +20,8 @@ */ 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 interface SlowConsumerPolicyPluginFactory<P extends SlowConsumerPolicyPlugin> extends PluginFactory<P> { - - public SlowConsumerPolicyPlugin newInstance(SlowConsumerDetectionPolicyConfiguration configuration) throws ConfigurationException; } |
