本章概述
流程引擎及服务
流程引擎存储服务
RepositoryService
- 管理流程定义文件xml及静态的服务
- 对特定的流程的暂停和激活
- 流程定义启动权限管理
- 部署文件构造器DeploymentBuilder
- 部署文件查询器DeploymentQuery
- 流程定义文件查询对象ProcessDefinitionQuery
- 流程部署文件对象Deployment
- 流程定义文件对象ProcessDefinittion
- 流程定义的Java格式BpmnModel(BpmnModel是纯Java的数据结构List或者Map )
流程存储服务-RepositoryService
RepostoryServiceTest
private static final Logger LOGGER = LoggerFactory.getLogger(RepostoryServiceTest.class);
@Rule
public ActivitiRule activitiRule = new ActivitiRule();
@Test
public void testRepostory() {
RepositoryService repositoryService = activitiRule.getRepositoryService();
// 第一次部署
DeploymentBuilder deploymentBuilder = repositoryService.createDeployment();
deploymentBuilder.name("测试部署资源")
.addClasspathResource("my-process.bpmn20.xml")
.addClasspathResource("second_approve.bpmn20.xml");
// 第二次部署
DeploymentBuilder deployment1 = repositoryService.createDeployment();
deployment1.name("测试部署资源")
.addClasspathResource("my-process.bpmn20.xml")
.addClasspathResource("second_approve.bpmn20.xml");
deployment1.deploy();
Deployment deploy = deploymentBuilder.deploy();
LOGGER.info(" deploy ={}", deploy);
DeploymentQuery deploymentQuery = repositoryService.createDeploymentQuery();
List<Deployment> deployments = deploymentQuery
// .deploymentId(deploy.getId())
.orderByDeploymenTime().asc()
.listPage(0, 100);
for (Deployment deployment : deployments) {
LOGGER.info("deployment = {}", deployment);
}
LOGGER.info("deployments.size() = {}", deployments.size());
List<ProcessDefinition> definitionList = repositoryService.createProcessDefinitionQuery()
// .deploymentId(deployment.getId())
.orderByProcessDefinitionKey().asc()
.listPage(0, 100);
for (ProcessDefinition processDefinition : definitionList) {
LOGGER.info("processDefinition= {},version ={}, key = {},id ={}", processDefinition, processDefinition.getVersion()
, processDefinition.getKey()
, proce
ssDefinition.getId());
}
}
测试结果
6个生成文件部署资料如下图
testSuspend
@Test
@org.activiti.engine.test.Deployment(resources = {
"my-process.bpmn20.xml"})
public void testSuspend() {
RepositoryService repositoryService = activitiRule.getRepositoryService();
ProcessDefinition processDefinition = repositoryService