[jboss-user] [JBoss jBPM] - ProcessState getSubProcessDefinition is null

don_t do-not-reply at jboss.com
Tue Nov 25 13:55:02 EST 2008


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



More information about the jboss-user mailing list