[jboss-svn-commits] JBL Code SVN: r24711 - in labs/jbossrules/branches/mfossati/drools-osworkflow/src/test: java/org/drools/osworkflow/test and 2 other directories.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Wed Jan 14 12:13:04 EST 2009
Author: mfossati
Date: 2009-01-14 12:13:04 -0500 (Wed, 14 Jan 2009)
New Revision: 24711
Added:
labs/jbossrules/branches/mfossati/drools-osworkflow/src/test/java/org/drools/osworkflow/dummy/AutomaticReleaseFunctionProvider.java
labs/jbossrules/branches/mfossati/drools-osworkflow/src/test/java/org/drools/osworkflow/dummy/CallerPrincipalCondition.java
labs/jbossrules/branches/mfossati/drools-osworkflow/src/test/java/org/drools/osworkflow/dummy/ProcessEntity.java
labs/jbossrules/branches/mfossati/drools-osworkflow/src/test/java/org/drools/osworkflow/test/WFPProcessTestCase.java
labs/jbossrules/branches/mfossati/drools-osworkflow/src/test/java/org/drools/osworkflow/test/persistence/OSWorkFlowPersistenceWFPTestCase.java
labs/jbossrules/branches/mfossati/drools-osworkflow/src/test/resources/wfp.xml
labs/jbossrules/branches/mfossati/drools-osworkflow/src/test/resources/wfprf.rf
Modified:
labs/jbossrules/branches/mfossati/drools-osworkflow/src/test/resources/workflows.xml
Log:
WFP Test
Added: labs/jbossrules/branches/mfossati/drools-osworkflow/src/test/java/org/drools/osworkflow/dummy/AutomaticReleaseFunctionProvider.java
===================================================================
--- labs/jbossrules/branches/mfossati/drools-osworkflow/src/test/java/org/drools/osworkflow/dummy/AutomaticReleaseFunctionProvider.java (rev 0)
+++ labs/jbossrules/branches/mfossati/drools-osworkflow/src/test/java/org/drools/osworkflow/dummy/AutomaticReleaseFunctionProvider.java 2009-01-14 17:13:04 UTC (rev 24711)
@@ -0,0 +1,29 @@
+package org.drools.osworkflow.dummy;
+
+import java.util.Map;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+
+import com.opensymphony.module.propertyset.PropertySet;
+import com.opensymphony.workflow.FunctionProvider;
+import com.opensymphony.workflow.WorkflowException;
+
+public class AutomaticReleaseFunctionProvider implements FunctionProvider {
+ private static final Log LOGGER = LogFactory
+ .getLog(AutomaticReleaseFunctionProvider.class);
+ public void execute(Map actionInputs, Map args, PropertySet persistentVars)
+ throws WorkflowException {
+ final String propertyName = (String) args.get("propertyName");
+ final String variableName = (String) args.get("variableName");
+ if (LOGGER.isDebugEnabled()) {
+ LOGGER.debug("propertyName:" + propertyName);
+ LOGGER.debug("variableName:" + variableName);
+ }
+ System.out.println("propertyName:" + propertyName);
+ System.out.println("variableName:" + variableName);
+
+
+ }
+
+}
Added: labs/jbossrules/branches/mfossati/drools-osworkflow/src/test/java/org/drools/osworkflow/dummy/CallerPrincipalCondition.java
===================================================================
--- labs/jbossrules/branches/mfossati/drools-osworkflow/src/test/java/org/drools/osworkflow/dummy/CallerPrincipalCondition.java (rev 0)
+++ labs/jbossrules/branches/mfossati/drools-osworkflow/src/test/java/org/drools/osworkflow/dummy/CallerPrincipalCondition.java 2009-01-14 17:13:04 UTC (rev 24711)
@@ -0,0 +1,17 @@
+package org.drools.osworkflow.dummy;
+
+import java.util.Map;
+
+import com.opensymphony.module.propertyset.PropertySet;
+import com.opensymphony.workflow.Condition;
+import com.opensymphony.workflow.WorkflowException;
+
+public class CallerPrincipalCondition implements Condition {
+
+ public boolean passesCondition(Map arg0, Map arg1, PropertySet arg2)
+ throws WorkflowException {
+
+ return true;
+ }
+
+}
Added: labs/jbossrules/branches/mfossati/drools-osworkflow/src/test/java/org/drools/osworkflow/dummy/ProcessEntity.java
===================================================================
--- labs/jbossrules/branches/mfossati/drools-osworkflow/src/test/java/org/drools/osworkflow/dummy/ProcessEntity.java (rev 0)
+++ labs/jbossrules/branches/mfossati/drools-osworkflow/src/test/java/org/drools/osworkflow/dummy/ProcessEntity.java 2009-01-14 17:13:04 UTC (rev 24711)
@@ -0,0 +1,28 @@
+package org.drools.osworkflow.dummy;
+
+import javax.persistence.Entity;
+import javax.persistence.Id;
+
+ at Entity
+public class ProcessEntity {
+ @Id
+ private long id;
+ private String test;
+
+ public String getTest() {
+ return test;
+ }
+
+ public void setTest(String test) {
+ this.test = test;
+ }
+
+ public long getId() {
+ return id;
+ }
+
+ public void setId(long id) {
+ this.id = id;
+ }
+
+}
Added: labs/jbossrules/branches/mfossati/drools-osworkflow/src/test/java/org/drools/osworkflow/test/WFPProcessTestCase.java
===================================================================
--- labs/jbossrules/branches/mfossati/drools-osworkflow/src/test/java/org/drools/osworkflow/test/WFPProcessTestCase.java (rev 0)
+++ labs/jbossrules/branches/mfossati/drools-osworkflow/src/test/java/org/drools/osworkflow/test/WFPProcessTestCase.java 2009-01-14 17:13:04 UTC (rev 24711)
@@ -0,0 +1,46 @@
+package org.drools.osworkflow.test;
+
+import java.io.StringReader;
+import java.util.Collection;
+import java.util.Collections;
+
+import junit.framework.TestCase;
+
+import org.drools.compiler.PackageBuilderConfiguration;
+import org.drools.osworkflow.DroolsWorkflow;
+import org.drools.osworkflow.OSWorkflowParser;
+import org.drools.osworkflow.core.OSWorkflowProcess;
+import org.drools.osworkflow.xml.XmlOSWorkflowProcessDumper;
+import org.drools.xml.XmlProcessReader;
+
+import com.opensymphony.workflow.InvalidActionException;
+import com.opensymphony.workflow.InvalidEntryStateException;
+import com.opensymphony.workflow.InvalidInputException;
+import com.opensymphony.workflow.InvalidRoleException;
+import com.opensymphony.workflow.Workflow;
+import com.opensymphony.workflow.WorkflowException;
+import com.opensymphony.workflow.config.DefaultConfiguration;
+import com.opensymphony.workflow.loader.WorkflowDescriptor;
+import com.opensymphony.workflow.spi.Step;
+
+public class WFPProcessTestCase extends TestCase {
+
+
+
+ public void testToXML() throws Exception {
+ DefaultConfiguration config = new DefaultConfiguration();
+ config.load(null);
+ WorkflowDescriptor workflowDescriptor = config.getWorkflow("wfp");
+ OSWorkflowProcess process = new OSWorkflowParser().parseOSWorkflow(workflowDescriptor);
+
+ String processXML = XmlOSWorkflowProcessDumper.INSTANCE.dump(process);
+ System.out.println(processXML);
+
+ XmlProcessReader reader = new XmlProcessReader(
+ new PackageBuilderConfiguration().getSemanticModules());
+ System.setProperty( "drools.schema.validating", "false" );
+ OSWorkflowProcess process2 = (OSWorkflowProcess) reader.read(new StringReader(processXML));
+ assertNotNull(process2);
+ }
+
+}
Added: labs/jbossrules/branches/mfossati/drools-osworkflow/src/test/java/org/drools/osworkflow/test/persistence/OSWorkFlowPersistenceWFPTestCase.java
===================================================================
--- labs/jbossrules/branches/mfossati/drools-osworkflow/src/test/java/org/drools/osworkflow/test/persistence/OSWorkFlowPersistenceWFPTestCase.java (rev 0)
+++ labs/jbossrules/branches/mfossati/drools-osworkflow/src/test/java/org/drools/osworkflow/test/persistence/OSWorkFlowPersistenceWFPTestCase.java 2009-01-14 17:13:04 UTC (rev 24711)
@@ -0,0 +1,101 @@
+package org.drools.osworkflow.test.persistence;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Properties;
+
+import org.drools.RuleBase;
+import org.drools.RuleBaseConfiguration;
+import org.drools.osworkflow.core.command.DoActionCommand;
+import org.drools.osworkflow.dummy.ProcessEntity;
+import org.drools.osworkflow.instance.OSWorkflowProcessInstance;
+import org.drools.osworkflow.instance.node.StepNodeInstance;
+import org.drools.persistence.session.SingleSessionCommandService;
+import org.drools.process.command.GetProcessInstanceCommand;
+import org.drools.process.command.StartProcessCommand;
+import org.drools.runtime.process.ProcessInstance;
+
+public class OSWorkFlowPersistenceWFPTestCase extends AbstractJPAPersistenceTestCase {
+
+
+ public void testPersistence() {
+ Properties properties = setupCommonProperties();
+ RuleBaseConfiguration conf = new RuleBaseConfiguration(properties);
+ // load the process
+ RuleBase ruleBase = createKnowledgeBase(conf,"/wfprf.rf");
+
+ SingleSessionCommandService service = new SingleSessionCommandService(ruleBase);
+ StartProcessCommand startProcessCommand = new StartProcessCommand();
+ startProcessCommand.setProcessId("wfp");
+ Map parameters = new HashMap();
+ ProcessEntity pE = new ProcessEntity();
+ pE.setId(1);
+ pE.setTest("This is a Test");
+ parameters.put("var1", pE);
+ startProcessCommand.setParameters(parameters);
+ ProcessInstance processInstance = (ProcessInstance) service.execute(startProcessCommand);
+ System.out.println("Started process instance " + processInstance.getId());
+
+ service = new SingleSessionCommandService(ruleBase);
+ GetProcessInstanceCommand getProcessInstanceCommand = new GetProcessInstanceCommand();
+ getProcessInstanceCommand.setProcessInstanceId(processInstance.getId());
+ processInstance = (ProcessInstance) service.execute(getProcessInstanceCommand);
+ assertNotNull(processInstance);
+ System.out.println("Now working with processInstance " + processInstance.getId());
+ assertEquals("Iniciada",
+ ((StepNodeInstance)
+ ((OSWorkflowProcessInstance)processInstance)
+ .getNodeInstances().iterator().next()).getStatus());
+
+ service = new SingleSessionCommandService(ruleBase);
+ DoActionCommand doActionCmd = new DoActionCommand();
+ doActionCmd.setProcessInstanceId(processInstance.getId());
+ //doActionCmd.setActionId(2); //Action to be executed at current step
+ doActionCmd.setActionId(4); //Action to be executed at current step
+ service.execute(doActionCmd);
+
+
+
+ service = new SingleSessionCommandService(ruleBase);
+ getProcessInstanceCommand = new GetProcessInstanceCommand();
+ getProcessInstanceCommand.setProcessInstanceId(processInstance.getId());
+ processInstance = (ProcessInstance) service.execute(getProcessInstanceCommand);
+ assertNotNull(processInstance);
+
+
+ /*assertEquals("Pend. Finalizacion",
+ ((StepNodeInstance)
+ ((OSWorkflowProcessInstance)processInstance)
+ .getNodeInstances().iterator().next()).getStatus());*/
+ assertEquals("Pend. de Finalizacion",
+ ((StepNodeInstance)
+ ((OSWorkflowProcessInstance)processInstance)
+ .getNodeInstances().iterator().next()).getStatus());
+
+
+
+ service = new SingleSessionCommandService(ruleBase);
+ doActionCmd = new DoActionCommand();
+ doActionCmd.setProcessInstanceId(processInstance.getId());
+ //doActionCmd.setActionId(5); //Action to be executed at current step
+ doActionCmd.setActionId(6); //Action to be executed at current step
+ service.execute(doActionCmd);
+
+ service = new SingleSessionCommandService(ruleBase);
+ getProcessInstanceCommand = new GetProcessInstanceCommand();
+ getProcessInstanceCommand.setProcessInstanceId(processInstance.getId());
+ processInstance = (ProcessInstance) service.execute(getProcessInstanceCommand);
+ assertNull(processInstance);
+
+
+
+
+
+ }
+
+
+
+
+}
Added: labs/jbossrules/branches/mfossati/drools-osworkflow/src/test/resources/wfp.xml
===================================================================
--- labs/jbossrules/branches/mfossati/drools-osworkflow/src/test/resources/wfp.xml (rev 0)
+++ labs/jbossrules/branches/mfossati/drools-osworkflow/src/test/resources/wfp.xml 2009-01-14 17:13:04 UTC (rev 24711)
@@ -0,0 +1,103 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE workflow PUBLIC "-//OpenSymphony Group//DTD OSWorkflow 2.6//EN" "http://www.opensymphony.com/osworkflow/workflow_2_6.dtd">
+
+
+<workflow>
+ <initial-actions>
+ <action id="1" name="Crear">
+ <results>
+ <unconditional-result old-status="Documento Iniciado" status="Iniciada" step="1" owner="" />
+ </results>
+ </action>
+ </initial-actions>
+
+ <steps>
+ <step id="1" name="Revision">
+ <actions>
+ <action id="10" name="Ejecutar Evento">
+ <results>
+ <unconditional-result old-status="Evento Ejecutado" status="Pendiente de Revision" step="1" owner="" />
+ </results>
+ </action>
+ <action id="7" name="Modificar Documento">
+ <results>
+ <unconditional-result old-status="Documento Modificado" status="Pendiente de Revision" step="1" owner="" />
+ </results>
+ </action>
+ <action id="2" name="Aceptar solicitud">
+ <results>
+ <unconditional-result old-status="Revisada" status="Pend. Finalizacion" step="100" owner="" />
+ </results>
+ </action>
+ <action id="3" name="Rechazar solicitud">
+ <results>
+ <unconditional-result old-status="Rechazada" status="Pendiente de Revision" step="1" owner="" />
+ </results>
+ </action>
+ <action id="4" name="Rechazar por Aplicacion">
+ <restrict-to>
+ <conditions type="AND">
+ <condition type="beanshell">
+ <arg name="script">true</arg>
+ </condition>
+ <condition type="class">
+ <arg name="class.name">org.drools.osworkflow.dummy.CallerPrincipalCondition</arg>
+ <arg name="PRINCIPAL">GEN at WFP</arg>
+ </condition>
+ </conditions>
+ </restrict-to>
+ <results>
+ <unconditional-result old-status="Rechazada" status="Pend. de Finalizacion" step="101" owner="" />
+ </results>
+ </action>
+ </actions>
+ </step>
+
+ <step id="100" name="Pendiente de Finalizacion - Aceptada">
+ <actions>
+ <action id="5" name="Finalizar solicitud - aceptada">
+ <results>
+ <unconditional-result old-status="Aceptada" status="Finalizada y Aceptada" step="200" owner=""/>
+ </results>
+ <post-functions>
+ <function type="class">
+ <arg name="class.name">org.drools.osworkflow.dummy.AutomaticReleaseFunctionProvider</arg>
+ <arg name="propertyName">nothing</arg>
+ <arg name="variableName">nothing</arg>
+ </function>
+ </post-functions>
+ </action>
+ <action id="8" name="Modificar Documento">
+ <results>
+ <unconditional-result old-status="Documento Modificado" status="Pendiente de Finalizacion" step="100" owner="" />
+ </results>
+ </action>
+ </actions>
+ </step>
+
+ <step id="101" name="Pendiente de Finalizacion - Rechazada">
+ <actions>
+ <action id="9" name="Modificar Documento">
+ <results>
+ <unconditional-result old-status="Documento Modificado" status="Pendiente de Finalizacion" step="101" owner="" />
+ </results>
+ </action>
+ <action id="6" name="Finalizar solicitud - rechazada">
+ <results>
+ <unconditional-result old-status="Rechazada" status="Finalizada y Rechazada" step="200" owner=""/>
+ </results>
+ <post-functions>
+ <function type="class">
+ <arg name="class.name">org.drools.osworkflow.dummy.AutomaticReleaseFunctionProvider</arg>
+ <arg name="propertyName">nothing</arg>
+ <arg name="variableName">nothing</arg>
+ </function>
+ </post-functions>
+ </action>
+ </actions>
+ </step>
+
+ <step id="200" name="Finalizado" />
+
+ </steps>
+</workflow>
Added: labs/jbossrules/branches/mfossati/drools-osworkflow/src/test/resources/wfprf.rf
===================================================================
--- labs/jbossrules/branches/mfossati/drools-osworkflow/src/test/resources/wfprf.rf (rev 0)
+++ labs/jbossrules/branches/mfossati/drools-osworkflow/src/test/resources/wfprf.rf 2009-01-14 17:13:04 UTC (rev 24711)
@@ -0,0 +1,105 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<process xmlns="http://drools.org/drools-4.0/osworkflow"
+ xmlns:xs="http://www.w3.org/2001/XMLSchema-instance"
+ xs:schemaLocation="http://drools.org/drools-4.0/osworkflow drools-osworkflow-4.0.xsd"
+ type="OSWorkflow" name="wfp" id="wfp" package-name="org.drools.osworkflow" >
+
+ <header>
+<initial-actions>
+ <action id="1" name="Crear">
+ <results>
+ <unconditional-result old-status="Documento Iniciado" status="Iniciada" step="1"/>
+ </results>
+ </action>
+ </initial-actions>
+ </header>
+
+ <nodes>
+ <step id="1" name="Revision" >
+ <action id="2" name="Aceptar solicitud">
+ <results>
+ <unconditional-result old-status="Revisada" status="Pend. Finalizacion" step="100"/>
+ </results>
+ </action>
+ <action id="3" name="Rechazar solicitud">
+ <results>
+ <unconditional-result old-status="Rechazada" status="Pendiente de Revision" step="1"/>
+ </results>
+ </action>
+ <action id="4" name="Rechazar por Aplicacion">
+ <restrict-to>
+ <conditions type="AND">
+ <condition type="beanshell">
+ <arg name="script"><![CDATA[true]]></arg>
+ </condition>
+ <condition type="class">
+ <arg name="class.name">org.drools.osworkflow.dummy.CallerPrincipalCondition</arg>
+ <arg name="PRINCIPAL">GEN at WFP</arg>
+ </condition>
+ </conditions>
+ </restrict-to>
+ <results>
+ <unconditional-result old-status="Rechazada" status="Pend. de Finalizacion" step="101"/>
+ </results>
+ </action>
+ <action id="7" name="Modificar Documento">
+ <results>
+ <unconditional-result old-status="Documento Modificado" status="Pendiente de Revision" step="1"/>
+ </results>
+ </action>
+ <action id="10" name="Ejecutar Evento">
+ <results>
+ <unconditional-result old-status="Evento Ejecutado" status="Pendiente de Revision" step="1"/>
+ </results>
+ </action>
+ </step>
+ <step id="100" name="Pendiente de Finalizacion - Aceptada" >
+ <action id="5" name="Finalizar solicitud - aceptada">
+ <results>
+ <unconditional-result old-status="Aceptada" status="Finalizada y Aceptada" step="200"/>
+ </results>
+ <post-functions>
+ <function type="class">
+ <arg name="propertyName">nothing</arg>
+ <arg name="variableName">nothing</arg>
+ <arg name="class.name">org.drools.osworkflow.dummy.AutomaticReleaseFunctionProvider</arg>
+ </function>
+ </post-functions>
+ </action>
+ <action id="8" name="Modificar Documento">
+ <results>
+ <unconditional-result old-status="Documento Modificado" status="Pendiente de Finalizacion" step="100"/>
+ </results>
+ </action>
+ </step>
+ <step id="101" name="Pendiente de Finalizacion - Rechazada" >
+ <action id="6" name="Finalizar solicitud - rechazada">
+ <results>
+ <unconditional-result old-status="Rechazada" status="Finalizada y Rechazada" step="200"/>
+ </results>
+ <post-functions>
+ <function type="class">
+ <arg name="propertyName">nothing</arg>
+ <arg name="variableName">nothing</arg>
+ <arg name="class.name">org.drools.osworkflow.dummy.AutomaticReleaseFunctionProvider</arg>
+ </function>
+ </post-functions>
+ </action>
+ <action id="9" name="Modificar Documento">
+ <results>
+ <unconditional-result old-status="Documento Modificado" status="Pendiente de Finalizacion" step="101"/>
+ </results>
+ </action>
+ </step>
+ <step id="200" name="Finalizado" >
+ </step>
+ </nodes>
+
+ <connections>
+ <connection from="1" fromType="2" to="100" toType="Pend. Finalizacion" />
+ <connection from="1" fromType="4" to="101" toType="Pend. de Finalizacion" />
+ <connection from="100" fromType="5" to="200" toType="Finalizada y Aceptada" />
+ <connection from="101" fromType="6" to="200" toType="Finalizada y Rechazada" />
+ </connections>
+
+</process>
\ No newline at end of file
Modified: labs/jbossrules/branches/mfossati/drools-osworkflow/src/test/resources/workflows.xml
===================================================================
--- labs/jbossrules/branches/mfossati/drools-osworkflow/src/test/resources/workflows.xml 2009-01-14 16:03:07 UTC (rev 24710)
+++ labs/jbossrules/branches/mfossati/drools-osworkflow/src/test/resources/workflows.xml 2009-01-14 17:13:04 UTC (rev 24711)
@@ -3,4 +3,5 @@
<workflow name="simple2" type="resource" location="simple2.xml"/>
<workflow name="holiday2" type="resource" location="holiday2.xml"/>
<workflow name="entrevista" type="resource" location="entrevista.xml"/>
+ <workflow name="wfp" type="resource" location="wfp.xml"/>
</workflows>
\ No newline at end of file
More information about the jboss-svn-commits
mailing list