转载地址:http://my.oschina.net/iwuyang/blog/197238
概述
与之前的jBPM 5相比,jBPM 6 新引入的kjars及mavenized的特性,使流程开发设计与之前有了很大的不同,本文主要说明jBPM 6 相关 eclipse 插件安装,及使用安装好的插件初次测试jBPM开发。
jBPM 6 开发 eclipse 插件安装
从http://sourceforge.net/projects/jbpm/files/jBPM%206/jbpm-6.0.0.Final/选择下载jbpm-6.0.0.Final-installer-full.zip,解压,解压完成org.drools.updatesite-6.0.0.Final.zip位于jbpm-installer/lib目录下。
打开eclipse,Help -> Install New Software -> Add -> Archive,选择org.drools.updatesite-6.0.0.Final.zip,并命名jbpm-plugin(可任意名字)如下图:
点击OK,在弹出的选择框中选择JBoss Drools Core, JBoss Drools Guvnor, JBoss jBPM Core,如下图:
点击Next,直到同意安装license页,选择同意安装license,点击下一步,知道完成安装,重启eclipse,即完成安装。
创建并运行Drools工程
打开eclipse,File -> New -> Other -> Drools -> Drools Project -> Next,创建工程名“org.drools.helloworld”,Next 确保HelloWorld规则文件和运行HelloWorld规则文件的程序被选中,如下图所示:
点击Finish,完成创建。目录结构如下图所示:
02 | └── org.drools.helloworld |
08 | │ │ └── DroolsTest.java |
13 | │ │ └── pom.properties |
- DroolsTest.java 为运行HelloWorld drools文件的类
- Sample.drl 为规则文件
- kmodule.xml 为 jBPM 6引入的kjars和mavenized概念对应的配置文件
- pom.properties 为mavenized概念对应的配置文件
我们注意,我们需要修改pom.properties文件,添加相关maven信息如下:
正常运行使用Maven编译该文件会自动生成,此处我们需要手动输入。
kmodule.xml 内容如下:
1 | <? xml version = "1.0" encoding = "UTF-8" ?> |
3 | < kbase name = "rules" packages = "rules" > |
4 | < ksession name = "ksession-rules" /> |
该配置定义当前kbase为classpath下rules,ksession的名字为ksession-rules。
DroolsTest的main方法内容如下:
01 | public static final void main(String[] args) { |
04 | KieServices ks = KieServices.Factory.get(); |
05 | KieContainer kContainer = ks.getKieClasspathContainer(); |
06 | KieSession kSession = kContainer.newKieSession( "ksession-rules" ); |
09 | Message message = new Message(); |
10 | message.setMessage( "Hello World" ); |
11 | message.setStatus(Message.HELLO); |
12 | kSession.insert(message); |
13 | kSession.fireAllRules(); |
14 | } catch (Throwable t) { |
运行
DroolsTest,程序输出如下内容:
即企业规则文件执行成功。
创建并运行jBPM工程
打开eclipse,File -> New -> Other -> jBPM -> jBPM Project(Maven) -> Next,创建工程名“org.jbpm.helloworld”,Next,确保简单示例流程模板被选择,如下图:
点击Finish完成创建工程,后目录如下结构如下:
- ProcessTest为运行Sample流程的java类
- sample.bpmn为Sample流程
ProcessTest中执行流程的代码段如下:
01 | public void testProcess() { |
02 | RuntimeManager manager = createRuntimeManager( "sample.bpmn" ); |
03 | RuntimeEngine engine = getRuntimeEngine( null ); |
04 | KieSession ksession = engine.getKieSession(); |
06 | ProcessInstance processInstance = ksession.startProcess( "com.sample.bpmn.hello" ); |
08 | assertProcessInstanceCompleted(processInstance.getId(), ksession); |
09 | assertNodeTriggered(processInstance.getId(), "Hello" ); |
11 | manager.disposeRuntimeEngine(engine); |
运行
ProcessTest输出如下: