北在北方

太白枝头看,花开不计年,杯中浮日月,楼外是青天。

导航

jBPM4.4之流程引擎对象ProcessEngine

Posted on 2012-07-24 22:28  CN.programmer.Luxh  阅读(1230)  评论(0编辑  收藏  举报

  在jBPM4.4中,所有的服务接口都是通过ProcessEngine对象获得的。

1、关于ProcessEngine

  1)ProcessEngine通过Configuration类构建,Configuration以单例模式获取ProcessEngine对象。

/** get the singleton ProcessEngine that is created from the default
   * configuration file 'jbpm.cfg.xml'. */
  public static ProcessEngine getProcessEngine() {
    if (singleton == null) {
      synchronized (Configuration.class) {
        if (singleton == null) {
          singleton = new Configuration().setResource("jbpm.cfg.xml").buildProcessEngine();
        }
      }
    }
    return Configuration.singleton;
  }

  2)ProcessEngine是线程安全的,所有的线程和请求都可以使用同一个ProcessEngine对象。

2、获取ProcessEngine对象

  1)方式一:使用classpath根目录下的默认配置文件jbpm.cfg.xml创建一个单例的ProcessEngine。

 ProcessEngine processEngine = Configuration.getProcessEngine();

  2)方式二:指定其他位置的jBPM配置文件,如src根目录config包下的my-jbpm-cfg.xml。

ProcessEngine processEngine = new Configuration()
      .setResource("config/my-jbpm-cfg.xml")
      .buildProcessEngine();

3、通过ProcessEngine对象获取各种服务接口

  1)获取RepositoryService接口。

RepositoryService repositoryService = processEngine.getRepositoryService();

  RepositoryService----流程资源服务接口。提供对流程定义的部署、查询、删除和流程图查看等操作。

  2)获取ExecutionService接口。

ExecutionService executionService = processEngine.getExecutionService();

  ExecutionService----流程执行服务接口。提供启动流程实例、推进、删除等操作。

  3)获取TaskService接口。

TaskService taskService = processEngine.getTaskService();

  TaskService----人工任务服务接口。提供对任务的创建、提交、查询、保存、删除等操作。

  4)获取HistoryService接口。

HistoryService historyService = processEngine.getHistoryService();

  HistoryService----流程历史服务接口。提供对任务的管理操作。提供对流程历史库中历史流程实例、历史活动实例等记录的查询。

  5)获取ManagementService接口。

ManagementService managementService = processEngine.getManagementService();

  ManagementService----流程管理控制服务接口。

  6)获取IdentityService接口。

IdentityService identityService = processEngine.getIdentityService();

  IdentityService----身份认证服务接口。提供对流程用户、用户组管理。