/*
* JBoss, Home of Professional Open Source
* Copyright 2005, JBoss Inc., and individual contributors as indicated
* by the @authors tag. See the copyright.txt in the distribution for a
* full listing of individual contributors.
*
* This is free software; you can redistribute it and/or modify it
* under the terms of the GNU Lesser General Public License as
* published by the Free Software Foundation; either version 2.1 of
* the License, or (at your option) any later version.
*
* This software is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this software; if not, write to the Free
* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
* 02110-1301 USA, or see the FSF site: http://www.fsf.org.
*/
package org.jbpm.websale;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.InputStream;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.jbpm.JbpmConfiguration;
import org.jbpm.context.exe.ContextInstance;
import org.jbpm.db.AbstractDbTestCase;
import org.jbpm.graph.def.ProcessDefinition;
import org.jbpm.graph.exe.ProcessInstance;
import org.jbpm.identity.Entity;
import org.jbpm.identity.hibernate.IdentitySession;
import org.jbpm.identity.xml.IdentityXmlParser;
import org.jbpm.taskmgmt.exe.TaskInstance;
import org.jbpm.taskmgmt.exe.TaskMgmtInstance;
public class WebsaleTest extends AbstractDbTestCase {
JbpmConfiguration jbpmConfiguration = JbpmConfiguration.getInstance();
ProcessDefinition processDefinition = null;
ProcessInstance processInstance = null;
ContextInstance contextInstance = null;
TaskMgmtInstance taskMgmtInstance = null;
long processInstanceId = -1;
public void setUp() throws Exception {
super.setUp();
deployProcess();
loadIdentities();
newTransaction();
createNewProcessInstance();
}
private void deployProcess() {
// 后来改的 by 陈刚
try {
InputStream is = new FileInputStream("processes/websale.par/processdefinition.xml");
processDefinition = ProcessDefinition.parseXmlInputStream(is);
} catch (FileNotFoundException e) {
e.printStackTrace();
}
// jBPM的原语句
// ProcessDefinition processDefinition =
// ProcessDefinition.parseXmlResource("websale.par/processdefinition.xml");
jbpmContext.deployProcessDefinition(processDefinition);
}
private void loadIdentities() {
// load the identities
Entity[] entities = IdentityXmlParser.parseEntitiesResource("hsqldb/identity.db.xml");
IdentitySession identitySession = new IdentitySession(session);
for (int i=0; i<entities.length; i++) {
identitySession.saveEntity(entities[i]);
}
newTransaction();
}
private void createNewProcessInstance() {
processDefinition = graphSession.findLatestProcessDefinition("websale");
processInstance = new ProcessInstance(processDefinition);
contextInstance = processInstance.getContextInstance();
taskMgmtInstance = processInstance.getTaskMgmtInstance();
}
public void testWebSaleOrderTaskParameters() {
TaskInstance taskInstance = processInstance.getTaskMgmtInstance().createStartTaskInstance();
assertEquals("create new web sale order", taskInstance.getName());
assertEquals(3, taskInstance.getVariables().size());
}
public void testPerformWebSaleOrderTask() {
TaskInstance taskInstance = null;
jbpmContext.setActorId("cookie monster");
// create a task to start the websale process
taskInstance = processInstance.getTaskMgmtInstance().createStartTaskInstance();
Map taskVariables = new HashMap();
taskVariables.put("item", "cookies");
taskVariables.put("quantity", "lots of them");
taskVariables.put("address", "sesamestreet 46");
taskInstance.addVariables(taskVariables);
taskInstance.end();
assertEquals("cookies", contextInstance.getVariable("item"));
assertEquals("lots of them", contextInstance.getVariable("quantity"));
assertEquals("sesamestreet 46", contextInstance.getVariable("address"));
assertEquals("cookie monster", taskMgmtInstance.getSwimlaneInstance("buyer").getActorId());
}
public void testEvaluateAssignment() {
TaskInstance taskInstance = null;
jbpmContext.setActorId("cookie monster");
// create a task to start the websale process
taskInstance = processInstance.getTaskMgmtInstance().createStartTaskInstance();
taskInstance.setVariable("item", "cookies");
taskInstance.end();
jbpmContext.save(processInstance);
processInstanceId = processInstance.getId();
newTransaction();
List erniesTasks = taskMgmtSession.findTaskInstances("ernie");
assertEquals(1, erniesTasks.size());
TaskInstance evaluateTaskInstance = (TaskInstance) erniesTasks.get(0);
assertEquals("ernie", evaluateTaskInstance.getActorId());
assertEquals("evaluate web order", evaluateTaskInstance.getName());
assertNotNull(evaluateTaskInstance.getToken());
assertNotNull(evaluateTaskInstance.getCreate());
assertNull(evaluateTaskInstance.getStart());
assertNull(evaluateTaskInstance.getEnd());
}
public void testEvaluateOk() {
TaskInstance taskInstance = processInstance.getTaskMgmtInstance().createStartTaskInstance();
taskInstance.end();
jbpmContext.save(processInstance);
newTransaction();
TaskInstance evaluateTaskInstance = (TaskInstance) taskMgmtSession.findTaskInstances("ernie").get(0);
evaluateTaskInstance.end("ok");
jbpmContext.save(evaluateTaskInstance);
newTransaction();
List erniesTasks = taskMgmtSession.findTaskInstances("bert");
assertEquals(1, erniesTasks.size());
TaskInstance waitForMoneyTaskInstance = (TaskInstance) erniesTasks.get(0);
assertEquals("bert", waitForMoneyTaskInstance.getActorId());
assertEquals("wait for money", waitForMoneyTaskInstance.getName());
assertNotNull(waitForMoneyTaskInstance.getToken());
assertNotNull(waitForMoneyTaskInstance.getCreate());
assertNull(waitForMoneyTaskInstance.getStart());
assertNull(waitForMoneyTaskInstance.getEnd());
}
public void testUnwritableVariableException() {
testEvaluateAssignment();
newTransaction();
List erniesTasks = taskMgmtSession.findTaskInstances("ernie");
TaskInstance evaluateTaskInstance = (TaskInstance) erniesTasks.get(0);
// this variable is set in the task instance variables, but
// should not be submitted to the process context variables.
evaluateTaskInstance.setVariable("item", "this is not allowed");
evaluateTaskInstance.end();
newTransaction();
processInstance = graphSession.loadProcessInstance(processInstanceId);
contextInstance = processInstance.getContextInstance();
// so the cookies should still be in the item process variable.
assertEquals("cookies", contextInstance.getVariable("item"));
}
public void testEvaluateNok() {
testEvaluateAssignment();
newTransaction();
List erniesTasks = taskMgmtSession.findTaskInstances("ernie");
TaskInstance evaluateTaskInstance = (TaskInstance) erniesTasks.get(0);
evaluateTaskInstance.setVariable("comment", "wtf");
evaluateTaskInstance.end("more info needed");
jbpmContext.save(evaluateTaskInstance);
newTransaction();
List cookieMonsterTasks = taskMgmtSession.findTaskInstances("cookie monster");
assertEquals(1, cookieMonsterTasks.size());
TaskInstance fixWebOrderDataTaskInstance = (TaskInstance) cookieMonsterTasks.get(0);
assertEqual
没有合适的资源?快使用搜索试试~ 我知道了~
jbpm工作流详解
共165个文件
xml:45个
java:45个
class:40个
5星 · 超过95%的资源 需积分: 13 150 下载量 156 浏览量
2008-07-14
23:02:10
上传
评论
收藏 4.32MB RAR 举报
温馨提示
JBoss jBPM 是一个复杂的可扩展的工作流管理系统. JBoss jBPM 有直观的流程语言来表示商业流程图的术语比如,任务,异步通讯的等待状态,定时器,自动操作等等.把这些操作绑在一起,, JBoss jBPM 就有了最强大和易扩展性的控制流机制. <br><br>JBoss jBPM 只有最小的倚赖性可以很容易的作为java库来使用.当然它也可以用在吞吐量极为关键的J2EE 群应用服务器环境中. <br><br>JBoss jBPM 可以同任何数据库配置可以部署在任何应用服务器上. <br>
资源推荐
资源详情
资源评论
收起资源包目录
jbpm工作流详解 (165个子文件)
WebsaleTest.class 7KB
AbstractDbTestCase.class 6KB
MyRequestProcessTest.class 6KB
ShipItem.class 3KB
SimpleProcessTest.class 3KB
CopyOfSimpleProcessTest.class 2KB
SimpleProcessTest.class 2KB
SimpleProcessTest.class 2KB
FinishedActionHandler.class 2KB
RemindActor.class 2KB
CancelActionHandler.class 2KB
ChiefDecideAssignmentHandler.class 2KB
DoSomethingDecisionHandler.class 1KB
NotApproveActionHandler.class 1KB
CancelRequestAssignmentHandler.class 1KB
WriteRequestAssignmentHandler.class 1KB
ApproveActionHandler.class 1KB
RequestCancelActionHandler.class 1KB
DeployProcessTest.class 1KB
DeployProcessTest.class 1KB
UpdateBooks.class 1KB
IsChiefHereDecisionHandler.class 1KB
RequestAction.class 1KB
ChiefNotApproveActionHandler.class 1KB
BossNotApproveActionHandler.class 1KB
ChiefApproveActionHandler.class 1KB
WriteLeaveActionHandler.class 1KB
BossApproveActionHandler.class 1KB
NotNeedActionHandler.class 1KB
NeedBossDecideDecisionHandler.class 1KB
MessageActionHandler.class 935B
MessageActionHandler.class 935B
MessageActionHandler.class 935B
ConfirmAction.class 890B
BossDecideAssignmentHandler.class 865B
AbstractJbpmTestCase.class 631B
JbpmConfigurationTestHelper.class 428B
JbpmContextTestHelper.class 404B
RequestState.class 365B
RequestVariable.class 338B
.classpath 603B
.classpath 527B
.classpath 503B
.classpath 393B
jBPM开发入门指南(3).doc 355KB
jBPM开发入门指南(1).doc 121KB
jBPM开发入门指南(4).doc 43KB
jBPM开发入门指南(2).doc 32KB
jBPM开发入门指南(5).doc 21KB
hibernate3.jar 1.84MB
hibernate3.jar 1.84MB
mysql-connector-java-3.1.7-bin.jar 388KB
WebsaleTest.java 9KB
MyRequestProcessTest.java 6KB
AbstractDbTestCase.java 5KB
ShipItem.java 3KB
SimpleProcessTest.java 3KB
RemindActor.java 2KB
CopyOfSimpleProcessTest.java 2KB
SimpleProcessTest.java 2KB
SimpleProcessTest.java 2KB
SimpleProcessTest.java 2KB
UpdateBooks.java 2KB
FinishedActionHandler.java 1KB
AbstractJbpmTestCase.java 1KB
DeployProcessTest.java 1KB
DeployProcessTest.java 1KB
DeployProcessTest.java 1KB
CancelActionHandler.java 1KB
JbpmConfigurationTestHelper.java 1KB
JbpmContextTestHelper.java 1KB
RequestCancelActionHandler.java 1KB
NotApproveActionHandler.java 853B
ChiefDecideAssignmentHandler.java 839B
DoSomethingDecisionHandler.java 835B
ApproveActionHandler.java 825B
CancelRequestAssignmentHandler.java 795B
MessageActionHandler.java 702B
MessageActionHandler.java 702B
MessageActionHandler.java 702B
MessageActionHandler.java 702B
WriteRequestAssignmentHandler.java 693B
WriteLeaveActionHandler.java 674B
IsChiefHereDecisionHandler.java 648B
NeedBossDecideDecisionHandler.java 624B
ChiefApproveActionHandler.java 597B
BossDecideAssignmentHandler.java 555B
RequestAction.java 538B
RequestAction.java 536B
ChiefNotApproveActionHandler.java 525B
BossNotApproveActionHandler.java 520B
BossApproveActionHandler.java 509B
NotNeedActionHandler.java 501B
RequestVariable.java 470B
ConfirmAction.java 438B
ConfirmAction.java 382B
RequestState.java 290B
processimage.jpg 45KB
processimage.jpg 45KB
processimage.jpg 31KB
共 165 条
- 1
- 2
资源评论
- lyb198808042015-09-05JBMP的工作详解,非常不错
LSQ6063
- 粉丝: 8
- 资源: 10
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功