X-Git-Url: http://git.argeo.org/?a=blobdiff_plain;f=org.argeo.slc.core%2Fsrc%2Forg%2Fargeo%2Fslc%2Fcore%2Fexecution%2FAbstractExecutionModulesManager.java;fp=org.argeo.slc.core%2Fsrc%2Forg%2Fargeo%2Fslc%2Fcore%2Fexecution%2FAbstractExecutionModulesManager.java;h=1d401c6b094267808a1305ee1351ec88b21e4be9;hb=7d137263a92df9bb874f9c900524dfce640495e6;hp=1a07313f002273ff234f39c888760e9e1d685b6b;hpb=0bdf6d74bb140c84fe996586df694bda616ae28b;p=gpl%2Fargeo-slc.git diff --git a/org.argeo.slc.core/src/org/argeo/slc/core/execution/AbstractExecutionModulesManager.java b/org.argeo.slc.core/src/org/argeo/slc/core/execution/AbstractExecutionModulesManager.java index 1a07313f0..1d401c6b0 100644 --- a/org.argeo.slc.core/src/org/argeo/slc/core/execution/AbstractExecutionModulesManager.java +++ b/org.argeo.slc.core/src/org/argeo/slc/core/execution/AbstractExecutionModulesManager.java @@ -31,8 +31,8 @@ public abstract class AbstractExecutionModulesManager implements private final static Log log = LogFactory .getLog(AbstractExecutionModulesManager.class); -// private List filteredNotifiers = Collections -// .synchronizedList(new ArrayList()); + // private List filteredNotifiers = Collections + // .synchronizedList(new ArrayList()); protected abstract ExecutionFlow findExecutionFlow(String moduleName, String moduleVersion, String flowName); @@ -64,94 +64,99 @@ public abstract class AbstractExecutionModulesManager implements // // Actually runs the flow, IN THIS THREAD // - flow.run(); + executionContext.beforeFlow(flow); + try { + flow.run(); + } finally { + executionContext.afterFlow(flow); + } // // // } -// public void dispatchUpdateStatus(ExecutionProcess process, -// String oldStatus, String newStatus) { -// // filtered notifiers -// for (Iterator it = filteredNotifiers.iterator(); it -// .hasNext();) { -// FilteredNotifier filteredNotifier = it.next(); -// if (filteredNotifier.receiveFrom(process)) -// filteredNotifier.getNotifier().updateStatus(process, oldStatus, -// newStatus); -// } -// -// } - -// public void dispatchAddSteps(ExecutionProcess process, -// List steps) { -// process.addSteps(steps); -// for (Iterator it = filteredNotifiers.iterator(); it -// .hasNext();) { -// FilteredNotifier filteredNotifier = it.next(); -// if (filteredNotifier.receiveFrom(process)) -// filteredNotifier.getNotifier().addSteps(process, steps); -// } -// } - -// public void registerProcessNotifier(ExecutionProcessNotifier notifier, -// Map properties) { -// filteredNotifiers.add(new FilteredNotifier(notifier, properties)); -// } -// -// public void unregisterProcessNotifier(ExecutionProcessNotifier notifier, -// Map properties) { -// filteredNotifiers.remove(notifier); -// } - -// protected class FilteredNotifier { -// private final ExecutionProcessNotifier notifier; -// private final String processId; -// -// public FilteredNotifier(ExecutionProcessNotifier notifier, -// 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 -// processId = null; -// } -// -// /** -// * Whether event from this process should be received by this listener. -// */ -// public Boolean receiveFrom(ExecutionProcess process) { -// if (processId != null) -// if (process.getUuid().equals(processId)) -// return true; -// else -// return false; -// return true; -// } -// -// @Override -// public int hashCode() { -// return notifier.hashCode(); -// } -// -// @Override -// public boolean equals(Object 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() { -// return notifier; -// } -// -// } + // public void dispatchUpdateStatus(ExecutionProcess process, + // String oldStatus, String newStatus) { + // // filtered notifiers + // for (Iterator it = filteredNotifiers.iterator(); it + // .hasNext();) { + // FilteredNotifier filteredNotifier = it.next(); + // if (filteredNotifier.receiveFrom(process)) + // filteredNotifier.getNotifier().updateStatus(process, oldStatus, + // newStatus); + // } + // + // } + + // public void dispatchAddSteps(ExecutionProcess process, + // List steps) { + // process.addSteps(steps); + // for (Iterator it = filteredNotifiers.iterator(); it + // .hasNext();) { + // FilteredNotifier filteredNotifier = it.next(); + // if (filteredNotifier.receiveFrom(process)) + // filteredNotifier.getNotifier().addSteps(process, steps); + // } + // } + + // public void registerProcessNotifier(ExecutionProcessNotifier notifier, + // Map properties) { + // filteredNotifiers.add(new FilteredNotifier(notifier, properties)); + // } + // + // public void unregisterProcessNotifier(ExecutionProcessNotifier notifier, + // Map properties) { + // filteredNotifiers.remove(notifier); + // } + + // protected class FilteredNotifier { + // private final ExecutionProcessNotifier notifier; + // private final String processId; + // + // public FilteredNotifier(ExecutionProcessNotifier notifier, + // 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 + // processId = null; + // } + // + // /** + // * Whether event from this process should be received by this listener. + // */ + // public Boolean receiveFrom(ExecutionProcess process) { + // if (processId != null) + // if (process.getUuid().equals(processId)) + // return true; + // else + // return false; + // return true; + // } + // + // @Override + // public int hashCode() { + // return notifier.hashCode(); + // } + // + // @Override + // public boolean equals(Object 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() { + // return notifier; + // } + // + // } }