使用了一下jBPM 4。简单测试了一个"猜点"的小应用。
先下载了jBPM 4.0 alpha1和eclipse 3.4.1。在eclipse中设置了jBPM Libarary(jbpm.jar)和jBPM_refer(lib文件夹下的所有jar包)变量。
代码结构如图1:
图1
其中Boss.java是庄家。
public class Boss {
public int go(){
int go = new Random().nextInt(9);
System.out.println("Boss hands with "+ go);
return go;
}
public boolean bingle(String answer){
int parse = Integer.parseInt(answer);
if (parse==go())
return true;
return false;
}
}
go方法是震甩子,0-9点。bingle方法是返回输赢结果。
BossTest.java是测试程序。
public class BossTest extends DbTestCase {
public void testProcess(){
deployJpdlResource("org/jbpm/guess.jpdl.xml");
Execution execution = executionService.startExecutionByKey("guess");
String executionId = execution.getId();
Boolean bingle = (Boolean) executionService.getVariable(executionId, "response");
if (bingle)
System.out.println("you win!");
else
System.out.println("you lost!");
}
}
这个类的作用是调用jBPM 4来进行猜点数。
现在进行jPDL建模。图形流程见图2:
图2
流程很简单,调用一段Boss类的bingle方法的Java代码。
其中流程文件内容是:
<process xmlns="http://jbpm.org/4/jpdl" name="guess"> <start g="26,94,48,48"> <flow to="verify bingle"/> </start> <java name="verify bingle" class="org.jbpm.Boss" method="bingle" var="response" g="256,92,92,52"> <arg><string value="2"/></arg> <flow to="end"/> </java> <state name="end" g="398,94,48,48"/> </process>
这里,我们可以看出,该流程猜测庄家点数为"2"。
这样jBPM 4就能够被BossTest.java调用,并得到竞猜结果,"You win" OR "You lost"。
下一步,我们将测试使用jBPM定义Task来参与竞猜的例子。
附件是实例代码。请各位多指教,谢谢。