X-Git-Url: http://git.argeo.org/?a=blobdiff_plain;f=runtime%2Forg.argeo.slc.core%2Fsrc%2Fmain%2Fjava%2Forg%2Fargeo%2Fslc%2Fcore%2Fexecution%2FExecutionThread.java;h=6a1c9728465aeeed4a4ff60cdc3a77ef4ea28184;hb=a17824ea2422474f25e2ea0eeae310f4dd9e6361;hp=bf92c1c60afd02adaba2b182c3051d7172e57218;hpb=9610da4b60d2b6d9e135d1b5a3d801e82701f73f;p=gpl%2Fargeo-slc.git diff --git a/runtime/org.argeo.slc.core/src/main/java/org/argeo/slc/core/execution/ExecutionThread.java b/runtime/org.argeo.slc.core/src/main/java/org/argeo/slc/core/execution/ExecutionThread.java index bf92c1c60..6a1c97284 100644 --- a/runtime/org.argeo.slc.core/src/main/java/org/argeo/slc/core/execution/ExecutionThread.java +++ b/runtime/org.argeo.slc.core/src/main/java/org/argeo/slc/core/execution/ExecutionThread.java @@ -1,5 +1,5 @@ /* - * Copyright (C) 2007-2012 Mathieu Baudier + * Copyright (C) 2007-2012 Argeo GmbH * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -22,6 +22,7 @@ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.argeo.slc.SlcException; import org.argeo.slc.execution.ExecutionFlowDescriptor; +import org.argeo.slc.execution.ExecutionModulesManager; import org.argeo.slc.execution.ExecutionStep; import org.argeo.slc.execution.RealizedFlow; import org.springframework.security.Authentication; @@ -33,17 +34,20 @@ public class ExecutionThread extends Thread { private final static Log log = LogFactory.getLog(ExecutionThread.class); + private ExecutionModulesManager executionModulesManager; private final RealizedFlow realizedFlow; - private final ProcessThread processThread; + // private final ProcessThread processThread; private List destructionCallbacks = new ArrayList(); - public ExecutionThread(ProcessThread processThread, + public ExecutionThread(ProcessThreadGroup processThreadGroup, + ExecutionModulesManager executionModulesManager, RealizedFlow realizedFlow) { - super(processThread.getProcessThreadGroup(), "Flow " + super(processThreadGroup, "Flow " + realizedFlow.getFlowDescriptor().getName()); this.realizedFlow = realizedFlow; - this.processThread = processThread; + this.executionModulesManager = executionModulesManager; + // this.processThread = processThread; } public void run() { @@ -59,37 +63,41 @@ public class ExecutionThread extends Thread { .getFlowDescriptor(); String flowName = executionFlowDescriptor.getName(); - dispatchAddStep(new ExecutionStep(realizedFlow.getModuleName(), - ExecutionStep.PHASE_START, "Flow " + flowName)); + getProcessThreadGroup().dispatchAddStep( + new ExecutionStep(realizedFlow.getModuleName(), + ExecutionStep.PHASE_START, "Flow " + flowName)); try { String autoUpgrade = System .getProperty(SYSPROP_EXECUTION_AUTO_UPGRADE); if (autoUpgrade != null && autoUpgrade.equals("true")) - processThread.getExecutionModulesManager().upgrade( - realizedFlow.getModuleNameVersion()); + executionModulesManager.upgrade(realizedFlow + .getModuleNameVersion()); + executionModulesManager.start(realizedFlow.getModuleNameVersion()); // START FLOW - processThread.getExecutionModulesManager().execute(realizedFlow); + executionModulesManager.execute(realizedFlow); // END FLOW } catch (Exception e) { // TODO: re-throw exception ? String msg = "Execution of flow " + flowName + " failed."; log.error(msg, e); - dispatchAddStep(new ExecutionStep(realizedFlow.getModuleName(), - ExecutionStep.ERROR, msg + " " + e.getMessage())); - processThread.notifyError(); + getProcessThreadGroup().dispatchAddStep( + new ExecutionStep(realizedFlow.getModuleName(), + ExecutionStep.ERROR, msg + " " + e.getMessage())); + // processThread.notifyError(); } finally { - processThread.flowCompleted(); - dispatchAddStep(new ExecutionStep(realizedFlow.getModuleName(), - ExecutionStep.PHASE_END, "Flow " + flowName)); + // processThread.flowCompleted(); + getProcessThreadGroup().dispatchAddStep( + new ExecutionStep(realizedFlow.getModuleName(), + ExecutionStep.PHASE_END, "Flow " + flowName)); processDestructionCallbacks(); } } - private void dispatchAddStep(ExecutionStep step) { - processThread.getProcessThreadGroup().dispatchAddStep(step); - } + // private void dispatchAddStep(ExecutionStep step) { + // getProcessThreadGroup().dispatchAddStep(step); + // } private synchronized void processDestructionCallbacks() { for (int i = destructionCallbacks.size() - 1; i >= 0; i--) { @@ -111,11 +119,12 @@ public class ExecutionThread extends Thread { } protected ProcessThreadGroup getProcessThreadGroup() { - return processThread.getProcessThreadGroup(); + return (ProcessThreadGroup) getThreadGroup(); + // return processThread.getProcessThreadGroup(); } - public RealizedFlow getRealizedFlow() { - return realizedFlow; - } + // public RealizedFlow getRealizedFlow() { + // return realizedFlow; + // } }