Jboss-jbpm介绍及简单例子

jbpm是一个工作流框架,现已加入了Jboss组织。

下载地址:http://labs.jboss.com/projects/download/

下面是一个网上收罗过来的个人感觉非常简单的例子,在这里做一个笔记。

本文使用的jbpm版本:3.1.4。

文件结构如下:

processdefinition.xml文件:

<? xml version="1.0" encoding="UTF-8" ?>
< process-definition  xmlns ="urn:jbpm.org:jpdl-3.1"  name ="example_5" >
    
< start-state  name ="开始" >
        
< event  type ="node-leave" >
            
< action  name ="action1" ></ action >
        
</ event >
        
< transition  name ="tr1"  to ="工作中" ></ transition >
        
< transition  name ="tr2"  to ="求学中" ></ transition >
    
</ start-state >
    
< state  name ="工作中" >
        
< event  type ="node-enter" >
            
< action  name ="工作"  class ="com.wide.example5.WorkAction" ></ action >
        
</ event >
        
< transition  name =""  to ="终成正果" ></ transition >
    
</ state >
    
< state  name ="求学中" >
        
< event  type ="node-enter" >
            
< action  name ="学习"  class ="com.wide.example5.StudyAction" ></ action >
        
</ event >
        
< transition  name =""  to ="终成正果" ></ transition >
    
</ state >
    
< end-state  name ="终成正果" >
        
< event  type ="node-enter" >
            
< action  name ="圆满"  class ="com.wide.example5.EndAction" ></ action >
        
</ event >
    
</ end-state >
</ process-definition >

StartAction.java文件:

package  com.wide.example5;

import  org.apache.commons.logging.Log;
import  org.apache.commons.logging.LogFactory;
import  org.jbpm.graph.def.ActionHandler;
import  org.jbpm.graph.exe.ExecutionContext;

public   class  StartAction  implements  ActionHandler  {

    
private static final long serialVersionUID = 7004254907848592166L;
    
    
private static final Log logger = LogFactory.getLog(StartAction.class);

    
public void execute(ExecutionContext executionContext) throws Exception {
        
        logger.info(
"刚开始前途未卜...");
    }

}

StudyAction.java文件:

package  com.wide.example5;

import  org.apache.commons.logging.Log;
import  org.apache.commons.logging.LogFactory;
import  org.jbpm.graph.def.ActionHandler;
import  org.jbpm.graph.exe.ExecutionContext;

public   class  StudyAction  implements  ActionHandler  {

    
private static final long serialVersionUID = -4927790934014966410L;

    
private static final Log logger = LogFactory.getLog(StudyAction.class);

    
public void execute(ExecutionContext executionContext) throws Exception {
        
        logger.info(
"努力学习本领...");
    }

}

WorkAction.java文件:

package  com.wide.example5;

import  org.apache.commons.logging.Log;
import  org.apache.commons.logging.LogFactory;
import  org.jbpm.graph.def.ActionHandler;
import  org.jbpm.graph.exe.ExecutionContext;

public   class  WorkAction  implements  ActionHandler  {

    
private static final long serialVersionUID = 9112792586877839879L;

    
private static final Log logger = LogFactory.getLog(WorkAction.class);
   
    
public void execute(ExecutionContext executionContext) throws Exception {
        
        logger.info(
"努力工作赚钱...");
    }

}

EndAction.java文件:

package  com.wide.example5;

import  org.apache.commons.logging.Log;
import  org.apache.commons.logging.LogFactory;
import  org.jbpm.graph.def.ActionHandler;
import  org.jbpm.graph.exe.ExecutionContext;

public   class  EndAction  implements  ActionHandler  {

    
private static final long serialVersionUID = -3161235991642461706L;

    
private static final Log logger = LogFactory.getLog(EndAction.class);

    
public void execute(ExecutionContext executionContext) throws Exception {
        
        logger.info(
"善哉,终成正果,往生极乐!");
    }

}

Example5.java测试代码:

package  com.wide;

import  org.jbpm.graph.def.ProcessDefinition;
import  org.jbpm.graph.exe.ProcessInstance;
import  org.jbpm.graph.exe.Token;

public   class  Example5  {
    
    
public static void main(String[] argv){
        
        ProcessDefinition processDefinition 
= ProcessDefinition.parseXmlResource("processdefinition.xml");
        ProcessInstance ProcessInstance 
= new ProcessInstance(processDefinition);

        Token token 
= ProcessInstance.getRootToken();
        
        System.out.println(token.getNode().getName());
        token.signal(
"tr2");
        System.out.println(token.getNode().getName());
        token.signal();
        System.out.println(token.getNode().getName());
    }

}

更多资源:

http://jbpm-x.javaeye.com/category/19561

http://www.blogjava.net/chengang/category/12967.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值