上一篇已经创建好了一个简单的流程文件:
代码如下:
- <?xml version="1.0" encoding="UTF-8"?>
- <process name="helloworld" xmlns="http://jbpm.org/4.3/jpdl">
- <start g="83,71,48,48" name="start1">
- <transition g="-59,-17" name="to state1" to="state1"/>
- </start>
- <end g="93,316,48,48" name="end1"/>
- <state g="63,192,92,52" name="state1">
- <transition g="-47,-17" name="to end1" to="end1"/>
- </state>
- </process>
<?xml version="1.0" encoding="UTF-8"?>
<process name="helloworld" xmlns="http://jbpm.org/4.3/jpdl">
<start g="83,71,48,48" name="start1">
<transition g="-59,-17" name="to state1" to="state1"/>
</start>
<end g="93,316,48,48" name="end1"/>
<state g="63,192,92,52" name="state1">
<transition g="-47,-17" name="to end1" to="end1"/>
</state>
</process>
先不去探究XML中每个节点的含义,直接写个JUnit测试走一遍再说。
在写测试类之前,必须导入依赖的Jar包。
- /jbpm.jar
- /lib/下所有的jar包(不一定每个都有用)
- package org.wxp;
- import java.util.List;
- import junit.framework.TestCase;
- import org.jbpm.api.Configuration;
- import org.jbpm.api.ProcessDefinition;
- import org.jbpm.api.ProcessEngine;
- import org.jbpm.api.RepositoryService;
- /**
- * 1.创建流程引擎ProcessEngine 2.创建流程服务RepositoryService
- * 3.发布一个流程repositoryService.createDeployment
- * ().addResourceFromClasspath("helloworld.jpdl.xml").deploy();
- * 4.获取流程列表repositoryService.createProcessDefinitionQuery().list();
- * 5.删除一个流程repositoryService.deleteDeploymentCascade(deploymentId);
- *
- * @author Champion.Wong
- *
- */
- public class HelloTest extends TestCase {
- ProcessEngine processEngine; // 创建流程引擎
- public HelloTest() {
- processEngine = Configuration.getProcessEngine();
- }
- public void testDeploy() {
- // 创建流程服务
- RepositoryService repositoryService = processEngine
- .getRepositoryService();
- // 发布一个流程
- String deploymentId = repositoryService.createDeployment()
- .addResourceFromClasspath("helloworld.jpdl.xml").deploy();
- // 获取流程列表
- List<ProcessDefinition> list = repositoryService
- .createProcessDefinitionQuery().list();
- for (ProcessDefinition pd : list) {
- System.out.println(pd.getId() + "||" + pd.getName());
- }
- // 删除流程(级联删除)
- repositoryService.deleteDeploymentCascade(deploymentId);
- // 打印流程的个数
- System.out.println(repositoryService.createProcessDefinitionQuery()
- .count());
- }
- }
package org.wxp;
import java.util.List;
import junit.framework.TestCase;
import org.jbpm.api.Configuration;
import org.jbpm.api.ProcessDefinition;
import org.jbpm.api.ProcessEngine;
import org.jbpm.api.RepositoryService;
/**
* 1.创建流程引擎ProcessEngine 2.创建流程服务RepositoryService
* 3.发布一个流程repositoryService.createDeployment
* ().addResourceFromClasspath("helloworld.jpdl.xml").deploy();
* 4.获取流程列表repositoryService.createProcessDefinitionQuery().list();
* 5.删除一个流程repositoryService.deleteDeploymentCascade(deploymentId);
*
* @author Champion.Wong
*
*/
public class HelloTest extends TestCase {
ProcessEngine processEngine; // 创建流程引擎
public HelloTest() {
processEngine = Configuration.getProcessEngine();
}
public void testDeploy() {
// 创建流程服务
RepositoryService repositoryService = processEngine
.getRepositoryService();
// 发布一个流程
String deploymentId = repositoryService.createDeployment()
.addResourceFromClasspath("helloworld.jpdl.xml").deploy();
// 获取流程列表
List<ProcessDefinition> list = repositoryService
.createProcessDefinitionQuery().list();
for (ProcessDefinition pd : list) {
System.out.println(pd.getId() + "||" + pd.getName());
}
// 删除流程(级联删除)
repositoryService.deleteDeploymentCascade(deploymentId);
// 打印流程的个数
System.out.println(repositoryService.createProcessDefinitionQuery()
.count());
}
}
解释一下:创建JBPM引擎,创建流程服务,发布一个流程,然后打印出流程列表,再根据流程ID删除掉一个流程,最后输出流程的个数。
Console:
除去一些日志信息,控制台先打印出了一个“1helloworld”,然后最后输出了一个“0”.