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

来源:互联网 发布:云端网络 编辑:程序博客网 时间:2024/04/30 14:01


代码如下:

[html] view plain copy print?
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2.   
  3. <process name="helloworld" xmlns="http://jbpm.org/4.3/jpdl">  
  4.    <start g="83,71,48,48" name="start1">  
  5.       <transition g="-59,-17" name="to state1" to="state1"/>  
  6.    </start>  
  7.    <end g="93,316,48,48" name="end1"/>  
  8.    <state g="63,192,92,52" name="state1">  
  9.       <transition g="-47,-17" name="to end1" to="end1"/>  
  10.    </state>  
  11. </process>  

先不去探究XML中每个节点的含义,直接写个JUnit测试走一遍再说。

在写测试类之前,必须导入依赖的Jar包。

  1. /jbpm.jar
  2. /lib/下所有的jar包(不一定每个都有用)

[java] view plain copy print?
  1. package org.wxp;  
  2.   
  3. import java.util.List;  
  4.   
  5. import junit.framework.TestCase;  
  6.   
  7. import org.jbpm.api.Configuration;  
  8. import org.jbpm.api.ProcessDefinition;  
  9. import org.jbpm.api.ProcessEngine;  
  10. import org.jbpm.api.RepositoryService;  
  11.   
  12. /** 
  13.  * 1.创建流程引擎ProcessEngine 2.创建流程服务RepositoryService 
  14.  * 3.发布一个流程repositoryService.createDeployment 
  15.  * ().addResourceFromClasspath("helloworld.jpdl.xml").deploy(); 
  16.  * 4.获取流程列表repositoryService.createProcessDefinitionQuery().list(); 
  17.  * 5.删除一个流程repositoryService.deleteDeploymentCascade(deploymentId); 
  18.  *  
  19.  * @author Champion.Wong 
  20.  *  
  21.  */  
  22. public class HelloTest extends TestCase {  
  23.   
  24.     ProcessEngine processEngine; // 创建流程引擎  
  25.   
  26.     public HelloTest() {  
  27.         processEngine = Configuration.getProcessEngine();  
  28.     }  
  29.   
  30.     public void testDeploy() {  
  31.         // 创建流程服务  
  32.         RepositoryService repositoryService = processEngine  
  33.                 .getRepositoryService();  
  34.   
  35.         // 发布一个流程  
  36.         String deploymentId = repositoryService.createDeployment()  
  37.                 .addResourceFromClasspath("helloworld.jpdl.xml").deploy();  
  38.   
  39.         // 获取流程列表  
  40.         List<ProcessDefinition> list = repositoryService  
  41.                 .createProcessDefinitionQuery().list();  
  42.   
  43.         for (ProcessDefinition pd : list) {  
  44.             System.out.println(pd.getId() + "||" + pd.getName());  
  45.         }  
  46.   
  47.         // 删除流程(级联删除)  
  48.         repositoryService.deleteDeploymentCascade(deploymentId);  
  49.   
  50.         // 打印流程的个数  
  51.         System.out.println(repositoryService.createProcessDefinitionQuery()  
  52.                 .count());  
  53.     }  
  54. }  

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

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

0 0
原创粉丝点击