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  import org.argeo.slc.deploy.ModulesManager;
21  
22  /** Provides access to the execution modules */
23  public interface ExecutionModulesManager extends ModulesManager {
24  	/** Used to filter event notified to an execution notifier. */
25  	public static String SLC_PROCESS_ID = "slc.process.id";
26  
27  	/** Unique launch module */
28  	public static String UNIQUE_LAUNCH_MODULE_PROPERTY = "slc.launch.module";
29  
30  	/** Unique launch flow */
31  	public static String UNIQUE_LAUNCH_FLOW_PROPERTY = "slc.launch.flow";
32  
33  	/** @return a full fledged module descriptor. */
34  	public ExecutionModuleDescriptor getExecutionModuleDescriptor(
35  			String moduleName, String version);
36  
37  	/**
38  	 * @return a list of minimal execution module descriptors (only the module
39  	 *         meta data, not the flows)
40  	 */
41  	public List<ExecutionModuleDescriptor> listExecutionModules();
42  
43  	/** Synchronously finds and executes an {@link ExecutionFlow}. */
44  	public void execute(RealizedFlow realizedFlow);
45  
46  	// /** Notify of a status update status of the {@link ExecutionProcess} */
47  //	 public void dispatchUpdateStatus(ExecutionProcess process,
48  //	 String oldStatus, String newStatus);
49  	//
50  	// /** Notify that a step was added in an {@link ExecutionProcess} */
51  	// public void dispatchAddSteps(ExecutionProcess process,
52  	// List<ExecutionStep> steps);
53  	//
54  	// /**
55  	// * Register a notifier which will be notified based on the provided
56  	// * properties.
57  	// */
58  	// public void registerProcessNotifier(ExecutionProcessNotifier notifier,
59  	// Map<String, String> properties);
60  	//
61  	// /** Unregisters a notifier */
62  	// public void unregisterProcessNotifier(ExecutionProcessNotifier notifier,
63  	// Map<String, String> properties);
64  }