ProcessEngine.java 2.7 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14
/* 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.activiti5.engine;

15

16
/**
17
 * Provides access to all the services that expose the BPM and workflow operations.
18 19 20
 * 
 * <ul>
 * <li>
21 22
 * <b>{@link org.activiti5.engine.RuntimeService}: </b> Allows the creation of
 * {@link org.activiti5.engine.repository.Deployment}s and the starting of and searching on
23
 * {@link org.activiti5.engine.runtime.ProcessInstance}s.</li>
24
 * <li>
25 26 27
 * <b>{@link org.activiti5.engine.TaskService}: </b> Exposes operations to manage human
 * (standalone) {@link org.activiti5.engine.task.Task}s, such as claiming, completing and
 * assigning tasks</li>
28
 * <li>
29 30 31
 * <b>{@link org.activiti5.engine.IdentityService}: </b> Used for managing
 * {@link org.activiti5.engine.identity.User}s, {@link org.activiti5.engine.identity.Group}s and
 * the relations between them<</li>
32
 * <li>
33 34 35 36 37
 * <b>{@link org.activiti5.engine.ManagementService}: </b> Exposes engine admin and
 * maintenance operations</li>
 *  <li>
 * <b>{@link org.activiti5.engine.HistoryService}: </b> Service exposing information about 
 * ongoing and past process instances.</li>
38 39
 * </ul>
 * 
40 41 42 43 44 45
 * Typically, there will be only one central ProcessEngine instance needed in a
 * end-user application. Building a ProcessEngine is done through a
 * {@link ProcessEngineConfiguration} instance and is a costly operation which should be
 * avoided. For that purpose, it is advised to store it in a static field or
 * JNDI location (or something similar). This is a thread-safe object, so no
 * special precautions need to be taken.
46 47 48 49
 * 
 * @author Tom Baeyens
 * @author Joram Barrez
 */
50
public interface ProcessEngine {
51

52 53
  /** the version of the activiti library */
  public static String VERSION = "6.0.0.0";
54

55 56 57
  /** The name as specified in 'process-engine-name' in 
   * the activiti.cfg.xml configuration file.
   * The default name for a process engine is 'default */
58
  String getName();
59

60
  void close();
61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76
  
  RepositoryService getRepositoryService();

  RuntimeService getRuntimeService();

  FormService getFormService();

  TaskService getTaskService();

  HistoryService getHistoryService();

  IdentityService getIdentityService();

  ManagementService getManagementService();

  ProcessEngineConfiguration getProcessEngineConfiguration();
77
}