From e70e3b0bb68823feee056249554dfb6b554b036a Mon Sep 17 00:00:00 2001 From: cramakri <cramakri> Date: Fri, 2 Mar 2012 09:50:25 +0000 Subject: [PATCH] LMS-2821 Added support for injected maintenance plugins SVN: 24599 --- .../cisd/common/maintenance/MaintenancePlugin.java | 12 ++++++++++++ .../maintenance/MaintenanceTaskParameters.java | 8 ++++---- .../common/maintenance/MaintenanceTaskUtils.java | 9 +++++++++ 3 files changed, 25 insertions(+), 4 deletions(-) diff --git a/common/source/java/ch/systemsx/cisd/common/maintenance/MaintenancePlugin.java b/common/source/java/ch/systemsx/cisd/common/maintenance/MaintenancePlugin.java index 90a918ebafd..b70384e27d9 100644 --- a/common/source/java/ch/systemsx/cisd/common/maintenance/MaintenancePlugin.java +++ b/common/source/java/ch/systemsx/cisd/common/maintenance/MaintenancePlugin.java @@ -43,6 +43,18 @@ public class MaintenancePlugin this.requiresDataStoreLock = requiresDataStoreLock(); } + /** + * Constructor that takes a configured maintenance task. + * + * @param task + */ + public MaintenancePlugin(IMaintenanceTask task, MaintenanceTaskParameters parameters) + { + this.parameters = parameters; + this.task = task; + this.requiresDataStoreLock = requiresDataStoreLock(); + } + private boolean requiresDataStoreLock() { if (task instanceof IDataStoreLockingMaintenanceTask) diff --git a/common/source/java/ch/systemsx/cisd/common/maintenance/MaintenanceTaskParameters.java b/common/source/java/ch/systemsx/cisd/common/maintenance/MaintenanceTaskParameters.java index e1f7ef7fd4d..1df85fe93e0 100644 --- a/common/source/java/ch/systemsx/cisd/common/maintenance/MaintenanceTaskParameters.java +++ b/common/source/java/ch/systemsx/cisd/common/maintenance/MaintenanceTaskParameters.java @@ -34,13 +34,13 @@ import ch.systemsx.cisd.common.utilities.PropertyUtils; */ public class MaintenanceTaskParameters { - static final String TIME_FORMAT = "HH:mm"; + public static final String CLASS_KEY = "class"; - static final int ONE_DAY_IN_SEC = 60 * 60 * 24; + public static final String INTERVAL_KEY = "interval"; - static final String CLASS_KEY = "class"; + static final String TIME_FORMAT = "HH:mm"; - static final String INTERVAL_KEY = "interval"; + static final int ONE_DAY_IN_SEC = 60 * 60 * 24; static final String START_KEY = "start"; diff --git a/common/source/java/ch/systemsx/cisd/common/maintenance/MaintenanceTaskUtils.java b/common/source/java/ch/systemsx/cisd/common/maintenance/MaintenanceTaskUtils.java index f1369c945df..2d984229311 100644 --- a/common/source/java/ch/systemsx/cisd/common/maintenance/MaintenanceTaskUtils.java +++ b/common/source/java/ch/systemsx/cisd/common/maintenance/MaintenanceTaskUtils.java @@ -51,12 +51,21 @@ public class MaintenanceTaskUtils MaintenancePlugin plugin = new MaintenancePlugin(parameters); plugins.add(plugin); } + for (MaintenancePlugin plugin : plugins) { plugin.start(); } } + /** + * Inject a maintenance plugin into the running plugin environment. + */ + public static void injectMaintenancePlugin(MaintenancePlugin plugin) + { + plugin.start(); + } + public static MaintenanceTaskParameters[] createMaintenancePlugins( final Properties serviceProperties) { -- GitLab