View Javadoc
1   /*
2    * Copyright (C) 2007-2012 Argeo GmbH
3    *
4    * Licensed under the Apache License, Version 2.0 (the "License");
5    * you may not use this file except in compliance with the License.
6    * You may obtain a copy of the License at
7    *
8    *         http://www.apache.org/licenses/LICENSE-2.0
9    *
10   * Unless required by applicable law or agreed to in writing, software
11   * distributed under the License is distributed on an "AS IS" BASIS,
12   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13   * See the License for the specific language governing permissions and
14   * limitations under the License.
15   */
16  package org.argeo.slc.execution;
17  
18  import java.util.List;
19  
20  /**
21   * A process is the functional representation of a combination of executions.
22   * While an execution is the actual java code running, a process exists before,
23   * during and after the execution actually took place, providing an entry point
24   * for the definition of executions, their monitoring (e.g. logging) and
25   * tracking. A process can be distributed or parallelized. <br/>
26   * NEW => INITIALIZED => SCHEDULED => RUNNING<br/>
27   * RUNNING => {COMPLETED | ERROR | KILLED}<br/>
28   * {COMPLETED | ERROR | KILLED} => PURGED<br/>
29   * UNKOWN : this is a bug if this status occurs<br/>
30   */
31  public interface ExecutionProcess {
32  	/** The process is not yet usable. */
33  	public final static String NEW = "NEW";
34  	/** The process is usable but not yet scheduled to run. */
35  	public final static String INITIALIZED = "INITIALIZED";
36  	/** The process is usable and scheduled to run, but not yet running. */
37  	public final static String SCHEDULED = "SCHEDULED";
38  	/** The process is currently running. */
39  	public final static String RUNNING = "RUNNING";
40  	/** The process has properly completed. */
41  	public final static String COMPLETED = "COMPLETED";
42  	/** The process failed because of an unexpected error. */
43  	public final static String ERROR = "ERROR";
44  	/** The process was killed explicitly or through a crash. */
45  	public final static String KILLED = "KILLED";
46  	/** The status cannot be retrieved (probably because of unexpected errors). */
47  	public final static String UNKOWN = "UNKOWN";
48  
49  	/**
50  	 * Only a reference to the process has been kept, all monitoring data such
51  	 * as logs have been purged.
52  	 */
53  	public final static String PURGED = "PURGED";
54  
55  	/** The UUID of this process. */
56  	public String getUuid();
57  
58  	/** The current status of this process. */
59  	public String getStatus();
60  
61  	/** Sets the current status of this process */
62  	public void setStatus(String status);
63  
64  	public void addSteps(List<ExecutionStep> steps);
65  
66  	public List<RealizedFlow> getRealizedFlows();
67  }