import java.util.ArrayList;
import java.util.List;
+import java.util.concurrent.ArrayBlockingQueue;
+import java.util.concurrent.BlockingQueue;
import org.argeo.slc.execution.ExecutionModulesManager;
import org.argeo.slc.execution.ExecutionProcess;
import org.argeo.slc.process.SlcExecutionStep;
/** The thread group attached to a given {@link SlcExecution}. */
+@SuppressWarnings("deprecation")
public class ProcessThreadGroup extends ThreadGroup {
private final ExecutionModulesManager executionModulesManager;
private final ProcessThread processThread;
+// private final Authentication authentication;
+ private final static Integer STEPS_BUFFER_CAPACITY = 5000;
+
+ private BlockingQueue<ExecutionStep> steps = new ArrayBlockingQueue<ExecutionStep>(
+ STEPS_BUFFER_CAPACITY);
public ProcessThreadGroup(ExecutionModulesManager executionModulesManager,
ProcessThread processThread) {
+ " thread group");
this.executionModulesManager = executionModulesManager;
this.processThread = processThread;
+// this.authentication = SecurityContextHolder.getContext()
+// .getAuthentication();
}
- // public SlcExecution getSlcProcess() {
- // return processThread.getSlcProcess();
- // }
+// public Authentication getAuthentication() {
+// return authentication;
+// }
public void dispatchAddStep(ExecutionStep step) {
// legacy
List<ExecutionStep> steps = new ArrayList<ExecutionStep>();
steps.add(step);
- dispatchAddSteps(steps);
+ // dispatchAddSteps(steps);
+ this.steps.add(step);
}
public void dispatchAddSteps(List<ExecutionStep> steps) {
executionModulesManager.dispatchAddSteps(slcProcess, steps);
}
+ public BlockingQueue<ExecutionStep> getSteps() {
+ return steps;
+ }
+
}