Hi, I'm trying to access the sub-process child node of a process-state. My test program is listed below. I call getSubProcessDefinition and always get null. Any ideas what I'm doing wrong?
| 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.node.ProcessState; | import org.jbpm.graph.node.SubProcessResolver; | | public class TestSubprocess extends TestCase { | | private static class MapBasedProcessRepository implements SubProcessResolver { | private Map<String,ProcessDefinition> processes = | new HashMap<String,ProcessDefinition>(); | | public void add(ProcessDefinition processDefinition) { | processes.put(processDefinition.getName(), processDefinition); | } | | @Override | public ProcessDefinition findSubProcess(Element element) { | // TODO Auto-generated method stub | return processes.get(element.attributeValue("name")); | } | | } | | public void testProcessInstance() { | MapBasedProcessRepository subProcessResolver = new MapBasedProcessRepository(); | ProcessDefinition subProcessDefinition = ProcessDefinition.parseXmlString( | "<process-definition name='sub-p'>" + | " <start-state>" + | " <transition to='s' />" + | " </start-state>" + | " <state name='s'>" + | " <transition to='t'/>" + | " </state>" + | " <state name='t'>" + | " <transition to='end'/>" + | " </state>" + | " <end-state name='end' />" + | "</process-definition>" | ); | subProcessResolver.add( subProcessDefinition ); | | subProcessDefinition = ProcessDefinition.parseXmlString( | "<process-definition name='sub-q'>" + | " <start-state>" + | " <transition to='s' />" + | " </start-state>" + | " <state name='s'>" + | " <transition to='t'/>" + | " </state>" + | " <state name='t'>" + | " <transition to='end'/>" + | " </state>" + | " <end-state name='end' />" + | "</process-definition>" | ); | subProcessResolver.add( subProcessDefinition ); | | ProcessDefinition processDefinition = ProcessDefinition.parseXmlString( | "<process-definition name='super'>" + | " <start-state name='start'>" + | " <transition to='p' />" + | " </start-state>" + | " <process-state name='p'>" + | " <sub-process name='sub-p' binding='late'/>" + | " <transition to='q' />" + | " </process-state>" + | " <process-state name='q'>" + | " <sub-process name='sub_q' binding='late' />" + | " <transition to='end' />" + | " </process-state>" + | " <end-state name='end' />" + | "</process-definition>" | ); | subProcessResolver.add( processDefinition ); | | ProcessState.setDefaultSubProcessResolver(subProcessResolver); | ProcessState processState = (ProcessState) processDefinition.getNode("p"); | System.out.println(processState); | System.out.println(processState.getSubProcessDefinition()); | | processState = (ProcessState) processDefinition.getNode("q"); | System.out.println(processState); | System.out.println(processState.getSubProcessDefinition()); | } | } | View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4192246#4192246 Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4192246 _______________________________________________ jboss-user mailing list jboss-user@lists.jboss.org https://lists.jboss.org/mailman/listinfo/jboss-user