JBPM4基础篇02-管理流程定义

来源:互联网 发布:模拟植物生长算法代码 编辑:程序博客网 时间:2024/04/30 15:01

上一篇已经创建好了一个简单的流程文件:

代码如下:

<?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包。

  1. /jbpm.jar
  2. /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());    }}

解释一下:创建JBPM引擎,创建流程服务,发布一个流程,然后打印出流程列表,再根据流程ID删除掉一个流程,最后输出流程的个数。
Console:

除去一些日志信息,控制台先打印出了一个“1helloworld”,然后最后输出了一个“0”.