/*
* 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
没有合适的资源?快使用搜索试试~ 我知道了~
JBMP入门讲解附带实例一个
共166个文件
java:45个
xml:45个
class:40个
4星 · 超过85%的资源 需积分: 9 86 下载量 191 浏览量
2010-01-14
09:57:11
上传
评论
收藏 4.57MB RAR 举报
温馨提示
JBMP入门讲解附带实例一个 用的 3.X版本的jbmp
资源推荐
资源详情
资源评论
收起资源包目录
JBMP入门讲解附带实例一个 (166个子文件)
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 330KB
jBPM开发入门指南(1).doc 121KB
jBPM开发入门指南(4).doc 43KB
(数据库的生成)(2)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
共 166 条
- 1
- 2
资源评论
- jpbird232012-10-14不错,适合初学者快速入门
- 秋水2014-08-29说好的数据库在呢里
caihorse
- 粉丝: 2
- 资源: 10
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功