X-Git-Url: http://git.argeo.org/?a=blobdiff_plain;f=runtime%2Forg.argeo.slc.core%2Fsrc%2Fmain%2Fjava%2Forg%2Fargeo%2Fslc%2Fcore%2Fexecution%2FAbstractExecutionModulesManager.java;h=b3d92ae69aad4d9bf6ae605e56569ed512d79197;hb=24d560ee846fda5d7954d44f83cb22ab449dbe61;hp=3b561392115a27d2e156493383e3d7121adacd36;hpb=24cb7655cc4bc5eefa244f565934dda802f4392c;p=gpl%2Fargeo-slc.git diff --git a/runtime/org.argeo.slc.core/src/main/java/org/argeo/slc/core/execution/AbstractExecutionModulesManager.java b/runtime/org.argeo.slc.core/src/main/java/org/argeo/slc/core/execution/AbstractExecutionModulesManager.java index 3b5613921..b3d92ae69 100644 --- a/runtime/org.argeo.slc.core/src/main/java/org/argeo/slc/core/execution/AbstractExecutionModulesManager.java +++ b/runtime/org.argeo.slc.core/src/main/java/org/argeo/slc/core/execution/AbstractExecutionModulesManager.java @@ -18,6 +18,7 @@ package org.argeo.slc.core.execution; import java.util.ArrayList; import java.util.Collections; +import java.util.HashMap; import java.util.Iterator; import java.util.List; import java.util.Map; @@ -46,8 +47,6 @@ public abstract class AbstractExecutionModulesManager implements private List filteredNotifiers = Collections .synchronizedList(new ArrayList()); - private ThreadGroup processesThreadGroup = new ThreadGroup("SLC Processes"); - protected abstract ExecutionFlow findExecutionFlow(String moduleName, String moduleVersion, String flowName); @@ -100,6 +99,7 @@ public abstract class AbstractExecutionModulesManager implements filteredNotifier.getNotifier().updateStatus(process, oldStatus, newStatus); } + } public void dispatchAddSteps(ExecutionProcess process, @@ -122,6 +122,11 @@ public abstract class AbstractExecutionModulesManager implements filteredNotifiers.add(new FilteredNotifier(notifier, properties)); } + public void unregisterProcessNotifier(ExecutionProcessNotifier notifier, + Map properties) { + filteredNotifiers.remove(notifier); + } + public void setSlcExecutionNotifiers( List slcExecutionNotifiers) { this.slcExecutionNotifiers = slcExecutionNotifiers; @@ -131,10 +136,6 @@ public abstract class AbstractExecutionModulesManager implements return slcExecutionNotifiers; } - public ThreadGroup getProcessesThreadGroup() { - return processesThreadGroup; - } - protected class FilteredNotifier { private final ExecutionProcessNotifier notifier; private final String processId; @@ -143,6 +144,8 @@ public abstract class AbstractExecutionModulesManager implements Map properties) { super(); this.notifier = notifier; + if (properties == null) + properties = new HashMap(); if (properties.containsKey(SLC_PROCESS_ID)) processId = properties.get(SLC_PROCESS_ID); else @@ -168,7 +171,14 @@ public abstract class AbstractExecutionModulesManager implements @Override public boolean equals(Object obj) { - return notifier.equals(obj); + if (obj instanceof FilteredNotifier) { + FilteredNotifier fn = (FilteredNotifier) obj; + return notifier.equals(fn.notifier); + } else if (obj instanceof ExecutionProcessNotifier) { + ExecutionProcessNotifier epn = (ExecutionProcessNotifier) obj; + return notifier.equals(epn); + } else + return false; } public ExecutionProcessNotifier getNotifier() {