[jboss-user] [JBoss jBPM] - Re: Error introduced in 3.2.1
rgullett
do-not-reply at jboss.com
Mon Jul 16 09:09:55 EDT 2007
Sorry about that. I think this one looks better. Note that the ActionHandler class goes in a separate file.
package com.jbpm.test;
| import java.util.HashMap;
| import java.util.Map;
|
| import junit.framework.TestCase;
|
| import org.dom4j.Element;
| import org.jbpm.graph.def.ProcessDefinition;
| import org.jbpm.graph.exe.ProcessInstance;
| import org.jbpm.graph.node.ProcessState;
| import org.jbpm.graph.node.SubProcessResolver;
|
| public class JBPMDemoTestCase extends TestCase {
|
| public void testJbpm() {
| String className = DoNothingActionHandler.class.getName();
| ProcessInstance processInstance = initProcessInstance();
| assertEquals("Instance is in wrong state", "start", processInstance.getRootToken()
| .getNode().getName());
| processInstance.signal();
|
| }
|
| private ProcessInstance initProcessInstance() {
| MapBasedProcessRepository mapBasedProcessRepository = new MapBasedProcessRepository();
| ProcessState.setDefaultSubProcessResolver(mapBasedProcessRepository);
| ProcessDefinition subProcessDefinition =
| ProcessDefinition.parseXmlString(
| "<process-definition"
| + " xmlns='urn:jbpm.org:jpdl-3.2' name='subProcessName'>"
| + "<start-state name='start'>"
| + "<transition name='' to='subProcess Node 1'></transition>"
| + "</start-state>"
| + "<end-state name='subProcessEndState'></end-state>"
| + "<node name='subProcess Node 1'>"
| + "<action class='com.jbpm.test.DoNothingActionHandler'></action>"
| + "<transition name='' to='subProcessEndState'></transition>"
| + "</node>"
| + "</process-definition>");
|
| mapBasedProcessRepository.add(subProcessDefinition);
|
| ProcessDefinition processDefinition =
| ProcessDefinition.parseXmlString(
| "<process-definition xmlns='' name='processName'>"
| + "<start-state name='start'>"
| + "<transition name='' to='node 1'></transition>"
| + "</start-state>"
| + "<end-state name='superProcessEnd'></end-state>"
| + "<process-state name='processState'>"
| + "<sub-process name='subProcessName' />"
| + "<transition name='' to='node 2'></transition>" + "</process-state>"
| + "<node name='node 2'>"
| + "<transition name='' to='superProcessEnd'></transition>"
| + "<action class='com.jbpm.test.DoNothingActionHandler'></action>"
| + "</node>"
| + "<node name='node 1'>"
| + "<action class='com.jbpm.test.DoNothingActionHandler'></action>"
| + "<transition name='' to='processState'></transition>"
| + "</node>"
| + "</process-definition>");
|
| mapBasedProcessRepository.add(processDefinition);
|
|
| ProcessInstance processInstance = new ProcessInstance(processDefinition);
| return processInstance;
| }
|
| private static class MapBasedProcessRepository implements SubProcessResolver {
|
| protected MapBasedProcessRepository() {}
|
| private Map<String, ProcessDefinition> processes = new HashMap<String, ProcessDefinition>();
|
| public void add(ProcessDefinition processDefinition) {
| processes.put(processDefinition.getName(), processDefinition);
| }
|
| public ProcessDefinition findSubProcess(Element subProcessElement) {
| String processName = subProcessElement.attributeValue("name");
| return processes.get(processName);
| }
|
| }
|
|
| }
|
| package com.jbpm.test;
|
| import org.jbpm.graph.def.ActionHandler;
| import org.jbpm.graph.exe.ExecutionContext;
|
| public class DoNothingActionHandler implements ActionHandler {
| public DoNothingActionHandler() {
|
| }
|
| /**
| * @inheritDoc
| */
| public void execute(ExecutionContext executionContext) throws Exception {
| executionContext.leaveNode();
| }
| }
|
|
|
|
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4064530#4064530
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4064530
More information about the jboss-user
mailing list