一个简单的流程定义实例测试程序

package org.jbpm.tutorial.helloworld; 
 
import junit.framework.TestCase; 
import org.jbpm.graph.def.ProcessDefinition; 
import org.jbpm.graph.exe.ProcessInstance; 
import org.jbpm.graph.exe.Token; 
 
public class HelloWorldTest extends TestCase { 
   
  public void testHelloWorldProcess() { 
	  /* 
		  这个段测试方法演示了一个流程的在代码中以字符串形式定义和这个流程定义的具体执行。  
		  这个流程定义包含三个节点:一个未命名的开始状态(start-state),  
		  一个名字为's'的状态(state)和一个名字为'end'的结束状态(end-state)。  
		  下一行的功能是把一段xml文本解析为一个ProcessDefinition, 
		  一个ProcessDefinition是一个java对象的形式对流程的正式的描述。 
	  */ 
      ProcessDefinition processDefinition = ProcessDefinition.parseXmlString( 
        "<process-definition>" + 
        "  <start-state>" + 
        "    <transition to='s' />" + 
        "  </start-state>" + 
        "  <state name='s'>" + 
        "    <transition to='end' />" + 
        "  </state>" + 
        "  <end-state name='end' />" + 
        "</process-definition>" 
      ); 
      /* 
	      下边的一行根据流程定义构造了的一个具体的执行实例。 构造以后,执行的流程就有了一个被定位在开始
	      状态(start-state)上的主要的执行路径  
      */ 
          ProcessInstance processInstance =  
              new ProcessInstance(processDefinition); 
      /* 
	      构造以后,执行的流程就有了一个主要的执行路径(root token)  
      */ 
          Token token = processInstance.getRootToken(); 
      /* 
	          当然,构造以后,流程定义的主要的执行路径被定位在开始状态(start-state) 
      */ 
          assertSame(processDefinition.getStartState(), token.getNode());   
      /* 
	          开始流程执行,通过默认的转换(transition)离开开始状态(start-state) 
      */ 
          token.signal(); 
      /* 
	          直到运行的流程进入一个等待状态,signal方法将一直被阻塞,运行的流程将要进入第一个等待状态:状
	          态‘s’.因此现在主要的执行路径,定位到了状态‘s’上。  
      */ 
          assertSame(processDefinition.getNode("s"), token.getNode()); 
      /* 
	          执行signal,流程将继续执行,将通过默认的转换(transition)离开状态‘s’ 
      */ 
          token.signal(); 
      /* 
	              流程实例已经到达了结束状态。 
      */ 
      assertSame(processDefinition.getNode("end"), token.getNode()); 
    }
}
  

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值