您的位置:首页 > 产品设计 > 产品经理

Jboss-jbpm介绍及简单例子

2008-02-03 15:12 579 查看
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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: