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


   

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

代码如下:

  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 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包(不一定每个都有用)

  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. }  
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”.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值