Activiti的ProcessEngines容器

ProcessEngines由一个或一个以上的ProcessEngine以及与ProcessEngine对应的ProcessEngineInfo组成。

每个ProcessEngine对应一个ProcessEngineInfo。

Activiti的ProcessEngines容器

每个processEngine都是通过一个activiti.properties的配置文件来创建的,activiti.properties配置中有一个process.engine.name来唯一标识流程引擎。


activiti.properties的解析工作由DbProcessEngineBuilder完成,DbProcessEngineBuilder解析文件后创建了ProcessEngineConfiguration的实例,把PersistenceSessionFactory的默认实现IbatisPersistenceSessionFactory保存到ProcessEngineConfiguration的实例中。

在创建ProcessEngine的时候,ProcessEngineConfiguration的实例作为参数传入并返回一个ProcessEngineImpl实例。

下图是每个流程实例创建的过程简图:

Activiti的ProcessEngines容器

一个ProcessEngineConfiguration包含了流程引擎所需要的所有服务组件,如图:

Activiti的ProcessEngines容器

在ProcessEngine和ProcessEngineImpl中只有部分组件暴露出来,对外是可见的。如下图,是ProcesEngine和ProcessEngineImpl对外暴露出的可获取的组件。

Activiti的ProcessEngines容器

《待续》