[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