/* * 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.execution; import java.util.List; /** * A process is the functional representation of a combination of executions. * While an execution is the actual java code running, a process exists before, * during and after the execution actually took place, providing an entry point * for the definition of executions, their monitoring (e.g. logging) and * tracking. A process can be distributed or parallelized.
* NEW => INITIALIZED => SCHEDULED => RUNNING
* RUNNING => {COMPLETED | ERROR | KILLED}
* {COMPLETED | ERROR | KILLED} => PURGED
* UNKOWN : this is a bug if this status occurs
*/ public interface ExecutionProcess { /** The process is not yet usable. */ public final static String NEW = "NEW"; /** The process is usable but not yet scheduled to run. */ public final static String INITIALIZED = "INITIALIZED"; /** The process is usable and scheduled to run, but not yet running. */ public final static String SCHEDULED = "SCHEDULED"; /** The process is currently running. */ public final static String RUNNING = "RUNNING"; /** The process has properly completed. */ public final static String COMPLETED = "COMPLETED"; /** The process failed because of an unexpected error. */ public final static String ERROR = "ERROR"; /** The process was killed explicitly or through a crash. */ public final static String KILLED = "KILLED"; /** The status cannot be retrieved (probably because of unexpected errors). */ public final static String UNKOWN = "UNKOWN"; /** * Only a reference to the process has been kept, all monitoring data such * as logs have been purged. */ public final static String PURGED = "PURGED"; /** The UUID of this process. */ public String getUuid(); /** The current status of this process. */ public String getStatus(); /** Sets the current status of this process */ public void setStatus(String status); public void addSteps(List steps); public List getRealizedFlows(); }