summaryrefslogtreecommitdiff
path: root/java/broker-plugins
diff options
context:
space:
mode:
authorMartin Ritchie <ritchiem@apache.org>2010-05-18 14:42:51 +0000
committerMartin Ritchie <ritchiem@apache.org>2010-05-18 14:42:51 +0000
commitf245819c56f082a98a5bc2c746905a97f596f170 (patch)
treee1dd437212a210c004206a738c8231b2750318c8 /java/broker-plugins
parent07bb0c9f776fa1f133807ed89c4184dd0ba65ffd (diff)
downloadqpid-python-f245819c56f082a98a5bc2c746905a97f596f170.tar.gz
QPID-2584 : Convert all TimerTasks to HouseKeepingTasks for running in the VHost thread pool.
Update VirtualHost and Configuration to allow configuration and testing of VirtualHostHouseKeepingPlugins. Added system test to validate the loading of VHPlugins is performed correctly git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@945678 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'java/broker-plugins')
-rw-r--r--java/broker-plugins/experimental/slowconsumerdetection/src/main/java/org/apache/qpid/server/virtualhost/plugin/SlowConsumerDetection.java55
1 files changed, 21 insertions, 34 deletions
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 c3f5d7e5ac..fbbb205ff0 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
@@ -25,20 +25,19 @@ import org.apache.qpid.server.configuration.plugin.SlowConsumerDetectionConfigur
import org.apache.qpid.server.configuration.plugin.SlowConsumerDetectionQueueConfiguration;
import org.apache.qpid.server.queue.AMQQueue;
import org.apache.qpid.server.virtualhost.VirtualHost;
-import org.apache.qpid.server.virtualhost.plugins.VirtualHostPlugin;
+import org.apache.qpid.server.virtualhost.plugins.VirtualHostHouseKeepingPlugin;
import org.apache.qpid.server.virtualhost.plugins.VirtualHostPluginFactory;
import org.apache.qpid.slowconsumerdetection.policies.SlowConsumerPolicyPlugin;
-class SlowConsumerDetection extends VirtualHostPlugin
+class SlowConsumerDetection extends VirtualHostHouseKeepingPlugin
{
Logger _logger = Logger.getLogger(SlowConsumerDetection.class);
- private VirtualHost _virtualhost;
private SlowConsumerDetectionConfiguration _config;
private SlowConsumerPolicyPlugin _policy;
public static class SlowConsumerFactory implements VirtualHostPluginFactory
{
- public VirtualHostPlugin newInstance(VirtualHost vhost)
+ public VirtualHostHouseKeepingPlugin newInstance(VirtualHost vhost)
{
return new SlowConsumerDetection(vhost);
}
@@ -46,54 +45,42 @@ class SlowConsumerDetection extends VirtualHostPlugin
public SlowConsumerDetection(VirtualHost vhost)
{
- _virtualhost = vhost;
+ super(vhost);
_config = vhost.getConfiguration().getConfiguration(SlowConsumerDetectionConfiguration.class);
if (_config == null)
{
throw new IllegalArgumentException("Plugin has not been configured");
}
-
}
@Override
public void execute()
{
_logger.info("Starting the SlowConsumersDetection job");
- try
+ for (AMQQueue q : _virtualhost.getQueueRegistry().getQueues())
{
- for (AMQQueue q : _virtualhost.getQueueRegistry().getQueues())
+ _logger.debug("Checking consumer status for queue: "
+ + q.getName());
+ try
{
- _logger.debug("Checking consumer status for queue: "
- + q.getName());
- try
- {
- SlowConsumerDetectionQueueConfiguration config =
- q.getConfiguration().getConfiguration(SlowConsumerDetectionQueueConfiguration.class);
+ SlowConsumerDetectionQueueConfiguration config =
+ q.getConfiguration().getConfiguration(SlowConsumerDetectionQueueConfiguration.class);
- if (checkQueueStatus(q, config))
- {
- config.getPolicy().performPolicy(q);
- }
- }
- catch (Exception e)
+ if (checkQueueStatus(q, config))
{
- _logger.error("Exception in SlowConsumersDetection " +
- "for queue: " +
- q.getNameShortString().toString(), e);
- //Don't throw exceptions as this will stop the
- // house keeping task from running.
+ config.getPolicy().performPolicy(q);
}
}
- _logger.info("SlowConsumersDetection job completed.");
- }
- catch (Exception e)
- {
- _logger.error("SlowConsumersDetection job failed: " + e.getMessage(), e);
- }
- catch (Error e)
- {
- _logger.error("SlowConsumersDetection job failed with error: " + e.getMessage(), e);
+ catch (Exception e)
+ {
+ _logger.error("Exception in SlowConsumersDetection " +
+ "for queue: " +
+ q.getNameShortString().toString(), e);
+ //Don't throw exceptions as this will stop the
+ // house keeping task from running.
+ }
}
+ _logger.info("SlowConsumersDetection job completed.");
}
public long getDelay()