jBpm y los patrones de la abuela (o de Aalst)
Siguiendo con el tema de los patrones de workflows de Aalst,
aquí os dejo el primero implementado en jbpm:
_______________________________________________________________________
<process-definition
xmlns=”urn:jbpm.org:jpdl-3.1″
name=”simple”>
<start-state name=”start”>
<transition name=”to_state” to=”first”>
<action name=”action” class=”com.sample.action.MessageActionHandler”>
<message>Going to the first state!</message>
</action>
</transition>
</start-state>
<state name=”first”>
<transition name=”to_end” to=”end”>
<action name=”action” class=”com.sample.action.MessageActionHandler”>
<message>About to finish!</message>
</action>
</transition>
</state>
<end-state name=”end”></end-state>
</process-definition>
_______________________________________________________________________
public class SimpleProcessTest extends TestCase {
// Pattern 1:Sequence
public void testSimpleProcess() throws Exception {
FileInputStream fis = new FileInputStream(“processes/simple/processdefinition.xml“);
ProcessDefinition processDefinition = ProcessDefinition.parseXmlInputStream(fis);processInstance instance = new ProcessInstance(processDefinition);
assertEquals(“start state”,instance.getRootToken().getNode().getName(), “start”);instance.signal();
assertEquals(“first state”,instance.getRootToken().getNode().getName(), “first”);instance.signal();
assertEquals(“Instance is in end state”,instance.getRootToken().getNode().getName(), “end”);
assertTrue(“Instance has ended”, instance.hasEnded());
}
}
