+ private class ExecutionThread extends Thread {
+ private final ExecutionFlowDescriptor executionFlowDescriptor;
+ private final ExecutionContext executionContext;
+ private final ExecutionModule executionModule;
+
+ public ExecutionThread(ExecutionContext executionContext,
+ ExecutionFlowDescriptor executionFlowDescriptor,
+ ExecutionModule executionModule) {
+ super("SLC Execution #" + executionContext.getUuid());
+ this.executionFlowDescriptor = executionFlowDescriptor;
+ this.executionContext = executionContext;
+ this.executionModule = executionModule;
+ }
+
+ public void run() {
+ ExecutionContext.registerExecutionContext(executionContext);
+ try {
+ executionModule.execute(executionFlowDescriptor);
+ } catch (Exception e) {
+ //TODO: re-throw exception ?
+ log.error("Execution " + executionContext.getUuid()
+ + " failed.", e);
+ }
+ }
+ }
+