JBPM 流程定义管理
在 JBPM 中,流程定义(ProcessDefinition)是核心概念,它描述了业务流程的步骤和规则。通常我们将其解析为 .jpdl.xml 文件得到流程步骤的信息。没有更新操作时,启动流程实例会使用指定 key 的最新版本。
1. 部署流程定义
部署是将流程资源注册到引擎的过程。支持从类路径添加单个资源,或者批量添加 ZIP 包。
单文件部署
如果资源分散在 Classpath 中,可以多次调用 addResourceFromClasspath。即使重复添加也不会报错,但建议保持资源整洁。
@Test
public void deploy_1() {
String deploymentId = processEngine.getRepositoryService()
.createDeployment()
.addResourceFromClasspath("helloworld/test.jpdl.xml")
.addResourceFromClasspath("helloworld/test.png")
.deploy();
System.out.println("deploymentId = " + deploymentId);
}
批量部署
对于多个资源,可以先打成 ZIP 包,然后使用 ZipInputStream 进行部署。这种方式适合包含子目录结构的复杂项目。
@Test
public void deploy_2() throws IOException {
InputStream in = this.getClass().getClassLoader().getResourceAsStream("helloworld/helloworld.zip");
ZipInputStream zipInputStream = new ZipInputStream(in);
String deploymentId = processEngine.getRepositoryService()
.createDeployment()
.addResourcesFromZipInputStream(zipInputStream)
.deploy();
System.out.println("deploymentId = " + deploymentId);
}
注意: 除了上述方法,还可以使用 添加单个流式文件。以上方法可以组合调用,灵活性很高。

