[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