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

Reply via email to