1.添加依赖的jar包
写一个test类进行测试代码如下
package com.darren;
import java.util.List;
import org.jbpm.api.Configuration;
import org.jbpm.api.NewDeployment;
import org.jbpm.api.ProcessDefinition;
import org.jbpm.api.ProcessDefinitionQuery;
import org.jbpm.api.ProcessEngine;
import org.jbpm.api.RepositoryService;
import org.junit.Test;
publicclass HelloWordTest {
@Test
publicvoid testDeploy() {
// 1.get the singleton ProcessEngine that is created from the default
// configuration file 'jbpm.cfg.xml'
// 1.使用默认的配置文件创建流程引擎 -》自动寻找classpath下的jbpm.cfg.xml文件
ProcessEngine processEngine = Configuration.getProcessEngine();
// 2.the repository service that provides access to the process
// repository.
// 2.得到了访问流程存储库的服务
RepositoryService repositoryService = processEngine.getRepositoryService();
// 3.create a new deployment. The deployment will only be deployed into
// the repository after invoking the NewDeployment.deploy().
// 3.创建一个新的部署。部署只会被部署到存储库调用NewDeployment.deploy后()。
NewDeployment newDeployment = repositoryService.createDeployment();
// 4.adds a resource as a resource from the classpath
// 4.从classpath路径添加一个资源
newDeployment.addResourceFromClasspath("helloWorld.jpdl.xml");
// 5.after adding resources, this will perform the actual deployment.
// 5.在添加资源后,这将执行实际的部署,部署流程,并返回流程的Id
String deploymentId = newDeployment.deploy();
// create a query for process definitions
// 创建一个查询过程定义
ProcessDefinitionQuery processDefinitionQuery = repositoryService.createProcessDefinitionQuery();
// execute the query and obtain the list of ProcessDefinitions
// 执行查询和获得ProcessDefinitions的列表
List<ProcessDefinition> processDefiniList = processDefinitionQuery.list();
for (ProcessDefinition definition : processDefiniList) {
System.out.println(definition.getId());
}
// deletes deployment, contained process definitions, related process
// instances and their history information
// 删除部署,包含流程定义,相关的过程实例和他们的历史信息
repositoryService.deleteDeploymentCascade(deploymentId);
System.out.println(repositoryService.createProcessDefinitionQuery().list().size());
}
}