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

rgullett do-not-reply at jboss.com
Mon Jul 16 08:38:13 EDT 2007


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



More information about the jboss-user mailing list