X-Git-Url: http://git.argeo.org/?a=blobdiff_plain;f=org.argeo.slc.spring%2Fsrc%2Forg%2Fargeo%2Fslc%2Fcore%2Fexecution%2FProcessThreadGroup.java;fp=org.argeo.slc.spring%2Fsrc%2Forg%2Fargeo%2Fslc%2Fcore%2Fexecution%2FProcessThreadGroup.java;h=17dbff83b93f493cb1d3cccb95a3ef20d9fb092a;hb=e14154d2baba78852915304d51cbb56bed1d3d3e;hp=0000000000000000000000000000000000000000;hpb=aba0f1135009d9014c42368ecea338088e6d2be1;p=gpl%2Fargeo-slc.git diff --git a/org.argeo.slc.spring/src/org/argeo/slc/core/execution/ProcessThreadGroup.java b/org.argeo.slc.spring/src/org/argeo/slc/core/execution/ProcessThreadGroup.java new file mode 100644 index 000000000..17dbff83b --- /dev/null +++ b/org.argeo.slc.spring/src/org/argeo/slc/core/execution/ProcessThreadGroup.java @@ -0,0 +1,68 @@ +/* + * 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. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.argeo.slc.core.execution; + +import java.util.concurrent.ArrayBlockingQueue; +import java.util.concurrent.BlockingQueue; + +import org.argeo.slc.execution.ExecutionProcess; +import org.argeo.slc.execution.ExecutionStep; + +/** The thread group attached to a given {@link SlcExecution}. */ +public class ProcessThreadGroup extends ThreadGroup { +// private final Authentication authentication; + private final static Integer STEPS_BUFFER_CAPACITY = 5000; + + private BlockingQueue steps = new ArrayBlockingQueue( + STEPS_BUFFER_CAPACITY); + + private Boolean hadAnError = false; + + public ProcessThreadGroup(ExecutionProcess executionProcess) { + super("SLC Process #" + executionProcess.getUuid() + " thread group"); +// this.authentication = SecurityContextHolder.getContext() +// .getAuthentication(); + } + +// public Authentication getAuthentication() { +// return authentication; +// } + + public void dispatchAddStep(ExecutionStep step) { + // ExecutionProcess slcProcess = processThread.getProcess(); + // List steps = new ArrayList(); + // steps.add(step); + // TODO clarify why we don't dispatch steps, must be a reason + // dispatchAddSteps(steps); + // slcProcess.addSteps(steps); + if (step.getType().equals(ExecutionStep.ERROR)) + hadAnError = true; + this.steps.add(step); + } + + // public void dispatchAddSteps(List steps) { + // ExecutionProcess slcProcess = processThread.getProcess(); + // executionModulesManager.dispatchAddSteps(slcProcess, steps); + // } + + public BlockingQueue getSteps() { + return steps; + } + + public Boolean hadAnError() { + return hadAnError; + } +}