import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.argeo.slc.execution.ExecutionFlowDescriptor;
+import org.argeo.slc.execution.ExecutionStep;
import org.argeo.slc.process.RealizedFlow;
-import org.argeo.slc.process.SlcExecutionStep;
/** Thread of a single execution */
public class ExecutionThread extends Thread {
public void run() {
if (getContextClassLoader() != null) {
if (log.isTraceEnabled())
- log.debug("Context class loader set to "
+ log.trace("Context class loader set to "
+ getContextClassLoader());
}
.getFlowDescriptor();
String flowName = executionFlowDescriptor.getName();
- dispatchAddStep(new SlcExecutionStep(SlcExecutionStep.TYPE_PHASE_START,
- "Flow " + flowName));
+ dispatchAddStep(new ExecutionStep(realizedFlow.getModuleName(),
+ ExecutionStep.PHASE_START, "Flow " + flowName));
try {
String autoUpgrade = System
if (autoUpgrade != null && autoUpgrade.equals("true"))
processThread.getExecutionModulesManager().upgrade(
realizedFlow.getModuleNameVersion());
+
+ // START FLOW
processThread.getExecutionModulesManager().execute(realizedFlow);
+ // END FLOW
} catch (Exception e) {
// TODO: re-throw exception ?
String msg = "Execution of flow " + flowName + " failed.";
log.error(msg, e);
- dispatchAddStep(new SlcExecutionStep(msg + " " + e.getMessage()));
+ dispatchAddStep(new ExecutionStep(realizedFlow.getModuleName(),
+ ExecutionStep.ERROR, msg + " " + e.getMessage()));
processThread.notifyError();
} finally {
processThread.flowCompleted();
- dispatchAddStep(new SlcExecutionStep(
- SlcExecutionStep.TYPE_PHASE_END, "Flow " + flowName));
+ dispatchAddStep(new ExecutionStep(realizedFlow.getModuleName(),
+ ExecutionStep.PHASE_END, "Flow " + flowName));
}
}
- private void dispatchAddStep(SlcExecutionStep step) {
+ private void dispatchAddStep(ExecutionStep step) {
processThread.getProcessThreadGroup().dispatchAddStep(step);
}
+ public RealizedFlow getRealizedFlow() {
+ return realizedFlow;
+ }
+
}