Java Mailing List Archive

http://www.junlu.com/

Home » Home (12/2007) » JBoss User Help »

[jboss-user] [JBoss jBPM] - Re: Error introduced in 3.2.1

scott.stark@jboss.org

2007-07-16


Here's a junit test case and an ActionHandler that I wire in. It runs green in 3.2.GA, but fails in 3.2.1.

Thanks,
Randy



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'>"
          + ""
          + "</start-state>"
          + "<end-state name='subProcessEndState'></end-state>"
          + ""
          + ""
          + ""
          + ""
          + "</process-definition>");

    mapBasedProcessRepository.add(subProcessDefinition);

    ProcessDefinition processDefinition =
       ProcessDefinition.parseXmlString(
          "<process-definition xmlns='' name='processName'>"
          + "<start-state name='start'>"
          + ""
          + "</start-state>"
          + "<end-state name='superProcessEnd'></end-state>"
          + "<process-state name='processState'>"
          + "<sub-process name='subProcessName' />"
          + "" + "</process-state>"
          + ""
          + ""
          + ""
          + ""
          + ""
          + ""
          + ""
          + ""
          + "</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=4064516#4064516

Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4064516
_______________________________________________
jboss-user mailing list
jboss-user@(protected)
https://lists.jboss.org/mailman/listinfo/jboss-user
©2008 junlu.com - Jax Systems, LLC, U.S.A.