[jboss-svn-commits] JBL Code SVN: r25023 - in labs/jbossrules/trunk: drools-compiler/src/main/java/org/drools/xml and 20 other directories.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Fri Jan 30 10:27:44 EST 2009


Author: mfossati
Date: 2009-01-30 10:27:43 -0500 (Fri, 30 Jan 2009)
New Revision: 25023

Added:
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/marshalling/AbstractProcessInstanceMarshaller.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/marshalling/ProcessInstanceMarshaller.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/marshalling/ProcessMarshallerRegistry.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/marshalling/RuleFlowProcessInstanceMarshaller.java
   labs/jbossrules/trunk/drools-process/drools-osworkflow/src/main/java/org/drools/osworkflow/core/command/
   labs/jbossrules/trunk/drools-process/drools-osworkflow/src/main/java/org/drools/osworkflow/core/command/DoActionCommand.java
   labs/jbossrules/trunk/drools-process/drools-osworkflow/src/main/java/org/drools/osworkflow/persistence/
   labs/jbossrules/trunk/drools-process/drools-osworkflow/src/main/java/org/drools/osworkflow/persistence/marshaller/
   labs/jbossrules/trunk/drools-process/drools-osworkflow/src/main/java/org/drools/osworkflow/persistence/marshaller/OSWorkFlowPersisterEnums.java
   labs/jbossrules/trunk/drools-process/drools-osworkflow/src/main/java/org/drools/osworkflow/persistence/marshaller/OSWorkflowProcessInstanceMarshaller.java
   labs/jbossrules/trunk/drools-process/drools-osworkflow/src/main/java/org/drools/osworkflow/xml/InitialActionsHandler.java
   labs/jbossrules/trunk/drools-process/drools-osworkflow/src/main/resources/META-INF/orm.xml
   labs/jbossrules/trunk/drools-process/drools-osworkflow/src/main/resources/META-INF/persistence.xml
   labs/jbossrules/trunk/drools-process/drools-osworkflow/src/test/java/org/drools/osworkflow/
   labs/jbossrules/trunk/drools-process/drools-osworkflow/src/test/java/org/drools/osworkflow/composite/
   labs/jbossrules/trunk/drools-process/drools-osworkflow/src/test/java/org/drools/osworkflow/composite/CompositeWorkflow.java
   labs/jbossrules/trunk/drools-process/drools-osworkflow/src/test/java/org/drools/osworkflow/dummy/
   labs/jbossrules/trunk/drools-process/drools-osworkflow/src/test/java/org/drools/osworkflow/dummy/AutomaticReleaseFunctionProvider.java
   labs/jbossrules/trunk/drools-process/drools-osworkflow/src/test/java/org/drools/osworkflow/dummy/CallerPrincipalCondition.java
   labs/jbossrules/trunk/drools-process/drools-osworkflow/src/test/java/org/drools/osworkflow/dummy/DummyCondition.java
   labs/jbossrules/trunk/drools-process/drools-osworkflow/src/test/java/org/drools/osworkflow/dummy/DummyFunctionProvider.java
   labs/jbossrules/trunk/drools-process/drools-osworkflow/src/test/java/org/drools/osworkflow/dummy/ProcessEntity.java
   labs/jbossrules/trunk/drools-process/drools-osworkflow/src/test/java/org/drools/osworkflow/test/
   labs/jbossrules/trunk/drools-process/drools-osworkflow/src/test/java/org/drools/osworkflow/test/ComplexProcessTestCase.java
   labs/jbossrules/trunk/drools-process/drools-osworkflow/src/test/java/org/drools/osworkflow/test/DroolsOSWorkFlowTestCase.java
   labs/jbossrules/trunk/drools-process/drools-osworkflow/src/test/java/org/drools/osworkflow/test/Simple2ProcessTest.java
   labs/jbossrules/trunk/drools-process/drools-osworkflow/src/test/java/org/drools/osworkflow/test/Simple3ProcessTest.java
   labs/jbossrules/trunk/drools-process/drools-osworkflow/src/test/java/org/drools/osworkflow/test/SimpleDroolsFlowTestCase.java
   labs/jbossrules/trunk/drools-process/drools-osworkflow/src/test/java/org/drools/osworkflow/test/SimpleProcessTest.java
   labs/jbossrules/trunk/drools-process/drools-osworkflow/src/test/java/org/drools/osworkflow/test/WFPProcessTestCase.java
   labs/jbossrules/trunk/drools-process/drools-osworkflow/src/test/java/org/drools/osworkflow/test/persistence/
   labs/jbossrules/trunk/drools-process/drools-osworkflow/src/test/java/org/drools/osworkflow/test/persistence/AbstractJPAPersistenceTestCase.java
   labs/jbossrules/trunk/drools-process/drools-osworkflow/src/test/java/org/drools/osworkflow/test/persistence/ComplexProcessPersistenceTestCase.java
   labs/jbossrules/trunk/drools-process/drools-osworkflow/src/test/java/org/drools/osworkflow/test/persistence/OSWorkFlowPersistenceSplitJoinTestCase.java
   labs/jbossrules/trunk/drools-process/drools-osworkflow/src/test/java/org/drools/osworkflow/test/persistence/OSWorkFlowPersistenceTestCase.java
   labs/jbossrules/trunk/drools-process/drools-osworkflow/src/test/java/org/drools/osworkflow/test/persistence/OSWorkFlowPersistenceWFPTestCase.java
   labs/jbossrules/trunk/drools-process/drools-osworkflow/src/test/java/org/drools/suite/
   labs/jbossrules/trunk/drools-process/drools-osworkflow/src/test/java/org/drools/suite/SimpleTestSuite.java
   labs/jbossrules/trunk/drools-process/drools-osworkflow/src/test/resources/CV.xml
   labs/jbossrules/trunk/drools-process/drools-osworkflow/src/test/resources/entrevista.xml
   labs/jbossrules/trunk/drools-process/drools-osworkflow/src/test/resources/entrevistarf.rf
   labs/jbossrules/trunk/drools-process/drools-osworkflow/src/test/resources/example.xml
   labs/jbossrules/trunk/drools-process/drools-osworkflow/src/test/resources/holiday2.xml
   labs/jbossrules/trunk/drools-process/drools-osworkflow/src/test/resources/log4j.properties
   labs/jbossrules/trunk/drools-process/drools-osworkflow/src/test/resources/simple2rf.rf
   labs/jbossrules/trunk/drools-process/drools-osworkflow/src/test/resources/simplerf.rf
   labs/jbossrules/trunk/drools-process/drools-osworkflow/src/test/resources/wfp.xml
   labs/jbossrules/trunk/drools-process/drools-osworkflow/src/test/resources/wfprf.rf
Removed:
   labs/jbossrules/trunk/drools-process/drools-osworkflow/src/main/java/org/drools/osworkflow/core/command/DoActionCommand.java
   labs/jbossrules/trunk/drools-process/drools-osworkflow/src/main/java/org/drools/osworkflow/persistence/marshaller/
   labs/jbossrules/trunk/drools-process/drools-osworkflow/src/main/java/org/drools/osworkflow/persistence/marshaller/OSWorkFlowPersisterEnums.java
   labs/jbossrules/trunk/drools-process/drools-osworkflow/src/main/java/org/drools/osworkflow/persistence/marshaller/OSWorkflowProcessInstanceMarshaller.java
   labs/jbossrules/trunk/drools-process/drools-osworkflow/src/test/java/org/drools/Simple2ProcessTest.java
   labs/jbossrules/trunk/drools-process/drools-osworkflow/src/test/java/org/drools/SimpleProcessTest.java
   labs/jbossrules/trunk/drools-process/drools-osworkflow/src/test/java/org/drools/osworkflow/composite/
   labs/jbossrules/trunk/drools-process/drools-osworkflow/src/test/java/org/drools/osworkflow/composite/CompositeWorkflow.java
   labs/jbossrules/trunk/drools-process/drools-osworkflow/src/test/java/org/drools/osworkflow/dummy/
   labs/jbossrules/trunk/drools-process/drools-osworkflow/src/test/java/org/drools/osworkflow/dummy/AutomaticReleaseFunctionProvider.java
   labs/jbossrules/trunk/drools-process/drools-osworkflow/src/test/java/org/drools/osworkflow/dummy/CallerPrincipalCondition.java
   labs/jbossrules/trunk/drools-process/drools-osworkflow/src/test/java/org/drools/osworkflow/dummy/DummyCondition.java
   labs/jbossrules/trunk/drools-process/drools-osworkflow/src/test/java/org/drools/osworkflow/dummy/DummyFunctionProvider.java
   labs/jbossrules/trunk/drools-process/drools-osworkflow/src/test/java/org/drools/osworkflow/dummy/ProcessEntity.java
   labs/jbossrules/trunk/drools-process/drools-osworkflow/src/test/java/org/drools/osworkflow/test/
   labs/jbossrules/trunk/drools-process/drools-osworkflow/src/test/java/org/drools/osworkflow/test/ComplexProcessTestCase.java
   labs/jbossrules/trunk/drools-process/drools-osworkflow/src/test/java/org/drools/osworkflow/test/DroolsOSWorkFlowTestCase.java
   labs/jbossrules/trunk/drools-process/drools-osworkflow/src/test/java/org/drools/osworkflow/test/Simple2ProcessTest.java
   labs/jbossrules/trunk/drools-process/drools-osworkflow/src/test/java/org/drools/osworkflow/test/Simple3ProcessTest.java
   labs/jbossrules/trunk/drools-process/drools-osworkflow/src/test/java/org/drools/osworkflow/test/SimpleDroolsFlowTestCase.java
   labs/jbossrules/trunk/drools-process/drools-osworkflow/src/test/java/org/drools/osworkflow/test/SimpleProcessTest.java
   labs/jbossrules/trunk/drools-process/drools-osworkflow/src/test/java/org/drools/osworkflow/test/WFPProcessTestCase.java
   labs/jbossrules/trunk/drools-process/drools-osworkflow/src/test/java/org/drools/osworkflow/test/persistence/
   labs/jbossrules/trunk/drools-process/drools-osworkflow/src/test/java/org/drools/osworkflow/test/persistence/AbstractJPAPersistenceTestCase.java
   labs/jbossrules/trunk/drools-process/drools-osworkflow/src/test/java/org/drools/osworkflow/test/persistence/ComplexProcessPersistenceTestCase.java
   labs/jbossrules/trunk/drools-process/drools-osworkflow/src/test/java/org/drools/osworkflow/test/persistence/OSWorkFlowPersistenceSplitJoinTestCase.java
   labs/jbossrules/trunk/drools-process/drools-osworkflow/src/test/java/org/drools/osworkflow/test/persistence/OSWorkFlowPersistenceTestCase.java
   labs/jbossrules/trunk/drools-process/drools-osworkflow/src/test/java/org/drools/osworkflow/test/persistence/OSWorkFlowPersistenceWFPTestCase.java
   labs/jbossrules/trunk/drools-process/drools-osworkflow/src/test/java/org/drools/suite/SimpleTestSuite.java
Modified:
   labs/jbossrules/trunk/drools-compiler/.classpath
   labs/jbossrules/trunk/drools-compiler/.project
   labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/XmlWorkflowProcessDumper.java
   labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/processes/ConnectionHandler.java
   labs/jbossrules/trunk/drools-process/drools-osworkflow/.project
   labs/jbossrules/trunk/drools-process/drools-osworkflow/pom.xml
   labs/jbossrules/trunk/drools-process/drools-osworkflow/src/main/java/org/drools/osworkflow/DroolsWorkflow.java
   labs/jbossrules/trunk/drools-process/drools-osworkflow/src/main/java/org/drools/osworkflow/instance/OSWorkflowProcessInstance.java
   labs/jbossrules/trunk/drools-process/drools-osworkflow/src/main/java/org/drools/osworkflow/xml/OSWorkflowSemanticModule.java
   labs/jbossrules/trunk/drools-process/drools-osworkflow/src/main/java/org/drools/osworkflow/xml/XmlOSWorkflowProcessDumper.java
   labs/jbossrules/trunk/drools-process/drools-osworkflow/src/main/resources/META-INF/OSWorkflowSemanticModule.conf
   labs/jbossrules/trunk/drools-process/drools-osworkflow/src/test/resources/simple.xml
   labs/jbossrules/trunk/drools-process/drools-osworkflow/src/test/resources/workflows.xml
   labs/jbossrules/trunk/drools-process/drools-process-enterprise/src/main/java/org/drools/persistence/processinstance/ProcessInstanceInfo.java
Log:
JBRULES-1950: OSWorkflow
- improved OSWorkflow mapping + persistence

Modified: labs/jbossrules/trunk/drools-compiler/.classpath
===================================================================
--- labs/jbossrules/trunk/drools-compiler/.classpath	2009-01-30 15:07:28 UTC (rev 25022)
+++ labs/jbossrules/trunk/drools-compiler/.classpath	2009-01-30 15:27:43 UTC (rev 25023)
@@ -1,26 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
 <classpath>
-  <classpathentry kind="src" path="src/main/java"/>
-  <classpathentry kind="src" path="src/main/resources" excluding="**/*.java"/>
-  <classpathentry kind="src" path="src/test/java" output="target/test-classes"/>
-  <classpathentry kind="src" path="src/test/resources" output="target/test-classes" including="**" excluding="**/*.java"/>
-  <classpathentry kind="output" path="target/classes"/>
-  <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
-  <classpathentry kind="var" path="M2_REPO/antlr/antlr/2.7.7/antlr-2.7.7.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/antlr/antlr/3.1.1/antlr-3.1.1.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/antlr/antlr-runtime/3.1.1/antlr-runtime-3.1.1.jar"/>
-  <classpathentry kind="var" path="M2_REPO/cglib/cglib-nodep/2.1_3/cglib-nodep-2.1_3.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/eclipse/jdt/core/3.4.2.v_883_R34x/core-3.4.2.v_883_R34x.jar"/>
-  <classpathentry kind="src" path="/drools-api"/>
-  <classpathentry kind="src" path="/drools-core"/>
-  <classpathentry kind="var" path="M2_REPO/org/hamcrest/hamcrest-core/1.1/hamcrest-core-1.1.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/hamcrest/hamcrest-library/1.1/hamcrest-library-1.1.jar"/>
-  <classpathentry kind="var" path="M2_REPO/janino/janino/2.5.15/janino-2.5.15.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/jmock/jmock/2.5.1/jmock-2.5.1.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/jmock/jmock-legacy/2.5.1/jmock-legacy-2.5.1.jar"/>
-  <classpathentry kind="var" path="M2_REPO/joda-time/joda-time/1.5.2/joda-time-1.5.2.jar"/>
-  <classpathentry kind="var" path="M2_REPO/junit/junit/3.8.1/junit-3.8.1.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/mvel/mvel2/2.0.6/mvel2-2.0.6.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/objenesis/objenesis/1.0/objenesis-1.0.jar"/>
-  <classpathentry kind="var" path="M2_REPO/xpp3/xpp3_min/1.1.4c/xpp3_min-1.1.4c.jar"/>
-  <classpathentry kind="var" path="M2_REPO/com/thoughtworks/xstream/xstream/1.3.1/xstream-1.3.1.jar"/>
-</classpath>
\ No newline at end of file
+	<classpathentry kind="src" path="src/main/java"/>
+	<classpathentry excluding="**/*.java" kind="src" path="src/main/resources"/>
+	<classpathentry kind="src" output="target/test-classes" path="src/test/java"/>
+	<classpathentry excluding="**/*.java" including="**" kind="src" output="target/test-classes" path="src/test/resources"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
+	<classpathentry kind="var" path="M2_REPO/antlr/antlr/2.7.7/antlr-2.7.7.jar"/>
+	<classpathentry kind="var" path="M2_REPO/org/antlr/antlr/3.1.1/antlr-3.1.1.jar"/>
+	<classpathentry kind="var" path="M2_REPO/org/antlr/antlr-runtime/3.1.1/antlr-runtime-3.1.1.jar"/>
+	<classpathentry kind="var" path="M2_REPO/cglib/cglib-nodep/2.1_3/cglib-nodep-2.1_3.jar"/>
+	<classpathentry kind="var" path="M2_REPO/org/eclipse/jdt/core/3.4.2.v_883_R34x/core-3.4.2.v_883_R34x.jar"/>
+	<classpathentry kind="var" path="M2_REPO/org/drools/drools-api/5.0.0.SNAPSHOT/drools-api-5.0.0.SNAPSHOT.jar"/>
+	<classpathentry kind="var" path="M2_REPO/org/hamcrest/hamcrest-core/1.1/hamcrest-core-1.1.jar" sourcepath="M2_REPO/org/hamcrest/hamcrest-core/1.1/hamcrest-core-1.1-sources.jar"/>
+	<classpathentry kind="var" path="M2_REPO/org/hamcrest/hamcrest-library/1.1/hamcrest-library-1.1.jar" sourcepath="M2_REPO/org/hamcrest/hamcrest-library/1.1/hamcrest-library-1.1-sources.jar"/>
+	<classpathentry kind="var" path="M2_REPO/janino/janino/2.5.15/janino-2.5.15.jar"/>
+	<classpathentry kind="var" path="M2_REPO/org/jmock/jmock/2.5.1/jmock-2.5.1.jar"/>
+	<classpathentry kind="var" path="M2_REPO/org/jmock/jmock-legacy/2.5.1/jmock-legacy-2.5.1.jar"/>
+	<classpathentry kind="var" path="M2_REPO/joda-time/joda-time/1.5.2/joda-time-1.5.2.jar" sourcepath="M2_REPO/joda-time/joda-time/1.5.2/joda-time-1.5.2-sources.jar"/>
+	<classpathentry kind="var" path="M2_REPO/junit/junit/3.8.1/junit-3.8.1.jar" sourcepath="M2_REPO/junit/junit/3.8.1/junit-3.8.1-sources.jar"/>
+	<classpathentry kind="var" path="M2_REPO/org/mvel/mvel2/2.0.6/mvel2-2.0.6.jar"/>
+	<classpathentry kind="var" path="M2_REPO/org/objenesis/objenesis/1.0/objenesis-1.0.jar"/>
+	<classpathentry kind="var" path="M2_REPO/xpp3/xpp3_min/1.1.4c/xpp3_min-1.1.4c.jar" sourcepath="M2_REPO/xpp3/xpp3_min/1.1.4c/xpp3_min-1.1.4c-sources.jar"/>
+	<classpathentry kind="var" path="M2_REPO/com/thoughtworks/xstream/xstream/1.3.1/xstream-1.3.1.jar"/>
+	<classpathentry combineaccessrules="false" kind="src" path="/drools-core"/>
+	<classpathentry kind="output" path="target/classes"/>
+</classpath>

Modified: labs/jbossrules/trunk/drools-compiler/.project
===================================================================
--- labs/jbossrules/trunk/drools-compiler/.project	2009-01-30 15:07:28 UTC (rev 25022)
+++ labs/jbossrules/trunk/drools-compiler/.project	2009-01-30 15:27:43 UTC (rev 25023)
@@ -1,10 +1,7 @@
 <projectDescription>
   <name>drools-compiler</name>
   <comment>A rule production system</comment>
-  <projects>
-    <project>drools-api</project>
-    <project>drools-core</project>
-  </projects>
+  <projects/>
   <buildSpec>
     <buildCommand>
       <name>org.eclipse.jdt.core.javabuilder</name>

Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/XmlWorkflowProcessDumper.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/XmlWorkflowProcessDumper.java	2009-01-30 15:07:28 UTC (rev 25022)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/XmlWorkflowProcessDumper.java	2009-01-30 15:27:43 UTC (rev 25023)
@@ -78,7 +78,7 @@
         xmlDump.append("</process>");
     }
     
-    private void visitHeader(WorkflowProcess process, StringBuffer xmlDump, boolean includeMeta) {
+    protected void visitHeader(WorkflowProcess process, StringBuffer xmlDump, boolean includeMeta) {
         xmlDump.append("  <header>" + EOL);
         visitImports(((org.drools.process.core.Process) process).getImports(), xmlDump);
         visitGlobals(((org.drools.process.core.Process) process).getGlobals(), xmlDump);

Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/processes/ConnectionHandler.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/processes/ConnectionHandler.java	2009-01-30 15:07:28 UTC (rev 25022)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/processes/ConnectionHandler.java	2009-01-30 15:27:43 UTC (rev 25023)
@@ -10,66 +10,71 @@
 import org.drools.xml.BaseAbstractHandler;
 import org.drools.xml.ExtensibleXmlParser;
 import org.drools.xml.Handler;
+import org.w3c.dom.Element;
 import org.xml.sax.Attributes;
 import org.xml.sax.SAXException;
 import org.xml.sax.SAXParseException;
 
 public class ConnectionHandler extends BaseAbstractHandler implements Handler {
-
 	public ConnectionHandler() {
 		if ((this.validParents == null) && (this.validPeers == null)) {
-			this.validParents = new HashSet<Class<?>>();
+			this.validParents = new HashSet();
 			this.validParents.add(NodeContainer.class);
-			this.validPeers = new HashSet<Class<?>>();
+
+			this.validPeers = new HashSet();
 			this.validPeers.add(null);
 			this.validPeers.add(Connection.class);
+
 			this.allowNesting = false;
 		}
 	}
 
-	public Object start(final String uri, final String localName,
-			final Attributes attrs, final ExtensibleXmlParser parser)
-			throws SAXException {
-		parser.startElementBuilder(localName, attrs);
+	public Object start(final String uri,
+            final String localName,
+            final Attributes attrs,
+            final ExtensibleXmlParser parser) throws SAXException {
+		parser.startElementBuilder( localName, attrs );
+		String fromId = attrs.getValue( "from" );
+		emptyAttributeCheck( localName, "from", fromId, parser );
+		String toId = attrs.getValue( "to" );
+		emptyAttributeCheck( localName, "to", toId, parser );
+		String bendpoints = attrs.getValue( "bendpoints" );
 
-		String fromId = attrs.getValue("from");
-		emptyAttributeCheck(localName, "from", fromId, parser);
-		String toId = attrs.getValue("to");
-		emptyAttributeCheck(localName, "to", toId, parser);
-		String bendpoints = attrs.getValue("bendpoints");
-
-		String fromType = attrs.getValue("fromType");
+		String fromType = attrs.getValue( "fromType" );
 		if (fromType == null || fromType.trim().length() == 0) {
 			fromType = NodeImpl.CONNECTION_DEFAULT_TYPE;
 		}
-		String toType = attrs.getValue("toType");
+		String toType = attrs.getValue( "toType" );
 		if (toType == null || toType.trim().length() == 0) {
 			toType = NodeImpl.CONNECTION_DEFAULT_TYPE;
 		}
 
 		NodeContainer nodeContainer = (NodeContainer) parser.getParent();
-		Node fromNode = nodeContainer.getNode(new Long(fromId));
-		Node toNode = nodeContainer.getNode(new Long(toId));
+		Node fromNode = nodeContainer.getNode( new Long(fromId) );
+		Node toNode = nodeContainer.getNode( new Long(toId) );
 
-		if (fromNode == null) {
-			throw new SAXParseException(
-				"Node '" + fromId + "' cannot be found", parser.getLocator());
+		if ( fromNode == null ) {
+			throw new SAXParseException( "Node '" + fromId + "'cannot be found",
+                                 parser.getLocator() );
 		}
-		if (toNode == null) {
-			throw new SAXParseException("Node '" + toId + "' cannot be found", parser.getLocator());
+		if ( toNode == null ) {
+			throw new SAXParseException( "Node '" + toId + "' cannot be found",
+                             parser.getLocator() );
 		}
 
-		ConnectionImpl connection = new ConnectionImpl(fromNode, fromType, toNode, toType);
+		ConnectionImpl connection = new ConnectionImpl(fromNode, fromType,toNode, toType);
 		connection.setMetaData("bendpoints", bendpoints);
 
 		return connection;
 	}
 
-	public Object end(final String uri, final String localName, final ExtensibleXmlParser parser) throws SAXException {
+	public Object end(final String uri, final String localName,
+			final ExtensibleXmlParser parser) throws SAXException {
+		final Element element = parser.endElementBuilder();
 		return parser.getCurrent();
 	}
 
-	public Class<?> generateNodeFor() {
+	public Class generateNodeFor() {
 		return Connection.class;
 	}
 

Added: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/marshalling/AbstractProcessInstanceMarshaller.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/marshalling/AbstractProcessInstanceMarshaller.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/marshalling/AbstractProcessInstanceMarshaller.java	2009-01-30 15:27:43 UTC (rev 25023)
@@ -0,0 +1,344 @@
+package org.drools.marshalling;
+
+import java.io.IOException;
+import java.io.ObjectInputStream;
+import java.io.ObjectOutputStream;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Comparator;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.drools.common.InternalRuleBase;
+import org.drools.common.InternalWorkingMemory;
+import org.drools.process.core.context.swimlane.SwimlaneContext;
+import org.drools.process.core.context.variable.VariableScope;
+import org.drools.process.instance.context.swimlane.SwimlaneContextInstance;
+import org.drools.process.instance.context.variable.VariableScopeInstance;
+import org.drools.process.instance.impl.ProcessInstanceImpl;
+import org.drools.ruleflow.instance.RuleFlowProcessInstance;
+import org.drools.runtime.process.NodeInstance;
+import org.drools.runtime.process.NodeInstanceContainer;
+import org.drools.runtime.process.ProcessInstance;
+import org.drools.workflow.instance.WorkflowProcessInstance;
+import org.drools.workflow.instance.impl.NodeInstanceImpl;
+import org.drools.workflow.instance.impl.WorkflowProcessInstanceImpl;
+import org.drools.workflow.instance.node.CompositeContextNodeInstance;
+import org.drools.workflow.instance.node.ForEachNodeInstance;
+import org.drools.workflow.instance.node.HumanTaskNodeInstance;
+import org.drools.workflow.instance.node.JoinInstance;
+import org.drools.workflow.instance.node.MilestoneNodeInstance;
+import org.drools.workflow.instance.node.RuleSetNodeInstance;
+import org.drools.workflow.instance.node.SubProcessNodeInstance;
+import org.drools.workflow.instance.node.TimerNodeInstance;
+import org.drools.workflow.instance.node.WorkItemNodeInstance;
+
+/* Author: mfossati, salaboy */
+public abstract class AbstractProcessInstanceMarshaller implements
+		ProcessInstanceMarshaller {
+
+	// Output methods
+
+	public void writeProcessInstance(MarshallerWriteContext context,
+			ProcessInstance processInstance) throws IOException {
+
+		WorkflowProcessInstanceImpl workFlow = (WorkflowProcessInstanceImpl) processInstance;
+		ObjectOutputStream stream = context.stream;
+		stream.writeLong(workFlow.getId());
+		stream.writeUTF(workFlow.getProcessId());
+		stream.writeInt(workFlow.getState());
+		stream.writeLong(workFlow.getNodeInstanceCounter());
+		
+		VariableScopeInstance variableScopeInstance = (VariableScopeInstance) workFlow.getContextInstance( VariableScope.VARIABLE_SCOPE );
+        Map<String, Object> variables = variableScopeInstance.getVariables();
+        List<String> keys = new ArrayList<String>( variables.keySet() );
+        Collections.sort( keys,
+                          new Comparator<String>() {
+                              public int compare(String o1,
+                                                 String o2) {
+                                  return o1.compareTo( o2 );
+                              }
+                          } );
+        stream.writeInt( keys.size() );
+        for ( String key : keys ) {
+            stream.writeUTF( key );
+            stream.writeObject( variables.get( key ) );
+        }
+
+        SwimlaneContextInstance swimlaneContextInstance = (SwimlaneContextInstance) workFlow.getContextInstance( SwimlaneContext.SWIMLANE_SCOPE );
+        
+        if (swimlaneContextInstance!=null) {
+			Map<String, String> swimlaneActors = swimlaneContextInstance
+					.getSwimlaneActors();
+			stream.writeInt(swimlaneActors.size());
+			for (Map.Entry<String, String> entry : swimlaneActors.entrySet()) {
+				stream.writeUTF(entry.getKey());
+				stream.writeUTF(entry.getValue());
+			}
+		}
+		List<NodeInstance> nodeInstances = new ArrayList<NodeInstance>( workFlow.getNodeInstances() );
+        Collections.sort( nodeInstances,
+                          new Comparator<NodeInstance>() {
+                              public int compare(NodeInstance o1,
+                                                 NodeInstance o2) {
+                                  return (int) (o1.getId() - o2.getId());
+                              }
+                          } );
+        for ( NodeInstance nodeInstance : nodeInstances ) {
+            stream.writeShort( PersisterEnums.NODE_INSTANCE );
+            writeNodeInstance( context,
+                               nodeInstance );
+        }
+        stream.writeShort( PersisterEnums.END );
+	}
+
+	public void writeNodeInstance(MarshallerWriteContext context,
+			NodeInstance nodeInstance) throws IOException {
+		ObjectOutputStream stream = context.stream;
+		stream.writeLong(nodeInstance.getId());
+		stream.writeLong(nodeInstance.getNodeId());
+		writeNodeInstanceContent(stream, nodeInstance, context);
+	}
+
+	protected void writeNodeInstanceContent(ObjectOutputStream stream,
+			NodeInstance nodeInstance, MarshallerWriteContext context)
+			throws IOException {
+		 if ( nodeInstance instanceof RuleSetNodeInstance ) {
+	            stream.writeShort( PersisterEnums.RULE_SET_NODE_INSTANCE );
+	        } else if ( nodeInstance instanceof HumanTaskNodeInstance ) {
+	            stream.writeShort( PersisterEnums.HUMAN_TASK_NODE_INSTANCE );
+	            stream.writeLong( ((HumanTaskNodeInstance) nodeInstance).getWorkItem().getId() );
+	        } else if ( nodeInstance instanceof WorkItemNodeInstance ) {
+	            stream.writeShort( PersisterEnums.WORK_ITEM_NODE_INSTANCE );
+	            stream.writeLong( ((WorkItemNodeInstance) nodeInstance).getWorkItem().getId() );
+	        } else if ( nodeInstance instanceof SubProcessNodeInstance ) {
+	            stream.writeShort( PersisterEnums.SUB_PROCESS_NODE_INSTANCE );
+	            stream.writeLong( ((SubProcessNodeInstance) nodeInstance).getProcessInstanceId() );
+	        } else if ( nodeInstance instanceof MilestoneNodeInstance ) {
+	            stream.writeShort( PersisterEnums.MILESTONE_NODE_INSTANCE );
+	            List<Long> timerInstances = 
+	            	((MilestoneNodeInstance) nodeInstance).getTimerInstances();
+	            if (timerInstances != null) {
+	            	stream.writeInt(timerInstances.size());
+	            	for (Long id: timerInstances) {
+	            		stream.writeLong(id);
+	            	}
+	            } else {
+	            	stream.writeInt(0);
+	            }
+	        } else if ( nodeInstance instanceof TimerNodeInstance ) {
+	            stream.writeShort( PersisterEnums.TIMER_NODE_INSTANCE );
+	            stream.writeLong( ((TimerNodeInstance) nodeInstance).getTimerId() );
+	        } else if ( nodeInstance instanceof JoinInstance ) {
+	            stream.writeShort( PersisterEnums.JOIN_NODE_INSTANCE );
+	            Map<Long, Integer> triggers = ((JoinInstance) nodeInstance).getTriggers();
+	            stream.writeInt( triggers.size() );
+	            List<Long> keys = new ArrayList<Long>( triggers.keySet() );
+	            Collections.sort( keys,
+	                              new Comparator<Long>() {
+	                                  public int compare(Long o1,
+	                                                     Long o2) {
+	                                      return o1.compareTo( o2 );
+	                                  }
+	                              } );
+	            for ( Long key : keys ) {
+	                stream.writeLong( key );
+	                stream.writeInt( triggers.get( key ) );
+	            }
+	        } else if ( nodeInstance instanceof CompositeContextNodeInstance ) {
+	            stream.writeShort( PersisterEnums.COMPOSITE_NODE_INSTANCE );
+	            CompositeContextNodeInstance compositeNodeInstance = (CompositeContextNodeInstance) nodeInstance;
+	            VariableScopeInstance variableScopeInstance = (VariableScopeInstance) compositeNodeInstance.getContextInstance( VariableScope.VARIABLE_SCOPE );
+	            Map<String, Object> variables = variableScopeInstance.getVariables();
+	            List<String> keys = new ArrayList<String>( variables.keySet() );
+	            Collections.sort( keys,
+	                              new Comparator<String>() {
+	                                  public int compare(String o1,
+	                                                     String o2) {
+	                                      return o1.compareTo( o2 );
+	                                  }
+	                              } );
+	            stream.writeInt( keys.size() );
+	            for ( String key : keys ) {
+	                stream.writeUTF( key );
+	                stream.writeObject( variables.get( key ) );
+	            }
+	            List<NodeInstance> nodeInstances = new ArrayList<NodeInstance>( compositeNodeInstance.getNodeInstances() );
+	            Collections.sort( nodeInstances,
+	                              new Comparator<NodeInstance>() {
+	                                  public int compare(NodeInstance o1,
+	                                                     NodeInstance o2) {
+	                                      return (int) (o1.getId() - o2.getId());
+	                                  }
+	                              } );
+	            for ( NodeInstance subNodeInstance : nodeInstances ) {
+	                stream.writeShort( PersisterEnums.NODE_INSTANCE );
+	                writeNodeInstance( context,
+	                                   subNodeInstance );
+	            }
+	            stream.writeShort( PersisterEnums.END );
+	        } else if ( nodeInstance instanceof ForEachNodeInstance ) {
+	            stream.writeShort( PersisterEnums.FOR_EACH_NODE_INSTANCE );
+	            ForEachNodeInstance forEachNodeInstance = (ForEachNodeInstance) nodeInstance;
+	            List<NodeInstance> nodeInstances = new ArrayList<NodeInstance>( forEachNodeInstance.getNodeInstances() );
+	            Collections.sort( nodeInstances,
+	                              new Comparator<NodeInstance>() {
+	                                  public int compare(NodeInstance o1,
+	                                                     NodeInstance o2) {
+	                                      return (int) (o1.getId() - o2.getId());
+	                                  }
+	                              } );
+	            for ( NodeInstance subNodeInstance : nodeInstances ) {
+	                if ( subNodeInstance instanceof CompositeContextNodeInstance ) {
+	                    stream.writeShort( PersisterEnums.NODE_INSTANCE );
+	                    writeNodeInstance( context,
+	                                       subNodeInstance );
+	                }
+	            }
+	            stream.writeShort( PersisterEnums.END );
+	        } else {
+	            // TODO ForEachNodeInstance
+	            // TODO timer manager
+	            throw new IllegalArgumentException( "Unknown node instance type: " + nodeInstance );
+	        }
+	}
+
+	// Input methods
+
+	public ProcessInstance readProcessInstance(MarshallerReaderContext context)
+			throws IOException {
+		ObjectInputStream stream = context.stream;
+        InternalRuleBase ruleBase = context.ruleBase;
+        InternalWorkingMemory wm = context.wm;
+
+        RuleFlowProcessInstance processInstance = new RuleFlowProcessInstance();
+        processInstance.setId( stream.readLong() );
+        String processId = stream.readUTF();
+        processInstance.setProcessId( processId );
+        if ( ruleBase != null ) {
+            processInstance.setProcess( ruleBase.getProcess( processId ) );
+        }
+        processInstance.setState( stream.readInt() );
+        long nodeInstanceCounter = stream.readLong();
+        processInstance.setWorkingMemory( wm );
+
+        int nbVariables = stream.readInt();
+        if ( nbVariables > 0 ) {
+            VariableScopeInstance variableScopeInstance = (VariableScopeInstance) processInstance.getContextInstance( VariableScope.VARIABLE_SCOPE );
+            for ( int i = 0; i < nbVariables; i++ ) {
+                String name = stream.readUTF();
+                try {
+                    Object value = stream.readObject();
+                    variableScopeInstance.setVariable( name,
+                                                       value );
+                } catch ( ClassNotFoundException e ) {
+                    throw new IllegalArgumentException( "Could not reload variable " + name );
+                }
+            }
+        }
+
+        int nbSwimlanes = stream.readInt();
+        if ( nbSwimlanes > 0 ) {
+            SwimlaneContextInstance swimlaneContextInstance = (SwimlaneContextInstance) processInstance.getContextInstance( SwimlaneContext.SWIMLANE_SCOPE );
+            for ( int i = 0; i < nbSwimlanes; i++ ) {
+                String name = stream.readUTF();
+                String value = stream.readUTF();
+                swimlaneContextInstance.setActorId( name,
+                                                    value );
+            }
+        }
+
+        while ( stream.readShort() == PersisterEnums.NODE_INSTANCE ) {
+            readNodeInstance( context,
+                              processInstance,
+                              processInstance );
+        }
+
+        processInstance.internalSetNodeInstanceCounter( nodeInstanceCounter );
+        if ( wm != null ) {
+            processInstance.reconnect();
+        }
+        return processInstance;
+	}
+
+	public NodeInstance readNodeInstance(MarshallerReaderContext context,
+			NodeInstanceContainer nodeInstanceContainer,
+			WorkflowProcessInstance processInstance) throws IOException {
+		ObjectInputStream stream = context.stream;
+		long id = stream.readLong();
+		long nodeId = stream.readLong();
+		int nodeType = stream.readShort();
+		NodeInstanceImpl nodeInstance = readNodeInstanceContent(nodeType,
+				stream, context, processInstance);
+
+		nodeInstance.setNodeId(nodeId);
+		nodeInstance.setNodeInstanceContainer(nodeInstanceContainer);
+		nodeInstance.setProcessInstance(processInstance);
+		nodeInstance.setId(id);
+
+		return nodeInstance;
+	}
+
+	protected NodeInstanceImpl readNodeInstanceContent(int nodeType,
+			ObjectInputStream stream, MarshallerReaderContext context,
+			WorkflowProcessInstance processInstance) throws IOException {
+		NodeInstanceImpl nodeInstance = null;
+		switch ( nodeType ) {
+        case PersisterEnums.RULE_SET_NODE_INSTANCE :
+            nodeInstance = new RuleSetNodeInstance();
+            break;
+        case PersisterEnums.HUMAN_TASK_NODE_INSTANCE :
+            nodeInstance = new HumanTaskNodeInstance();
+            ((HumanTaskNodeInstance) nodeInstance).internalSetWorkItemId( stream.readLong() );
+            break;
+        case PersisterEnums.WORK_ITEM_NODE_INSTANCE :
+            nodeInstance = new WorkItemNodeInstance();
+            ((WorkItemNodeInstance) nodeInstance).internalSetWorkItemId( stream.readLong() );
+            break;
+        case PersisterEnums.SUB_PROCESS_NODE_INSTANCE :
+            nodeInstance = new SubProcessNodeInstance();
+            ((SubProcessNodeInstance) nodeInstance).internalSetProcessInstanceId( stream.readLong() );
+            break;
+        case PersisterEnums.MILESTONE_NODE_INSTANCE :
+            nodeInstance = new MilestoneNodeInstance();
+            int nbTimerInstances = stream.readInt();
+            if (nbTimerInstances > 0) {
+            	List<Long> timerInstances = new ArrayList<Long>();
+            	for (int i = 0; i < nbTimerInstances; i++) {
+            		timerInstances.add(stream.readLong());
+            	}
+            	((MilestoneNodeInstance) nodeInstance).internalSetTimerInstances(timerInstances);
+            }
+            break;
+        case PersisterEnums.TIMER_NODE_INSTANCE :
+            nodeInstance = new TimerNodeInstance();
+            ((TimerNodeInstance) nodeInstance).internalSetTimerId( stream.readLong() );
+            break;
+        case PersisterEnums.JOIN_NODE_INSTANCE :
+            nodeInstance = new JoinInstance();
+            int number = stream.readInt();
+            if ( number > 0 ) {
+                Map<Long, Integer> triggers = new HashMap<Long, Integer>();
+                for ( int i = 0; i < number; i++ ) {
+                    long l = stream.readLong();
+                    int count = stream.readInt();
+                    triggers.put( l,
+                                  count );
+                }
+                ((JoinInstance) nodeInstance).internalSetTriggers( triggers );
+            }
+            break;
+        case PersisterEnums.COMPOSITE_NODE_INSTANCE :
+            nodeInstance = new CompositeContextNodeInstance();
+            break;
+        case PersisterEnums.FOR_EACH_NODE_INSTANCE :
+            nodeInstance = new ForEachNodeInstance();
+            break;
+        default :
+            throw new IllegalArgumentException( "Unknown node type: " + nodeType );
+		}
+		return nodeInstance;
+
+	}
+}

Added: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/marshalling/ProcessInstanceMarshaller.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/marshalling/ProcessInstanceMarshaller.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/marshalling/ProcessInstanceMarshaller.java	2009-01-30 15:27:43 UTC (rev 25023)
@@ -0,0 +1,39 @@
+package org.drools.marshalling;
+
+import java.io.IOException;
+import java.io.ObjectInputStream;
+
+import org.drools.runtime.process.NodeInstance;
+import org.drools.runtime.process.NodeInstanceContainer;
+import org.drools.runtime.process.ProcessInstance;
+import org.drools.workflow.instance.WorkflowProcessInstance;
+import org.drools.workflow.instance.impl.NodeInstanceImpl;
+
+/**
+ * A ProcessInstanceMarshaller must contain all the write/read logic for nodes
+ * of a specific ProcessInstance. It colaborates with OutputMarshaller and
+ * InputMarshaller, that delegates in a ProcessInstanceMarshaller to stream in/out runtime
+ * information.
+ * 
+ * @see OutPutMarshaller
+ * @see InputMarshaller
+ * @see ProcessMarshallerRegistry
+ * 
+ * @author mfossati, salaboy
+ */
+
+public interface ProcessInstanceMarshaller {
+
+	public void writeProcessInstance(MarshallerWriteContext context,
+			ProcessInstance processInstance) throws IOException;
+
+	public void writeNodeInstance(MarshallerWriteContext context,
+			NodeInstance nodeInstance) throws IOException;
+
+	public ProcessInstance readProcessInstance(MarshallerReaderContext context)
+			throws IOException;
+
+	public NodeInstance readNodeInstance(MarshallerReaderContext context,
+			NodeInstanceContainer nodeInstanceContainer,
+			WorkflowProcessInstance processInstance) throws IOException;
+}

Added: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/marshalling/ProcessMarshallerRegistry.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/marshalling/ProcessMarshallerRegistry.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/marshalling/ProcessMarshallerRegistry.java	2009-01-30 15:27:43 UTC (rev 25023)
@@ -0,0 +1,38 @@
+package org.drools.marshalling;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import org.drools.process.instance.impl.ProcessInstanceImpl;
+import org.drools.ruleflow.core.RuleFlowProcess;
+import org.drools.ruleflow.instance.RuleFlowProcessInstance;
+
+/**
+* Registry for Process/ProcessMarshaller
+*/
+public class ProcessMarshallerRegistry {
+
+	public static ProcessMarshallerRegistry INSTANCE = new ProcessMarshallerRegistry();
+
+	private Map<String , ProcessInstanceMarshaller> registry;
+
+	private ProcessMarshallerRegistry() {
+		 this.registry = new HashMap<String, ProcessInstanceMarshaller >();
+
+	        // default logic that used to be in OutPutMarshaller:
+	        register( RuleFlowProcess.RULEFLOW_TYPE,
+	                  RuleFlowProcessInstanceMarshaller.INSTANCE );
+	}
+
+	public void register(String cls,
+			ProcessInstanceMarshaller marchaller) {
+		this.registry.put(cls, marchaller);
+	}
+	
+	@SuppressWarnings("unchecked")
+	public ProcessInstanceMarshaller getMarshaller(String type) {
+		return this.registry.get(type);
+	}
+	
+
+}

Added: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/marshalling/RuleFlowProcessInstanceMarshaller.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/marshalling/RuleFlowProcessInstanceMarshaller.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/marshalling/RuleFlowProcessInstanceMarshaller.java	2009-01-30 15:27:43 UTC (rev 25023)
@@ -0,0 +1,85 @@
+package org.drools.marshalling;
+
+import java.io.IOException;
+import java.io.ObjectInputStream;
+
+import org.drools.common.InternalRuleBase;
+import org.drools.common.InternalWorkingMemory;
+import org.drools.process.core.context.swimlane.SwimlaneContext;
+import org.drools.process.core.context.variable.VariableScope;
+import org.drools.process.instance.context.swimlane.SwimlaneContextInstance;
+import org.drools.process.instance.context.variable.VariableScopeInstance;
+import org.drools.ruleflow.instance.RuleFlowProcessInstance;
+import org.drools.runtime.process.NodeInstance;
+import org.drools.runtime.process.ProcessInstance;
+import org.drools.workflow.instance.impl.NodeInstanceImpl;
+
+/**
+ * Marshaller class for RuleFlowProcessInstances
+ * 
+ * @author mfossati
+ */
+
+public class RuleFlowProcessInstanceMarshaller extends
+		AbstractProcessInstanceMarshaller {
+
+	public static RuleFlowProcessInstanceMarshaller INSTANCE = new RuleFlowProcessInstanceMarshaller();
+
+	private RuleFlowProcessInstanceMarshaller() {
+	}
+
+	public ProcessInstance readProcessInstance(MarshallerReaderContext context)
+			throws IOException {
+		ObjectInputStream stream = context.stream;
+		InternalRuleBase ruleBase = context.ruleBase;
+		InternalWorkingMemory wm = context.wm;
+
+		RuleFlowProcessInstance processInstance = new RuleFlowProcessInstance();
+		processInstance.setId(stream.readLong());
+		String processId = stream.readUTF();
+		processInstance.setProcessId(processId);
+		if (ruleBase != null) {
+			processInstance.setProcess(ruleBase.getProcess(processId));
+		}
+		processInstance.setState(stream.readInt());
+		long nodeInstanceCounter = stream.readLong();
+		processInstance.setWorkingMemory(wm);
+
+		int nbVariables = stream.readInt();
+		if (nbVariables > 0) {
+			VariableScopeInstance variableScopeInstance = (VariableScopeInstance) processInstance
+					.getContextInstance(VariableScope.VARIABLE_SCOPE);
+			for (int i = 0; i < nbVariables; i++) {
+				String name = stream.readUTF();
+				try {
+					Object value = stream.readObject();
+					variableScopeInstance.setVariable(name, value);
+				} catch (ClassNotFoundException e) {
+					throw new IllegalArgumentException(
+							"Could not reload variable " + name);
+				}
+			}
+		}
+
+		int nbSwimlanes = stream.readInt();
+		if (nbSwimlanes > 0) {
+			SwimlaneContextInstance swimlaneContextInstance = (SwimlaneContextInstance) processInstance
+					.getContextInstance(SwimlaneContext.SWIMLANE_SCOPE);
+			for (int i = 0; i < nbSwimlanes; i++) {
+				String name = stream.readUTF();
+				String value = stream.readUTF();
+				swimlaneContextInstance.setActorId(name, value);
+			}
+		}
+
+		while (stream.readShort() == PersisterEnums.NODE_INSTANCE) {
+			readNodeInstance(context, processInstance, processInstance);
+		}
+
+		processInstance.internalSetNodeInstanceCounter(nodeInstanceCounter);
+		if (wm != null) {
+			processInstance.reconnect();
+		}
+		return processInstance;
+	}
+}

Modified: labs/jbossrules/trunk/drools-process/drools-osworkflow/.project
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-osworkflow/.project	2009-01-30 15:07:28 UTC (rev 25022)
+++ labs/jbossrules/trunk/drools-process/drools-osworkflow/.project	2009-01-30 15:27:43 UTC (rev 25023)
@@ -1,13 +1,13 @@
-<projectDescription>
-  <name>drools-osworkflow</name>
-  <comment>A rule production system</comment>
-  <projects/>
-  <buildSpec>
-    <buildCommand>
-      <name>org.eclipse.jdt.core.javabuilder</name>
-    </buildCommand>
-  </buildSpec>
-  <natures>
-    <nature>org.eclipse.jdt.core.javanature</nature>
-  </natures>
+<projectDescription>
+  <name>drools-osworkflow</name>
+  <comment>A rule production system</comment>
+  <projects/>
+  <buildSpec>
+    <buildCommand>
+      <name>org.eclipse.jdt.core.javabuilder</name>
+    </buildCommand>
+  </buildSpec>
+  <natures>
+    <nature>org.eclipse.jdt.core.javanature</nature>
+  </natures>
 </projectDescription>
\ No newline at end of file

Modified: labs/jbossrules/trunk/drools-process/drools-osworkflow/pom.xml
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-osworkflow/pom.xml	2009-01-30 15:07:28 UTC (rev 25022)
+++ labs/jbossrules/trunk/drools-process/drools-osworkflow/pom.xml	2009-01-30 15:27:43 UTC (rev 25023)
@@ -16,18 +16,27 @@
 
   <dependencies>
   
-    <!-- Internal dependencies -->
+    <!-- Internal dependencies -->
+    
     <dependency>
       <groupId>org.drools</groupId>
       <artifactId>drools-api</artifactId>
     </dependency>
+    
     <dependency>
       <groupId>org.drools</groupId>
       <artifactId>drools-core</artifactId>
     </dependency>
+    
     <dependency>
       <groupId>org.drools</groupId>
       <artifactId>drools-compiler</artifactId>
+    </dependency>
+    
+    <dependency>
+      <groupId>org.drools</groupId>
+      <artifactId>drools-process-enterprise</artifactId>
+      <version>5.0.0.SNAPSHOT</version>
     </dependency>
 
     <!-- External dependencies -->

Modified: labs/jbossrules/trunk/drools-process/drools-osworkflow/src/main/java/org/drools/osworkflow/DroolsWorkflow.java
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-osworkflow/src/main/java/org/drools/osworkflow/DroolsWorkflow.java	2009-01-30 15:07:28 UTC (rev 25022)
+++ labs/jbossrules/trunk/drools-process/drools-osworkflow/src/main/java/org/drools/osworkflow/DroolsWorkflow.java	2009-01-30 15:27:43 UTC (rev 25023)
@@ -79,7 +79,7 @@
 	}
 	
 	public int[] getAvailableActions(long id) {
-	    return getAvailableActions(id, null);
+	    return getAvailableActions(id, null);   
 	}
 
 	public int[] getAvailableActions(long id, Map inputs) {

Copied: labs/jbossrules/trunk/drools-process/drools-osworkflow/src/main/java/org/drools/osworkflow/core/command (from rev 24981, labs/jbossrules/branches/mfossati/drools-osworkflow/src/main/java/org/drools/osworkflow/core/command)

Deleted: labs/jbossrules/trunk/drools-process/drools-osworkflow/src/main/java/org/drools/osworkflow/core/command/DoActionCommand.java
===================================================================
--- labs/jbossrules/branches/mfossati/drools-osworkflow/src/main/java/org/drools/osworkflow/core/command/DoActionCommand.java	2009-01-28 17:47:14 UTC (rev 24981)
+++ labs/jbossrules/trunk/drools-process/drools-osworkflow/src/main/java/org/drools/osworkflow/core/command/DoActionCommand.java	2009-01-30 15:27:43 UTC (rev 25023)
@@ -1,61 +0,0 @@
-package org.drools.osworkflow.core.command;
-
-import java.util.HashMap;
-import java.util.Map;
-
-import org.drools.StatefulSession;
-import org.drools.WorkingMemory;
-import org.drools.osworkflow.instance.OSWorkflowProcessInstance;
-import org.drools.process.command.Command;
-import org.drools.process.instance.ProcessInstance;
-
-/*Author: salaboy, mfossati */
-
-public class DoActionCommand implements Command {
-	
-	private int actionId;
-	private long processInstanceId;
-	private Map<String, Object> results = new HashMap<String, Object>();
-	
-	public void setActionId(int actionId) {
-		this.actionId = actionId;
-	}
-
-	public int getActionId() {
-		return actionId;
-	}
-
-	public Map<String, Object> getResults() {
-		return results;
-	}
-
-	public void setResults(Map<String, Object> results) {
-		this.results = results;
-	}
-	
-	public void setProcessInstanceId(long processInstanceId) {
-		this.processInstanceId = processInstanceId;
-	}
-
-	public long getProcessInstanceId() {
-		return processInstanceId;
-	}
-	
-	public Object execute(WorkingMemory workingMemory) {
-		ProcessInstance processInstance = ( ProcessInstance ) workingMemory.getProcessInstance(getProcessInstanceId());
-		if (processInstance != null) {
-			((OSWorkflowProcessInstance)processInstance).doAction(actionId, new HashMap());
-			
-		}
-		return null;
-	}
-
-	public Object execute(StatefulSession session) {
-		return this.execute((WorkingMemory)session);
-	}
-
-	
-
-	
-
-}
\ No newline at end of file

Copied: labs/jbossrules/trunk/drools-process/drools-osworkflow/src/main/java/org/drools/osworkflow/core/command/DoActionCommand.java (from rev 24981, labs/jbossrules/branches/mfossati/drools-osworkflow/src/main/java/org/drools/osworkflow/core/command/DoActionCommand.java)
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-osworkflow/src/main/java/org/drools/osworkflow/core/command/DoActionCommand.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-process/drools-osworkflow/src/main/java/org/drools/osworkflow/core/command/DoActionCommand.java	2009-01-30 15:27:43 UTC (rev 25023)
@@ -0,0 +1,61 @@
+package org.drools.osworkflow.core.command;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import org.drools.StatefulSession;
+import org.drools.WorkingMemory;
+import org.drools.osworkflow.instance.OSWorkflowProcessInstance;
+import org.drools.process.command.Command;
+import org.drools.process.instance.ProcessInstance;
+
+/*Author: salaboy, mfossati */
+
+public class DoActionCommand implements Command {
+	
+	private int actionId;
+	private long processInstanceId;
+	private Map<String, Object> results = new HashMap<String, Object>();
+	
+	public void setActionId(int actionId) {
+		this.actionId = actionId;
+	}
+
+	public int getActionId() {
+		return actionId;
+	}
+
+	public Map<String, Object> getResults() {
+		return results;
+	}
+
+	public void setResults(Map<String, Object> results) {
+		this.results = results;
+	}
+	
+	public void setProcessInstanceId(long processInstanceId) {
+		this.processInstanceId = processInstanceId;
+	}
+
+	public long getProcessInstanceId() {
+		return processInstanceId;
+	}
+	
+	public Object execute(WorkingMemory workingMemory) {
+		ProcessInstance processInstance = ( ProcessInstance ) workingMemory.getProcessInstance(getProcessInstanceId());
+		if (processInstance != null) {
+			((OSWorkflowProcessInstance)processInstance).doAction(actionId, new HashMap());
+			
+		}
+		return null;
+	}
+
+	public Object execute(StatefulSession session) {
+		return this.execute((WorkingMemory)session);
+	}
+
+	
+
+	
+
+}
\ No newline at end of file

Modified: labs/jbossrules/trunk/drools-process/drools-osworkflow/src/main/java/org/drools/osworkflow/instance/OSWorkflowProcessInstance.java
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-osworkflow/src/main/java/org/drools/osworkflow/instance/OSWorkflowProcessInstance.java	2009-01-30 15:07:28 UTC (rev 25022)
+++ labs/jbossrules/trunk/drools-process/drools-osworkflow/src/main/java/org/drools/osworkflow/instance/OSWorkflowProcessInstance.java	2009-01-30 15:27:43 UTC (rev 25023)
@@ -49,9 +49,9 @@
     protected void internalStart() {
         Map<String, Object> transientVars = new HashMap<String, Object>();
         for (ActionDescriptor action: getOSWorkflowProcess().getInitialActions()) {
-            if (action.getAutoExecute()) {
+          //  if (action.getAutoExecute()) {
                 executeAction(action, 0, transientVars);
-            }
+          //  }
         }
     }
 
@@ -68,13 +68,11 @@
     
     public void doAction(int actionId, Map inputs) {
         for (org.drools.runtime.process.NodeInstance nodeInstance: getNodeInstances()) {
-        	if (nodeInstance instanceof StepNodeInstance) {
-		        StepNodeInstance stepNodeInstance = (StepNodeInstance) nodeInstance;
-		        if (stepNodeInstance.isAvailableAction(actionId)) {
-		            stepNodeInstance.doAction(actionId, inputs);
-		            break;
-		        }
-        	}
+            StepNodeInstance stepNodeInstance = (StepNodeInstance) nodeInstance;
+            if (stepNodeInstance.isAvailableAction(actionId)) {
+                stepNodeInstance.doAction(actionId, inputs);
+                break;
+            }
         }
         checkImplicitFinish();
     }

Copied: labs/jbossrules/trunk/drools-process/drools-osworkflow/src/main/java/org/drools/osworkflow/persistence (from rev 24981, labs/jbossrules/branches/mfossati/drools-osworkflow/src/main/java/org/drools/osworkflow/persistence)

Copied: labs/jbossrules/trunk/drools-process/drools-osworkflow/src/main/java/org/drools/osworkflow/persistence/marshaller (from rev 24981, labs/jbossrules/branches/mfossati/drools-osworkflow/src/main/java/org/drools/osworkflow/persistence/marshaller)

Deleted: labs/jbossrules/trunk/drools-process/drools-osworkflow/src/main/java/org/drools/osworkflow/persistence/marshaller/OSWorkFlowPersisterEnums.java
===================================================================
--- labs/jbossrules/branches/mfossati/drools-osworkflow/src/main/java/org/drools/osworkflow/persistence/marshaller/OSWorkFlowPersisterEnums.java	2009-01-28 17:47:14 UTC (rev 24981)
+++ labs/jbossrules/trunk/drools-process/drools-osworkflow/src/main/java/org/drools/osworkflow/persistence/marshaller/OSWorkFlowPersisterEnums.java	2009-01-30 15:27:43 UTC (rev 25023)
@@ -1,7 +0,0 @@
-package org.drools.osworkflow.persistence.marshaller;
-
-public class OSWorkFlowPersisterEnums {
-	
-	public static final short STEP_NODE_INSTANCE		= 1000;
-
-}

Copied: labs/jbossrules/trunk/drools-process/drools-osworkflow/src/main/java/org/drools/osworkflow/persistence/marshaller/OSWorkFlowPersisterEnums.java (from rev 24981, labs/jbossrules/branches/mfossati/drools-osworkflow/src/main/java/org/drools/osworkflow/persistence/marshaller/OSWorkFlowPersisterEnums.java)
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-osworkflow/src/main/java/org/drools/osworkflow/persistence/marshaller/OSWorkFlowPersisterEnums.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-process/drools-osworkflow/src/main/java/org/drools/osworkflow/persistence/marshaller/OSWorkFlowPersisterEnums.java	2009-01-30 15:27:43 UTC (rev 25023)
@@ -0,0 +1,7 @@
+package org.drools.osworkflow.persistence.marshaller;
+
+public class OSWorkFlowPersisterEnums {
+	
+	public static final short STEP_NODE_INSTANCE		= 1000;
+
+}

Deleted: labs/jbossrules/trunk/drools-process/drools-osworkflow/src/main/java/org/drools/osworkflow/persistence/marshaller/OSWorkflowProcessInstanceMarshaller.java
===================================================================
--- labs/jbossrules/branches/mfossati/drools-osworkflow/src/main/java/org/drools/osworkflow/persistence/marshaller/OSWorkflowProcessInstanceMarshaller.java	2009-01-28 17:47:14 UTC (rev 24981)
+++ labs/jbossrules/trunk/drools-process/drools-osworkflow/src/main/java/org/drools/osworkflow/persistence/marshaller/OSWorkflowProcessInstanceMarshaller.java	2009-01-30 15:27:43 UTC (rev 25023)
@@ -1,121 +0,0 @@
-package org.drools.osworkflow.persistence.marshaller;
-
-import java.io.IOException;
-import java.io.ObjectInputStream;
-import java.io.ObjectOutputStream;
-
-import org.drools.common.InternalRuleBase;
-import org.drools.common.InternalWorkingMemory;
-import org.drools.marshalling.AbstractProcessInstanceMarshaller;
-import org.drools.marshalling.MarshallerReaderContext;
-import org.drools.marshalling.MarshallerWriteContext;
-import org.drools.marshalling.PersisterEnums;
-import org.drools.osworkflow.instance.OSWorkflowProcessInstance;
-import org.drools.osworkflow.instance.node.StepNodeInstance;
-import org.drools.process.core.context.variable.VariableScope;
-import org.drools.process.instance.context.variable.VariableScopeInstance;
-import org.drools.runtime.process.NodeInstance;
-import org.drools.runtime.process.ProcessInstance;
-import org.drools.workflow.instance.WorkflowProcessInstance;
-import org.drools.workflow.instance.impl.NodeInstanceImpl;
-
-public class OSWorkflowProcessInstanceMarshaller extends
-		AbstractProcessInstanceMarshaller {
-
-	public static OSWorkflowProcessInstanceMarshaller INSTANCE = new OSWorkflowProcessInstanceMarshaller();
-
-	private OSWorkflowProcessInstanceMarshaller() {
-
-	}
-
-	@Override
-	public ProcessInstance readProcessInstance(MarshallerReaderContext context)
-			throws IOException {
-		ObjectInputStream stream = context.stream;
-		InternalRuleBase ruleBase = context.ruleBase;
-		InternalWorkingMemory wm = context.wm;
-
-		OSWorkflowProcessInstance processInstance = new OSWorkflowProcessInstance();
-		processInstance.setId(stream.readLong());
-		String processId = stream.readUTF();
-		processInstance.setProcessId(processId);
-		if (ruleBase != null) {
-			processInstance.setProcess(ruleBase.getProcess(processId));
-		}
-		processInstance.setState(stream.readInt());
-		long nodeInstanceCounter = stream.readLong();
-		processInstance.setWorkingMemory(wm);
-
-		int nbVariables = stream.readInt();
-		if (nbVariables > 0) {
-			VariableScopeInstance variableScopeInstance = (VariableScopeInstance) processInstance
-					.getContextInstance(VariableScope.VARIABLE_SCOPE);
-			for (int i = 0; i < nbVariables; i++) {
-				String name = stream.readUTF();
-				try {
-					Object value = stream.readObject();
-					variableScopeInstance.setVariable(name, value);
-				} catch (ClassNotFoundException e) {
-					throw new IllegalArgumentException(
-							"Could not reload variable " + name);
-				}
-			}
-		}
-
-		while (stream.readShort() == PersisterEnums.NODE_INSTANCE) {
-			readNodeInstance(context, processInstance, processInstance);
-		}
-
-		processInstance.internalSetNodeInstanceCounter(nodeInstanceCounter);
-		if (wm != null) {
-			processInstance.reconnect();
-		}
-		return processInstance;
-	}
-
-	protected NodeInstanceImpl readNodeInstanceContent(int nodeType,
-			ObjectInputStream stream, MarshallerReaderContext context,
-			WorkflowProcessInstance processInstance) throws IOException {
-		NodeInstanceImpl nodeInstance = null;
-		if (nodeType == OSWorkFlowPersisterEnums.STEP_NODE_INSTANCE) {
-			nodeInstance = new StepNodeInstance();
-			((StepNodeInstance) nodeInstance).setNodeId(stream.readLong());
-			if (stream.readBoolean()) {
-				((StepNodeInstance) nodeInstance).setStatus(stream.readUTF());
-			}
-			if (stream.readBoolean()) {
-				((StepNodeInstance) nodeInstance).setOwner(stream.readUTF());
-			}
-
-			return nodeInstance;
-		} else
-			return super.readNodeInstanceContent(nodeType, stream, context,
-					processInstance);
-	}
-
-	protected void writeNodeInstanceContent(ObjectOutputStream stream,
-			NodeInstance nodeInstance, MarshallerWriteContext context)
-			throws IOException {
-		if (nodeInstance instanceof StepNodeInstance) {
-			stream.writeShort(OSWorkFlowPersisterEnums.STEP_NODE_INSTANCE);
-			stream.writeLong(((StepNodeInstance) nodeInstance).getNodeId());
-			String status = ((StepNodeInstance) nodeInstance).getStatus();
-			if (status == null || "".equals(status)) {
-				stream.writeBoolean(false);
-			} else {
-				stream.writeBoolean(true);
-				stream.writeUTF(((StepNodeInstance) nodeInstance).getStatus());
-			}
-			String owner = ((StepNodeInstance) nodeInstance).getOwner();
-			if (owner == null || "".equals(owner)) {
-				stream.writeBoolean(false);
-			} else {
-				stream.writeBoolean(true);
-				stream.writeUTF(((StepNodeInstance) nodeInstance).getOwner());
-			}
-
-		} else
-			super.writeNodeInstanceContent(stream, nodeInstance, context);
-	}
-
-}

Copied: labs/jbossrules/trunk/drools-process/drools-osworkflow/src/main/java/org/drools/osworkflow/persistence/marshaller/OSWorkflowProcessInstanceMarshaller.java (from rev 24981, labs/jbossrules/branches/mfossati/drools-osworkflow/src/main/java/org/drools/osworkflow/persistence/marshaller/OSWorkflowProcessInstanceMarshaller.java)
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-osworkflow/src/main/java/org/drools/osworkflow/persistence/marshaller/OSWorkflowProcessInstanceMarshaller.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-process/drools-osworkflow/src/main/java/org/drools/osworkflow/persistence/marshaller/OSWorkflowProcessInstanceMarshaller.java	2009-01-30 15:27:43 UTC (rev 25023)
@@ -0,0 +1,121 @@
+package org.drools.osworkflow.persistence.marshaller;
+
+import java.io.IOException;
+import java.io.ObjectInputStream;
+import java.io.ObjectOutputStream;
+
+import org.drools.common.InternalRuleBase;
+import org.drools.common.InternalWorkingMemory;
+import org.drools.marshalling.AbstractProcessInstanceMarshaller;
+import org.drools.marshalling.MarshallerReaderContext;
+import org.drools.marshalling.MarshallerWriteContext;
+import org.drools.marshalling.PersisterEnums;
+import org.drools.osworkflow.instance.OSWorkflowProcessInstance;
+import org.drools.osworkflow.instance.node.StepNodeInstance;
+import org.drools.process.core.context.variable.VariableScope;
+import org.drools.process.instance.context.variable.VariableScopeInstance;
+import org.drools.runtime.process.NodeInstance;
+import org.drools.runtime.process.ProcessInstance;
+import org.drools.workflow.instance.WorkflowProcessInstance;
+import org.drools.workflow.instance.impl.NodeInstanceImpl;
+
+public class OSWorkflowProcessInstanceMarshaller extends
+		AbstractProcessInstanceMarshaller {
+
+	public static OSWorkflowProcessInstanceMarshaller INSTANCE = new OSWorkflowProcessInstanceMarshaller();
+
+	private OSWorkflowProcessInstanceMarshaller() {
+
+	}
+
+	@Override
+	public ProcessInstance readProcessInstance(MarshallerReaderContext context)
+			throws IOException {
+		ObjectInputStream stream = context.stream;
+		InternalRuleBase ruleBase = context.ruleBase;
+		InternalWorkingMemory wm = context.wm;
+
+		OSWorkflowProcessInstance processInstance = new OSWorkflowProcessInstance();
+		processInstance.setId(stream.readLong());
+		String processId = stream.readUTF();
+		processInstance.setProcessId(processId);
+		if (ruleBase != null) {
+			processInstance.setProcess(ruleBase.getProcess(processId));
+		}
+		processInstance.setState(stream.readInt());
+		long nodeInstanceCounter = stream.readLong();
+		processInstance.setWorkingMemory(wm);
+
+		int nbVariables = stream.readInt();
+		if (nbVariables > 0) {
+			VariableScopeInstance variableScopeInstance = (VariableScopeInstance) processInstance
+					.getContextInstance(VariableScope.VARIABLE_SCOPE);
+			for (int i = 0; i < nbVariables; i++) {
+				String name = stream.readUTF();
+				try {
+					Object value = stream.readObject();
+					variableScopeInstance.setVariable(name, value);
+				} catch (ClassNotFoundException e) {
+					throw new IllegalArgumentException(
+							"Could not reload variable " + name);
+				}
+			}
+		}
+
+		while (stream.readShort() == PersisterEnums.NODE_INSTANCE) {
+			readNodeInstance(context, processInstance, processInstance);
+		}
+
+		processInstance.internalSetNodeInstanceCounter(nodeInstanceCounter);
+		if (wm != null) {
+			processInstance.reconnect();
+		}
+		return processInstance;
+	}
+
+	protected NodeInstanceImpl readNodeInstanceContent(int nodeType,
+			ObjectInputStream stream, MarshallerReaderContext context,
+			WorkflowProcessInstance processInstance) throws IOException {
+		NodeInstanceImpl nodeInstance = null;
+		if (nodeType == OSWorkFlowPersisterEnums.STEP_NODE_INSTANCE) {
+			nodeInstance = new StepNodeInstance();
+			((StepNodeInstance) nodeInstance).setNodeId(stream.readLong());
+			if (stream.readBoolean()) {
+				((StepNodeInstance) nodeInstance).setStatus(stream.readUTF());
+			}
+			if (stream.readBoolean()) {
+				((StepNodeInstance) nodeInstance).setOwner(stream.readUTF());
+			}
+
+			return nodeInstance;
+		} else
+			return super.readNodeInstanceContent(nodeType, stream, context,
+					processInstance);
+	}
+
+	protected void writeNodeInstanceContent(ObjectOutputStream stream,
+			NodeInstance nodeInstance, MarshallerWriteContext context)
+			throws IOException {
+		if (nodeInstance instanceof StepNodeInstance) {
+			stream.writeShort(OSWorkFlowPersisterEnums.STEP_NODE_INSTANCE);
+			stream.writeLong(((StepNodeInstance) nodeInstance).getNodeId());
+			String status = ((StepNodeInstance) nodeInstance).getStatus();
+			if (status == null || "".equals(status)) {
+				stream.writeBoolean(false);
+			} else {
+				stream.writeBoolean(true);
+				stream.writeUTF(((StepNodeInstance) nodeInstance).getStatus());
+			}
+			String owner = ((StepNodeInstance) nodeInstance).getOwner();
+			if (owner == null || "".equals(owner)) {
+				stream.writeBoolean(false);
+			} else {
+				stream.writeBoolean(true);
+				stream.writeUTF(((StepNodeInstance) nodeInstance).getOwner());
+			}
+
+		} else
+			super.writeNodeInstanceContent(stream, nodeInstance, context);
+	}
+
+}

Copied: labs/jbossrules/trunk/drools-process/drools-osworkflow/src/main/java/org/drools/osworkflow/xml/InitialActionsHandler.java (from rev 24981, labs/jbossrules/branches/mfossati/drools-osworkflow/src/main/java/org/drools/osworkflow/xml/InitialActionsHandler.java)
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-osworkflow/src/main/java/org/drools/osworkflow/xml/InitialActionsHandler.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-process/drools-osworkflow/src/main/java/org/drools/osworkflow/xml/InitialActionsHandler.java	2009-01-30 15:27:43 UTC (rev 25023)
@@ -0,0 +1,101 @@
+package org.drools.osworkflow.xml;
+
+import java.io.PrintWriter;
+import java.io.StringWriter;
+import java.util.ArrayList;
+import java.util.HashSet;
+import java.util.List;
+
+import org.drools.definition.process.Process;
+import org.drools.osworkflow.core.OSWorkflowProcess;
+import org.drools.osworkflow.core.node.StepNode;
+import org.drools.osworkflow.instance.OSWorkflowProcessInstance;
+import org.drools.process.core.ContextContainer;
+import org.drools.process.core.context.variable.Variable;
+import org.drools.process.core.context.variable.VariableScope;
+import org.drools.workflow.core.Node;
+import org.drools.workflow.core.impl.WorkflowProcessImpl;
+import org.drools.xml.BaseAbstractHandler;
+import org.drools.xml.ExtensibleXmlParser;
+import org.drools.xml.Handler;
+import org.drools.xml.processes.AbstractNodeHandler;
+import org.w3c.dom.Element;
+import org.w3c.dom.NodeList;
+import org.xml.sax.Attributes;
+import org.xml.sax.SAXException;
+import org.xml.sax.SAXParseException;
+
+import com.opensymphony.workflow.loader.ActionDescriptor;
+import com.opensymphony.workflow.loader.DescriptorFactory;
+
+public class InitialActionsHandler extends BaseAbstractHandler implements
+			Handler {
+	OSWorkflowProcess  process = null;
+	
+	public InitialActionsHandler() {
+		if ( (this.validParents == null) && (this.validPeers == null) ) {
+            this.validParents = new HashSet();
+            this.validParents.add( ContextContainer.class );
+
+            this.validPeers = new HashSet();         
+            this.validPeers.add( null );            
+
+            this.allowNesting = false;
+        }
+    }
+    
+
+    
+    public Object start(final String uri,
+                        final String localName,
+                        final Attributes attrs,
+                        final ExtensibleXmlParser parser) throws SAXException {
+        parser.startElementBuilder( localName,
+                                    attrs );
+       
+        
+        
+        process = ( OSWorkflowProcess ) parser.getParent();        
+        
+        
+        
+        
+        
+        return null;
+    }    
+    
+    public Object end(final String uri,
+                      final String localName,
+                      final ExtensibleXmlParser parser) throws SAXException {
+        
+    	Element element = parser.endElementBuilder();
+    	
+    	
+        
+        
+        List<ActionDescriptor> actionList = new ArrayList<ActionDescriptor>();
+        NodeList nodeList = element.getChildNodes();
+        for (int i = 0; i < nodeList.getLength(); i++) {
+            org.w3c.dom.Node subNode = nodeList.item(i);
+            if (subNode.getNodeType() == org.w3c.dom.Node.ELEMENT_NODE) {
+                Element subElement = (Element) subNode;
+                ActionDescriptor actionDescriptor = 
+                    DescriptorFactory.getFactory().createActionDescriptor(subElement);
+                actionList.add(actionDescriptor);
+            }
+        }
+        
+        process.setInitialActions(actionList);
+    	
+    	
+    	
+    	
+    	
+        return null;
+    }
+
+    public Class<?> generateNodeFor() {
+        return Variable.class;
+    }    
+
+}

Modified: labs/jbossrules/trunk/drools-process/drools-osworkflow/src/main/java/org/drools/osworkflow/xml/OSWorkflowSemanticModule.java
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-osworkflow/src/main/java/org/drools/osworkflow/xml/OSWorkflowSemanticModule.java	2009-01-30 15:07:28 UTC (rev 25022)
+++ labs/jbossrules/trunk/drools-process/drools-osworkflow/src/main/java/org/drools/osworkflow/xml/OSWorkflowSemanticModule.java	2009-01-30 15:27:43 UTC (rev 25023)
@@ -1,6 +1,7 @@
 package org.drools.osworkflow.xml;
 
 import org.drools.xml.DefaultSemanticModule;
+import org.drools.xml.processes.ActionNodeHandler;
 import org.drools.xml.processes.CompositeNodeHandler;
 import org.drools.xml.processes.ConnectionHandler;
 import org.drools.xml.processes.ConstraintHandler;
@@ -35,6 +36,8 @@
                            new StartNodeHandler() );
         addHandler( "end",
                            new EndNodeHandler() );
+        addHandler( "initial-actions",
+        				new InitialActionsHandler() );
 //        addHandler( "action",
 //                           new ActionNodeHandler() );
         addHandler( "ruleSet",

Modified: labs/jbossrules/trunk/drools-process/drools-osworkflow/src/main/java/org/drools/osworkflow/xml/XmlOSWorkflowProcessDumper.java
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-osworkflow/src/main/java/org/drools/osworkflow/xml/XmlOSWorkflowProcessDumper.java	2009-01-30 15:07:28 UTC (rev 25022)
+++ labs/jbossrules/trunk/drools-process/drools-osworkflow/src/main/java/org/drools/osworkflow/xml/XmlOSWorkflowProcessDumper.java	2009-01-30 15:27:43 UTC (rev 25023)
@@ -1,11 +1,23 @@
 package org.drools.osworkflow.xml;
 
+import java.io.PrintWriter;
+import java.io.StringWriter;
+import java.util.Collection;
+import java.util.List;
+
+import org.drools.definition.process.WorkflowProcess;
+import org.drools.osworkflow.core.OSWorkflowProcess;
+import org.drools.process.core.context.exception.ExceptionScope;
+import org.drools.process.core.context.swimlane.SwimlaneContext;
+import org.drools.process.core.context.variable.VariableScope;
 import org.drools.xml.XmlWorkflowProcessDumper;
 
+import com.opensymphony.workflow.loader.ActionDescriptor;
+
 public class XmlOSWorkflowProcessDumper extends XmlWorkflowProcessDumper {
 
     public static final XmlOSWorkflowProcessDumper INSTANCE = new XmlOSWorkflowProcessDumper();
-    
+    private final static String EOL = System.getProperty( "line.separator" );
     private XmlOSWorkflowProcessDumper() {
         super(
             "OSWorkflow",
@@ -14,5 +26,25 @@
             new OSWorkflowSemanticModule()
         );
     }
+    @Override
+    protected void visitHeader(WorkflowProcess process, StringBuffer xmlDump, boolean includeMeta) {
+        xmlDump.append("  <header>" + EOL);
+        visitInitialActions(((OSWorkflowProcess) process).getInitialActions(), xmlDump);
+        
+        xmlDump.append("  </header>" + EOL + EOL);
+    }
+    private void visitInitialActions(Collection<ActionDescriptor> initialActions, StringBuffer xmlDump) {
+        if (initialActions != null && initialActions.size() > 0) {
+            xmlDump.append("<initial-actions>" + EOL);
+            for (ActionDescriptor action: initialActions) {
+            	StringWriter stringWriter = new StringWriter();
+            	PrintWriter writer = new PrintWriter(stringWriter);
+                action.writeXML(writer, 3);
+                writer.close();
+                xmlDump.append(stringWriter.toString());
+            }
+            xmlDump.append("    </initial-actions>" + EOL);
+        }
+    }
     
 }

Modified: labs/jbossrules/trunk/drools-process/drools-osworkflow/src/main/resources/META-INF/OSWorkflowSemanticModule.conf
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-osworkflow/src/main/resources/META-INF/OSWorkflowSemanticModule.conf	2009-01-30 15:07:28 UTC (rev 25022)
+++ labs/jbossrules/trunk/drools-process/drools-osworkflow/src/main/resources/META-INF/OSWorkflowSemanticModule.conf	2009-01-30 15:27:43 UTC (rev 25023)
@@ -11,6 +11,7 @@
 timer=org.drools.xml.processes.TimerNodeHandler
 composite=org.drools.xml.processes.CompositeNodeHandler
 step=org.drools.osworkflow.xml.StepNodeHandler
+initial-actions=org.drools.osworkflow.xml.InitialActionsHandler
 connection=org.drools.xml.processes.ConnectionHandler
 import=org.drools.xml.processes.ImportHandler
 global=org.drools.xml.processes.GlobalHandler

Copied: labs/jbossrules/trunk/drools-process/drools-osworkflow/src/main/resources/META-INF/orm.xml (from rev 24981, labs/jbossrules/branches/mfossati/drools-osworkflow/src/main/resources/META-INF/orm.xml)
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-osworkflow/src/main/resources/META-INF/orm.xml	                        (rev 0)
+++ labs/jbossrules/trunk/drools-process/drools-osworkflow/src/main/resources/META-INF/orm.xml	2009-01-30 15:27:43 UTC (rev 25023)
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<entity-mappings xmlns="http://java.sun.com/xml/ns/persistence/orm"
+               xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+               xsi:schemaLocation="http://java.sun.com/xml/ns/persistence/orm orm_1_0.xsd"
+               version="1.0">  
+      <named-query name="ProcessInstancesWaitingForEvent">
+          <query>
+select 
+    processInstanceInfo.processInstanceId
+from 
+    ProcessInstanceInfo processInstanceInfo
+where
+    :type in elements(processInstanceInfo.eventTypes)
+          </query>
+      </named-query>
+</entity-mappings>

Copied: labs/jbossrules/trunk/drools-process/drools-osworkflow/src/main/resources/META-INF/persistence.xml (from rev 24981, labs/jbossrules/branches/mfossati/drools-osworkflow/src/main/resources/META-INF/persistence.xml)
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-osworkflow/src/main/resources/META-INF/persistence.xml	                        (rev 0)
+++ labs/jbossrules/trunk/drools-process/drools-osworkflow/src/main/resources/META-INF/persistence.xml	2009-01-30 15:27:43 UTC (rev 25023)
@@ -0,0 +1,46 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<persistence
+    version="1.0"
+    xsi:schemaLocation=
+    	"http://java.sun.com/xml/ns/persistence
+    	 http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd
+		 http://java.sun.com/xml/ns/persistence/orm 
+		 http://java.sun.com/xml/ns/persistence/orm_1_0.xsd"
+    xmlns:orm="http://java.sun.com/xml/ns/persistence/orm"
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xmlns="http://java.sun.com/xml/ns/persistence">
+
+ <!--persistence-unit name="ProcessService">
+  <jta-data-source>java:/DefaultDS</jta-data-source>
+  <properties>
+   <property name="hibernate.hbm2ddl.auto" value="create-drop"/>
+  </properties>
+ </persistence-unit-->
+ 
+    <persistence-unit name="org.drools.persistence.jpa">
+        <provider>org.hibernate.ejb.HibernatePersistence</provider>
+        <class>org.drools.persistence.jpa.ByteArrayObject</class>
+        <class>org.drools.persistence.processinstance.ProcessInstanceInfo</class>
+        <class>org.drools.persistence.processinstance.ProcessInstanceEventInfo</class>
+        <class>org.drools.persistence.processinstance.WorkItemInfo</class>
+
+	    <properties>
+	        <property name="hibernate.dialect" value="org.hibernate.dialect.H2Dialect"/>
+	        <property name="hibernate.connection.driver_class" value="org.h2.Driver"/>	        
+	        <property name="hibernate.connection.url" value="jdbc:h2:~/test" />
+	        <!--property name="hibernate.connection.url" value="jdbc:h2:file:/home/kverlaen/NotBackedUp/development/drools/drools-process/drools-process-enterprise/bin/mydb" /-->
+	        
+<!--			<property name="hibernate.dialect" value="org.hibernate.dialect.PostgreSQLDialect"/>-->
+<!--	        <property name="hibernate.connection.driver_class" value="org.postgresql.Driver"/>	  	        -->
+<!--	        <property name="hibernate.connection.url" value="jdbc:postgresql://localhost/postgres"/>-->
+	        
+	        <property name="hibernate.connection.username" value="sa"/>
+	        <property name="hibernate.connection.password" value=""/>	
+	        <property name="hibernate.connection.autocommit" value="false" /> 	               
+	        <property name="hibernate.max_fetch_depth" value="3"/>
+		    <property name="hibernate.hbm2ddl.auto" value="update" />
+            <property name="hibernate.show_sql" value="true" />		    
+	    </properties>        
+    </persistence-unit>
+    
+</persistence>
\ No newline at end of file

Deleted: labs/jbossrules/trunk/drools-process/drools-osworkflow/src/test/java/org/drools/Simple2ProcessTest.java
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-osworkflow/src/test/java/org/drools/Simple2ProcessTest.java	2009-01-30 15:07:28 UTC (rev 25022)
+++ labs/jbossrules/trunk/drools-process/drools-osworkflow/src/test/java/org/drools/Simple2ProcessTest.java	2009-01-30 15:27:43 UTC (rev 25023)
@@ -1,126 +0,0 @@
-package org.drools;
-
-import java.io.StringReader;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.List;
-
-import junit.framework.TestCase;
-
-import org.drools.osworkflow.DroolsWorkflow;
-import org.drools.osworkflow.OSWorkflowParser;
-import org.drools.osworkflow.core.OSWorkflowProcess;
-import org.drools.osworkflow.xml.OSWorkflowSemanticModule;
-import org.drools.osworkflow.xml.XmlOSWorkflowProcessDumper;
-import org.drools.xml.SemanticModules;
-import org.drools.xml.XmlProcessReader;
-
-import com.opensymphony.workflow.InvalidInputException;
-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;
-import com.opensymphony.workflow.spi.WorkflowEntry;
-
-public class Simple2ProcessTest extends TestCase {
-	
-	public void testSimpleProcess() {
-		Workflow workflow = new DroolsWorkflow();
-		DefaultConfiguration config = new DefaultConfiguration();
-		workflow.setConfiguration(config);
-		try {
-			long workflowId = workflow.initialize("simple2", 1, null);
-			
-			Collection<Step> currentSteps = workflow.getCurrentSteps(workflowId);
-			//verify we only have one current step
-			assertEquals("Unexpected number of current steps", 1, currentSteps.size());
-			//verify it's step 1
-			Step currentStep = currentSteps.iterator().next();
-			assertEquals("Unexpected current step", 1, currentStep.getStepId());
-
-			int[] availableActions = workflow.getAvailableActions(workflowId, Collections.EMPTY_MAP);
-			//verify we only have one available action
-			assertEquals("Unexpected number of available actions", 1, availableActions.length);
-			//verify it's action 2
-			assertEquals("Unexpected available action", 2, availableActions[0]);
-			
-			workflow.doAction(workflowId, 2, null);
-			
-			currentSteps = workflow.getCurrentSteps(workflowId);
-            //verify we have two current steps
-            assertEquals("Unexpected number of current steps", 2, currentSteps.size());
-            //verify it's step 2 and 3
-            List<Integer> currentStepIds = new ArrayList<Integer>();
-            for (Step step: currentSteps) {
-                currentStepIds.add((int) step.getId());
-            }
-            assertTrue("Current step 2 not found", currentStepIds.contains(2));
-            assertTrue("Current step 3 not found", currentStepIds.contains(3));
-            
-			availableActions = workflow.getAvailableActions(workflowId, Collections.EMPTY_MAP);
-			//verify we have two available actions
-			assertEquals("Unexpected number of available actions", 2, availableActions.length);
-			//verify it's action 3 and 4
-			List<Integer> availableActionIds = new ArrayList<Integer>();
-            for (int availableAction: availableActions) {
-                availableActionIds.add(availableAction);
-            }
-			assertTrue("Available action 3 not found", availableActionIds.contains(3));
-            assertTrue("Available action 4 not found", availableActionIds.contains(4));
-			
-			workflow.doAction(workflowId, 3, null);
-			
-			currentSteps = workflow.getCurrentSteps(workflowId);
-            //verify we only have one current step
-            assertEquals("Unexpected number of current steps", 1, currentSteps.size());
-            //verify it's step 3
-            currentStep = currentSteps.iterator().next();
-            assertEquals("Unexpected current step", 3, currentStep.getStepId());
-            
-            availableActions = workflow.getAvailableActions(workflowId, Collections.EMPTY_MAP);
-            //verify we only have one available action
-            assertEquals("Unexpected number of available actions", 1, availableActions.length);
-            //verify it's action 4
-            assertEquals("Unexpected available action", 4, availableActions[0]);
-            
-            workflow.doAction(workflowId, 4, null);
-            
-            currentSteps = workflow.getCurrentSteps(workflowId);
-            //verify we only have no more current steps
-            assertEquals("Unexpected number of current steps", 0, currentSteps.size());
-            //verify process completed
-            assertEquals("Unexpected state", WorkflowEntry.COMPLETED, workflow.getEntryState(workflowId));
-
-            availableActions = workflow.getAvailableActions(workflowId, Collections.EMPTY_MAP);
-            //verify we only have no available action
-            assertEquals("Unexpected number of available actions", 0, availableActions.length);
-			
-		} catch (InvalidInputException e) {
-            e.printStackTrace();
-            fail(e.getMessage());
-        } catch (WorkflowException e) {
-            e.printStackTrace();
-            fail(e.getMessage());
-        }
-	}
-
-    public void testToXML() throws Exception {
-        DefaultConfiguration config = new DefaultConfiguration();
-        config.load(null);
-        WorkflowDescriptor workflowDescriptor = config.getWorkflow("simple2");
-        OSWorkflowProcess process = new OSWorkflowParser().parseOSWorkflow(workflowDescriptor);
-        
-        String processXML = XmlOSWorkflowProcessDumper.INSTANCE.dump(process);
-        System.out.println(processXML);
-        
-        SemanticModules semanticModules = new SemanticModules();
-        semanticModules.addSemanticModule(new OSWorkflowSemanticModule());
-        XmlProcessReader reader = new XmlProcessReader(semanticModules);
-        System.setProperty( "drools.schema.validating", "false" );
-        OSWorkflowProcess process2 = (OSWorkflowProcess) reader.read(new StringReader(processXML));
-        assertNotNull(process2);
-    }
-
-}

Deleted: labs/jbossrules/trunk/drools-process/drools-osworkflow/src/test/java/org/drools/SimpleProcessTest.java
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-osworkflow/src/test/java/org/drools/SimpleProcessTest.java	2009-01-30 15:07:28 UTC (rev 25022)
+++ labs/jbossrules/trunk/drools-process/drools-osworkflow/src/test/java/org/drools/SimpleProcessTest.java	2009-01-30 15:27:43 UTC (rev 25023)
@@ -1,97 +0,0 @@
-package org.drools;
-
-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.OSWorkflowSemanticModule;
-import org.drools.osworkflow.xml.XmlOSWorkflowProcessDumper;
-import org.drools.xml.SemanticModules;
-import org.drools.xml.XmlProcessReader;
-
-import com.opensymphony.workflow.InvalidInputException;
-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;
-import com.opensymphony.workflow.spi.WorkflowEntry;
-
-public class SimpleProcessTest extends TestCase {
-	
-	public void testSimpleProcess() {
-		Workflow workflow = new DroolsWorkflow();
-		DefaultConfiguration config = new DefaultConfiguration();
-		workflow.setConfiguration(config);
-		try {
-		    long workflowId = workflow.initialize("simple", 1, null);
-			
-			Collection<Step> currentSteps = workflow.getCurrentSteps(workflowId);
-            //verify we only have one current step
-            assertEquals("Unexpected number of current steps", 1, currentSteps.size());
-            //verify it's step 1
-            Step currentStep = currentSteps.iterator().next();
-            assertEquals("Unexpected current step", 1, currentStep.getStepId());
-
-            int[] availableActions = workflow.getAvailableActions(workflowId, Collections.EMPTY_MAP);
-            //verify we only have one available action
-            assertEquals("Unexpected number of available actions", 1, availableActions.length);
-            //verify it's action 2
-            assertEquals("Unexpected available action", 2, availableActions[0]);
-            
-            workflow.doAction(workflowId, 2, null);
-            currentSteps = workflow.getCurrentSteps(workflowId);
-            //verify we only have one current step
-            assertEquals("Unexpected number of current steps", 1, currentSteps.size());
-            //verify it's step 1
-            currentStep = currentSteps.iterator().next();
-            assertEquals("Unexpected current step", 1, currentStep.getStepId());
-            
-            availableActions = workflow.getAvailableActions(workflowId, Collections.EMPTY_MAP);
-            //verify we only have one available action
-            assertEquals("Unexpected number of available actions", 1, availableActions.length);
-            //verify it's action 3
-            assertEquals("Unexpected available action", 3, availableActions[0]);
-            
-            workflow.doAction(workflowId, 3, null);
-            currentSteps = workflow.getCurrentSteps(workflowId);
-            //verify we only have no more current steps
-            assertEquals("Unexpected number of current steps", 0, currentSteps.size());
-            //verify process completed
-            assertEquals("Unexpected state", WorkflowEntry.COMPLETED, workflow.getEntryState(workflowId));
-
-            availableActions = workflow.getAvailableActions(workflowId, Collections.EMPTY_MAP);
-            //verify we only have no available action
-            assertEquals("Unexpected number of available actions", 0, availableActions.length);
-		} catch (InvalidInputException e) {
-			e.printStackTrace();
-			fail(e.getMessage());
-		} catch (WorkflowException e) {
-            e.printStackTrace();
-            fail(e.getMessage());
-        }
-	}
-	
-	public void testToXML() throws Exception {
-        DefaultConfiguration config = new DefaultConfiguration();
-        config.load(null);
-        WorkflowDescriptor workflowDescriptor = config.getWorkflow("simple");
-	    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);
-	}
-
-}

Copied: labs/jbossrules/trunk/drools-process/drools-osworkflow/src/test/java/org/drools/osworkflow (from rev 24981, labs/jbossrules/branches/mfossati/drools-osworkflow/src/test/java/org/drools/osworkflow)

Copied: labs/jbossrules/trunk/drools-process/drools-osworkflow/src/test/java/org/drools/osworkflow/composite (from rev 24981, labs/jbossrules/branches/mfossati/drools-osworkflow/src/test/java/org/drools/osworkflow/composite)

Deleted: labs/jbossrules/trunk/drools-process/drools-osworkflow/src/test/java/org/drools/osworkflow/composite/CompositeWorkflow.java
===================================================================
--- labs/jbossrules/branches/mfossati/drools-osworkflow/src/test/java/org/drools/osworkflow/composite/CompositeWorkflow.java	2009-01-28 17:47:14 UTC (rev 24981)
+++ labs/jbossrules/trunk/drools-process/drools-osworkflow/src/test/java/org/drools/osworkflow/composite/CompositeWorkflow.java	2009-01-30 15:27:43 UTC (rev 25023)
@@ -1,210 +0,0 @@
-package org.drools.osworkflow.composite;
-
-import java.util.List;
-import java.util.Map;
-
-import junit.framework.Assert;
-
-import org.drools.osworkflow.DroolsWorkflow;
-import org.drools.util.ArrayUtils;
-
-import com.opensymphony.module.propertyset.PropertySet;
-import com.opensymphony.workflow.FactoryException;
-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.basic.BasicWorkflow;
-import com.opensymphony.workflow.config.Configuration;
-import com.opensymphony.workflow.loader.WorkflowDescriptor;
-import com.opensymphony.workflow.query.WorkflowExpressionQuery;
-import com.opensymphony.workflow.query.WorkflowQuery;
-
-/**
- * Composite class that includes one instance of OSWorkflows and one of
- * DroolsWorkflow. It delegates all its behaviour in both instances, making
- * assertions over the results.
- * 
- * @author Miguel Fossati
- * 
- */
-public class CompositeWorkflow implements Workflow {
-
-	private Workflow osWorkflow;
-	private Workflow droolsWorkflow;
-
-	public CompositeWorkflow() {
-		this.osWorkflow = new BasicWorkflow("test");
-		this.droolsWorkflow = new DroolsWorkflow();
-	}
-
-	// public CompositeWorkflow(Workflow osWorkFlowinstance , Workflow
-	// droolsWorkflowInstance) {
-	// this.osWorkflow = osWorkFlowinstance;
-	// this.droolsWorkflow = droolsWorkflowInstance;
-	// }
-
-	public boolean canInitialize(String workflowName, int initialStep) {
-		boolean aux1 = this.osWorkflow.canInitialize(workflowName, initialStep);
-		boolean aux2 = this.droolsWorkflow.canInitialize(workflowName,
-				initialStep);
-		Assert.assertEquals(aux1, aux2);
-		return (aux1);
-	}
-
-	public boolean canInitialize(String workflowName, int initialAction,
-			Map inputs) {
-		boolean aux1 = this.osWorkflow.canInitialize(workflowName,
-				initialAction, inputs);
-		boolean aux2 = this.droolsWorkflow.canInitialize(workflowName,
-				initialAction, inputs);
-		Assert.assertEquals(aux1, aux2);
-		return (aux1);
-	}
-
-	public boolean canModifyEntryState(long id, int newState) {
-		boolean aux1 = this.osWorkflow.canModifyEntryState(id, newState);
-		boolean aux2 = this.droolsWorkflow.canModifyEntryState(id, newState);
-		Assert.assertEquals(aux1, aux2);
-		return (aux1);
-	}
-
-	public void changeEntryState(long id, int newState)
-			throws WorkflowException {
-		this.osWorkflow.changeEntryState(id, newState);
-		this.droolsWorkflow.changeEntryState(id, newState);
-
-	}
-
-	public void doAction(long id, int actionId, Map inputs)
-			throws InvalidInputException, WorkflowException {
-		this.osWorkflow.doAction(id, actionId, inputs);
-		this.droolsWorkflow.doAction(id, actionId, inputs);
-
-	}
-
-	public void executeTriggerFunction(long id, int triggerId)
-			throws WorkflowException {
-		this.osWorkflow.changeEntryState(id, triggerId);
-		this.droolsWorkflow.changeEntryState(id, triggerId);
-
-	}
-
-	public int[] getAvailableActions(long id) {
-		return this.getAvailableActions(id, null);
-	}
-
-	public int[] getAvailableActions(long id, Map inputs) {
-		int[] aux1 = this.osWorkflow.getAvailableActions(id, inputs);
-		int[] aux2 = this.droolsWorkflow.getAvailableActions(id, inputs);
-//		Assert.assertTrue(ArrayUtils.equals(aux1, aux2));
-		return aux1;
-	}
-
-	public List getCurrentSteps(long id) {
-		List aux1 = this.osWorkflow.getCurrentSteps(id);
-		List aux2 = this.droolsWorkflow.getCurrentSteps(id);
-		// TODO add assertion
-		return aux1;
-	}
-
-	public int getEntryState(long id) {
-		int aux1 = this.osWorkflow.getEntryState(id);
-		int aux2 = this.droolsWorkflow.getEntryState(id);
-		Assert.assertEquals(aux1, aux2);
-		return aux1;
-	}
-
-	public List getHistorySteps(long id) {
-		List aux1 = this.osWorkflow.getHistorySteps(id);
-		List aux2 = this.droolsWorkflow.getHistorySteps(id);
-		// TODO add assertion
-		return aux1;
-	}
-
-	public PropertySet getPropertySet(long id) {
-		PropertySet aux1 = this.osWorkflow.getPropertySet(id);
-		PropertySet aux2 = this.droolsWorkflow.getPropertySet(id);
-		// TODO add assertion
-		return aux1;
-	}
-
-	public List getSecurityPermissions(long id) {
-		return this.getSecurityPermissions(id, null);
-	}
-
-	public List getSecurityPermissions(long id, Map inputs) {
-		List aux1 = this.osWorkflow.getSecurityPermissions(id, inputs);
-		List aux2 = this.droolsWorkflow.getSecurityPermissions(id, inputs);
-		// TODO add assertion
-		return aux1;
-	}
-
-	public WorkflowDescriptor getWorkflowDescriptor(String workflowName) {
-		WorkflowDescriptor wf = this.osWorkflow
-				.getWorkflowDescriptor(workflowName);
-		return wf;
-	}
-
-	public String getWorkflowName(long id) {
-		String wfName = this.osWorkflow.getWorkflowName(id);
-		return wfName;
-	}
-
-	public String[] getWorkflowNames() {
-		String[] wfName = this.osWorkflow.getWorkflowNames();
-		return wfName;
-	}
-
-	public long initialize(String workflowName, int initialAction, Map inputs)
-			throws InvalidRoleException, InvalidInputException,
-			WorkflowException, InvalidEntryStateException,
-			InvalidActionException {
-		long id1 = this.osWorkflow.initialize(workflowName, initialAction,
-				inputs);
-		long id2 = this.droolsWorkflow.initialize(workflowName, initialAction,
-				inputs);
-		Assert.assertEquals(id1, id2);
-		return id1;
-	}
-
-	public List query(WorkflowQuery query) throws WorkflowException {
-		List l1 = this.osWorkflow.query(query);
-		List l2 = this.droolsWorkflow.query(query);
-		return l1;
-	}
-
-	public List query(WorkflowExpressionQuery query) throws WorkflowException {
-		List l1 = this.osWorkflow.query(query);
-		List l2 = this.droolsWorkflow.query(query);
-		return l1;
-	}
-
-	public boolean removeWorkflowDescriptor(String workflowName)
-			throws FactoryException {
-		boolean bool1 = this.osWorkflow.removeWorkflowDescriptor(workflowName);
-		boolean bool2 = this.droolsWorkflow
-				.removeWorkflowDescriptor(workflowName);
-		Assert.assertEquals(bool1, bool2);
-		return false;
-	}
-
-	public boolean saveWorkflowDescriptor(String workflowName,
-			WorkflowDescriptor descriptor, boolean replace)
-			throws FactoryException {
-		boolean bool1 = this.osWorkflow.saveWorkflowDescriptor(workflowName,
-				descriptor, replace);
-		boolean bool2 = this.droolsWorkflow.saveWorkflowDescriptor(
-				workflowName, descriptor, replace);
-		Assert.assertEquals(bool1, bool2);
-		return false;
-	}
-
-	public void setConfiguration(Configuration configuration) {
-		this.osWorkflow.setConfiguration(configuration);
-		this.droolsWorkflow.setConfiguration(configuration);
-	}
-
-}

Copied: labs/jbossrules/trunk/drools-process/drools-osworkflow/src/test/java/org/drools/osworkflow/composite/CompositeWorkflow.java (from rev 24981, labs/jbossrules/branches/mfossati/drools-osworkflow/src/test/java/org/drools/osworkflow/composite/CompositeWorkflow.java)
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-osworkflow/src/test/java/org/drools/osworkflow/composite/CompositeWorkflow.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-process/drools-osworkflow/src/test/java/org/drools/osworkflow/composite/CompositeWorkflow.java	2009-01-30 15:27:43 UTC (rev 25023)
@@ -0,0 +1,210 @@
+package org.drools.osworkflow.composite;
+
+import java.util.List;
+import java.util.Map;
+
+import junit.framework.Assert;
+
+import org.drools.osworkflow.DroolsWorkflow;
+import org.drools.util.ArrayUtils;
+
+import com.opensymphony.module.propertyset.PropertySet;
+import com.opensymphony.workflow.FactoryException;
+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.basic.BasicWorkflow;
+import com.opensymphony.workflow.config.Configuration;
+import com.opensymphony.workflow.loader.WorkflowDescriptor;
+import com.opensymphony.workflow.query.WorkflowExpressionQuery;
+import com.opensymphony.workflow.query.WorkflowQuery;
+
+/**
+ * Composite class that includes one instance of OSWorkflows and one of
+ * DroolsWorkflow. It delegates all its behaviour in both instances, making
+ * assertions over the results.
+ * 
+ * @author Miguel Fossati
+ * 
+ */
+public class CompositeWorkflow implements Workflow {
+
+	private Workflow osWorkflow;
+	private Workflow droolsWorkflow;
+
+	public CompositeWorkflow() {
+		this.osWorkflow = new BasicWorkflow("test");
+		this.droolsWorkflow = new DroolsWorkflow();
+	}
+
+	// public CompositeWorkflow(Workflow osWorkFlowinstance , Workflow
+	// droolsWorkflowInstance) {
+	// this.osWorkflow = osWorkFlowinstance;
+	// this.droolsWorkflow = droolsWorkflowInstance;
+	// }
+
+	public boolean canInitialize(String workflowName, int initialStep) {
+		boolean aux1 = this.osWorkflow.canInitialize(workflowName, initialStep);
+		boolean aux2 = this.droolsWorkflow.canInitialize(workflowName,
+				initialStep);
+		Assert.assertEquals(aux1, aux2);
+		return (aux1);
+	}
+
+	public boolean canInitialize(String workflowName, int initialAction,
+			Map inputs) {
+		boolean aux1 = this.osWorkflow.canInitialize(workflowName,
+				initialAction, inputs);
+		boolean aux2 = this.droolsWorkflow.canInitialize(workflowName,
+				initialAction, inputs);
+		Assert.assertEquals(aux1, aux2);
+		return (aux1);
+	}
+
+	public boolean canModifyEntryState(long id, int newState) {
+		boolean aux1 = this.osWorkflow.canModifyEntryState(id, newState);
+		boolean aux2 = this.droolsWorkflow.canModifyEntryState(id, newState);
+		Assert.assertEquals(aux1, aux2);
+		return (aux1);
+	}
+
+	public void changeEntryState(long id, int newState)
+			throws WorkflowException {
+		this.osWorkflow.changeEntryState(id, newState);
+		this.droolsWorkflow.changeEntryState(id, newState);
+
+	}
+
+	public void doAction(long id, int actionId, Map inputs)
+			throws InvalidInputException, WorkflowException {
+		this.osWorkflow.doAction(id, actionId, inputs);
+		this.droolsWorkflow.doAction(id, actionId, inputs);
+
+	}
+
+	public void executeTriggerFunction(long id, int triggerId)
+			throws WorkflowException {
+		this.osWorkflow.changeEntryState(id, triggerId);
+		this.droolsWorkflow.changeEntryState(id, triggerId);
+
+	}
+
+	public int[] getAvailableActions(long id) {
+		return this.getAvailableActions(id, null);
+	}
+
+	public int[] getAvailableActions(long id, Map inputs) {
+		int[] aux1 = this.osWorkflow.getAvailableActions(id, inputs);
+		int[] aux2 = this.droolsWorkflow.getAvailableActions(id, inputs);
+//		Assert.assertTrue(ArrayUtils.equals(aux1, aux2));
+		return aux1;
+	}
+
+	public List getCurrentSteps(long id) {
+		List aux1 = this.osWorkflow.getCurrentSteps(id);
+		List aux2 = this.droolsWorkflow.getCurrentSteps(id);
+		// TODO add assertion
+		return aux1;
+	}
+
+	public int getEntryState(long id) {
+		int aux1 = this.osWorkflow.getEntryState(id);
+		int aux2 = this.droolsWorkflow.getEntryState(id);
+		Assert.assertEquals(aux1, aux2);
+		return aux1;
+	}
+
+	public List getHistorySteps(long id) {
+		List aux1 = this.osWorkflow.getHistorySteps(id);
+		List aux2 = this.droolsWorkflow.getHistorySteps(id);
+		// TODO add assertion
+		return aux1;
+	}
+
+	public PropertySet getPropertySet(long id) {
+		PropertySet aux1 = this.osWorkflow.getPropertySet(id);
+		PropertySet aux2 = this.droolsWorkflow.getPropertySet(id);
+		// TODO add assertion
+		return aux1;
+	}
+
+	public List getSecurityPermissions(long id) {
+		return this.getSecurityPermissions(id, null);
+	}
+
+	public List getSecurityPermissions(long id, Map inputs) {
+		List aux1 = this.osWorkflow.getSecurityPermissions(id, inputs);
+		List aux2 = this.droolsWorkflow.getSecurityPermissions(id, inputs);
+		// TODO add assertion
+		return aux1;
+	}
+
+	public WorkflowDescriptor getWorkflowDescriptor(String workflowName) {
+		WorkflowDescriptor wf = this.osWorkflow
+				.getWorkflowDescriptor(workflowName);
+		return wf;
+	}
+
+	public String getWorkflowName(long id) {
+		String wfName = this.osWorkflow.getWorkflowName(id);
+		return wfName;
+	}
+
+	public String[] getWorkflowNames() {
+		String[] wfName = this.osWorkflow.getWorkflowNames();
+		return wfName;
+	}
+
+	public long initialize(String workflowName, int initialAction, Map inputs)
+			throws InvalidRoleException, InvalidInputException,
+			WorkflowException, InvalidEntryStateException,
+			InvalidActionException {
+		long id1 = this.osWorkflow.initialize(workflowName, initialAction,
+				inputs);
+		long id2 = this.droolsWorkflow.initialize(workflowName, initialAction,
+				inputs);
+		Assert.assertEquals(id1, id2);
+		return id1;
+	}
+
+	public List query(WorkflowQuery query) throws WorkflowException {
+		List l1 = this.osWorkflow.query(query);
+		List l2 = this.droolsWorkflow.query(query);
+		return l1;
+	}
+
+	public List query(WorkflowExpressionQuery query) throws WorkflowException {
+		List l1 = this.osWorkflow.query(query);
+		List l2 = this.droolsWorkflow.query(query);
+		return l1;
+	}
+
+	public boolean removeWorkflowDescriptor(String workflowName)
+			throws FactoryException {
+		boolean bool1 = this.osWorkflow.removeWorkflowDescriptor(workflowName);
+		boolean bool2 = this.droolsWorkflow
+				.removeWorkflowDescriptor(workflowName);
+		Assert.assertEquals(bool1, bool2);
+		return false;
+	}
+
+	public boolean saveWorkflowDescriptor(String workflowName,
+			WorkflowDescriptor descriptor, boolean replace)
+			throws FactoryException {
+		boolean bool1 = this.osWorkflow.saveWorkflowDescriptor(workflowName,
+				descriptor, replace);
+		boolean bool2 = this.droolsWorkflow.saveWorkflowDescriptor(
+				workflowName, descriptor, replace);
+		Assert.assertEquals(bool1, bool2);
+		return false;
+	}
+
+	public void setConfiguration(Configuration configuration) {
+		this.osWorkflow.setConfiguration(configuration);
+		this.droolsWorkflow.setConfiguration(configuration);
+	}
+
+}

Copied: labs/jbossrules/trunk/drools-process/drools-osworkflow/src/test/java/org/drools/osworkflow/dummy (from rev 24981, labs/jbossrules/branches/mfossati/drools-osworkflow/src/test/java/org/drools/osworkflow/dummy)

Deleted: labs/jbossrules/trunk/drools-process/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	2009-01-28 17:47:14 UTC (rev 24981)
+++ labs/jbossrules/trunk/drools-process/drools-osworkflow/src/test/java/org/drools/osworkflow/dummy/AutomaticReleaseFunctionProvider.java	2009-01-30 15:27:43 UTC (rev 25023)
@@ -1,29 +0,0 @@
-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);
-		
-
-	}
-
-}

Copied: labs/jbossrules/trunk/drools-process/drools-osworkflow/src/test/java/org/drools/osworkflow/dummy/AutomaticReleaseFunctionProvider.java (from rev 24981, labs/jbossrules/branches/mfossati/drools-osworkflow/src/test/java/org/drools/osworkflow/dummy/AutomaticReleaseFunctionProvider.java)
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-osworkflow/src/test/java/org/drools/osworkflow/dummy/AutomaticReleaseFunctionProvider.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-process/drools-osworkflow/src/test/java/org/drools/osworkflow/dummy/AutomaticReleaseFunctionProvider.java	2009-01-30 15:27:43 UTC (rev 25023)
@@ -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);
+		
+
+	}
+
+}

Deleted: labs/jbossrules/trunk/drools-process/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	2009-01-28 17:47:14 UTC (rev 24981)
+++ labs/jbossrules/trunk/drools-process/drools-osworkflow/src/test/java/org/drools/osworkflow/dummy/CallerPrincipalCondition.java	2009-01-30 15:27:43 UTC (rev 25023)
@@ -1,17 +0,0 @@
-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;
-	}
-
-}

Copied: labs/jbossrules/trunk/drools-process/drools-osworkflow/src/test/java/org/drools/osworkflow/dummy/CallerPrincipalCondition.java (from rev 24981, labs/jbossrules/branches/mfossati/drools-osworkflow/src/test/java/org/drools/osworkflow/dummy/CallerPrincipalCondition.java)
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-osworkflow/src/test/java/org/drools/osworkflow/dummy/CallerPrincipalCondition.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-process/drools-osworkflow/src/test/java/org/drools/osworkflow/dummy/CallerPrincipalCondition.java	2009-01-30 15:27:43 UTC (rev 25023)
@@ -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;
+	}
+
+}

Deleted: labs/jbossrules/trunk/drools-process/drools-osworkflow/src/test/java/org/drools/osworkflow/dummy/DummyCondition.java
===================================================================
--- labs/jbossrules/branches/mfossati/drools-osworkflow/src/test/java/org/drools/osworkflow/dummy/DummyCondition.java	2009-01-28 17:47:14 UTC (rev 24981)
+++ labs/jbossrules/trunk/drools-process/drools-osworkflow/src/test/java/org/drools/osworkflow/dummy/DummyCondition.java	2009-01-30 15:27:43 UTC (rev 25023)
@@ -1,28 +0,0 @@
-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.Condition;
-
-/**
- * Dummy Condition for testing purposes only
- * 
- * @author mfossati
- *
- */
-public class DummyCondition implements Condition {
-
-	private Log logger = LogFactory.getLog(DummyCondition.class);
-	
-	public boolean passesCondition(Map arg0, Map arg1, PropertySet arg2) {
-		String name = (String)arg0.get("name");
-		String message = (String)arg0.get("message");
-		logger.info("Condition" +name+ "called with message: " + message);
-		return true;
-	}
-
-}

Copied: labs/jbossrules/trunk/drools-process/drools-osworkflow/src/test/java/org/drools/osworkflow/dummy/DummyCondition.java (from rev 24981, labs/jbossrules/branches/mfossati/drools-osworkflow/src/test/java/org/drools/osworkflow/dummy/DummyCondition.java)
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-osworkflow/src/test/java/org/drools/osworkflow/dummy/DummyCondition.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-process/drools-osworkflow/src/test/java/org/drools/osworkflow/dummy/DummyCondition.java	2009-01-30 15:27:43 UTC (rev 25023)
@@ -0,0 +1,28 @@
+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.Condition;
+
+/**
+ * Dummy Condition for testing purposes only
+ * 
+ * @author mfossati
+ *
+ */
+public class DummyCondition implements Condition {
+
+	private Log logger = LogFactory.getLog(DummyCondition.class);
+	
+	public boolean passesCondition(Map arg0, Map arg1, PropertySet arg2) {
+		String name = (String)arg0.get("name");
+		String message = (String)arg0.get("message");
+		logger.info("Condition" +name+ "called with message: " + message);
+		return true;
+	}
+
+}

Deleted: labs/jbossrules/trunk/drools-process/drools-osworkflow/src/test/java/org/drools/osworkflow/dummy/DummyFunctionProvider.java
===================================================================
--- labs/jbossrules/branches/mfossati/drools-osworkflow/src/test/java/org/drools/osworkflow/dummy/DummyFunctionProvider.java	2009-01-28 17:47:14 UTC (rev 24981)
+++ labs/jbossrules/trunk/drools-process/drools-osworkflow/src/test/java/org/drools/osworkflow/dummy/DummyFunctionProvider.java	2009-01-30 15:27:43 UTC (rev 25023)
@@ -1,31 +0,0 @@
-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;
-
-/**
- * FunctionProvider that does nothing but logging a custom message, just for testing purposes.
- * 
- * @param name: name of the function
- * @param message: message to log
- * 
- * @author mfossati
- *
- */
-public class DummyFunctionProvider implements FunctionProvider {
-	
-	private Log logger = LogFactory.getLog(DummyFunctionProvider.class);
-
-	public void execute(Map transientVars, Map args, PropertySet ps){
-		String name = (String)args.get("name");
-		String message = (String)args.get("message");
-		logger.info("Function " +name+ " called with message: " + message);
-		transientVars.put(message, "dummy" + message);
-	}
-
-}

Copied: labs/jbossrules/trunk/drools-process/drools-osworkflow/src/test/java/org/drools/osworkflow/dummy/DummyFunctionProvider.java (from rev 24981, labs/jbossrules/branches/mfossati/drools-osworkflow/src/test/java/org/drools/osworkflow/dummy/DummyFunctionProvider.java)
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-osworkflow/src/test/java/org/drools/osworkflow/dummy/DummyFunctionProvider.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-process/drools-osworkflow/src/test/java/org/drools/osworkflow/dummy/DummyFunctionProvider.java	2009-01-30 15:27:43 UTC (rev 25023)
@@ -0,0 +1,31 @@
+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;
+
+/**
+ * FunctionProvider that does nothing but logging a custom message, just for testing purposes.
+ * 
+ * @param name: name of the function
+ * @param message: message to log
+ * 
+ * @author mfossati
+ *
+ */
+public class DummyFunctionProvider implements FunctionProvider {
+	
+	private Log logger = LogFactory.getLog(DummyFunctionProvider.class);
+
+	public void execute(Map transientVars, Map args, PropertySet ps){
+		String name = (String)args.get("name");
+		String message = (String)args.get("message");
+		logger.info("Function " +name+ " called with message: " + message);
+		transientVars.put(message, "dummy" + message);
+	}
+
+}

Deleted: labs/jbossrules/trunk/drools-process/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	2009-01-28 17:47:14 UTC (rev 24981)
+++ labs/jbossrules/trunk/drools-process/drools-osworkflow/src/test/java/org/drools/osworkflow/dummy/ProcessEntity.java	2009-01-30 15:27:43 UTC (rev 25023)
@@ -1,28 +0,0 @@
-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;
-	}
-	
-}

Copied: labs/jbossrules/trunk/drools-process/drools-osworkflow/src/test/java/org/drools/osworkflow/dummy/ProcessEntity.java (from rev 24981, labs/jbossrules/branches/mfossati/drools-osworkflow/src/test/java/org/drools/osworkflow/dummy/ProcessEntity.java)
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-osworkflow/src/test/java/org/drools/osworkflow/dummy/ProcessEntity.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-process/drools-osworkflow/src/test/java/org/drools/osworkflow/dummy/ProcessEntity.java	2009-01-30 15:27:43 UTC (rev 25023)
@@ -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;
+	}
+	
+}

Copied: labs/jbossrules/trunk/drools-process/drools-osworkflow/src/test/java/org/drools/osworkflow/test (from rev 24981, labs/jbossrules/branches/mfossati/drools-osworkflow/src/test/java/org/drools/osworkflow/test)

Deleted: labs/jbossrules/trunk/drools-process/drools-osworkflow/src/test/java/org/drools/osworkflow/test/ComplexProcessTestCase.java
===================================================================
--- labs/jbossrules/branches/mfossati/drools-osworkflow/src/test/java/org/drools/osworkflow/test/ComplexProcessTestCase.java	2009-01-28 17:47:14 UTC (rev 24981)
+++ labs/jbossrules/trunk/drools-process/drools-osworkflow/src/test/java/org/drools/osworkflow/test/ComplexProcessTestCase.java	2009-01-30 15:27:43 UTC (rev 25023)
@@ -1,100 +0,0 @@
-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 ComplexProcessTestCase extends TestCase {
-
-	public void testComplexProcess() {
-		Workflow workflow = new DroolsWorkflow();
-		DefaultConfiguration config = new DefaultConfiguration();
-		workflow.setConfiguration(config);
-		try {
-			long id = workflow.initialize("entrevista", 1, null);
-			Collection<Step> currentSteps = workflow.getCurrentSteps(id);
-			// verify we only have one current step
-			assertEquals("Unexpected number of current steps", 1, currentSteps.size());
-			// verify it's step 1
-			Step currentStep = currentSteps.iterator().next();
-			assertEquals("Unexpected current step", 1, currentStep.getStepId());
-
-			int[] availableActions = workflow.getAvailableActions(id, Collections.EMPTY_MAP);
-			// verify we only have 6 available actions
-			assertEquals("Unexpected number of available actions", 6, availableActions.length);
-			workflow.doAction(id, 2, null);
-			currentSteps = workflow.getCurrentSteps(id);
-			// verify we have one current step
-			assertEquals("Unexpected number of current steps", 1, currentSteps.size());
-			// verify it's step 2
-			currentStep = currentSteps.iterator().next();
-			assertEquals("Unexpected current step", 2, currentStep.getStepId());
-
-			availableActions = workflow.getAvailableActions(id, Collections.EMPTY_MAP);
-			// verify we have 6 available action
-			assertEquals("Unexpected number of available actions", 6, availableActions.length);
-			// //verify it's action 3
-			// assertEquals("Unexpected available action", 3,
-			// availableActions[0]);
-			workflow.doAction(id, 6, null);
-			currentSteps = workflow.getCurrentSteps(id);
-			// verify we have no current Step (since we ended the process)
-			assertEquals("Unexpected number of current steps", 0, currentSteps.size());
-			// verify we have no available action
-			availableActions = workflow.getAvailableActions(id, Collections.EMPTY_MAP);
-			assertEquals("Unexpected number of available actions", 0, availableActions.length);
-
-		} catch (InvalidActionException e) {
-			// TODO Auto-generated catch block
-			e.printStackTrace();
-		} catch (InvalidRoleException e) {
-			// TODO Auto-generated catch block
-			e.printStackTrace();
-		} catch (InvalidInputException e) {
-			// TODO Auto-generated catch block
-			e.printStackTrace();
-		} catch (InvalidEntryStateException e) {
-			// TODO Auto-generated catch block
-			e.printStackTrace();
-		} catch (WorkflowException e) {
-			// TODO Auto-generated catch block
-			e.printStackTrace();
-		}
-	}
-
-	public void testToXML() throws Exception {
-        DefaultConfiguration config = new DefaultConfiguration();
-        config.load(null);
-        WorkflowDescriptor workflowDescriptor = config.getWorkflow("entrevista");
-	    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);
-	}
-	
-}

Copied: labs/jbossrules/trunk/drools-process/drools-osworkflow/src/test/java/org/drools/osworkflow/test/ComplexProcessTestCase.java (from rev 24981, labs/jbossrules/branches/mfossati/drools-osworkflow/src/test/java/org/drools/osworkflow/test/ComplexProcessTestCase.java)
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-osworkflow/src/test/java/org/drools/osworkflow/test/ComplexProcessTestCase.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-process/drools-osworkflow/src/test/java/org/drools/osworkflow/test/ComplexProcessTestCase.java	2009-01-30 15:27:43 UTC (rev 25023)
@@ -0,0 +1,100 @@
+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 ComplexProcessTestCase extends TestCase {
+
+	public void testComplexProcess() {
+		Workflow workflow = new DroolsWorkflow();
+		DefaultConfiguration config = new DefaultConfiguration();
+		workflow.setConfiguration(config);
+		try {
+			long id = workflow.initialize("entrevista", 1, null);
+			Collection<Step> currentSteps = workflow.getCurrentSteps(id);
+			// verify we only have one current step
+			assertEquals("Unexpected number of current steps", 1, currentSteps.size());
+			// verify it's step 1
+			Step currentStep = currentSteps.iterator().next();
+			assertEquals("Unexpected current step", 1, currentStep.getStepId());
+
+			int[] availableActions = workflow.getAvailableActions(id, Collections.EMPTY_MAP);
+			// verify we only have 6 available actions
+			assertEquals("Unexpected number of available actions", 6, availableActions.length);
+			workflow.doAction(id, 2, null);
+			currentSteps = workflow.getCurrentSteps(id);
+			// verify we have one current step
+			assertEquals("Unexpected number of current steps", 1, currentSteps.size());
+			// verify it's step 2
+			currentStep = currentSteps.iterator().next();
+			assertEquals("Unexpected current step", 2, currentStep.getStepId());
+
+			availableActions = workflow.getAvailableActions(id, Collections.EMPTY_MAP);
+			// verify we have 6 available action
+			assertEquals("Unexpected number of available actions", 6, availableActions.length);
+			// //verify it's action 3
+			// assertEquals("Unexpected available action", 3,
+			// availableActions[0]);
+			workflow.doAction(id, 6, null);
+			currentSteps = workflow.getCurrentSteps(id);
+			// verify we have no current Step (since we ended the process)
+			assertEquals("Unexpected number of current steps", 0, currentSteps.size());
+			// verify we have no available action
+			availableActions = workflow.getAvailableActions(id, Collections.EMPTY_MAP);
+			assertEquals("Unexpected number of available actions", 0, availableActions.length);
+
+		} catch (InvalidActionException e) {
+			// TODO Auto-generated catch block
+			e.printStackTrace();
+		} catch (InvalidRoleException e) {
+			// TODO Auto-generated catch block
+			e.printStackTrace();
+		} catch (InvalidInputException e) {
+			// TODO Auto-generated catch block
+			e.printStackTrace();
+		} catch (InvalidEntryStateException e) {
+			// TODO Auto-generated catch block
+			e.printStackTrace();
+		} catch (WorkflowException e) {
+			// TODO Auto-generated catch block
+			e.printStackTrace();
+		}
+	}
+
+	public void testToXML() throws Exception {
+        DefaultConfiguration config = new DefaultConfiguration();
+        config.load(null);
+        WorkflowDescriptor workflowDescriptor = config.getWorkflow("entrevista");
+	    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);
+	}
+	
+}

Deleted: labs/jbossrules/trunk/drools-process/drools-osworkflow/src/test/java/org/drools/osworkflow/test/DroolsOSWorkFlowTestCase.java
===================================================================
--- labs/jbossrules/branches/mfossati/drools-osworkflow/src/test/java/org/drools/osworkflow/test/DroolsOSWorkFlowTestCase.java	2009-01-28 17:47:14 UTC (rev 24981)
+++ labs/jbossrules/trunk/drools-process/drools-osworkflow/src/test/java/org/drools/osworkflow/test/DroolsOSWorkFlowTestCase.java	2009-01-30 15:27:43 UTC (rev 25023)
@@ -1,132 +0,0 @@
-package org.drools.osworkflow.test;
-
-import java.util.Collection;
-import java.util.Collections;
-
-import junit.framework.TestCase;
-import junit.framework.TestSuite;
-
-import org.drools.osworkflow.DroolsWorkflow;
-
-import com.opensymphony.workflow.InvalidInputException;
-import com.opensymphony.workflow.Workflow;
-import com.opensymphony.workflow.WorkflowException;
-import com.opensymphony.workflow.config.DefaultConfiguration;
-import com.opensymphony.workflow.spi.Step;
-import com.opensymphony.workflow.spi.WorkflowEntry;
-
-public class DroolsOSWorkFlowTestCase extends TestCase {
-
-	private String resource;
-
-	
-	private DroolsOSWorkFlowTestCase(String xmlname) {
-		super("testPrimer");
-		this.resource = xmlname;
-	}
-	
-	public static TestSuite suite() {
-		InnerTestSuite suite = new InnerTestSuite();
-		addResources(suite);
-		return suite;
-	}
-	
-	
-	public static void addResources(InnerTestSuite suite) {
-		suite.addTestFor("simple");
-	}
-	
-	
-	/**
-	 * Testcase.
-	 */
-	public void testPrimer() {
-		Workflow workflow = new DroolsWorkflow();
-		DefaultConfiguration config = new DefaultConfiguration();
-		workflow.setConfiguration(config);
-		try {
-		    long workflowId = workflow.initialize(this.resource, 1, null);
-			
-			Collection<Step> currentSteps = workflow.getCurrentSteps(workflowId);
-            //verify we only have one current step
-            assertNumberOfCurrentSteps(1, currentSteps.size());
-            //verify it's step 1
-            Step currentStep = currentSteps.iterator().next();
-            assertCurrentStep(1,currentStep);
-            int[] availableActions = workflow.getAvailableActions(workflowId, Collections.EMPTY_MAP);
-            //verify we only have one available action
-            assertEquals("Unexpected number of available actions", 1, availableActions.length);
-            //verify it's action 2
-            assertEquals("Unexpected available action", 2, availableActions[0]);
-            
-            workflow.doAction(workflowId, 2, null);
-            currentSteps = workflow.getCurrentSteps(workflowId);
-            //verify we only have one current step
-            assertEquals("Unexpected number of current steps", 1, currentSteps.size());
-            //verify it's step 1
-            currentStep = currentSteps.iterator().next();
-            assertEquals("Unexpected current step", 1, currentStep.getStepId());
-            
-            availableActions = workflow.getAvailableActions(workflowId, Collections.EMPTY_MAP);
-            //verify we only have one available action
-            assertEquals("Unexpected number of available actions", 1, availableActions.length);
-            //verify it's action 3
-            assertEquals("Unexpected available action", 3, availableActions[0]);
-            
-            workflow.doAction(workflowId, 3, null);
-            currentSteps = workflow.getCurrentSteps(workflowId);
-            //verify we only have no more current steps
-            assertEquals("Unexpected number of current steps", 0, currentSteps.size());
-            //verify process completed
-            assertEquals("Unexpected state", WorkflowEntry.COMPLETED, workflow.getEntryState(workflowId));
-
-            availableActions = workflow.getAvailableActions(workflowId, Collections.EMPTY_MAP);
-            //verify we only have no available action
-            assertEquals("Unexpected number of available actions", 0, availableActions.length);
-		} 
-		catch (InvalidInputException e) {
-			e.printStackTrace();
-			fail(e.getMessage());
-		} 
-		catch (WorkflowException e) {
-            e.printStackTrace();
-            fail(e.getMessage());
-        }
-	}
-	
-	private void assertCurrentStep (int stepIteration , long expectedStepId) {
-		assertEquals("Unexpected current step", stepIteration, expectedStepId);
-	}
-	
-	public void assertCurrentStep (int stepIteration , Step currentStep) {
-		assertCurrentStep (stepIteration, currentStep.getId());
-	}
-	
-	public void assertAvaliableActions (int stepIdIteration, int expectedAvaliableActions) {
-		assertEquals("Unexpected number of available actions", 1, expectedAvaliableActions);
-	}
-	
-	public void assertWFState (Workflow workflow, int stepId , int expectedStateId) {
-//		int wId = workflow.getHistorySteps(id)
-//		assertEquals("Unexpected state", expectedStateId, workflow.getEntryState(id))
-	}
-	
-	public void assertNumberOfCurrentSteps(int stepIteration , int expectedSteps) {
-		assertEquals("Unexpected number of current steps", stepIteration, expectedSteps);
-	}
-	
-	/**
-	 * @author ar26818347
-	 */
-	private static class InnerTestSuite extends TestSuite {
-		
-		public DroolsOSWorkFlowTestCase addTestFor(String xmlname) {
-			DroolsOSWorkFlowTestCase test = new DroolsOSWorkFlowTestCase(xmlname);
-			this.addTest(test);
-			return test;
-		}
-		
-		
-	}
-}
-

Copied: labs/jbossrules/trunk/drools-process/drools-osworkflow/src/test/java/org/drools/osworkflow/test/DroolsOSWorkFlowTestCase.java (from rev 24981, labs/jbossrules/branches/mfossati/drools-osworkflow/src/test/java/org/drools/osworkflow/test/DroolsOSWorkFlowTestCase.java)
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-osworkflow/src/test/java/org/drools/osworkflow/test/DroolsOSWorkFlowTestCase.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-process/drools-osworkflow/src/test/java/org/drools/osworkflow/test/DroolsOSWorkFlowTestCase.java	2009-01-30 15:27:43 UTC (rev 25023)
@@ -0,0 +1,132 @@
+package org.drools.osworkflow.test;
+
+import java.util.Collection;
+import java.util.Collections;
+
+import junit.framework.TestCase;
+import junit.framework.TestSuite;
+
+import org.drools.osworkflow.DroolsWorkflow;
+
+import com.opensymphony.workflow.InvalidInputException;
+import com.opensymphony.workflow.Workflow;
+import com.opensymphony.workflow.WorkflowException;
+import com.opensymphony.workflow.config.DefaultConfiguration;
+import com.opensymphony.workflow.spi.Step;
+import com.opensymphony.workflow.spi.WorkflowEntry;
+
+public class DroolsOSWorkFlowTestCase extends TestCase {
+
+	private String resource;
+
+	
+	private DroolsOSWorkFlowTestCase(String xmlname) {
+		super("testPrimer");
+		this.resource = xmlname;
+	}
+	
+	public static TestSuite suite() {
+		InnerTestSuite suite = new InnerTestSuite();
+		addResources(suite);
+		return suite;
+	}
+	
+	
+	public static void addResources(InnerTestSuite suite) {
+		suite.addTestFor("simple");
+	}
+	
+	
+	/**
+	 * Testcase.
+	 */
+	public void testPrimer() {
+		Workflow workflow = new DroolsWorkflow();
+		DefaultConfiguration config = new DefaultConfiguration();
+		workflow.setConfiguration(config);
+		try {
+		    long workflowId = workflow.initialize(this.resource, 1, null);
+			
+			Collection<Step> currentSteps = workflow.getCurrentSteps(workflowId);
+            //verify we only have one current step
+            assertNumberOfCurrentSteps(1, currentSteps.size());
+            //verify it's step 1
+            Step currentStep = currentSteps.iterator().next();
+            assertCurrentStep(1,currentStep);
+            int[] availableActions = workflow.getAvailableActions(workflowId, Collections.EMPTY_MAP);
+            //verify we only have one available action
+            assertEquals("Unexpected number of available actions", 1, availableActions.length);
+            //verify it's action 2
+            assertEquals("Unexpected available action", 2, availableActions[0]);
+            
+            workflow.doAction(workflowId, 2, null);
+            currentSteps = workflow.getCurrentSteps(workflowId);
+            //verify we only have one current step
+            assertEquals("Unexpected number of current steps", 1, currentSteps.size());
+            //verify it's step 1
+            currentStep = currentSteps.iterator().next();
+            assertEquals("Unexpected current step", 1, currentStep.getStepId());
+            
+            availableActions = workflow.getAvailableActions(workflowId, Collections.EMPTY_MAP);
+            //verify we only have one available action
+            assertEquals("Unexpected number of available actions", 1, availableActions.length);
+            //verify it's action 3
+            assertEquals("Unexpected available action", 3, availableActions[0]);
+            
+            workflow.doAction(workflowId, 3, null);
+            currentSteps = workflow.getCurrentSteps(workflowId);
+            //verify we only have no more current steps
+            assertEquals("Unexpected number of current steps", 0, currentSteps.size());
+            //verify process completed
+            assertEquals("Unexpected state", WorkflowEntry.COMPLETED, workflow.getEntryState(workflowId));
+
+            availableActions = workflow.getAvailableActions(workflowId, Collections.EMPTY_MAP);
+            //verify we only have no available action
+            assertEquals("Unexpected number of available actions", 0, availableActions.length);
+		} 
+		catch (InvalidInputException e) {
+			e.printStackTrace();
+			fail(e.getMessage());
+		} 
+		catch (WorkflowException e) {
+            e.printStackTrace();
+            fail(e.getMessage());
+        }
+	}
+	
+	private void assertCurrentStep (int stepIteration , long expectedStepId) {
+		assertEquals("Unexpected current step", stepIteration, expectedStepId);
+	}
+	
+	public void assertCurrentStep (int stepIteration , Step currentStep) {
+		assertCurrentStep (stepIteration, currentStep.getId());
+	}
+	
+	public void assertAvaliableActions (int stepIdIteration, int expectedAvaliableActions) {
+		assertEquals("Unexpected number of available actions", 1, expectedAvaliableActions);
+	}
+	
+	public void assertWFState (Workflow workflow, int stepId , int expectedStateId) {
+//		int wId = workflow.getHistorySteps(id)
+//		assertEquals("Unexpected state", expectedStateId, workflow.getEntryState(id))
+	}
+	
+	public void assertNumberOfCurrentSteps(int stepIteration , int expectedSteps) {
+		assertEquals("Unexpected number of current steps", stepIteration, expectedSteps);
+	}
+	
+	/**
+	 * @author ar26818347
+	 */
+	private static class InnerTestSuite extends TestSuite {
+		
+		public DroolsOSWorkFlowTestCase addTestFor(String xmlname) {
+			DroolsOSWorkFlowTestCase test = new DroolsOSWorkFlowTestCase(xmlname);
+			this.addTest(test);
+			return test;
+		}
+		
+		
+	}
+}
+

Deleted: labs/jbossrules/trunk/drools-process/drools-osworkflow/src/test/java/org/drools/osworkflow/test/Simple2ProcessTest.java
===================================================================
--- labs/jbossrules/branches/mfossati/drools-osworkflow/src/test/java/org/drools/osworkflow/test/Simple2ProcessTest.java	2009-01-28 17:47:14 UTC (rev 24981)
+++ labs/jbossrules/trunk/drools-process/drools-osworkflow/src/test/java/org/drools/osworkflow/test/Simple2ProcessTest.java	2009-01-30 15:27:43 UTC (rev 25023)
@@ -1,127 +0,0 @@
-package org.drools.osworkflow.test;
-
-import java.io.StringReader;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.List;
-
-import junit.framework.TestCase;
-
-import org.drools.osworkflow.DroolsWorkflow;
-import org.drools.osworkflow.OSWorkflowParser;
-import org.drools.osworkflow.composite.CompositeWorkflow;
-import org.drools.osworkflow.core.OSWorkflowProcess;
-import org.drools.osworkflow.xml.OSWorkflowSemanticModule;
-import org.drools.osworkflow.xml.XmlOSWorkflowProcessDumper;
-import org.drools.xml.SemanticModules;
-import org.drools.xml.XmlProcessReader;
-
-import com.opensymphony.workflow.InvalidInputException;
-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;
-import com.opensymphony.workflow.spi.WorkflowEntry;
-
-public class Simple2ProcessTest extends TestCase {
-	
-	public void testSimpleProcess() {
-		Workflow workflow = new DroolsWorkflow();
-		DefaultConfiguration config = new DefaultConfiguration();
-		workflow.setConfiguration(config);
-		try {
-			long workflowId = workflow.initialize("simple2", 1, null);
-			
-			Collection<Step> currentSteps = workflow.getCurrentSteps(workflowId);
-			//verify we only have one current step
-			assertEquals("Unexpected number of current steps", 1, currentSteps.size());
-			//verify it's step 1
-			Step currentStep = currentSteps.iterator().next();
-			assertEquals("Unexpected current step", 1, currentStep.getStepId());
-
-			int[] availableActions = workflow.getAvailableActions(workflowId, Collections.EMPTY_MAP);
-			//verify we only have one available action
-			assertEquals("Unexpected number of available actions", 1, availableActions.length);
-			//verify it's action 2
-			assertEquals("Unexpected available action", 2, availableActions[0]);
-			
-			workflow.doAction(workflowId, 2, null);
-			
-			currentSteps = workflow.getCurrentSteps(workflowId);
-            //verify we have two current steps
-            assertEquals("Unexpected number of current steps", 2, currentSteps.size());
-            //verify it's step 2 and 3
-            List<Integer> currentStepIds = new ArrayList<Integer>();
-            for (Step step: currentSteps) {
-                currentStepIds.add((int) step.getId());
-            }
-            assertTrue("Current step 2 not found", currentStepIds.contains(2));
-            assertTrue("Current step 3 not found", currentStepIds.contains(3));
-            
-			availableActions = workflow.getAvailableActions(workflowId, Collections.EMPTY_MAP);
-			//verify we have two available actions
-			assertEquals("Unexpected number of available actions", 2, availableActions.length);
-			//verify it's action 3 and 4
-			List<Integer> availableActionIds = new ArrayList<Integer>();
-            for (int availableAction: availableActions) {
-                availableActionIds.add(availableAction);
-            }
-			assertTrue("Available action 3 not found", availableActionIds.contains(3));
-            assertTrue("Available action 4 not found", availableActionIds.contains(4));
-			
-			workflow.doAction(workflowId, 3, null);
-			
-			currentSteps = workflow.getCurrentSteps(workflowId);
-            //verify we only have one current step
-            assertEquals("Unexpected number of current steps", 1, currentSteps.size());
-            //verify it's step 3
-            currentStep = currentSteps.iterator().next();
-            assertEquals("Unexpected current step", 3, currentStep.getStepId());
-            
-            availableActions = workflow.getAvailableActions(workflowId, Collections.EMPTY_MAP);
-            //verify we only have one available action
-            assertEquals("Unexpected number of available actions", 1, availableActions.length);
-            //verify it's action 4
-            assertEquals("Unexpected available action", 4, availableActions[0]);
-            
-            workflow.doAction(workflowId, 4, null);
-            
-            currentSteps = workflow.getCurrentSteps(workflowId);
-            //verify we only have no more current steps
-            assertEquals("Unexpected number of current steps", 0, currentSteps.size());
-            //verify process completed
-            assertEquals("Unexpected state", WorkflowEntry.COMPLETED, workflow.getEntryState(workflowId));
-
-            availableActions = workflow.getAvailableActions(workflowId, Collections.EMPTY_MAP);
-            //verify we only have no available action
-            assertEquals("Unexpected number of available actions", 0, availableActions.length);
-			
-		} catch (InvalidInputException e) {
-            e.printStackTrace();
-            fail(e.getMessage());
-        } catch (WorkflowException e) {
-            e.printStackTrace();
-            fail(e.getMessage());
-        }
-	}
-
-    public void testToXML() throws Exception {
-        DefaultConfiguration config = new DefaultConfiguration();
-        config.load(null);
-        WorkflowDescriptor workflowDescriptor = config.getWorkflow("simple2");
-        OSWorkflowProcess process = new OSWorkflowParser().parseOSWorkflow(workflowDescriptor);
-        
-        String processXML = XmlOSWorkflowProcessDumper.INSTANCE.dump(process);
-        System.out.println(processXML);
-        
-        SemanticModules semanticModules = new SemanticModules();
-        semanticModules.addSemanticModule(new OSWorkflowSemanticModule());
-        XmlProcessReader reader = new XmlProcessReader(semanticModules);
-        System.setProperty( "drools.schema.validating", "false" );
-        OSWorkflowProcess process2 = (OSWorkflowProcess) reader.read(new StringReader(processXML));
-        assertNotNull(process2);
-    }
-
-}

Copied: labs/jbossrules/trunk/drools-process/drools-osworkflow/src/test/java/org/drools/osworkflow/test/Simple2ProcessTest.java (from rev 24981, labs/jbossrules/branches/mfossati/drools-osworkflow/src/test/java/org/drools/osworkflow/test/Simple2ProcessTest.java)
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-osworkflow/src/test/java/org/drools/osworkflow/test/Simple2ProcessTest.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-process/drools-osworkflow/src/test/java/org/drools/osworkflow/test/Simple2ProcessTest.java	2009-01-30 15:27:43 UTC (rev 25023)
@@ -0,0 +1,127 @@
+package org.drools.osworkflow.test;
+
+import java.io.StringReader;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.List;
+
+import junit.framework.TestCase;
+
+import org.drools.osworkflow.DroolsWorkflow;
+import org.drools.osworkflow.OSWorkflowParser;
+import org.drools.osworkflow.composite.CompositeWorkflow;
+import org.drools.osworkflow.core.OSWorkflowProcess;
+import org.drools.osworkflow.xml.OSWorkflowSemanticModule;
+import org.drools.osworkflow.xml.XmlOSWorkflowProcessDumper;
+import org.drools.xml.SemanticModules;
+import org.drools.xml.XmlProcessReader;
+
+import com.opensymphony.workflow.InvalidInputException;
+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;
+import com.opensymphony.workflow.spi.WorkflowEntry;
+
+public class Simple2ProcessTest extends TestCase {
+	
+	public void testSimpleProcess() {
+		Workflow workflow = new DroolsWorkflow();
+		DefaultConfiguration config = new DefaultConfiguration();
+		workflow.setConfiguration(config);
+		try {
+			long workflowId = workflow.initialize("simple2", 1, null);
+			
+			Collection<Step> currentSteps = workflow.getCurrentSteps(workflowId);
+			//verify we only have one current step
+			assertEquals("Unexpected number of current steps", 1, currentSteps.size());
+			//verify it's step 1
+			Step currentStep = currentSteps.iterator().next();
+			assertEquals("Unexpected current step", 1, currentStep.getStepId());
+
+			int[] availableActions = workflow.getAvailableActions(workflowId, Collections.EMPTY_MAP);
+			//verify we only have one available action
+			assertEquals("Unexpected number of available actions", 1, availableActions.length);
+			//verify it's action 2
+			assertEquals("Unexpected available action", 2, availableActions[0]);
+			
+			workflow.doAction(workflowId, 2, null);
+			
+			currentSteps = workflow.getCurrentSteps(workflowId);
+            //verify we have two current steps
+            assertEquals("Unexpected number of current steps", 2, currentSteps.size());
+            //verify it's step 2 and 3
+            List<Integer> currentStepIds = new ArrayList<Integer>();
+            for (Step step: currentSteps) {
+                currentStepIds.add((int) step.getId());
+            }
+            assertTrue("Current step 2 not found", currentStepIds.contains(2));
+            assertTrue("Current step 3 not found", currentStepIds.contains(3));
+            
+			availableActions = workflow.getAvailableActions(workflowId, Collections.EMPTY_MAP);
+			//verify we have two available actions
+			assertEquals("Unexpected number of available actions", 2, availableActions.length);
+			//verify it's action 3 and 4
+			List<Integer> availableActionIds = new ArrayList<Integer>();
+            for (int availableAction: availableActions) {
+                availableActionIds.add(availableAction);
+            }
+			assertTrue("Available action 3 not found", availableActionIds.contains(3));
+            assertTrue("Available action 4 not found", availableActionIds.contains(4));
+			
+			workflow.doAction(workflowId, 3, null);
+			
+			currentSteps = workflow.getCurrentSteps(workflowId);
+            //verify we only have one current step
+            assertEquals("Unexpected number of current steps", 1, currentSteps.size());
+            //verify it's step 3
+            currentStep = currentSteps.iterator().next();
+            assertEquals("Unexpected current step", 3, currentStep.getStepId());
+            
+            availableActions = workflow.getAvailableActions(workflowId, Collections.EMPTY_MAP);
+            //verify we only have one available action
+            assertEquals("Unexpected number of available actions", 1, availableActions.length);
+            //verify it's action 4
+            assertEquals("Unexpected available action", 4, availableActions[0]);
+            
+            workflow.doAction(workflowId, 4, null);
+            
+            currentSteps = workflow.getCurrentSteps(workflowId);
+            //verify we only have no more current steps
+            assertEquals("Unexpected number of current steps", 0, currentSteps.size());
+            //verify process completed
+            assertEquals("Unexpected state", WorkflowEntry.COMPLETED, workflow.getEntryState(workflowId));
+
+            availableActions = workflow.getAvailableActions(workflowId, Collections.EMPTY_MAP);
+            //verify we only have no available action
+            assertEquals("Unexpected number of available actions", 0, availableActions.length);
+			
+		} catch (InvalidInputException e) {
+            e.printStackTrace();
+            fail(e.getMessage());
+        } catch (WorkflowException e) {
+            e.printStackTrace();
+            fail(e.getMessage());
+        }
+	}
+
+    public void testToXML() throws Exception {
+        DefaultConfiguration config = new DefaultConfiguration();
+        config.load(null);
+        WorkflowDescriptor workflowDescriptor = config.getWorkflow("simple2");
+        OSWorkflowProcess process = new OSWorkflowParser().parseOSWorkflow(workflowDescriptor);
+        
+        String processXML = XmlOSWorkflowProcessDumper.INSTANCE.dump(process);
+        System.out.println(processXML);
+        
+        SemanticModules semanticModules = new SemanticModules();
+        semanticModules.addSemanticModule(new OSWorkflowSemanticModule());
+        XmlProcessReader reader = new XmlProcessReader(semanticModules);
+        System.setProperty( "drools.schema.validating", "false" );
+        OSWorkflowProcess process2 = (OSWorkflowProcess) reader.read(new StringReader(processXML));
+        assertNotNull(process2);
+    }
+
+}

Deleted: labs/jbossrules/trunk/drools-process/drools-osworkflow/src/test/java/org/drools/osworkflow/test/Simple3ProcessTest.java
===================================================================
--- labs/jbossrules/branches/mfossati/drools-osworkflow/src/test/java/org/drools/osworkflow/test/Simple3ProcessTest.java	2009-01-28 17:47:14 UTC (rev 24981)
+++ labs/jbossrules/trunk/drools-process/drools-osworkflow/src/test/java/org/drools/osworkflow/test/Simple3ProcessTest.java	2009-01-30 15:27:43 UTC (rev 25023)
@@ -1,55 +0,0 @@
-package org.drools.osworkflow.test;
-
-import java.io.StringReader;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.List;
-
-import junit.framework.TestCase;
-
-import org.drools.osworkflow.DroolsWorkflow;
-import org.drools.osworkflow.OSWorkflowParser;
-import org.drools.osworkflow.core.OSWorkflowProcess;
-import org.drools.osworkflow.xml.OSWorkflowSemanticModule;
-import org.drools.osworkflow.xml.XmlOSWorkflowProcessDumper;
-import org.drools.xml.SemanticModules;
-import org.drools.xml.XmlProcessReader;
-
-import com.opensymphony.workflow.InvalidInputException;
-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;
-import com.opensymphony.workflow.spi.WorkflowEntry;
-
-public class Simple3ProcessTest extends TestCase {
-	
-	public void testSimpleProcess() {
-		Workflow workflow = new DroolsWorkflow();
-		DefaultConfiguration config = new DefaultConfiguration();
-		workflow.setConfiguration(config);
-		try {
-			long workflowId = workflow.initialize("holiday2", 100, null);
-			Collection<Step> currentSteps = workflow.getCurrentSteps(workflowId);
-			//verify it's step 1
-			Step currentStep = currentSteps.iterator().next();
-			assertEquals("Unexpected current step", 1, currentStep.getStepId());
-
-			int[] availableActions = workflow.getAvailableActions(workflowId, Collections.EMPTY_MAP);
-			//verify we only have one available action
-			assertEquals("Unexpected number of available actions", 1, availableActions.length);
-			//verify it's action 1
-			assertEquals("Unexpected available action", 1, availableActions[0]);
-			
-			
-		}
-		catch (Exception e) {
-			int a = 1;
-		}
-		
-	}
-	
-	
-}

Copied: labs/jbossrules/trunk/drools-process/drools-osworkflow/src/test/java/org/drools/osworkflow/test/Simple3ProcessTest.java (from rev 24981, labs/jbossrules/branches/mfossati/drools-osworkflow/src/test/java/org/drools/osworkflow/test/Simple3ProcessTest.java)
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-osworkflow/src/test/java/org/drools/osworkflow/test/Simple3ProcessTest.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-process/drools-osworkflow/src/test/java/org/drools/osworkflow/test/Simple3ProcessTest.java	2009-01-30 15:27:43 UTC (rev 25023)
@@ -0,0 +1,55 @@
+package org.drools.osworkflow.test;
+
+import java.io.StringReader;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.List;
+
+import junit.framework.TestCase;
+
+import org.drools.osworkflow.DroolsWorkflow;
+import org.drools.osworkflow.OSWorkflowParser;
+import org.drools.osworkflow.core.OSWorkflowProcess;
+import org.drools.osworkflow.xml.OSWorkflowSemanticModule;
+import org.drools.osworkflow.xml.XmlOSWorkflowProcessDumper;
+import org.drools.xml.SemanticModules;
+import org.drools.xml.XmlProcessReader;
+
+import com.opensymphony.workflow.InvalidInputException;
+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;
+import com.opensymphony.workflow.spi.WorkflowEntry;
+
+public class Simple3ProcessTest extends TestCase {
+	
+	public void testSimpleProcess() {
+		Workflow workflow = new DroolsWorkflow();
+		DefaultConfiguration config = new DefaultConfiguration();
+		workflow.setConfiguration(config);
+		try {
+			long workflowId = workflow.initialize("holiday2", 100, null);
+			Collection<Step> currentSteps = workflow.getCurrentSteps(workflowId);
+			//verify it's step 1
+			Step currentStep = currentSteps.iterator().next();
+			assertEquals("Unexpected current step", 1, currentStep.getStepId());
+
+			int[] availableActions = workflow.getAvailableActions(workflowId, Collections.EMPTY_MAP);
+			//verify we only have one available action
+			assertEquals("Unexpected number of available actions", 1, availableActions.length);
+			//verify it's action 1
+			assertEquals("Unexpected available action", 1, availableActions[0]);
+			
+			
+		}
+		catch (Exception e) {
+			int a = 1;
+		}
+		
+	}
+	
+	
+}

Deleted: labs/jbossrules/trunk/drools-process/drools-osworkflow/src/test/java/org/drools/osworkflow/test/SimpleDroolsFlowTestCase.java
===================================================================
--- labs/jbossrules/branches/mfossati/drools-osworkflow/src/test/java/org/drools/osworkflow/test/SimpleDroolsFlowTestCase.java	2009-01-28 17:47:14 UTC (rev 24981)
+++ labs/jbossrules/trunk/drools-process/drools-osworkflow/src/test/java/org/drools/osworkflow/test/SimpleDroolsFlowTestCase.java	2009-01-30 15:27:43 UTC (rev 25023)
@@ -1,43 +0,0 @@
-package org.drools.osworkflow.test;
-
-import java.io.InputStreamReader;
-import java.io.Reader;
-
-import junit.framework.TestCase;
-
-import org.drools.RuleBase;
-import org.drools.RuleBaseFactory;
-import org.drools.StatefulSession;
-import org.drools.compiler.PackageBuilder;
-import org.drools.rule.Package;
- 
-public class SimpleDroolsFlowTestCase extends TestCase {
- 
-	public void testSimple() {
-		try {
-			// load the process
-			RuleBase ruleBase = createKnowledgeBase();
-			// create a new session
-			StatefulSession session = ruleBase.newStatefulSession();
-			// start a new process instance
-			session.startProcess("simple");
-		} catch (Throwable t) {
-			t.printStackTrace();
-		}
-	}
-
-	private RuleBase createKnowledgeBase() throws Exception {
-		// create a builder
-		PackageBuilder builder = new PackageBuilder();
-		// load the process
-		Reader source = new InputStreamReader(SimpleDroolsFlowTestCase.class
-				.getResourceAsStream("/simple.rf"));
-		builder.addProcessFromXml(source);
-		// create the knowledge base
-		Package pkg = builder.getPackage();
-		RuleBase ruleBase = RuleBaseFactory.newRuleBase();
-		ruleBase.addPackage(pkg);
-		return ruleBase;
-	}
-
-}

Copied: labs/jbossrules/trunk/drools-process/drools-osworkflow/src/test/java/org/drools/osworkflow/test/SimpleDroolsFlowTestCase.java (from rev 24981, labs/jbossrules/branches/mfossati/drools-osworkflow/src/test/java/org/drools/osworkflow/test/SimpleDroolsFlowTestCase.java)
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-osworkflow/src/test/java/org/drools/osworkflow/test/SimpleDroolsFlowTestCase.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-process/drools-osworkflow/src/test/java/org/drools/osworkflow/test/SimpleDroolsFlowTestCase.java	2009-01-30 15:27:43 UTC (rev 25023)
@@ -0,0 +1,43 @@
+package org.drools.osworkflow.test;
+
+import java.io.InputStreamReader;
+import java.io.Reader;
+
+import junit.framework.TestCase;
+
+import org.drools.RuleBase;
+import org.drools.RuleBaseFactory;
+import org.drools.StatefulSession;
+import org.drools.compiler.PackageBuilder;
+import org.drools.rule.Package;
+ 
+public class SimpleDroolsFlowTestCase extends TestCase {
+ 
+	public void testSimple() {
+		try {
+			// load the process
+			RuleBase ruleBase = createKnowledgeBase();
+			// create a new session
+			StatefulSession session = ruleBase.newStatefulSession();
+			// start a new process instance
+			session.startProcess("simple");
+		} catch (Throwable t) {
+			t.printStackTrace();
+		}
+	}
+
+	private RuleBase createKnowledgeBase() throws Exception {
+		// create a builder
+		PackageBuilder builder = new PackageBuilder();
+		// load the process
+		Reader source = new InputStreamReader(SimpleDroolsFlowTestCase.class
+				.getResourceAsStream("/simple.rf"));
+		builder.addProcessFromXml(source);
+		// create the knowledge base
+		Package pkg = builder.getPackage();
+		RuleBase ruleBase = RuleBaseFactory.newRuleBase();
+		ruleBase.addPackage(pkg);
+		return ruleBase;
+	}
+
+}

Deleted: labs/jbossrules/trunk/drools-process/drools-osworkflow/src/test/java/org/drools/osworkflow/test/SimpleProcessTest.java
===================================================================
--- labs/jbossrules/branches/mfossati/drools-osworkflow/src/test/java/org/drools/osworkflow/test/SimpleProcessTest.java	2009-01-28 17:47:14 UTC (rev 24981)
+++ labs/jbossrules/trunk/drools-process/drools-osworkflow/src/test/java/org/drools/osworkflow/test/SimpleProcessTest.java	2009-01-30 15:27:43 UTC (rev 25023)
@@ -1,96 +0,0 @@
-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.composite.CompositeWorkflow;
-import org.drools.osworkflow.core.OSWorkflowProcess;
-import org.drools.osworkflow.xml.XmlOSWorkflowProcessDumper;
-import org.drools.xml.XmlProcessReader;
-
-import com.opensymphony.workflow.InvalidInputException;
-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;
-import com.opensymphony.workflow.spi.WorkflowEntry;
-
-public class SimpleProcessTest extends TestCase {
-	
-	public void testSimpleProcess() {
-		Workflow workflow = new DroolsWorkflow();
-		DefaultConfiguration config = new DefaultConfiguration();
-		workflow.setConfiguration(config);
-		try {
-		    long workflowId = workflow.initialize("simple", 1, null);
-			
-			Collection<Step> currentSteps = workflow.getCurrentSteps(workflowId);
-            //verify we only have one current step
-            assertEquals("Unexpected number of current steps", 1, currentSteps.size());
-            //verify it's step 1
-            Step currentStep = currentSteps.iterator().next();
-            assertEquals("Unexpected current step", 1, currentStep.getStepId());
-
-            int[] availableActions = workflow.getAvailableActions(workflowId, Collections.EMPTY_MAP);
-            //verify we only have one available action
-            assertEquals("Unexpected number of available actions", 1, availableActions.length);
-            //verify it's action 2
-            assertEquals("Unexpected available action", 2, availableActions[0]);
-            
-            workflow.doAction(workflowId, 2, null);
-            currentSteps = workflow.getCurrentSteps(workflowId);
-            //verify we only have one current step
-            assertEquals("Unexpected number of current steps", 1, currentSteps.size());
-            //verify it's step 1
-            currentStep = currentSteps.iterator().next();
-            assertEquals("Unexpected current step", 1, currentStep.getStepId());
-            
-            availableActions = workflow.getAvailableActions(workflowId, Collections.EMPTY_MAP);
-            //verify we only have one available action
-            assertEquals("Unexpected number of available actions", 1, availableActions.length);
-            //verify it's action 3
-            assertEquals("Unexpected available action", 3, availableActions[0]);
-            
-            workflow.doAction(workflowId, 3, null);
-            currentSteps = workflow.getCurrentSteps(workflowId);
-            //verify we only have no more current steps
-            assertEquals("Unexpected number of current steps", 0, currentSteps.size());
-            //verify process completed
-            assertEquals("Unexpected state", WorkflowEntry.COMPLETED, workflow.getEntryState(workflowId));
-
-            availableActions = workflow.getAvailableActions(workflowId, Collections.EMPTY_MAP);
-            //verify we only have no available action
-            assertEquals("Unexpected number of available actions", 0, availableActions.length);
-		} catch (InvalidInputException e) {
-			e.printStackTrace();
-			fail(e.getMessage());
-		} catch (WorkflowException e) {
-            e.printStackTrace();
-            fail(e.getMessage());
-        }
-	}
-	
-	public void testToXML() throws Exception {
-        DefaultConfiguration config = new DefaultConfiguration();
-        config.load(null);
-        WorkflowDescriptor workflowDescriptor = config.getWorkflow("simple");
-	    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);
-	}
-
-}

Copied: labs/jbossrules/trunk/drools-process/drools-osworkflow/src/test/java/org/drools/osworkflow/test/SimpleProcessTest.java (from rev 24981, labs/jbossrules/branches/mfossati/drools-osworkflow/src/test/java/org/drools/osworkflow/test/SimpleProcessTest.java)
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-osworkflow/src/test/java/org/drools/osworkflow/test/SimpleProcessTest.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-process/drools-osworkflow/src/test/java/org/drools/osworkflow/test/SimpleProcessTest.java	2009-01-30 15:27:43 UTC (rev 25023)
@@ -0,0 +1,96 @@
+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.composite.CompositeWorkflow;
+import org.drools.osworkflow.core.OSWorkflowProcess;
+import org.drools.osworkflow.xml.XmlOSWorkflowProcessDumper;
+import org.drools.xml.XmlProcessReader;
+
+import com.opensymphony.workflow.InvalidInputException;
+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;
+import com.opensymphony.workflow.spi.WorkflowEntry;
+
+public class SimpleProcessTest extends TestCase {
+	
+	public void testSimpleProcess() {
+		Workflow workflow = new DroolsWorkflow();
+		DefaultConfiguration config = new DefaultConfiguration();
+		workflow.setConfiguration(config);
+		try {
+		    long workflowId = workflow.initialize("simple", 1, null);
+			
+			Collection<Step> currentSteps = workflow.getCurrentSteps(workflowId);
+            //verify we only have one current step
+            assertEquals("Unexpected number of current steps", 1, currentSteps.size());
+            //verify it's step 1
+            Step currentStep = currentSteps.iterator().next();
+            assertEquals("Unexpected current step", 1, currentStep.getStepId());
+
+            int[] availableActions = workflow.getAvailableActions(workflowId, Collections.EMPTY_MAP);
+            //verify we only have one available action
+            assertEquals("Unexpected number of available actions", 1, availableActions.length);
+            //verify it's action 2
+            assertEquals("Unexpected available action", 2, availableActions[0]);
+            
+            workflow.doAction(workflowId, 2, null);
+            currentSteps = workflow.getCurrentSteps(workflowId);
+            //verify we only have one current step
+            assertEquals("Unexpected number of current steps", 1, currentSteps.size());
+            //verify it's step 1
+            currentStep = currentSteps.iterator().next();
+            assertEquals("Unexpected current step", 1, currentStep.getStepId());
+            
+            availableActions = workflow.getAvailableActions(workflowId, Collections.EMPTY_MAP);
+            //verify we only have one available action
+            assertEquals("Unexpected number of available actions", 1, availableActions.length);
+            //verify it's action 3
+            assertEquals("Unexpected available action", 3, availableActions[0]);
+            
+            workflow.doAction(workflowId, 3, null);
+            currentSteps = workflow.getCurrentSteps(workflowId);
+            //verify we only have no more current steps
+            assertEquals("Unexpected number of current steps", 0, currentSteps.size());
+            //verify process completed
+            assertEquals("Unexpected state", WorkflowEntry.COMPLETED, workflow.getEntryState(workflowId));
+
+            availableActions = workflow.getAvailableActions(workflowId, Collections.EMPTY_MAP);
+            //verify we only have no available action
+            assertEquals("Unexpected number of available actions", 0, availableActions.length);
+		} catch (InvalidInputException e) {
+			e.printStackTrace();
+			fail(e.getMessage());
+		} catch (WorkflowException e) {
+            e.printStackTrace();
+            fail(e.getMessage());
+        }
+	}
+	
+	public void testToXML() throws Exception {
+        DefaultConfiguration config = new DefaultConfiguration();
+        config.load(null);
+        WorkflowDescriptor workflowDescriptor = config.getWorkflow("simple");
+	    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);
+	}
+
+}

Deleted: labs/jbossrules/trunk/drools-process/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	2009-01-28 17:47:14 UTC (rev 24981)
+++ labs/jbossrules/trunk/drools-process/drools-osworkflow/src/test/java/org/drools/osworkflow/test/WFPProcessTestCase.java	2009-01-30 15:27:43 UTC (rev 25023)
@@ -1,46 +0,0 @@
-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);
-	}
-	
-}

Copied: labs/jbossrules/trunk/drools-process/drools-osworkflow/src/test/java/org/drools/osworkflow/test/WFPProcessTestCase.java (from rev 24981, labs/jbossrules/branches/mfossati/drools-osworkflow/src/test/java/org/drools/osworkflow/test/WFPProcessTestCase.java)
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-osworkflow/src/test/java/org/drools/osworkflow/test/WFPProcessTestCase.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-process/drools-osworkflow/src/test/java/org/drools/osworkflow/test/WFPProcessTestCase.java	2009-01-30 15:27:43 UTC (rev 25023)
@@ -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);
+	}
+	
+}

Copied: labs/jbossrules/trunk/drools-process/drools-osworkflow/src/test/java/org/drools/osworkflow/test/persistence (from rev 24981, labs/jbossrules/branches/mfossati/drools-osworkflow/src/test/java/org/drools/osworkflow/test/persistence)

Deleted: labs/jbossrules/trunk/drools-process/drools-osworkflow/src/test/java/org/drools/osworkflow/test/persistence/AbstractJPAPersistenceTestCase.java
===================================================================
--- labs/jbossrules/branches/mfossati/drools-osworkflow/src/test/java/org/drools/osworkflow/test/persistence/AbstractJPAPersistenceTestCase.java	2009-01-28 17:47:14 UTC (rev 24981)
+++ labs/jbossrules/trunk/drools-process/drools-osworkflow/src/test/java/org/drools/osworkflow/test/persistence/AbstractJPAPersistenceTestCase.java	2009-01-30 15:27:43 UTC (rev 25023)
@@ -1,78 +0,0 @@
-package org.drools.osworkflow.test.persistence;
-
-import java.io.InputStreamReader;
-import java.io.Reader;
-import java.util.Properties;
-
-import javax.persistence.EntityManagerFactory;
-import javax.persistence.Persistence;
-
-import junit.framework.TestCase;
-
-import org.drools.RuleBase;
-import org.drools.RuleBaseConfiguration;
-import org.drools.RuleBaseFactory;
-import org.drools.compiler.PackageBuilder;
-import org.drools.marshalling.ProcessMarshallerRegistry;
-import org.drools.osworkflow.core.OSWorkflowProcess;
-import org.drools.osworkflow.instance.OSWorkflowProcessInstance;
-import org.drools.osworkflow.persistence.marshaller.OSWorkflowProcessInstanceMarshaller;
-import org.drools.rule.Package;
-
-public abstract class AbstractJPAPersistenceTestCase extends TestCase {
-
-	private EntityManagerFactory emf;
-	
-	public EntityManagerFactory getEmf() {
-		return emf;
-	}
-
-	public void setEmf(EntityManagerFactory emf) {
-		this.emf = emf;
-	}
-
-
-	protected void setUp() {
-		emf = Persistence.createEntityManagerFactory("org.drools.persistence.jpa");
-	}
-
-	protected void tearDown() {
-		emf.close();
-	}
-
-	protected Properties setupCommonProperties() {
-		Properties properties = new Properties();
-		properties.put("processInstanceManagerFactory",
-				"org.drools.persistence.processinstance.JPAProcessInstanceManagerFactory");
-		properties.put("workItemManagerFactory", "org.drools.persistence.processinstance.JPAWorkItemManagerFactory");
-		properties.put("processSignalManagerFactory", "org.drools.persistence.processinstance.JPASignalManagerFactory");
-		//TODO configure this with IOC
-		ProcessMarshallerRegistry.INSTANCE.register(OSWorkflowProcess.OSWORKFLOW_TYPE, OSWorkflowProcessInstanceMarshaller.INSTANCE);
-		return properties;
-	}
-	
-	/**
-	 * Process definition.
-	 */
-	protected static RuleBase createKnowledgeBase(RuleBaseConfiguration conf, String resourceName) {
-		try {
-			// create a builder
-			PackageBuilder builder = new PackageBuilder();
-			// load the process
-			Reader source = new InputStreamReader(OSWorkFlowPersistenceTestCase.class
-					.getResourceAsStream(resourceName));
-			builder.addProcessFromXml(source);
-			// create the knowledge base
-			Package pkg = builder.getPackage();
-			RuleBase ruleBase = RuleBaseFactory.newRuleBase(conf);
-			ruleBase.addPackage(pkg);
-			return ruleBase;
-		} catch (Exception e) {
-			// TODO Auto-generated catch block
-			e.printStackTrace();
-			fail(e.getMessage());
-			return null;
-		}
-	}
-
-}

Copied: labs/jbossrules/trunk/drools-process/drools-osworkflow/src/test/java/org/drools/osworkflow/test/persistence/AbstractJPAPersistenceTestCase.java (from rev 24981, labs/jbossrules/branches/mfossati/drools-osworkflow/src/test/java/org/drools/osworkflow/test/persistence/AbstractJPAPersistenceTestCase.java)
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-osworkflow/src/test/java/org/drools/osworkflow/test/persistence/AbstractJPAPersistenceTestCase.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-process/drools-osworkflow/src/test/java/org/drools/osworkflow/test/persistence/AbstractJPAPersistenceTestCase.java	2009-01-30 15:27:43 UTC (rev 25023)
@@ -0,0 +1,78 @@
+package org.drools.osworkflow.test.persistence;
+
+import java.io.InputStreamReader;
+import java.io.Reader;
+import java.util.Properties;
+
+import javax.persistence.EntityManagerFactory;
+import javax.persistence.Persistence;
+
+import junit.framework.TestCase;
+
+import org.drools.RuleBase;
+import org.drools.RuleBaseConfiguration;
+import org.drools.RuleBaseFactory;
+import org.drools.compiler.PackageBuilder;
+import org.drools.marshalling.ProcessMarshallerRegistry;
+import org.drools.osworkflow.core.OSWorkflowProcess;
+import org.drools.osworkflow.instance.OSWorkflowProcessInstance;
+import org.drools.osworkflow.persistence.marshaller.OSWorkflowProcessInstanceMarshaller;
+import org.drools.rule.Package;
+
+public abstract class AbstractJPAPersistenceTestCase extends TestCase {
+
+	private EntityManagerFactory emf;
+	
+	public EntityManagerFactory getEmf() {
+		return emf;
+	}
+
+	public void setEmf(EntityManagerFactory emf) {
+		this.emf = emf;
+	}
+
+
+	protected void setUp() {
+		emf = Persistence.createEntityManagerFactory("org.drools.persistence.jpa");
+	}
+
+	protected void tearDown() {
+		emf.close();
+	}
+
+	protected Properties setupCommonProperties() {
+		Properties properties = new Properties();
+		properties.setProperty("drools.commandService", "org.drools.persistence.session.SingleSessionCommandService");
+		properties.setProperty("drools.processInstanceManagerFactory", "org.drools.persistence.processinstance.JPAProcessInstanceManagerFactory");
+		properties.setProperty("drools.workItemManagerFactory", "org.drools.persistence.processinstance.JPAWorkItemManagerFactory");
+		properties.setProperty("drools.processSignalManagerFactory", "org.drools.persistence.processinstance.JPASignalManagerFactory");
+		//TODO configure this with IOC
+		ProcessMarshallerRegistry.INSTANCE.register(OSWorkflowProcess.OSWORKFLOW_TYPE, OSWorkflowProcessInstanceMarshaller.INSTANCE);
+		return properties;
+	}
+	
+	/**
+	 * Process definition.
+	 */
+	protected static RuleBase createKnowledgeBase(RuleBaseConfiguration conf, String resourceName) {
+		try {
+			// create a builder
+			PackageBuilder builder = new PackageBuilder();
+			// load the process
+			Reader source = new InputStreamReader(OSWorkFlowPersistenceTestCase.class
+					.getResourceAsStream(resourceName));
+			builder.addProcessFromXml(source);
+			// create the knowledge base
+			Package pkg = builder.getPackage();
+			RuleBase ruleBase = RuleBaseFactory.newRuleBase(conf);
+			ruleBase.addPackage(pkg);
+			return ruleBase;
+		} catch (Exception e) {
+			// TODO Auto-generated catch block
+			e.printStackTrace();
+			fail(e.getMessage());
+			return null;
+		}
+	}
+
+}

Deleted: labs/jbossrules/trunk/drools-process/drools-osworkflow/src/test/java/org/drools/osworkflow/test/persistence/ComplexProcessPersistenceTestCase.java
===================================================================
--- labs/jbossrules/branches/mfossati/drools-osworkflow/src/test/java/org/drools/osworkflow/test/persistence/ComplexProcessPersistenceTestCase.java	2009-01-28 17:47:14 UTC (rev 24981)
+++ labs/jbossrules/trunk/drools-process/drools-osworkflow/src/test/java/org/drools/osworkflow/test/persistence/ComplexProcessPersistenceTestCase.java	2009-01-30 15:27:43 UTC (rev 25023)
@@ -1,63 +0,0 @@
-package org.drools.osworkflow.test.persistence;
-
-import java.util.Properties;
-
-import org.drools.RuleBase;
-import org.drools.RuleBaseConfiguration;
-import org.drools.osworkflow.core.command.DoActionCommand;
-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 ComplexProcessPersistenceTestCase extends AbstractJPAPersistenceTestCase {
-	
-	public void testComplex() {
-		Properties properties = setupCommonProperties();
-		RuleBaseConfiguration conf = new RuleBaseConfiguration(properties);
-		// load the process
-		RuleBase ruleBase = createKnowledgeBase(conf,"/entrevistarf.rf");
-		
-		SingleSessionCommandService service = new SingleSessionCommandService(ruleBase);
-		StartProcessCommand startProcessCommand = new StartProcessCommand();
-		startProcessCommand.setProcessId("entrevista");
-		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());
-
-        service = new SingleSessionCommandService(ruleBase);
-        DoActionCommand doActionCmd = new DoActionCommand();
-        doActionCmd.setProcessInstanceId(processInstance.getId());
-        doActionCmd.setActionId(2); //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);
-		System.out.println("Now working with processInstance " + processInstance.getId());
-        
-        
-        service = new SingleSessionCommandService(ruleBase);
-        doActionCmd = new DoActionCommand();
-        doActionCmd.setProcessInstanceId(processInstance.getId());
-        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);
-		System.out.println("Now working with processInstance " + processInstance.getId());
-
-	}
-
-}

Copied: labs/jbossrules/trunk/drools-process/drools-osworkflow/src/test/java/org/drools/osworkflow/test/persistence/ComplexProcessPersistenceTestCase.java (from rev 24981, labs/jbossrules/branches/mfossati/drools-osworkflow/src/test/java/org/drools/osworkflow/test/persistence/ComplexProcessPersistenceTestCase.java)
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-osworkflow/src/test/java/org/drools/osworkflow/test/persistence/ComplexProcessPersistenceTestCase.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-process/drools-osworkflow/src/test/java/org/drools/osworkflow/test/persistence/ComplexProcessPersistenceTestCase.java	2009-01-30 15:27:43 UTC (rev 25023)
@@ -0,0 +1,64 @@
+package org.drools.osworkflow.test.persistence;
+
+import java.util.Properties;
+
+import org.drools.RuleBase;
+import org.drools.RuleBaseConfiguration;
+import org.drools.SessionConfiguration;
+import org.drools.osworkflow.core.command.DoActionCommand;
+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 ComplexProcessPersistenceTestCase extends AbstractJPAPersistenceTestCase {
+	
+	public void testComplex() {
+		Properties properties = setupCommonProperties();
+		RuleBaseConfiguration conf = new RuleBaseConfiguration(properties);
+		// load the process
+		RuleBase ruleBase = createKnowledgeBase(conf,"/entrevistarf.rf");
+		
+		SessionConfiguration config = new SessionConfiguration(properties);
+		
+		SingleSessionCommandService service = new SingleSessionCommandService(ruleBase, config);
+		StartProcessCommand startProcessCommand = new StartProcessCommand();
+		startProcessCommand.setProcessId("entrevista");
+		ProcessInstance processInstance = (ProcessInstance) service.execute(startProcessCommand);
+		System.out.println("Started process instance " + processInstance.getId());
+
+		service = new SingleSessionCommandService(ruleBase, config);
+        GetProcessInstanceCommand getProcessInstanceCommand = new GetProcessInstanceCommand();
+        getProcessInstanceCommand.setProcessInstanceId(processInstance.getId());
+        processInstance = (ProcessInstance) service.execute(getProcessInstanceCommand);
+        assertNotNull(processInstance);
+		System.out.println("Now working with processInstance " + processInstance.getId());
+
+        service = new SingleSessionCommandService(ruleBase, config);
+        DoActionCommand doActionCmd = new DoActionCommand();
+        doActionCmd.setProcessInstanceId(processInstance.getId());
+        doActionCmd.setActionId(2); //Action to be executed at current step
+        service.execute(doActionCmd);
+        
+        service = new SingleSessionCommandService(ruleBase, config);
+        getProcessInstanceCommand = new GetProcessInstanceCommand();
+        getProcessInstanceCommand.setProcessInstanceId(processInstance.getId());
+        processInstance = (ProcessInstance) service.execute(getProcessInstanceCommand);
+        assertNotNull(processInstance);
+		System.out.println("Now working with processInstance " + processInstance.getId());
+        
+        
+        service = new SingleSessionCommandService(ruleBase, config);
+        doActionCmd = new DoActionCommand();
+        doActionCmd.setProcessInstanceId(processInstance.getId());
+        doActionCmd.setActionId(4); //Action to be executed at current step
+        service.execute(doActionCmd);
+        
+        service = new SingleSessionCommandService(ruleBase, config);
+        getProcessInstanceCommand = new GetProcessInstanceCommand();
+        getProcessInstanceCommand.setProcessInstanceId(processInstance.getId());
+        processInstance = (ProcessInstance) service.execute(getProcessInstanceCommand);
+        assertNull(processInstance);
+	}
+
+}

Deleted: labs/jbossrules/trunk/drools-process/drools-osworkflow/src/test/java/org/drools/osworkflow/test/persistence/OSWorkFlowPersistenceSplitJoinTestCase.java
===================================================================
--- labs/jbossrules/branches/mfossati/drools-osworkflow/src/test/java/org/drools/osworkflow/test/persistence/OSWorkFlowPersistenceSplitJoinTestCase.java	2009-01-28 17:47:14 UTC (rev 24981)
+++ labs/jbossrules/trunk/drools-process/drools-osworkflow/src/test/java/org/drools/osworkflow/test/persistence/OSWorkFlowPersistenceSplitJoinTestCase.java	2009-01-30 15:27:43 UTC (rev 25023)
@@ -1,101 +0,0 @@
-package org.drools.osworkflow.test.persistence;
-
-import java.util.Properties;
-
-import org.drools.RuleBase;
-import org.drools.RuleBaseConfiguration;
-import org.drools.osworkflow.core.command.DoActionCommand;
-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 OSWorkFlowPersistenceSplitJoinTestCase extends AbstractJPAPersistenceTestCase {
-
-
-	public void testPersistence() {
-		Properties properties = setupCommonProperties();
-		RuleBaseConfiguration conf = new RuleBaseConfiguration(properties);
-		// load the process
-		RuleBase ruleBase = createKnowledgeBase(conf,"/simple2rf.rf");
-
-		SingleSessionCommandService service = new SingleSessionCommandService(ruleBase);
-		StartProcessCommand startProcessCommand = new StartProcessCommand();
-		startProcessCommand.setProcessId("simple2");
-		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("Active", 
-    			((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
-        service.execute(doActionCmd);
-        
-        
-        service = new SingleSessionCommandService(ruleBase);
-        getProcessInstanceCommand = new GetProcessInstanceCommand();
-        getProcessInstanceCommand.setProcessInstanceId(processInstance.getId());
-        processInstance = (ProcessInstance) service.execute(getProcessInstanceCommand);
-        assertNotNull(processInstance);
-        
-        service = new SingleSessionCommandService(ruleBase);
-        doActionCmd = new DoActionCommand();
-        doActionCmd.setProcessInstanceId(processInstance.getId());
-        doActionCmd.setActionId(3); //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);
-        
-        service = new SingleSessionCommandService(ruleBase);
-        doActionCmd = new DoActionCommand();
-        doActionCmd.setProcessInstanceId(processInstance.getId());
-        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("Active", 
-    			((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
-        service.execute(doActionCmd);
-        
-        
-        service = new SingleSessionCommandService(ruleBase);
-        getProcessInstanceCommand = new GetProcessInstanceCommand();
-        getProcessInstanceCommand.setProcessInstanceId(processInstance.getId());
-        processInstance = (ProcessInstance) service.execute(getProcessInstanceCommand);
-        assertNull(processInstance);
-        
-	}
-
-
-
-
-}

Copied: labs/jbossrules/trunk/drools-process/drools-osworkflow/src/test/java/org/drools/osworkflow/test/persistence/OSWorkFlowPersistenceSplitJoinTestCase.java (from rev 24981, labs/jbossrules/branches/mfossati/drools-osworkflow/src/test/java/org/drools/osworkflow/test/persistence/OSWorkFlowPersistenceSplitJoinTestCase.java)
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-osworkflow/src/test/java/org/drools/osworkflow/test/persistence/OSWorkFlowPersistenceSplitJoinTestCase.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-process/drools-osworkflow/src/test/java/org/drools/osworkflow/test/persistence/OSWorkFlowPersistenceSplitJoinTestCase.java	2009-01-30 15:27:43 UTC (rev 25023)
@@ -0,0 +1,105 @@
+package org.drools.osworkflow.test.persistence;
+
+import java.util.Properties;
+
+import org.drools.RuleBase;
+import org.drools.RuleBaseConfiguration;
+import org.drools.SessionConfiguration;
+import org.drools.osworkflow.core.command.DoActionCommand;
+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 OSWorkFlowPersistenceSplitJoinTestCase extends AbstractJPAPersistenceTestCase {
+
+
+	public void testPersistence() {
+		Properties properties = setupCommonProperties();
+		RuleBaseConfiguration conf = new RuleBaseConfiguration(properties);
+		// load the process
+		RuleBase ruleBase = createKnowledgeBase(conf,"/simple2rf.rf");
+		
+		SessionConfiguration config = new SessionConfiguration(properties);
+
+
+		SingleSessionCommandService service = new SingleSessionCommandService(ruleBase, config);
+		StartProcessCommand startProcessCommand = new StartProcessCommand();
+		startProcessCommand.setProcessId("simple2");
+		ProcessInstance processInstance = (ProcessInstance) service.execute(startProcessCommand);
+		System.out.println("Started process instance " + processInstance.getId());
+
+		service = new SingleSessionCommandService(ruleBase, config);
+        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("Active", 
+    			((StepNodeInstance)
+    					((OSWorkflowProcessInstance)processInstance)
+    							.getNodeInstances().iterator().next()).getStatus());
+        
+        service = new SingleSessionCommandService(ruleBase, config);
+        DoActionCommand doActionCmd = new DoActionCommand();
+        doActionCmd.setProcessInstanceId(processInstance.getId());
+        doActionCmd.setActionId(2); //Action to be executed at current step
+        service.execute(doActionCmd);
+        
+        
+        service = new SingleSessionCommandService(ruleBase, config);
+        getProcessInstanceCommand = new GetProcessInstanceCommand();
+        getProcessInstanceCommand.setProcessInstanceId(processInstance.getId());
+        processInstance = (ProcessInstance) service.execute(getProcessInstanceCommand);
+        assertNotNull(processInstance);
+        
+        service = new SingleSessionCommandService(ruleBase, config);
+        doActionCmd = new DoActionCommand();
+        doActionCmd.setProcessInstanceId(processInstance.getId());
+        doActionCmd.setActionId(3); //Action to be executed at current step
+        service.execute(doActionCmd);
+		
+        service = new SingleSessionCommandService(ruleBase, config);
+        getProcessInstanceCommand = new GetProcessInstanceCommand();
+        getProcessInstanceCommand.setProcessInstanceId(processInstance.getId());
+        processInstance = (ProcessInstance) service.execute(getProcessInstanceCommand);
+        assertNotNull(processInstance);
+        
+        service = new SingleSessionCommandService(ruleBase, config);
+        doActionCmd = new DoActionCommand();
+        doActionCmd.setProcessInstanceId(processInstance.getId());
+        doActionCmd.setActionId(4); //Action to be executed at current step
+        service.execute(doActionCmd);
+        
+        service = new SingleSessionCommandService(ruleBase, config);
+        getProcessInstanceCommand = new GetProcessInstanceCommand();
+        getProcessInstanceCommand.setProcessInstanceId(processInstance.getId());
+        processInstance = (ProcessInstance) service.execute(getProcessInstanceCommand);
+        assertNotNull(processInstance);
+        
+        assertEquals("Active", 
+    			((StepNodeInstance)
+    					((OSWorkflowProcessInstance)processInstance)
+    							.getNodeInstances().iterator().next()).getStatus());
+        
+        service = new SingleSessionCommandService(ruleBase, config);
+        doActionCmd = new DoActionCommand();
+        doActionCmd.setProcessInstanceId(processInstance.getId());
+        doActionCmd.setActionId(5); //Action to be executed at current step
+        service.execute(doActionCmd);
+        
+        
+        service = new SingleSessionCommandService(ruleBase, config);
+        getProcessInstanceCommand = new GetProcessInstanceCommand();
+        getProcessInstanceCommand.setProcessInstanceId(processInstance.getId());
+        processInstance = (ProcessInstance) service.execute(getProcessInstanceCommand);
+        assertNull(processInstance);
+        
+	}
+
+
+
+
+}

Deleted: labs/jbossrules/trunk/drools-process/drools-osworkflow/src/test/java/org/drools/osworkflow/test/persistence/OSWorkFlowPersistenceTestCase.java
===================================================================
--- labs/jbossrules/branches/mfossati/drools-osworkflow/src/test/java/org/drools/osworkflow/test/persistence/OSWorkFlowPersistenceTestCase.java	2009-01-28 17:47:14 UTC (rev 24981)
+++ labs/jbossrules/trunk/drools-process/drools-osworkflow/src/test/java/org/drools/osworkflow/test/persistence/OSWorkFlowPersistenceTestCase.java	2009-01-30 15:27:43 UTC (rev 25023)
@@ -1,81 +0,0 @@
-package org.drools.osworkflow.test.persistence;
-
-import java.util.Properties;
-
-import org.drools.RuleBase;
-import org.drools.RuleBaseConfiguration;
-import org.drools.osworkflow.core.command.DoActionCommand;
-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 OSWorkFlowPersistenceTestCase extends AbstractJPAPersistenceTestCase {
-
-
-	public void testPersistence() {
-		Properties properties = setupCommonProperties();
-		RuleBaseConfiguration conf = new RuleBaseConfiguration(properties);
-		// load the process
-		RuleBase ruleBase = createKnowledgeBase(conf,"/simplerf.rf");
-
-		SingleSessionCommandService service = new SingleSessionCommandService(ruleBase);
-		StartProcessCommand startProcessCommand = new StartProcessCommand();
-		startProcessCommand.setProcessId("simple");
-		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("Queued", 
-    			((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
-        service.execute(doActionCmd);
-        
-        
-        service = new SingleSessionCommandService(ruleBase);
-        getProcessInstanceCommand = new GetProcessInstanceCommand();
-        getProcessInstanceCommand.setProcessInstanceId(processInstance.getId());
-        processInstance = (ProcessInstance) service.execute(getProcessInstanceCommand);
-        assertNotNull(processInstance);
-        
-        assertEquals("Underway", 
-        			((StepNodeInstance)
-        					((OSWorkflowProcessInstance)processInstance)
-        							.getNodeInstances().iterator().next()).getStatus());
-        System.out.println("Now working with processInstance " + processInstance.getId());
-        
-        
-        service = new SingleSessionCommandService(ruleBase);
-        doActionCmd = new DoActionCommand();
-        doActionCmd.setProcessInstanceId(processInstance.getId());
-        doActionCmd.setActionId(3); //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);
-        //Because it is finished the instance will not longer be available 
-        assertNull(processInstance);
-		
-
-	}
-
-
-
-
-}

Copied: labs/jbossrules/trunk/drools-process/drools-osworkflow/src/test/java/org/drools/osworkflow/test/persistence/OSWorkFlowPersistenceTestCase.java (from rev 24981, labs/jbossrules/branches/mfossati/drools-osworkflow/src/test/java/org/drools/osworkflow/test/persistence/OSWorkFlowPersistenceTestCase.java)
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-osworkflow/src/test/java/org/drools/osworkflow/test/persistence/OSWorkFlowPersistenceTestCase.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-process/drools-osworkflow/src/test/java/org/drools/osworkflow/test/persistence/OSWorkFlowPersistenceTestCase.java	2009-01-30 15:27:43 UTC (rev 25023)
@@ -0,0 +1,84 @@
+package org.drools.osworkflow.test.persistence;
+
+import java.util.Properties;
+
+import org.drools.RuleBase;
+import org.drools.RuleBaseConfiguration;
+import org.drools.SessionConfiguration;
+import org.drools.osworkflow.core.command.DoActionCommand;
+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 OSWorkFlowPersistenceTestCase extends AbstractJPAPersistenceTestCase {
+
+
+	public void testPersistence() {
+		Properties properties = setupCommonProperties();
+		RuleBaseConfiguration conf = new RuleBaseConfiguration(properties);
+		// load the process
+		RuleBase ruleBase = createKnowledgeBase(conf,"/simplerf.rf");
+
+		SessionConfiguration config = new SessionConfiguration(properties);
+		
+		SingleSessionCommandService service = new SingleSessionCommandService(ruleBase,config);
+		StartProcessCommand startProcessCommand = new StartProcessCommand();
+		startProcessCommand.setProcessId("simple");
+		ProcessInstance processInstance = (ProcessInstance) service.execute(startProcessCommand);
+		System.out.println("Started process instance " + processInstance.getId());
+
+		service = new SingleSessionCommandService(ruleBase, config);
+        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("Queued", 
+    			((StepNodeInstance)
+    					((OSWorkflowProcessInstance)processInstance)
+    							.getNodeInstances().iterator().next()).getStatus());
+        
+        service = new SingleSessionCommandService(ruleBase, config);
+        DoActionCommand doActionCmd = new DoActionCommand();
+        doActionCmd.setProcessInstanceId(processInstance.getId());
+        doActionCmd.setActionId(2); //Action to be executed at current step
+        service.execute(doActionCmd);
+        
+        
+        service = new SingleSessionCommandService(ruleBase, config);
+        getProcessInstanceCommand = new GetProcessInstanceCommand();
+        getProcessInstanceCommand.setProcessInstanceId(processInstance.getId());
+        processInstance = (ProcessInstance) service.execute(getProcessInstanceCommand);
+        assertNotNull(processInstance);
+        
+        assertEquals("Underway", 
+        			((StepNodeInstance)
+        					((OSWorkflowProcessInstance)processInstance)
+        							.getNodeInstances().iterator().next()).getStatus());
+        System.out.println("Now working with processInstance " + processInstance.getId());
+        
+        
+        service = new SingleSessionCommandService(ruleBase, config);
+        doActionCmd = new DoActionCommand();
+        doActionCmd.setProcessInstanceId(processInstance.getId());
+        doActionCmd.setActionId(3); //Action to be executed at current step
+        service.execute(doActionCmd);
+        
+        
+        service = new SingleSessionCommandService(ruleBase, config);
+        getProcessInstanceCommand = new GetProcessInstanceCommand();
+        getProcessInstanceCommand.setProcessInstanceId(processInstance.getId());
+        processInstance = (ProcessInstance) service.execute(getProcessInstanceCommand);
+        //Because it is finished the instance will not longer be available 
+        assertNull(processInstance);
+		
+
+	}
+
+
+
+
+}

Deleted: labs/jbossrules/trunk/drools-process/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	2009-01-28 17:47:14 UTC (rev 24981)
+++ labs/jbossrules/trunk/drools-process/drools-osworkflow/src/test/java/org/drools/osworkflow/test/persistence/OSWorkFlowPersistenceWFPTestCase.java	2009-01-30 15:27:43 UTC (rev 25023)
@@ -1,104 +0,0 @@
-package org.drools.osworkflow.test.persistence;
-
-/*Author: salaboy */
-
-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");
-		/*Persistence test of variables
-		 * 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);
-        
-        
-        
-      
-        
-	}
-
-
-
-
-}

Copied: labs/jbossrules/trunk/drools-process/drools-osworkflow/src/test/java/org/drools/osworkflow/test/persistence/OSWorkFlowPersistenceWFPTestCase.java (from rev 24981, labs/jbossrules/branches/mfossati/drools-osworkflow/src/test/java/org/drools/osworkflow/test/persistence/OSWorkFlowPersistenceWFPTestCase.java)
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-osworkflow/src/test/java/org/drools/osworkflow/test/persistence/OSWorkFlowPersistenceWFPTestCase.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-process/drools-osworkflow/src/test/java/org/drools/osworkflow/test/persistence/OSWorkFlowPersistenceWFPTestCase.java	2009-01-30 15:27:43 UTC (rev 25023)
@@ -0,0 +1,97 @@
+package org.drools.osworkflow.test.persistence;
+
+/*Author: salaboy */
+
+import java.util.Properties;
+
+import org.drools.RuleBase;
+import org.drools.RuleBaseConfiguration;
+import org.drools.SessionConfiguration;
+import org.drools.osworkflow.core.command.DoActionCommand;
+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");
+
+		SessionConfiguration config = new SessionConfiguration(properties);
+
+		SingleSessionCommandService service = new SingleSessionCommandService(
+				ruleBase, config);
+		StartProcessCommand startProcessCommand = new StartProcessCommand();
+		startProcessCommand.setProcessId("wfp");
+		/*
+		 * Persistence test of variables 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, config);
+		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, config);
+		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, config);
+		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, config);
+		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, config);
+		getProcessInstanceCommand = new GetProcessInstanceCommand();
+		getProcessInstanceCommand.setProcessInstanceId(processInstance.getId());
+		processInstance = (ProcessInstance) service
+				.execute(getProcessInstanceCommand);
+		assertNull(processInstance);
+
+	}
+
+}

Copied: labs/jbossrules/trunk/drools-process/drools-osworkflow/src/test/java/org/drools/suite (from rev 24981, labs/jbossrules/branches/mfossati/drools-osworkflow/src/test/java/org/drools/suite)

Deleted: labs/jbossrules/trunk/drools-process/drools-osworkflow/src/test/java/org/drools/suite/SimpleTestSuite.java
===================================================================
--- labs/jbossrules/branches/mfossati/drools-osworkflow/src/test/java/org/drools/suite/SimpleTestSuite.java	2009-01-28 17:47:14 UTC (rev 24981)
+++ labs/jbossrules/trunk/drools-process/drools-osworkflow/src/test/java/org/drools/suite/SimpleTestSuite.java	2009-01-30 15:27:43 UTC (rev 25023)
@@ -1,19 +0,0 @@
-package org.drools.suite;
-
-import junit.framework.TestCase;
-import junit.framework.TestSuite;
-
-import org.drools.osworkflow.test.Simple2ProcessTest;
-import org.drools.osworkflow.test.SimpleProcessTest;
-
-public class SimpleTestSuite extends TestCase {
-	
-	public static TestSuite suite()
-    {
-        TestSuite suite = new TestSuite();       
-        suite.addTestSuite(SimpleProcessTest.class);
-        suite.addTestSuite(Simple2ProcessTest.class);
-        return suite;
-    }
-
-}

Copied: labs/jbossrules/trunk/drools-process/drools-osworkflow/src/test/java/org/drools/suite/SimpleTestSuite.java (from rev 24981, labs/jbossrules/branches/mfossati/drools-osworkflow/src/test/java/org/drools/suite/SimpleTestSuite.java)
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-osworkflow/src/test/java/org/drools/suite/SimpleTestSuite.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-process/drools-osworkflow/src/test/java/org/drools/suite/SimpleTestSuite.java	2009-01-30 15:27:43 UTC (rev 25023)
@@ -0,0 +1,19 @@
+package org.drools.suite;
+
+import junit.framework.TestCase;
+import junit.framework.TestSuite;
+
+import org.drools.osworkflow.test.Simple2ProcessTest;
+import org.drools.osworkflow.test.SimpleProcessTest;
+
+public class SimpleTestSuite extends TestCase {
+	
+	public static TestSuite suite()
+    {
+        TestSuite suite = new TestSuite();       
+        suite.addTestSuite(SimpleProcessTest.class);
+        suite.addTestSuite(Simple2ProcessTest.class);
+        return suite;
+    }
+
+}

Copied: labs/jbossrules/trunk/drools-process/drools-osworkflow/src/test/resources/CV.xml (from rev 24981, labs/jbossrules/branches/mfossati/drools-osworkflow/src/test/resources/CV.xml)
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-osworkflow/src/test/resources/CV.xml	                        (rev 0)
+++ labs/jbossrules/trunk/drools-process/drools-osworkflow/src/test/resources/CV.xml	2009-01-30 15:27:43 UTC (rev 25023)
@@ -0,0 +1,817 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<workflow>
+   <initial-actions>
+      <action id="1" name="Curriculum Vitae Ingresado">
+         <pre-functions>
+            <function type="class">
+               <arg name="class.name">dummy.EntityPropertyFunctionProvider</arg>
+               <arg name="propertyName">CUV.DatosConsultorio.FilialConsultorio</arg>
+               <arg name="variableName">filialTramite</arg>
+            </function>
+         </pre-functions>
+         <results>
+            <unconditional-result old-status="Finished" status="Curriculum Vitae Ingresado" step="1" owner="JA-FILIAL-${filialTramite}"/>
+         </results>
+      </action>
+   </initial-actions>
+   <steps>
+
+      <step id="1" name="A evaluar por Servicios">
+         <actions>
+
+			<action id="3" name="Pasar a Auditor Medico">
+			<pre-functions>
+				<function type="class">
+					<arg name="class.name">dummy.EntityPropertyFunctionProvider</arg>
+					<arg name="propertyName">CUV.DatosConsultorio.FilialConsultorio</arg>
+					<arg name="variableName">filialTramite</arg>
+				</function>
+			</pre-functions>
+				<restrict-to>
+					<conditions type="AND">
+					<condition type="beanshell">
+					<arg name="script">true</arg>
+					</condition>
+					<condition type="class">
+					<arg name="class.name">dummy.GroupMembershipCondition</arg>
+					<arg name="GROUP_KEY">JA</arg>
+					</condition>
+					</conditions>
+				</restrict-to>
+					<results>
+					<unconditional-result old-status="CV derivado por Jefe de auditores" status="CV a analizar por Auditoria Medica" step="2" owner="AM-FILIAL-${filialTramite}"/>
+					</results>
+				<post-functions>
+					<function type="class">
+					<arg name="class.name">dummy.AutomaticReleaseFunctionProvider</arg>
+					<arg name="propertyName">nothing</arg>
+					<arg name="variableName">nothing</arg>
+					</function>
+				</post-functions>		
+			</action>
+
+
+            <action id="7" name="Rechazar">
+		         <pre-functions>
+			          <function type="class">
+				      <arg name="class.name">dummy.EntityPropertyFunctionProvider</arg>
+					  <arg name="propertyName">CUV.DatosConsultorio.FilialConsultorio</arg>
+					  <arg name="variableName">filialTramite</arg>
+						</function>
+				  </pre-functions>
+				  <restrict-to>
+						<conditions type="AND">
+						<condition type="beanshell">
+					    <arg name="script">true</arg>
+						</condition>
+						<condition type="class">
+					    <arg name="class.name">dummy.GroupMembershipCondition</arg>
+					    <arg name="GROUP_KEY">JA</arg>
+						</condition>
+						</conditions>
+					</restrict-to>
+					<results>
+						<unconditional-result old-status="Pedido de Rechazo Jefe de Auditores" status="A Evaluar por Servicios" step="1" owner="JA-FILIAL-${filialTramite}"/>
+					</results>
+						 	<post-functions>
+				<function type="class">
+					<arg name="class.name">dummy.AutomaticReleaseFunctionProvider</arg>
+					<arg name="propertyName">nothing</arg>
+					 <arg name="variableName">nothing</arg>
+				 </function>
+			</post-functions>	
+            </action>
+
+			<action id="20" name="Confirmar Rechazo">
+					<restrict-to>
+						<conditions type="AND">
+						<condition type="beanshell">
+						<arg name="script">true</arg>
+						</condition>
+						<condition type="class">
+					    <arg name="class.name">dummy.CallerPrincipalCondition</arg>
+					    <arg name="PRINCIPAL">GEN at CVP</arg>
+						</condition>
+						</conditions>
+					</restrict-to>
+					<pre-functions>
+						<function type="class">
+						<arg name="class.name">dummy.EntityPropertyFunctionProvider</arg>
+						<arg name="propertyName">CUV.DatosConsultorio.FilialConsultorio</arg>
+						<arg name="variableName">filialTramite</arg>
+						</function>
+					</pre-functions>
+					<results>
+						<unconditional-result old-status="Confirma Rechaza Jefe de Auditores" status="Rechazado por Servicios, Carta no impresa" step="25" owner="AM-FILIAL-${filialTramite}"/>
+					</results>
+					<post-functions>
+						<function type="class">
+							<arg name="class.name">dummy.AutomaticReleaseFunctionProvider</arg>
+							<arg name="propertyName">nothing</arg>
+							<arg name="variableName">nothing</arg>
+						</function>
+					</post-functions>	
+				</action>
+
+            <action id="12" name="Rechazar y excepcionar">
+               <pre-functions>
+                  <function type="class">
+                     <arg name="class.name">dummy.EntityPropertyFunctionProvider</arg>
+                     <arg name="propertyName">CUV.DatosConsultorio.FilialConsultorio</arg>
+                     <arg name="variableName">filialTramite</arg>
+                  </function>
+               </pre-functions>
+				<restrict-to>
+					<conditions type="AND">
+						<condition type="beanshell">
+					       <arg name="script">true</arg>
+						</condition>
+						<condition type="class">
+					       <arg name="class.name">dummy.GroupMembershipCondition</arg>
+					       <arg name="GROUP_KEY">JA</arg>
+						</condition>
+					</conditions>
+				</restrict-to>
+				<results>
+                  <unconditional-result old-status="Pedido de Rechazo y excepcion por Jefe de Auditores" status="A Evaluar por Servicios" step="1" owner="JA-FILIAL-${filialTramite}"/>
+				</results>
+					 	<post-functions>
+				<function type="class">
+					<arg name="class.name">dummy.AutomaticReleaseFunctionProvider</arg>
+					<arg name="propertyName">nothing</arg>
+					 <arg name="variableName">nothing</arg>
+				 </function>
+			</post-functions>	
+            </action>
+
+
+            <action id="9" name="Aprobar">
+               <pre-functions>
+                  <function type="class">
+                     <arg name="class.name">dummy.EntityPropertyFunctionProvider</arg>
+                     <arg name="propertyName">CUV.DatosConsultorio.FilialConsultorio</arg>
+                     <arg name="variableName">filialTramite</arg>
+                  </function>
+               </pre-functions>
+				<restrict-to>
+					<conditions type="AND">
+						<condition type="beanshell">
+					       <arg name="script">true</arg>
+						</condition>
+						<condition type="class">
+					       <arg name="class.name">dummy.GroupMembershipCondition</arg>
+					       <arg name="GROUP_KEY">JA</arg>
+						</condition>
+					</conditions>
+				</restrict-to>
+               <results>
+                  <unconditional-result old-status="Aprobado por Jefe de Auditores" status="Esperando Auditoria Tecnica/Calidad" step="27" owner="AM-FILIAL-${filialTramite}"/>
+               </results>
+			   	<post-functions>
+				<function type="class">
+					<arg name="class.name">dummy.AutomaticReleaseFunctionProvider</arg>
+					<arg name="propertyName">nothing</arg>
+					 <arg name="variableName">nothing</arg>
+				 </function>
+				</post-functions>	
+		     </action>
+
+			<action id="21" name="Confirmar Aprobacion">
+				<restrict-to>
+					<conditions type="AND">
+						<condition type="beanshell">
+					       <arg name="script">true</arg>
+					</condition>
+						 <condition type="class">
+					       <arg name="class.name">dummy.CallerPrincipalCondition</arg>
+					       <arg name="PRINCIPAL">GEN at CVP</arg>
+					</condition>
+					</conditions>
+				</restrict-to>
+               <pre-functions>
+                  <function type="class">
+                     <arg name="class.name">dummy.EntityPropertyFunctionProvider</arg>
+                     <arg name="propertyName">CUV.DatosConsultorio.FilialConsultorio</arg>
+                     <arg name="variableName">filialTramite</arg>
+                  </function>
+               </pre-functions>
+			   <results>
+                  <unconditional-result old-status="Confirma Aprobacion Jefe de Auditores" status="Esperando Auditoria Tecnica/Calidad" step="27" owner="AM-FILIAL-${filialTramite}"/>
+               </results>
+			   <post-functions>
+				<function type="class">
+					<arg name="class.name">dummy.AutomaticReleaseFunctionProvider</arg>
+					<arg name="propertyName">nothing</arg>
+					 <arg name="variableName">nothing</arg>
+				 </function>
+				</post-functions>	
+            </action>
+	 		 
+            <action id="11" name="Aprobar y excepcionar">
+               <pre-functions>
+                  <function type="class">
+                     <arg name="class.name">dummy.EntityPropertyFunctionProvider</arg>
+                     <arg name="propertyName">CUV.DatosConsultorio.FilialConsultorio</arg>
+                     <arg name="variableName">filialTramite</arg>
+                  </function>
+               </pre-functions>
+				<restrict-to>
+					<conditions type="AND">
+						<condition type="beanshell">
+					       <arg name="script">true</arg>
+						</condition>
+						<condition type="class">
+					       <arg name="class.name">dummy.GroupMembershipCondition</arg>
+					       <arg name="GROUP_KEY">JA</arg>
+						</condition>
+					</conditions>
+				</restrict-to>
+		           <results>
+			          <unconditional-result old-status="Pedido de aprobacion y excepcion por Jefe de Auditores" status="A Evaluar por Servicios" step="1" owner="JA-FILIAL-${filialTramite}"/>
+				   </results>
+				   	 	<post-functions>
+				<function type="class">
+					<arg name="class.name">dummy.AutomaticReleaseFunctionProvider</arg>
+					<arg name="propertyName">nothing</arg>
+					 <arg name="variableName">nothing</arg>
+				 </function>
+			</post-functions>	
+			 </action>
+
+         <action id="24" name="Finalizar ya es Prestador">
+               <pre-functions>
+                  <function type="class">
+                     <arg name="class.name">dummy.EntityPropertyFunctionProvider</arg>
+                     <arg name="propertyName">CUV.DatosConsultorio.FilialConsultorio</arg>
+                     <arg name="variableName">filialTramite</arg>
+                  </function>
+               </pre-functions>
+				<restrict-to>
+					<conditions type="AND">
+						<condition type="beanshell">
+					       <arg name="script">true</arg>
+						</condition>
+						<condition type="class">
+					       <arg name="class.name">dummy.GroupMembershipCondition</arg>
+					       <arg name="GROUP_KEY">JA</arg>
+						</condition>
+					</conditions>
+				</restrict-to>
+               <results>
+                  <unconditional-result old-status="Finalizado es prestador" status="Finalizado es prestador" step="4" owner="AE-FILIAL-${filialTramite}"/>
+               </results>
+				<post-functions>
+				<function type="class">
+					<arg name="class.name">dummy.AutomaticReleaseFunctionProvider</arg>
+					<arg name="propertyName">nothing</arg>
+					 <arg name="variableName">nothing</arg>
+				 </function>
+			</post-functions>		
+			</action>
+         </actions>
+   	  </step>
+      
+	  <step id="2" name="A evaluar por Auditor Medico">
+         <pre-functions>
+            <function type="class">
+               <arg name="class.name">dummy.EntityPropertyFunctionProvider</arg>
+               <arg name="propertyName">CUV.DatosConsultorio.FilialConsultorio</arg>
+               <arg name="variableName">filialTramite</arg>
+            </function>
+         </pre-functions>
+
+         <actions>
+       
+			<action id="14" name="Aprobar por Auditoria Medica">
+               <pre-functions>
+                  <function type="class">
+                     <arg name="class.name">dummy.EntityPropertyFunctionProvider</arg>
+                     <arg name="propertyName">CUV.DatosConsultorio.FilialConsultorio</arg>
+                     <arg name="variableName">filialTramite</arg>
+                  </function>
+               </pre-functions>
+			<restrict-to>
+					<conditions type="AND">
+						<condition type="beanshell">
+					       <arg name="script">true</arg>
+						</condition>
+						<condition type="class">
+					       <arg name="class.name">dummy.GroupMembershipCondition</arg>
+					       <arg name="GROUP_KEY">AM</arg>
+						</condition>
+					</conditions>
+			</restrict-to>
+               <results>
+                  <unconditional-result old-status="Aprueba Auditor Medico" status="Aprobado por Auditoria Medica" step="1" owner="JA-FILIAL-${filialTramite}"/>
+               </results>
+			   	<post-functions>
+				<function type="class">
+					<arg name="class.name">dummy.AutomaticReleaseFunctionProvider</arg>
+					<arg name="propertyName">nothing</arg>
+					 <arg name="variableName">nothing</arg>
+				 </function>
+			</post-functions>	
+            </action>
+            
+		
+			<action id="15" name="Rechazar auditor Medico">
+               <pre-functions>
+                  <function type="class">
+                     <arg name="class.name">dummy.EntityPropertyFunctionProvider</arg>
+                     <arg name="propertyName">CUV.DatosConsultorio.FilialConsultorio</arg>
+                     <arg name="variableName">filialTramite</arg>
+                  </function>
+               </pre-functions>
+
+			<restrict-to>
+					<conditions type="AND">
+						<condition type="beanshell">
+					       <arg name="script">true</arg>
+						</condition>
+						<condition type="class">
+					       <arg name="class.name">dummy.GroupMembershipCondition</arg>
+					       <arg name="GROUP_KEY">AM</arg>
+						</condition>
+					</conditions>
+			</restrict-to>
+               <results>
+                  <unconditional-result old-status="Rechaza Auditor Medico" status="En evaluacion por Auditoria medica" step="2" owner="AM-FILIAL-${filialTramite}"/>
+               </results>
+			   	 	<post-functions>
+				<function type="class">
+					<arg name="class.name">dummy.AutomaticReleaseFunctionProvider</arg>
+					<arg name="propertyName">nothing</arg>
+					 <arg name="variableName">nothing</arg>
+				 </function>
+			</post-functions>	
+			</action>
+            
+			<action id="23" name="Confirmacion Rechazo auditor Medico">
+				<restrict-to>
+					<conditions type="AND">
+						<condition type="beanshell">
+					       <arg name="script">true</arg>
+					</condition>
+						 <condition type="class">
+					       <arg name="class.name">dummy.CallerPrincipalCondition</arg>
+					       <arg name="PRINCIPAL">GEN at CVP</arg>
+					</condition>
+					</conditions>
+				</restrict-to>
+				<pre-functions>
+                  <function type="class">
+                     <arg name="class.name">dummy.EntityPropertyFunctionProvider</arg>
+                     <arg name="propertyName">CUV.DatosConsultorio.FilialConsultorio</arg>
+                     <arg name="variableName">filialTramite</arg>
+                  </function>
+               </pre-functions>
+				<results>
+                  <unconditional-result old-status="Confirma rechazo Auditor Medico" status="Rechazado por Auditoria  Medica" step="1" owner="JA-FILIAL-${filialTramite}"/>
+               </results>
+			   	   	<post-functions>
+				<function type="class">
+					<arg name="class.name">dummy.AutomaticReleaseFunctionProvider</arg>
+					<arg name="propertyName">nothing</arg>
+					 <arg name="variableName">nothing</arg>
+				 </function>
+			</post-functions>	
+            </action>
+
+			<action id="13" name="Cambiar filial">
+				<restrict-to>
+					<conditions type="AND">
+						<condition type="beanshell">
+					       <arg name="script">true</arg>
+					</condition>
+						 <condition type="class">
+					       <arg name="class.name">dummy.CallerPrincipalCondition</arg>
+					       <arg name="PRINCIPAL">GEN at CVP</arg>
+					</condition>
+					</conditions>
+				</restrict-to>  
+               <pre-functions>
+                  <function type="class">
+                     <arg name="class.name">dummy.EntityPropertyFunctionProvider</arg>
+                     <arg name="propertyName">CUV.DatosConsultorio.FilialConsultorio</arg>
+                     <arg name="variableName">filialTramite</arg>
+                  </function>
+               </pre-functions>
+               <results>
+                  <unconditional-result old-status="Cambio Filial de consultorio" status="Cambio Filial de consultorio" step="1" owner="JA-FILIAL-${filialTramite}"/>
+               </results>
+			   	<post-functions>
+				<function type="class">
+					<arg name="class.name">dummy.AutomaticReleaseFunctionProvider</arg>
+					<arg name="propertyName">nothing</arg>
+					 <arg name="variableName">nothing</arg>
+				 </function>
+			</post-functions>	
+            </action>
+
+		 </actions>
+   	  </step>
+   
+	  
+	  <!-- ESTE PASO NO LO EJECUTA UN USUARIO -->
+      <step id="4" name="Rechazado">
+         <actions>
+
+            <action id="8" name="Cambio de filial">
+				<restrict-to>
+					<conditions type="AND">
+						<condition type="beanshell">
+					       <arg name="script">true</arg>
+					</condition>
+					<condition type="class">
+					       <arg name="class.name">dummy.CallerPrincipalCondition</arg>
+					       <arg name="PRINCIPAL">GEN at CVP</arg>
+					</condition>
+					</conditions>
+				</restrict-to> 
+				<pre-functions>
+                  <function type="class">
+                     <arg name="class.name">dummy.EntityPropertyFunctionProvider</arg>
+                     <arg name="propertyName">CUV.DatosConsultorio.FilialConsultorio</arg>
+                     <arg name="variableName">filialTramite</arg>
+                  </function>
+               </pre-functions>
+               <results>
+                  <unconditional-result old-status="Cambio Filial de consultorio" status="Cambio Filial de consultorio" step="1" owner="JA-FILIAL-${filialTramite}"/>
+               </results>
+			   	<post-functions>
+				<function type="class">
+					<arg name="class.name">dummy.AutomaticReleaseFunctionProvider</arg>
+					<arg name="propertyName">nothing</arg>
+					 <arg name="variableName">nothing</arg>
+				 </function>
+			</post-functions>	
+            </action>
+
+
+            <action id="10" name="Postulante modifica el CV">
+		       <pre-functions>
+                  <function type="class">
+                     <arg name="class.name">dummy.EntityPropertyFunctionProvider</arg>
+                     <arg name="propertyName">CUV.DatosConsultorio.FilialConsultorio</arg>
+                     <arg name="variableName">filialTramite</arg>
+                  </function>
+               </pre-functions>
+               <results>
+                  <unconditional-result old-status="Rechazado" status="Postulante modifica CV" step="1" owner="JA-FILIAL-${filialTramite}"/>
+               </results>
+			   	<post-functions>
+				<function type="class">
+					<arg name="class.name">dummy.AutomaticReleaseFunctionProvider</arg>
+					<arg name="propertyName">nothing</arg>
+					 <arg name="variableName">nothing</arg>
+				 </function>
+			</post-functions>	
+            </action>
+          
+
+			<action id="19" name="Anular rechazo">
+               <pre-functions>
+                  <function type="class">
+                     <arg name="class.name">dummy.EntityPropertyFunctionProvider</arg>
+                     <arg name="propertyName">CUV.DatosConsultorio.FilialConsultorio</arg>
+                     <arg name="variableName">filialTramite</arg>
+                  </function>
+               </pre-functions>
+					<restrict-to>
+					<conditions type="AND">
+						<condition type="beanshell">
+					       <arg name="script">true</arg>
+						</condition>
+						<condition type="class">
+					       <arg name="class.name">dummy.GroupMembershipCondition</arg>
+					       <arg name="GROUP_KEY">AE</arg>
+						</condition>
+					</conditions>
+			</restrict-to>
+
+		       <results>
+                  <unconditional-result old-status="Rechazado" status="Reversion de rechazo" step="1" owner="JA-FILIAL-${filialTramite}"/>
+               </results>
+			   	<post-functions>
+				<function type="class">
+					<arg name="class.name">dummy.AutomaticReleaseFunctionProvider</arg>
+					<arg name="propertyName">nothing</arg>
+					 <arg name="variableName">nothing</arg>
+				 </function>
+			</post-functions>	
+            </action>
+    			 
+		 </actions>
+      </step>
+      
+	  
+
+	  <step id="5" name="Esperando Alta de Prestador">
+         <actions>
+          
+		<action id="16" name="Ingresar numero de Prestador">
+               <pre-functions>
+                  <function type="class">
+                     <arg name="class.name">dummy.EntityPropertyFunctionProvider</arg>
+                     <arg name="propertyName">CUV.DatosConsultorio.FilialConsultorio</arg>
+                     <arg name="variableName">filialTramite</arg>
+                  </function>
+               </pre-functions>
+			<restrict-to>
+					<conditions type="AND">
+						<condition type="beanshell">
+					       <arg name="script">true</arg>
+						</condition>
+						<condition type="class">
+					       <arg name="class.name">dummy.GroupMembershipCondition</arg>
+					       <arg name="GROUP_KEY">AA</arg>
+						</condition>
+					</conditions>
+			</restrict-to>
+			   <results>
+                  <unconditional-result old-status="Pedido de Ingreso numero de prestador" status="Esperando Alta de Prestador" step="05" owner="AA-FILIAL-${filialTramite}"/>
+               </results>
+		 	<post-functions>
+				<function type="class">
+					<arg name="class.name">dummy.AutomaticReleaseFunctionProvider</arg>
+					<arg name="propertyName">nothing</arg>
+					 <arg name="variableName">nothing</arg>
+				 </function>
+			</post-functions>	
+            </action>
+			   
+		<action id="22" name="Confirmacion Ingresar numero">
+				<restrict-to>
+					<conditions type="AND">
+						<condition type="beanshell">
+					       <arg name="script">true</arg>
+					</condition>
+						 <condition type="class">
+					       <arg name="class.name">dummy.CallerPrincipalCondition</arg>
+					       <arg name="PRINCIPAL">GEN at CVP</arg>
+					</condition>
+					</conditions>
+				</restrict-to>
+		          <pre-functions>
+                  <function type="class">
+                     <arg name="class.name">dummy.EntityPropertyFunctionProvider</arg>
+                     <arg name="propertyName">CUV.DatosConsultorio.FilialConsultorio</arg>
+                     <arg name="variableName">filialTramite</arg>
+                  </function>
+               </pre-functions>
+                <results>
+                  <unconditional-result old-status="Ingresa numero de prestador" status="Postulante ingresado" step="17" owner=""/>
+               </results>
+			   	   	<post-functions>
+				<function type="class">
+					<arg name="class.name">dummy.AutomaticReleaseFunctionProvider</arg>
+					<arg name="propertyName">nothing</arg>
+					 <arg name="variableName">nothing</arg>
+				 </function>
+			</post-functions>	
+            </action>
+      
+	
+         </actions>
+      </step>
+
+
+
+<step id="25" name="Pendiente Imprimir Rechazo">
+         <actions>
+            
+			<action id="26" name="Imprimir Carta Rechazo">
+               <pre-functions>
+                  <function type="class">
+                     <arg name="class.name">dummy.EntityPropertyFunctionProvider</arg>
+                     <arg name="propertyName">CUV.DatosConsultorio.FilialConsultorio</arg>
+                     <arg name="variableName">filialTramite</arg>
+                  </function>
+               </pre-functions>
+      
+			<restrict-to>
+					<conditions type="AND">
+						<condition type="beanshell">
+					       <arg name="script">true</arg>
+						</condition>
+						<condition type="class">
+					       <arg name="class.name">dummy.GroupMembershipCondition</arg>
+					       <arg name="GROUP_KEY">AM</arg>
+						</condition>
+					</conditions>
+			</restrict-to>
+			   
+			   <results>
+                  <unconditional-result old-status="Imprimir Carta de Rechazo" status="Rechazado,Carta de rechazo Impresa" step="04" owner="AE-FILIAL-${filialTramite}"/>
+               </results>
+
+					<post-functions>
+				<function type="class">
+					<arg name="class.name">dummy.AutomaticReleaseFunctionProvider</arg>
+					<arg name="propertyName">nothing</arg>
+					 <arg name="variableName">nothing</arg>
+				 </function>
+			</post-functions>	
+           </action>
+
+		<action id="32" name="Anular Rechazo">
+               <pre-functions>
+                  <function type="class">
+                     <arg name="class.name">dummy.EntityPropertyFunctionProvider</arg>
+                     <arg name="propertyName">CUV.DatosConsultorio.FilialConsultorio</arg>
+                     <arg name="variableName">filialTramite</arg>
+                  </function>
+               </pre-functions>
+        
+			<restrict-to>
+					<conditions type="AND">
+						<condition type="beanshell">
+					       <arg name="script">true</arg>
+						</condition>
+						<condition type="class">
+					       <arg name="class.name">dummy.GroupMembershipCondition</arg>
+					       <arg name="GROUP_KEY">AM</arg>
+						</condition>
+					</conditions>
+			</restrict-to>
+			   
+			   <results>
+                  <unconditional-result old-status="Rechazo Anulado" status="Rechazo Anulado" step="01" owner="JA-FILIAL-${filialTramite}"/>
+               </results>
+
+					<post-functions>
+				<function type="class">
+					<arg name="class.name">dummy.AutomaticReleaseFunctionProvider</arg>
+					<arg name="propertyName">nothing</arg>
+					 <arg name="variableName">nothing</arg>
+				 </function>
+			</post-functions>	
+
+            </action>
+
+	
+         </actions>
+      </step>
+
+
+
+
+<step id="27" name="Auditoria de Calidad / Tecnica">
+         <actions>
+            
+			<action id="28" name="Aceptar Auditoria de Calidad / Tecnica">
+               <pre-functions>
+                  <function type="class">
+                     <arg name="class.name">dummy.EntityPropertyFunctionProvider</arg>
+                     <arg name="propertyName">CUV.DatosConsultorio.FilialConsultorio</arg>
+                     <arg name="variableName">filialTramite</arg>
+                  </function>
+               </pre-functions>
+        
+			<restrict-to>
+					<conditions type="AND">
+						<condition type="beanshell">
+					       <arg name="script">true</arg>
+						</condition>
+						<condition type="class">
+					       <arg name="class.name">dummy.GroupMembershipCondition</arg>
+					       <arg name="GROUP_KEY">AM</arg>
+						</condition>
+					</conditions>
+			</restrict-to>
+			   
+			   <results>
+                  <unconditional-result old-status="Auditoria de Calidad/Tecnica realizada" status="Auditoria de Calidad / Tecnica Aprobada" step="30" owner="AA-FILIAL-${filialTramite}"/>
+               </results>
+
+					<post-functions>
+				<function type="class">
+					<arg name="class.name">dummy.AutomaticReleaseFunctionProvider</arg>
+					<arg name="propertyName">nothing</arg>
+					 <arg name="variableName">nothing</arg>
+				 </function>
+			</post-functions>	
+
+            </action>
+	
+	<action id="29" name="Rechazar Auditoria de Calidad / Tecnica">
+               <pre-functions>
+                  <function type="class">
+                     <arg name="class.name">dummy.EntityPropertyFunctionProvider</arg>
+                     <arg name="propertyName">CUV.DatosConsultorio.FilialConsultorio</arg>
+                     <arg name="variableName">filialTramite</arg>
+                  </function>
+               </pre-functions>
+        
+			<restrict-to>
+					<conditions type="AND">
+						<condition type="beanshell">
+					       <arg name="script">true</arg>
+						</condition>
+						<condition type="class">
+					       <arg name="class.name">dummy.GroupMembershipCondition</arg>
+					       <arg name="GROUP_KEY">AM</arg>
+						</condition>
+					</conditions>
+			</restrict-to>
+			   
+			   <results>
+                  <unconditional-result old-status="Auditoria de Calidad/Tecnica rechazada" status="Auditoria de Calidad / Tecnica Rechazada" step="01" owner="JA-FILIAL-${filialTramite}"/>
+               </results>
+
+					<post-functions>
+				<function type="class">
+					<arg name="class.name">dummy.AutomaticReleaseFunctionProvider</arg>
+					<arg name="propertyName">nothing</arg>
+					 <arg name="variableName">nothing</arg>
+				 </function>
+			</post-functions>	
+
+            </action>
+
+
+         </actions>
+      </step>
+
+
+<step id="30" name="Nota de Alta pendiente">
+         <actions>
+            
+			<action id="31" name="Emitir nota de alta">
+               <pre-functions>
+                  <function type="class">
+                     <arg name="class.name">dummy.EntityPropertyFunctionProvider</arg>
+                     <arg name="propertyName">CUV.DatosConsultorio.FilialConsultorio</arg>
+                     <arg name="variableName">filialTramite</arg>
+                  </function>
+               </pre-functions>
+        
+			<restrict-to>
+					<conditions type="AND">
+						<condition type="beanshell">
+					       <arg name="script">true</arg>
+						</condition>
+						<condition type="class">
+					       <arg name="class.name">dummy.GroupMembershipCondition</arg>
+					       <arg name="GROUP_KEY">AA</arg>
+						</condition>
+					</conditions>
+			</restrict-to>
+			   
+			   <results>
+                  <unconditional-result old-status="Nota de Alta realizada" status="Nota de Alta realizada - Esperando Alta" step="05" owner="AA-FILIAL-${filialTramite}"/>
+               </results>
+
+					<post-functions>
+				<function type="class">
+					<arg name="class.name">dummy.AutomaticReleaseFunctionProvider</arg>
+					<arg name="propertyName">nothing</arg>
+					 <arg name="variableName">nothing</arg>
+				 </function>
+			</post-functions>	
+
+            </action>
+
+
+		<action id="18" name="Anular Alta">
+		
+               <pre-functions>
+                  <function type="class">
+                     <arg name="class.name">dummy.EntityPropertyFunctionProvider</arg>
+                     <arg name="propertyName">CUV.DatosConsultorio.FilialConsultorio</arg>
+                     <arg name="variableName">filialTramite</arg>
+                  </function>
+               </pre-functions>
+
+			<restrict-to>
+					<conditions type="AND">
+						<condition type="beanshell">
+					       <arg name="script">true</arg>
+						</condition>
+						<condition type="class">
+					       <arg name="class.name">dummy.GroupMembershipCondition</arg>
+					       <arg name="GROUP_KEY">AA</arg>
+						</condition>
+					</conditions>
+			</restrict-to>
+			   
+			   <results>
+                  <unconditional-result old-status="" status="Anulacion de Alta" step="01" owner="JA-FILIAL-${filialTramite}"/>
+               </results>
+			   	<post-functions>
+				<function type="class">
+					<arg name="class.name">dummy.AutomaticReleaseFunctionProvider</arg>
+					<arg name="propertyName">nothing</arg>
+					 <arg name="variableName">nothing</arg>
+				 </function>
+			</post-functions>	
+            </action>
+	
+         </actions>
+      </step>
+
+
+
+      <step id="17" name="Finalizado"/>
+   </steps>
+</workflow>
\ No newline at end of file

Copied: labs/jbossrules/trunk/drools-process/drools-osworkflow/src/test/resources/entrevista.xml (from rev 24981, labs/jbossrules/branches/mfossati/drools-osworkflow/src/test/resources/entrevista.xml)
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-osworkflow/src/test/resources/entrevista.xml	                        (rev 0)
+++ labs/jbossrules/trunk/drools-process/drools-osworkflow/src/test/resources/entrevista.xml	2009-01-30 15:27:43 UTC (rev 25023)
@@ -0,0 +1,227 @@
+<!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 Entrevista">
+			<pre-functions>
+				<function type="class">
+					<arg name="class.name">org.drools.osworkflow.dummy.DummyFunctionProvider</arg>
+					<arg name="name">EntrevistaSUBA.IdFilial</arg>
+					<arg name="message">filialAsignada</arg>
+				</function>
+			</pre-functions>
+			<results>
+				<unconditional-result old-status="Entrevista Pendiente"
+					status="Entrevista Pendiente" step="1" owner="AO-FILIAL-${filialAsignada}" />
+			</results>
+		</action>
+	</initial-actions>
+	<steps>
+		<step id="1" name="Esperar Afiliado">
+			<actions>
+				<action id="9" name="Cerrar Entrevista">
+					<pre-functions>
+						<function type="class">
+							<arg name="class.name">org.drools.osworkflow.dummy.DummyFunctionProvider</arg>
+							<arg name="name">EntrevistaSUBA.IdFilial</arg>
+							<arg name="message">filialAsignada</arg>
+						</function>
+					</pre-functions>
+					<results>
+						<unconditional-result old-status="Entrevista Cerrada"
+							status="Entrevista Cerrada" step="3" owner="AO-FILIAL-${filialAsignada}" />
+					</results>
+				</action>
+				<action id="2" name="Postergar Llamado">
+					<pre-functions>
+						<function type="class">
+							<arg name="class.name">org.drools.osworkflow.dummy.DummyFunctionProvider</arg>
+							<arg name="name">EntrevistaSUBA.IdFilial</arg>
+							<arg name="message">filialAsignada</arg>
+						</function>
+					</pre-functions>
+					<results>
+						<unconditional-result old-status="Pendiente 1er Contacto con Afiliado"
+							status="Pendiente 1er Contacto con Afiliado" step="2"
+							owner="AO-FILIAL-${filialAsignada}" />
+					</results>
+				</action>
+				<action id="3" name="Replanificar Entrevista">
+					<pre-functions>
+						<function type="class">
+							<arg name="class.name">org.drools.osworkflow.dummy.DummyFunctionProvider</arg>
+							<arg name="name">EntrevistaSUBA.IdFilial</arg>
+							<arg name="message">filialAsignada</arg>
+						</function>
+					</pre-functions>
+					<results>
+						<unconditional-result old-status="Entrevista Pendiente" status="Entrevista Pendiente" step="1" owner="AO-FILIAL-${filialAsignada}" />
+					</results>
+				</action>
+				<action id="10" name="Cerrar sin entrevista">
+					<pre-functions>
+						<function type="class">
+							<arg name="class.name">org.drools.osworkflow.dummy.DummyFunctionProvider</arg>
+							<arg name="name">EntrevistaSUBA.IdFilial</arg>
+							<arg name="message">filialAsignada</arg>
+						</function>
+					</pre-functions>
+					<results>
+						<unconditional-result old-status="Cerrada sin Entrevista" status="Cerrada sin Entrevista" step="3" owner="AO-FILIAL-${filialAsignada}" />
+					</results>
+				</action>
+				<action id="11" name="Confirmar Replanificacion Entrevista">
+					<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.DummyCondition</arg>
+								<arg name="message">GEN at SUB</arg>
+							</condition>
+						</conditions>
+					</restrict-to>
+					<pre-functions>
+						<function type="class">
+							<arg name="class.name">org.drools.osworkflow.dummy.DummyFunctionProvider</arg>
+							<arg name="name">EntrevistaSUBA.IdFilial</arg>
+							<arg name="message">filialAsignada</arg>
+						</function>
+					</pre-functions>
+					<results>
+						<unconditional-result old-status="Entrevista Pendiente"	status="Entrevista Pendiente" step="1" />
+					</results>
+				</action>
+				<action id="12" name="Confirmar Cierre de Entrevista">
+					<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.DummyCondition</arg>
+								<arg name="message">GEN at SUB</arg>
+							</condition>
+						</conditions>
+					</restrict-to>
+					<pre-functions>
+						<function type="class">
+							<arg name="class.name">org.drools.osworkflow.dummy.DummyFunctionProvider</arg>
+							<arg name="name">EntrevistaSUBA.IdFilial</arg>
+							<arg name="message">filialAsignada</arg>
+						</function>
+					</pre-functions>
+					<results>
+						<unconditional-result old-status="Entrevista Cerrada" status="Entrevista Cerrada" step="3" />
+					</results>
+				</action>
+			</actions>
+		</step>
+		<step id="2" name="Esperar 2do Contacto">
+			<actions>
+				<action id="4" name="Cerrar Entrevista">
+					<pre-functions>
+						<function type="class">
+							<arg name="class.name">org.drools.osworkflow.dummy.DummyFunctionProvider</arg>
+							<arg name="name">EntrevistaSUBA.IdFilial</arg>
+							<arg name="message">filialAsignada</arg>
+						</function>
+					</pre-functions>
+					<results>
+						<unconditional-result old-status="Entrevista Cerrada"
+							status="Entrevista Cerrada" step="3" owner="AO-FILIAL-${filialAsignada}" />
+					</results>
+				</action>
+				<action id="5" name="Replanificar">
+					<pre-functions>
+						<function type="class">
+							<arg name="class.name">org.drools.osworkflow.dummy.DummyFunctionProvider</arg>
+							<arg name="name">EntrevistaSUBA.IdFilial</arg>
+							<arg name="message">filialAsignada</arg>
+						</function>
+					</pre-functions>
+					<results>
+						<unconditional-result old-status="Entrevista Pendiente"
+							status="Entrevista Pendiente" step="1" owner="AO-FILIAL-${filialAsignada}" />
+					</results>
+				</action>
+				<action id="6" name="Cerrar sin entrevista">
+					<pre-functions>
+						<function type="class">
+							<arg name="class.name">org.drools.osworkflow.dummy.DummyFunctionProvider</arg>
+							<arg name="name">EntrevistaSUBA.IdFilial</arg>
+							<arg name="message">filialAsignada</arg>
+						</function>
+					</pre-functions>
+					<results>
+						<unconditional-result old-status="Cerrada sin Entrevista"
+							status="Cerrada sin Entrevista" step="3"
+							owner="AO-FILIAL-${filialAsignada}" />
+					</results>
+				</action>
+				<action id="7" name="Cerrar sin contacto">
+					<pre-functions>
+						<function type="class">
+							<arg name="class.name">org.drools.osworkflow.dummy.DummyFunctionProvider</arg>
+							<arg name="name">EntrevistaSUBA.IdFilial</arg>
+							<arg name="message">filialAsignada</arg>
+						</function>
+					</pre-functions>
+					<results>
+						<unconditional-result old-status="Cerrada sin Contacto"
+							status="Cerrada sin Contacto" step="3" owner="AO-FILIAL-${filialAsignada}" />
+					</results>
+				</action>
+				<action id="13" name="Confirmar Replanificacion Entrevista">
+					<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.DummyCondition</arg>
+								<arg name="message">GEN at SUB</arg>
+							</condition>
+						</conditions>
+					</restrict-to>
+					<pre-functions>
+						<function type="class">
+							<arg name="class.name">org.drools.osworkflow.dummy.DummyFunctionProvider</arg>
+							<arg name="name">EntrevistaSUBA.IdFilial</arg>
+							<arg name="message">filialAsignada</arg>
+						</function>
+					</pre-functions>
+					<results>
+						<unconditional-result old-status="Entrevista Pendiente"
+							status="Entrevista Pendiente" step="1" />
+					</results>
+				</action>
+				<action id="14" name="Confirmar Cierre de Entrevista">
+					<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.DummyCondition</arg>
+								<arg name="message">GEN at SUB</arg>
+							</condition>
+						</conditions>
+					</restrict-to>
+					<pre-functions>
+						<function type="class">
+							<arg name="class.name">org.drools.osworkflow.dummy.DummyFunctionProvider</arg>
+							<arg name="name">EntrevistaSUBA.IdFilial</arg>
+							<arg name="message">filialAsignada</arg>
+						</function>
+					</pre-functions>
+					<results>
+						<unconditional-result old-status="Entrevista Cerrada"
+							status="Entrevista Cerrada" step="3" />
+					</results>
+				</action>
+			</actions>
+		</step>
+		<step id="3" name="Cerrado" />
+	</steps>
+</workflow>
\ No newline at end of file

Copied: labs/jbossrules/trunk/drools-process/drools-osworkflow/src/test/resources/entrevistarf.rf (from rev 24981, labs/jbossrules/branches/mfossati/drools-osworkflow/src/test/resources/entrevistarf.rf)
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-osworkflow/src/test/resources/entrevistarf.rf	                        (rev 0)
+++ labs/jbossrules/trunk/drools-process/drools-osworkflow/src/test/resources/entrevistarf.rf	2009-01-30 15:27:43 UTC (rev 25023)
@@ -0,0 +1,233 @@
+<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="entrevista" id="entrevista" package-name="org.drools.osworkflow" >
+
+  <header>
+<initial-actions>
+      <action id="1" name="Crear Entrevista">
+        <pre-functions>
+          <function type="class">
+            <arg name="message">filialAsignada</arg>
+            <arg name="name">EntrevistaSUBA.IdFilial</arg>
+            <arg name="class.name">org.drools.osworkflow.dummy.DummyFunctionProvider</arg>
+          </function>
+        </pre-functions>
+        <results>
+          <unconditional-result old-status="Entrevista Pendiente" status="Entrevista Pendiente" step="1" owner="AO-FILIAL-${filialAsignada}"/>
+        </results>
+      </action>
+    </initial-actions>
+  </header>
+
+  <nodes>
+    <step id="1" name="Esperar Afiliado" >
+      <action id="2" name="Postergar Llamado">
+        <pre-functions>
+          <function type="class">
+            <arg name="message">filialAsignada</arg>
+            <arg name="name">EntrevistaSUBA.IdFilial</arg>
+            <arg name="class.name">org.drools.osworkflow.dummy.DummyFunctionProvider</arg>
+          </function>
+        </pre-functions>
+        <results>
+          <unconditional-result old-status="Pendiente 1er Contacto con Afiliado" status="Pendiente 1er Contacto con Afiliado" step="2" owner="AO-FILIAL-${filialAsignada}"/>
+        </results>
+      </action>
+      <action id="3" name="Replanificar Entrevista">
+        <pre-functions>
+          <function type="class">
+            <arg name="message">filialAsignada</arg>
+            <arg name="name">EntrevistaSUBA.IdFilial</arg>
+            <arg name="class.name">org.drools.osworkflow.dummy.DummyFunctionProvider</arg>
+          </function>
+        </pre-functions>
+        <results>
+          <unconditional-result old-status="Entrevista Pendiente" status="Entrevista Pendiente" step="1" owner="AO-FILIAL-${filialAsignada}"/>
+        </results>
+      </action>
+      <action id="9" name="Cerrar Entrevista">
+        <pre-functions>
+          <function type="class">
+            <arg name="message">filialAsignada</arg>
+            <arg name="name">EntrevistaSUBA.IdFilial</arg>
+            <arg name="class.name">org.drools.osworkflow.dummy.DummyFunctionProvider</arg>
+          </function>
+        </pre-functions>
+        <results>
+          <unconditional-result old-status="Entrevista Cerrada" status="Entrevista Cerrada" step="3" owner="AO-FILIAL-${filialAsignada}"/>
+        </results>
+      </action>
+      <action id="10" name="Cerrar sin entrevista">
+        <pre-functions>
+          <function type="class">
+            <arg name="message">filialAsignada</arg>
+            <arg name="name">EntrevistaSUBA.IdFilial</arg>
+            <arg name="class.name">org.drools.osworkflow.dummy.DummyFunctionProvider</arg>
+          </function>
+        </pre-functions>
+        <results>
+          <unconditional-result old-status="Cerrada sin Entrevista" status="Cerrada sin Entrevista" step="3" owner="AO-FILIAL-${filialAsignada}"/>
+        </results>
+      </action>
+      <action id="11" name="Confirmar Replanificacion Entrevista">
+        <restrict-to>
+          <conditions type="AND">
+            <condition type="beanshell">
+              <arg name="script"><![CDATA[true]]></arg>
+            </condition>
+            <condition type="class">
+              <arg name="message">GEN at SUB</arg>
+              <arg name="class.name">org.drools.osworkflow.dummy.DummyCondition</arg>
+            </condition>
+          </conditions>
+        </restrict-to>
+        <pre-functions>
+          <function type="class">
+            <arg name="message">filialAsignada</arg>
+            <arg name="name">EntrevistaSUBA.IdFilial</arg>
+            <arg name="class.name">org.drools.osworkflow.dummy.DummyFunctionProvider</arg>
+          </function>
+        </pre-functions>
+        <results>
+          <unconditional-result old-status="Entrevista Pendiente" status="Entrevista Pendiente" step="1"/>
+        </results>
+      </action>
+      <action id="12" name="Confirmar Cierre de Entrevista">
+        <restrict-to>
+          <conditions type="AND">
+            <condition type="beanshell">
+              <arg name="script"><![CDATA[true]]></arg>
+            </condition>
+            <condition type="class">
+              <arg name="message">GEN at SUB</arg>
+              <arg name="class.name">org.drools.osworkflow.dummy.DummyCondition</arg>
+            </condition>
+          </conditions>
+        </restrict-to>
+        <pre-functions>
+          <function type="class">
+            <arg name="message">filialAsignada</arg>
+            <arg name="name">EntrevistaSUBA.IdFilial</arg>
+            <arg name="class.name">org.drools.osworkflow.dummy.DummyFunctionProvider</arg>
+          </function>
+        </pre-functions>
+        <results>
+          <unconditional-result old-status="Entrevista Cerrada" status="Entrevista Cerrada" step="3"/>
+        </results>
+      </action>
+    </step>
+    <step id="2" name="Esperar 2do Contacto" >
+      <action id="4" name="Cerrar Entrevista">
+        <pre-functions>
+          <function type="class">
+            <arg name="message">filialAsignada</arg>
+            <arg name="name">EntrevistaSUBA.IdFilial</arg>
+            <arg name="class.name">org.drools.osworkflow.dummy.DummyFunctionProvider</arg>
+          </function>
+        </pre-functions>
+        <results>
+          <unconditional-result old-status="Entrevista Cerrada" status="Entrevista Cerrada" step="3" owner="AO-FILIAL-${filialAsignada}"/>
+        </results>
+      </action>
+      <action id="5" name="Replanificar">
+        <pre-functions>
+          <function type="class">
+            <arg name="message">filialAsignada</arg>
+            <arg name="name">EntrevistaSUBA.IdFilial</arg>
+            <arg name="class.name">org.drools.osworkflow.dummy.DummyFunctionProvider</arg>
+          </function>
+        </pre-functions>
+        <results>
+          <unconditional-result old-status="Entrevista Pendiente" status="Entrevista Pendiente" step="1" owner="AO-FILIAL-${filialAsignada}"/>
+        </results>
+      </action>
+      <action id="6" name="Cerrar sin entrevista">
+        <pre-functions>
+          <function type="class">
+            <arg name="message">filialAsignada</arg>
+            <arg name="name">EntrevistaSUBA.IdFilial</arg>
+            <arg name="class.name">org.drools.osworkflow.dummy.DummyFunctionProvider</arg>
+          </function>
+        </pre-functions>
+        <results>
+          <unconditional-result old-status="Cerrada sin Entrevista" status="Cerrada sin Entrevista" step="3" owner="AO-FILIAL-${filialAsignada}"/>
+        </results>
+      </action>
+      <action id="7" name="Cerrar sin contacto">
+        <pre-functions>
+          <function type="class">
+            <arg name="message">filialAsignada</arg>
+            <arg name="name">EntrevistaSUBA.IdFilial</arg>
+            <arg name="class.name">org.drools.osworkflow.dummy.DummyFunctionProvider</arg>
+          </function>
+        </pre-functions>
+        <results>
+          <unconditional-result old-status="Cerrada sin Contacto" status="Cerrada sin Contacto" step="3" owner="AO-FILIAL-${filialAsignada}"/>
+        </results>
+      </action>
+      <action id="13" name="Confirmar Replanificacion Entrevista">
+        <restrict-to>
+          <conditions type="AND">
+            <condition type="beanshell">
+              <arg name="script"><![CDATA[true]]></arg>
+            </condition>
+            <condition type="class">
+              <arg name="message">GEN at SUB</arg>
+              <arg name="class.name">org.drools.osworkflow.dummy.DummyCondition</arg>
+            </condition>
+          </conditions>
+        </restrict-to>
+        <pre-functions>
+          <function type="class">
+            <arg name="message">filialAsignada</arg>
+            <arg name="name">EntrevistaSUBA.IdFilial</arg>
+            <arg name="class.name">org.drools.osworkflow.dummy.DummyFunctionProvider</arg>
+          </function>
+        </pre-functions>
+        <results>
+          <unconditional-result old-status="Entrevista Pendiente" status="Entrevista Pendiente" step="1"/>
+        </results>
+      </action>
+      <action id="14" name="Confirmar Cierre de Entrevista">
+        <restrict-to>
+          <conditions type="AND">
+            <condition type="beanshell">
+              <arg name="script"><![CDATA[true]]></arg>
+            </condition>
+            <condition type="class">
+              <arg name="message">GEN at SUB</arg>
+              <arg name="class.name">org.drools.osworkflow.dummy.DummyCondition</arg>
+            </condition>
+          </conditions>
+        </restrict-to>
+        <pre-functions>
+          <function type="class">
+            <arg name="message">filialAsignada</arg>
+            <arg name="name">EntrevistaSUBA.IdFilial</arg>
+            <arg name="class.name">org.drools.osworkflow.dummy.DummyFunctionProvider</arg>
+          </function>
+        </pre-functions>
+        <results>
+          <unconditional-result old-status="Entrevista Cerrada" status="Entrevista Cerrada" step="3"/>
+        </results>
+      </action>
+    </step>
+    <step id="3" name="Cerrado" >
+    </step>
+  </nodes>
+
+  <connections>
+    <connection from="2" fromType="5" to="1" toType="Entrevista Pendiente" />
+    <connection from="2" fromType="13" to="1" toType="Entrevista Pendiente" />
+    <connection from="1" fromType="2" to="2" toType="Pendiente 1er Contacto con Afiliado" />
+    <connection from="1" fromType="9" to="3" toType="Entrevista Cerrada" />
+    <connection from="1" fromType="12" to="3" toType="Entrevista Cerrada" />
+    <connection from="2" fromType="4" to="3" toType="Entrevista Cerrada" />
+    <connection from="2" fromType="14" to="3" toType="Entrevista Cerrada" />
+    <connection from="1" fromType="10" to="3" toType="Cerrada sin Entrevista" />
+    <connection from="2" fromType="6" to="3" toType="Cerrada sin Entrevista" />
+    <connection from="2" fromType="7" to="3" toType="Cerrada sin Contacto" />
+  </connections>
+
+</process>

Copied: labs/jbossrules/trunk/drools-process/drools-osworkflow/src/test/resources/example.xml (from rev 24981, labs/jbossrules/branches/mfossati/drools-osworkflow/src/test/resources/example.xml)
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-osworkflow/src/test/resources/example.xml	                        (rev 0)
+++ labs/jbossrules/trunk/drools-process/drools-osworkflow/src/test/resources/example.xml	2009-01-30 15:27:43 UTC (rev 25023)
@@ -0,0 +1,480 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE workflow PUBLIC "-//OpenSymphony Group//DTD OSWorkflow 2.6//EN" "http://www.opensymphony.com/osworkflow/workflow_2_8.dtd">
+<workflow>
+	<initial-actions>
+		<action id="100" name="Start Workflow">
+		<!--
+			<restrict-to>
+				<conditions type="AND">
+					<condition type="beanshell">
+						<arg name="script">true</arg>
+					</condition>
+					<condition type="class">
+						<arg name="class.name">com.opensymphony.workflow.util.OSUserGroupCondition</arg>
+						<arg name="group">foos</arg>
+					</condition>
+				</conditions>
+			</restrict-to> 
+			
+			<validators>
+			 <validator type="beanshell" >
+			  <arg name="script">System.out.println("Validator BEANSHELL");</arg>
+			 </validator>
+			</validators>  -->
+			<pre-functions>
+				<function type="class">
+					<arg name="class.name">com.opensymphony.workflow.util.Caller</arg>
+				</function>
+			</pre-functions>
+			<results>
+				<unconditional-result old-status="Finished" status="Underway" step="1" owner="${caller}"/>
+			</results>
+		</action>
+	</initial-actions>
+	<steps>
+		<step id="1" name="First Draft">
+			<external-permissions>
+				<permission name="permA">
+					<restrict-to>
+						<conditions type="AND">
+							<condition type="class">
+								<arg name="class.name">com.opensymphony.workflow.util.StatusCondition</arg>
+								<arg name="status">Underway</arg>
+							</condition>
+							<condition type="class">
+								<arg name="class.name">com.opensymphony.workflow.util.AllowOwnerOnlyCondition</arg>
+							</condition>
+						</conditions>
+					</restrict-to>
+				</permission>
+			</external-permissions>
+			<actions>
+				<action id="1" name="Finish First Draft">
+					<restrict-to>
+						<conditions type="AND">
+							<condition type="beanshell">
+								<arg name="script">true</arg>
+							</condition>
+							<condition type="class">
+								<arg name="class.name">com.opensymphony.workflow.util.StatusCondition</arg>
+								<arg name="status">Underway</arg>
+							</condition>
+							<!--   <condition type="class">
+								<arg name="class.name">com.opensymphony.workflow.util.AllowOwnerOnlyCondition</arg>
+							</condition> -->
+						</conditions>
+					</restrict-to>
+					<pre-functions>
+						<function type="beanshell">
+							<arg name="script">
+                                String caller = context.getCaller();
+                                propertySet.setString("caller", caller);
+                                boolean test = true;
+                                String yuck = null;
+                                String blah = "987654321";
+                                System.out.println("$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$");
+                            </arg>
+						</function>
+					</pre-functions>
+					<results>
+						<result old-status="Finished" split="1">
+							<conditions type="AND">
+								<condition type="beanshell">
+									<arg name="script">
+									System.out.println(propertySet.getString("caller"));
+									true;
+									</arg>
+								</condition>
+							</conditions>
+							<post-functions>
+								<function type="beanshell">
+									<arg name="script">
+                                        System.out.println("11111111111111");
+                                    </arg>
+								</function>
+							</post-functions>
+						</result>
+						<unconditional-result old-status="Finished" split="2" owner="${caller}"/>
+					</results>
+					<post-functions>
+						<function type="beanshell">
+							<arg name="script">
+                                System.out.println("22222222222222");
+                            </arg>
+						</function>
+                        <!--
+                        <function type="class">
+                            <arg name="class.name">com.opensymphony.workflow.util.ScheduleJob</arg>
+                            <arg name="triggerId">1</arg>
+                            <arg name="jobName">testJob</arg>
+                            <arg name="triggerName">testTrigger</arg>
+                            <arg name="groupName">test</arg>
+
+                            <arg name="repeat">10</arg>
+                            <arg name="repeatDelay">2000</arg>
+                            <arg name="cronExpression">0,5,10,15,20,25,30,35,40,45,50,55 * * * * ?</arg>
+
+                            <arg name="username">test</arg>
+                            <arg name="password">test</arg>
+
+                            <arg name="local">true</arg>
+                            <arg name="schedulerStart">true</arg>
+                        </function>
+                        -->
+					</post-functions>
+				</action>
+			</actions>
+		</step>
+		<step id="2" name="Edit Doc">
+			<external-permissions>
+				<permission name="permB">
+					<restrict-to>
+						<conditions type="AND">
+							<condition type="class">
+								<arg name="class.name">com.opensymphony.workflow.util.StatusCondition</arg>
+								<arg name="status">Underway</arg>
+							</condition>
+							<condition type="class">
+								<arg name="class.name">com.opensymphony.workflow.util.AllowOwnerOnlyCondition</arg>
+							</condition>
+						</conditions>
+					</restrict-to>
+
+				</permission>
+			</external-permissions>
+			<actions>
+				<action id="2" name="Sign Up For Editing">
+					<restrict-to>
+						<conditions type="AND">
+							<condition type="class">
+								<arg name="class.name">com.opensymphony.workflow.util.StatusCondition</arg>
+								<arg name="status">Queued</arg>
+							</condition>
+							<condition type="class">
+								<arg name="class.name">com.opensymphony.workflow.util.OSUserGroupCondition</arg>
+								<arg name="group">bars</arg>
+							</condition>
+						</conditions>
+					</restrict-to>
+					<pre-functions>
+						<function type="class">
+							<arg name="class.name">com.opensymphony.workflow.util.Caller</arg>
+						</function>
+					</pre-functions>
+					<results>
+						<unconditional-result old-status="Finished" status="Underway" step="2" owner="${caller}"/>
+					</results>
+				</action>
+				<action id="3" name="Finish Editing">
+					<restrict-to>
+						<conditions type="AND">
+							<condition type="class">
+								<arg name="class.name">com.opensymphony.workflow.util.StatusCondition</arg>
+								<arg name="status">Underway</arg>
+							</condition>
+							<condition type="class">
+								<arg name="class.name">com.opensymphony.workflow.util.AllowOwnerOnlyCondition</arg>
+							</condition>
+						</conditions>
+					</restrict-to>
+					<pre-functions>
+						<function type="class">
+							<arg name="class.name">com.opensymphony.workflow.util.MostRecentOwner</arg>
+							<arg name="stepId">1</arg>
+						</function>
+					</pre-functions>
+					<results>
+						<unconditional-result old-status="Finished" status="Underway" step="3" owner="${mostRecentOwner}"/>
+					</results>
+				</action>
+				<action id="4" name="Requeue Editing">
+					<restrict-to>
+						<conditions type="AND">
+							<condition type="class">
+								<arg name="class.name">com.opensymphony.workflow.util.StatusCondition</arg>
+								<arg name="status">Underway</arg>
+							</condition>
+							<condition type="class">
+								<arg name="class.name">com.opensymphony.workflow.util.AllowOwnerOnlyCondition</arg>
+							</condition>
+						</conditions>
+					</restrict-to>
+					<results>
+						<unconditional-result old-status="Finished" status="Queued" step="2"/>
+					</results>
+				</action>
+			</actions>
+		</step>
+		<step id="3" name="Review Doc">
+			<external-permissions>
+				<permission name="permA">
+					<restrict-to>
+						<conditions type="AND">
+							<condition type="class">
+								<arg name="class.name">com.opensymphony.workflow.util.StatusCondition</arg>
+								<arg name="status">Underway</arg>
+							</condition>
+							<condition type="class">
+								<arg name="class.name">com.opensymphony.workflow.util.AllowOwnerOnlyCondition</arg>
+							</condition>
+						</conditions>
+					</restrict-to>
+				</permission>
+			</external-permissions>
+			<actions>
+				<action id="5" name="More Edits">
+					<restrict-to>
+						<conditions type="AND">
+							<condition type="class">
+								<arg name="class.name">com.opensymphony.workflow.util.StatusCondition</arg>
+								<arg name="status">Underway</arg>
+							</condition>
+							<condition type="class">
+								<arg name="class.name">com.opensymphony.workflow.util.AllowOwnerOnlyCondition</arg>
+							</condition>
+						</conditions>
+					</restrict-to>
+					<pre-functions>
+						<function type="class">
+							<arg name="class.name">com.opensymphony.workflow.util.MostRecentOwner</arg>
+							<arg name="stepId">2</arg>
+						</function>
+					</pre-functions>
+					<results>
+						<unconditional-result old-status="Finished" status="Underway" step="2" owner="${mostRecentOwner}"/>
+					</results>
+				</action>
+				<action id="6" name="Peer Review">
+					<restrict-to>
+						<conditions type="AND">
+							<condition type="class">
+								<arg name="class.name">com.opensymphony.workflow.util.StatusCondition</arg>
+								<arg name="status">Underway</arg>
+							</condition>
+							<condition type="class">
+								<arg name="class.name">com.opensymphony.workflow.util.AllowOwnerOnlyCondition</arg>
+							</condition>
+						</conditions>
+					</restrict-to>
+					<results>
+						<unconditional-result old-status="Finished" status="Queued" step="4"/>
+					</results>
+				</action>
+				<action id="7" name="Publish Doc">
+					<restrict-to>
+						<conditions type="AND">
+							<condition type="class">
+								<arg name="class.name">com.opensymphony.workflow.util.StatusCondition</arg>
+								<arg name="status">Underway</arg>
+							</condition>
+							<condition type="class">
+								<arg name="class.name">com.opensymphony.workflow.util.AllowOwnerOnlyCondition</arg>
+							</condition>
+						</conditions>
+					</restrict-to>
+					<pre-functions>
+						<function type="class">
+							<arg name="class.name">com.opensymphony.workflow.util.MostRecentOwner</arg>
+							<arg name="stepId">2</arg>
+						</function>
+					</pre-functions>
+					<results>
+						<unconditional-result old-status="Finished" status="Underway" step="5" owner="${mostRecentOwner}"/>
+					</results>
+				</action>
+			</actions>
+		</step>
+		<step id="4" name="Second Review">
+			<external-permissions>
+				<permission name="permC">
+					<restrict-to>
+						<conditions type="AND">
+							<condition type="class">
+								<arg name="class.name">com.opensymphony.workflow.util.StatusCondition</arg>
+								<arg name="status">Underway</arg>
+							</condition>
+							<condition type="class">
+								<arg name="class.name">com.opensymphony.workflow.util.AllowOwnerOnlyCondition</arg>
+							</condition>
+						</conditions>
+					</restrict-to>
+				</permission>
+			</external-permissions>
+			<actions>
+				<action id="8" name="Finish Second Review">
+					<restrict-to>
+						<conditions type="AND">
+							<condition type="class">
+								<arg name="class.name">com.opensymphony.workflow.util.StatusCondition</arg>
+								<arg name="status">Underway</arg>
+							</condition>
+							<condition type="class">
+								<arg name="class.name">com.opensymphony.workflow.util.AllowOwnerOnlyCondition</arg>
+							</condition>
+						</conditions>
+					</restrict-to>
+					<pre-functions>
+						<function type="class">
+							<arg name="class.name">com.opensymphony.workflow.util.MostRecentOwner</arg>
+							<arg name="stepId">3</arg>
+						</function>
+					</pre-functions>
+					<results>
+						<unconditional-result old-status="Finished" status="Underway" step="3" owner="${mostRecentOwner}"/>
+					</results>
+				</action>
+				<action id="9" name="Sign Up For Second Review">
+					<restrict-to>
+						<conditions type="AND">
+							<condition type="class">
+								<arg name="class.name">com.opensymphony.workflow.util.StatusCondition</arg>
+								<arg name="status">Queued</arg>
+							</condition>
+							<condition type="class">
+								<arg name="class.name">com.opensymphony.workflow.util.OSUserGroupCondition</arg>
+								<arg name="group">bazs</arg>
+							</condition>
+						</conditions>
+					</restrict-to>
+					<pre-functions>
+						<function type="class">
+							<arg name="class.name">com.opensymphony.workflow.util.Caller</arg>
+						</function>
+					</pre-functions>
+					<results>
+						<unconditional-result old-status="Finished" status="Underway" step="4" owner="${caller}"/>
+					</results>
+				</action>
+				<action id="10" name="Queue Second Review">
+					<restrict-to>
+						<conditions type="AND">
+							<condition type="class">
+								<arg name="class.name">com.opensymphony.workflow.util.StatusCondition</arg>
+								<arg name="status">Underway</arg>
+							</condition>
+							<condition type="class">
+								<arg name="class.name">com.opensymphony.workflow.util.AllowOwnerOnlyCondition</arg>
+							</condition>
+						</conditions>
+					</restrict-to>
+					<results>
+						<unconditional-result old-status="Finished" status="Queued" step="4"/>
+					</results>
+				</action>
+			</actions>
+		</step>
+		<step id="5" name="Publish Doc">
+			<actions>
+				<action id="11" name="Publish Document">
+					<restrict-to>
+						<conditions type="AND">
+							<condition type="class">
+								<arg name="class.name">com.opensymphony.workflow.util.StatusCondition</arg>
+								<arg name="status">Underway</arg>
+							</condition>
+							<condition type="class">
+								<arg name="class.name">com.opensymphony.workflow.util.AllowOwnerOnlyCondition</arg>
+							</condition>
+						</conditions>
+					</restrict-to>
+					<pre-functions>
+						<function type="class">
+							<arg name="class.name">com.opensymphony.workflow.util.Caller</arg>
+						</function>
+					</pre-functions>
+					<results>
+						<unconditional-result old-status="Finished" status="Finished" step="5" owner="${caller}"/>
+					</results>
+				</action>
+			</actions>
+		</step>
+		<step id="6" name="Foo">
+			<actions>
+				<action name="Finish Foo" id="12">
+					<restrict-to>
+						<conditions type="AND">
+							<condition type="class">
+								<arg name="class.name">com.opensymphony.workflow.util.StatusCondition</arg>
+								<arg name="status">Underway</arg>
+								<arg name="stepId">6</arg>
+							</condition>
+							<condition type="class">
+								<arg name="class.name">com.opensymphony.workflow.util.AllowOwnerOnlyCondition</arg>
+								<arg name="stepId">6</arg>
+							</condition>
+						</conditions>
+					</restrict-to>
+					<results>
+						<unconditional-result old-status="Finished" join="1"/>
+					</results>
+				</action>
+			</actions>
+		</step>
+		<step id="7" name="Bar">
+			<actions>
+				<action name="Finish Bar" id="13">
+					<restrict-to>
+						<conditions type="AND">
+							<condition type="class">
+								<arg name="class.name">com.opensymphony.workflow.util.StatusCondition</arg>
+								<arg name="status">Underway</arg>
+								<arg name="stepId">7</arg>
+							</condition>
+							<condition type="class">
+								<arg name="class.name">com.opensymphony.workflow.util.AllowOwnerOnlyCondition</arg>
+								<arg name="stepId">7</arg>
+							</condition>
+						</conditions>
+					</restrict-to>
+					<results>
+						<unconditional-result old-status="Finished" owner="test" status="Underway" step="8"/>
+					</results>
+				</action>
+			</actions>
+		</step>
+		<step id="8" name="Baz">
+			<actions>
+				<action name="Finish Baz" id="14">
+					<restrict-to>
+						<conditions type="AND">
+							<condition type="class">
+								<arg name="class.name">com.opensymphony.workflow.util.StatusCondition</arg>
+								<arg name="status">Underway</arg>
+								<arg name="stepId">8</arg>
+							</condition>
+							<condition type="class">
+								<arg name="class.name">com.opensymphony.workflow.util.AllowOwnerOnlyCondition</arg>
+								<arg name="stepId">8</arg>
+							</condition>
+						</conditions>
+					</restrict-to>
+					<results>
+						<unconditional-result old-status="Finished" join="1"/>
+					</results>
+				</action>
+			</actions>
+		</step>
+	</steps>
+	<splits>
+		<split id="1">
+			<unconditional-result old-status="Finished" status="Underway" owner="test" step="6"/>
+			<unconditional-result old-status="Finished" status="Underway" owner="test" step="7"/>
+		</split>
+		<split id="2">
+			<unconditional-result old-status="Finished" status="Queued" step="2"/>
+		</split>
+	</splits>
+	<joins>
+		<join id="1">
+			<conditions type="AND">
+				<condition type="beanshell">
+					<arg name="script"><![CDATA[
+					"Finished".equals(jn.getStep(6).getStatus()) && "Finished".equals(jn.getStep(8).getStatus())
+					]]></arg>
+				</condition>
+			</conditions>
+			<unconditional-result old-status="Finished" status="Underway" owner="test" step="2"/>
+		</join>
+	</joins>
+</workflow>
+

Copied: labs/jbossrules/trunk/drools-process/drools-osworkflow/src/test/resources/holiday2.xml (from rev 24981, labs/jbossrules/branches/mfossati/drools-osworkflow/src/test/resources/holiday2.xml)
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-osworkflow/src/test/resources/holiday2.xml	                        (rev 0)
+++ labs/jbossrules/trunk/drools-process/drools-osworkflow/src/test/resources/holiday2.xml	2009-01-30 15:27:43 UTC (rev 25023)
@@ -0,0 +1,80 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE workflow PUBLIC "-//OpenSymphony Group//DTD OSWorkflow 2.6//EN" "http://www.opensymphony.com/osworkflow/workflow_2_8.dtd">
+<workflow>
+	<initial-actions>
+		<action id="100" name="Start Workflow">
+			<results>
+				<unconditional-result old-status="Finished" status="Underway" step="1"/>
+			</results>
+		</action>
+	</initial-actions>
+	<steps>
+		<step id="1" name="Employee request">
+			<actions>
+				<action id="1" name="Request holidays">
+					<results>
+						<unconditional-result old-status="Finished" split="1" status="Requested"/>
+					</results>
+				</action>
+			</actions>
+		</step>
+		<step id="2" name="Line Manager revision">
+			<actions>
+				<action id="2" name="Approve" >
+					<results>
+						<unconditional-result old-status="Line aproved" status="joining" join="1" />
+					</results>
+				</action>
+				<action id="3" name="Deny" >
+					<results>
+						<unconditional-result old-status="Line denied" status="joining" join="1"/>
+					</results>
+				</action>
+			</actions>
+		</step>
+		<step id="3" name="HR Manager revision">
+			<actions>
+				<action id="4" name="HR Approve" >
+					<results>
+						<unconditional-result old-status="HR aproved" status="joining" join="1"/>
+					</results>
+				</action>
+				<action id="5" name="HR Deny" >
+					<results>
+						<unconditional-result old-status="HR denied" status="joining" join="1"/>
+					</results>
+				</action>
+			</actions>
+		</step>
+		<step id="4" name="Notify employee">
+			<actions>
+				<action id="6" name="Notify"  finish="TRUE" >
+					<results>
+						<unconditional-result old-status="Finished" status="Line approval"  step="-1"/>
+					</results>
+				</action>
+			</actions>
+		</step>
+	</steps>
+	<splits>
+		<split id="1">
+			<unconditional-result old-status="Finished" status="Underway" step="2"/>
+			<unconditional-result old-status="Finished" status="Underway" step="3"/>
+		</split>
+	</splits>
+	<joins>
+		<join id="1">
+			<conditions type="AND">
+				<condition type="beanshell">
+					<arg name="script"><![CDATA[
+					propertySet.setString("result", "denied");
+					if(jn.getStep(2).getStatus().endsWith("aproved") && jn.getStep(3).getStatus().endsWith("aproved")){
+					propertySet.setString("result", "aproved");
+					}
+					 !("Underway".equals(jn.getStep(2).getStatus())) && !("Underway".equals(jn.getStep(3).getStatus()))					]]></arg>
+				</condition>
+			</conditions>
+			<unconditional-result old-status="JoinFinished" status="${result}" step="4"/>
+		</join>
+	</joins>
+</workflow>
\ No newline at end of file

Copied: labs/jbossrules/trunk/drools-process/drools-osworkflow/src/test/resources/log4j.properties (from rev 24981, labs/jbossrules/branches/mfossati/drools-osworkflow/src/test/resources/log4j.properties)
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-osworkflow/src/test/resources/log4j.properties	                        (rev 0)
+++ labs/jbossrules/trunk/drools-process/drools-osworkflow/src/test/resources/log4j.properties	2009-01-30 15:27:43 UTC (rev 25023)
@@ -0,0 +1,11 @@
+# Set root category priority to INFO and its only appender to CONSOLE.
+log4j.rootCategory=info, CONSOLE
+
+# Set the enterprise logger category to FATAL and its only appender to CONSOLE.
+com.opensymphony.workflow.util.beanshell.BeanShellCondition= debug, CONSOLE
+
+# CONSOLE is set to be a ConsoleAppender using a PatternLayout.
+log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
+log4j.appender.CONSOLE.Threshold=INFO
+log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
+log4j.appender.CONSOLE.layout.ConversionPattern=- %m%n
\ No newline at end of file

Modified: labs/jbossrules/trunk/drools-process/drools-osworkflow/src/test/resources/simple.xml
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-osworkflow/src/test/resources/simple.xml	2009-01-30 15:07:28 UTC (rev 25022)
+++ labs/jbossrules/trunk/drools-process/drools-osworkflow/src/test/resources/simple.xml	2009-01-30 15:27:43 UTC (rev 25023)
@@ -3,61 +3,68 @@
                  "-//OpenSymphony Group//DTD OSWorkflow 2.8//EN"
                  "http://www.opensymphony.com/osworkflow/workflow_2_8.dtd">
 <workflow>
-  <initial-actions>
-    <action id="1" name="Start Workflow">
-      <results>
-        <unconditional-result old-status="Finished" status="Queued" step="1"/>
-      </results>
-    </action>
-  </initial-actions>
-  <steps>
-    <step id="1" name="First Draft">
-      <actions>
-        <action id="2" name="Start First Draft">
-          <restrict-to>
-            <conditions>
-              <condition type="class">
-                <arg name="class.name">
-                   com.opensymphony.workflow.util.StatusCondition
-                </arg>
-                <arg name="status">Queued</arg>
-              </condition>
-            </conditions>
-          </restrict-to>
-          <pre-functions>
-            <function type="class">
-              <arg name="class.name">
-                 com.opensymphony.workflow.util.Caller
-              </arg>
-            </function>
-          </pre-functions>
-          <results>
-            <unconditional-result old-status="Finished" status="Underway" 
-                                           step="1"  owner="${caller}"/>
-          </results>
-        </action>
-        <action id="3" name="Finish First Draft">
-          <restrict-to>
-            <conditions type="AND">
-              <condition type="class">
-                <arg name="class.name">
-                    com.opensymphony.workflow.util.StatusCondition
-                </arg>
-                <arg name="status">Underway</arg>
-              </condition>
-              <condition type="class">
-                <arg name="class.name">
-                  com.opensymphony.workflow.util.AllowOwnerOnlyCondition
-                </arg>
-              </condition>
-            </conditions>
-          </restrict-to>
-          <results>
-            <unconditional-result old-status="Finished" status="Queued" step="2"/>
-          </results>
-        </action>
-      </actions>
-    </step>
-    <step id="2" name="finished" />
-  </steps>
+	<initial-actions>
+		<action id="1" name="Start Workflow">
+			<results>
+				<unconditional-result old-status="Finished"
+					status="Queued" step="1" />
+			</results>
+		</action>
+	</initial-actions>
+	<steps>
+		<step id="1" name="First Draft">
+			<actions>
+				<action id="2" name="Start First Draft">
+					<restrict-to>
+						<conditions>
+							<condition type="class">
+								<arg name="class.name">
+									com.opensymphony.workflow.util.StatusCondition
+								</arg>
+								<arg name="status">Queued</arg>
+							</condition>
+						</conditions>
+					</restrict-to>
+					<pre-functions>
+						<function type="class">
+							<arg name="class.name">
+								com.opensymphony.workflow.util.Caller
+							</arg>
+						</function>
+						<function type="beanshell">
+							<arg name="script">
+								System.out.println("Antes de ejecutar el actionId 2");
+							</arg>
+						</function>
+					</pre-functions>
+					<results>
+						<unconditional-result old-status="Finished"
+							status="Underway" step="1" owner="${caller}" />
+					</results>
+				</action>
+				<action id="3" name="Finish First Draft">
+					<restrict-to>
+						<conditions type="AND">
+							<condition type="class">
+								<arg name="class.name">
+									com.opensymphony.workflow.util.StatusCondition
+								</arg>
+								<arg name="status">Underway</arg>
+							</condition>
+							<condition type="class">
+								<arg name="class.name">
+									com.opensymphony.workflow.util.AllowOwnerOnlyCondition
+								</arg>
+							</condition>
+						</conditions>
+					</restrict-to>
+					<results>
+						<unconditional-result old-status="Finished"
+							status="Queued" step="2" />
+					</results>
+				</action>
+			</actions>
+		</step>
+		<step id="2" name="finished" />
+	</steps>
 </workflow>
\ No newline at end of file

Copied: labs/jbossrules/trunk/drools-process/drools-osworkflow/src/test/resources/simple2rf.rf (from rev 24981, labs/jbossrules/branches/mfossati/drools-osworkflow/src/test/resources/simple2rf.rf)
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-osworkflow/src/test/resources/simple2rf.rf	                        (rev 0)
+++ labs/jbossrules/trunk/drools-process/drools-osworkflow/src/test/resources/simple2rf.rf	2009-01-30 15:27:43 UTC (rev 25023)
@@ -0,0 +1,109 @@
+<?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="simple2" id="simple2" package-name="org.drools.osworkflow" >
+
+  <header>
+  		<initial-actions>
+		<action id="1" name="Start Workflow">
+			<results>
+				<unconditional-result old-status="Finished"
+					status="Active" step="1" />
+			</results>
+		</action>
+	</initial-actions>
+  </header>
+
+  <nodes>
+    <split id="1001" name="split" type="1" />
+    
+    <step id="1" name="Stage 1" >
+      <action id="2" name="Finish Stage 1">
+        <restrict-to>
+          <conditions>
+            <condition type="class">
+              <arg name="status">Active</arg>
+              <arg name="class.name">
+                   com.opensymphony.workflow.util.StatusCondition
+                </arg>
+            </condition>
+          </conditions>
+        </restrict-to>
+        <results>
+          <unconditional-result old-status="Finished" split="1001"/>
+        </results>
+      </action>
+    </step>
+    
+    <step id="2" name="Stage 2" >
+      <action id="3" name="Finish Stage 2">
+        <restrict-to>
+          <conditions>
+            <condition type="class">
+              <arg name="status">Active</arg>
+              <arg name="class.name">
+                   com.opensymphony.workflow.util.StatusCondition
+                </arg>
+            </condition>
+          </conditions>
+        </restrict-to>
+        <results>
+          <unconditional-result old-status="Finished" join="2001"/>
+        </results>
+      </action>
+    </step>
+    
+    <join id="2001" name="join"  type="1" />
+    
+    <step id="3" name="Stage 3" >
+      <action id="4" name="Finish Stage 3">
+        <restrict-to>
+          <conditions>
+            <condition type="class">
+              <arg name="status">Active</arg>
+              <arg name="class.name">
+                   com.opensymphony.workflow.util.StatusCondition
+                </arg>
+            </condition>
+          </conditions>
+        </restrict-to>
+        <results>
+          <unconditional-result old-status="Finished" join="2001"/>
+        </results>
+      </action>
+    </step>
+    
+    <step id="4" name="Stage 4" >
+    <action id="5" name="Finish Stage 4">
+        <restrict-to>
+          <conditions>
+            <condition type="class">
+              <arg name="status">Active</arg>
+              <arg name="class.name">
+                   com.opensymphony.workflow.util.StatusCondition
+                </arg>
+            </condition>
+          </conditions>
+        </restrict-to>
+        <results>
+          <unconditional-result old-status="Finished" step="5"/>
+        </results>
+      </action>
+    </step>
+    
+    <step id="5" name="Stage 5" >
+    </step>
+  </nodes>
+
+  <connections>
+    <connection from="1" fromType="2" to="1001" />
+    <connection from="1001" to="2" toType="Active" />
+    <connection from="2" fromType="3" to="2001" />
+    <connection from="3" fromType="4" to="2001" />
+    <connection from="1001" to="3" toType="Active" />
+    <connection from="2001" to="4" toType="Active" />
+  </connections>
+  
+
+</process>
\ No newline at end of file

Copied: labs/jbossrules/trunk/drools-process/drools-osworkflow/src/test/resources/simplerf.rf (from rev 24981, labs/jbossrules/branches/mfossati/drools-osworkflow/src/test/resources/simplerf.rf)
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-osworkflow/src/test/resources/simplerf.rf	                        (rev 0)
+++ labs/jbossrules/trunk/drools-process/drools-osworkflow/src/test/resources/simplerf.rf	2009-01-30 15:27:43 UTC (rev 25023)
@@ -0,0 +1,79 @@
+<?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="simple" id="simple" package-name="org.drools.osworkflow" >
+
+  <header>
+  	<initial-actions>
+		<action id="1" name="Start Workflow">
+			<results>
+				<unconditional-result old-status="Finished"
+					status="Queued" step="1" />
+			</results>
+		</action>
+	</initial-actions>
+  </header>
+	
+	
+	
+  <nodes>
+  	
+    <step id="2" name="finished" >
+    </step>
+    <step id="1" name="First Draft" >
+      <action id="2" name="Start First Draft">
+        <restrict-to>
+          <conditions>
+            <condition type="class">
+              <arg name="class.name">
+									com.opensymphony.workflow.util.StatusCondition
+								</arg>
+              <arg name="status">Queued</arg>
+            </condition>
+          </conditions>
+        </restrict-to>
+        <pre-functions>
+          <function type="class">
+            <arg name="class.name">
+								com.opensymphony.workflow.util.Caller
+							</arg>
+          </function>
+          <function type="beanshell">
+            <arg name="script"><![CDATA[
+								System.out.println("Antes de ejecutar el actionId 2");
+							]]></arg>
+          </function>
+        </pre-functions>
+        <results>
+          <unconditional-result old-status="Finished" status="Underway" step="1" owner="${caller}"/>
+        </results>
+      </action>
+      <action id="3" name="Finish First Draft">
+        <restrict-to>
+          <conditions type="AND">
+            <condition type="class">
+              <arg name="class.name">
+									com.opensymphony.workflow.util.StatusCondition
+								</arg>
+              <arg name="status">Underway</arg>
+            </condition>
+            <condition type="class">
+              <arg name="class.name">
+									com.opensymphony.workflow.util.AllowOwnerOnlyCondition
+								</arg>
+            </condition>
+          </conditions>
+        </restrict-to>
+        <results>
+          <unconditional-result old-status="Finished" status="Queued" step="2"/>
+        </results>
+      </action>
+    </step>
+  </nodes>
+
+  <connections>
+    <connection from="1" fromType="3" to="2" toType="Queued" />
+  </connections>
+
+</process>

Copied: labs/jbossrules/trunk/drools-process/drools-osworkflow/src/test/resources/wfp.xml (from rev 24981, labs/jbossrules/branches/mfossati/drools-osworkflow/src/test/resources/wfp.xml)
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-osworkflow/src/test/resources/wfp.xml	                        (rev 0)
+++ labs/jbossrules/trunk/drools-process/drools-osworkflow/src/test/resources/wfp.xml	2009-01-30 15:27:43 UTC (rev 25023)
@@ -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>

Copied: labs/jbossrules/trunk/drools-process/drools-osworkflow/src/test/resources/wfprf.rf (from rev 24981, labs/jbossrules/branches/mfossati/drools-osworkflow/src/test/resources/wfprf.rf)
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-osworkflow/src/test/resources/wfprf.rf	                        (rev 0)
+++ labs/jbossrules/trunk/drools-process/drools-osworkflow/src/test/resources/wfprf.rf	2009-01-30 15:27:43 UTC (rev 25023)
@@ -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/trunk/drools-process/drools-osworkflow/src/test/resources/workflows.xml
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-osworkflow/src/test/resources/workflows.xml	2009-01-30 15:07:28 UTC (rev 25022)
+++ labs/jbossrules/trunk/drools-process/drools-osworkflow/src/test/resources/workflows.xml	2009-01-30 15:27:43 UTC (rev 25023)
@@ -1,4 +1,7 @@
 <workflows>
   <workflow name="simple" type="resource" location="simple.xml"/>
   <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

Modified: labs/jbossrules/trunk/drools-process/drools-process-enterprise/src/main/java/org/drools/persistence/processinstance/ProcessInstanceInfo.java
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-process-enterprise/src/main/java/org/drools/persistence/processinstance/ProcessInstanceInfo.java	2009-01-30 15:07:28 UTC (rev 25022)
+++ labs/jbossrules/trunk/drools-process/drools-process-enterprise/src/main/java/org/drools/persistence/processinstance/ProcessInstanceInfo.java	2009-01-30 15:27:43 UTC (rev 25023)
@@ -3,6 +3,8 @@
 import java.io.ByteArrayInputStream;
 import java.io.ByteArrayOutputStream;
 import java.io.IOException;
+import java.io.ObjectInputStream;
+import java.io.ObjectOutputStream;
 import java.util.Arrays;
 import java.util.Date;
 import java.util.HashSet;
@@ -16,104 +18,138 @@
 import javax.persistence.PreUpdate;
 import javax.persistence.Transient;
 
-import org.drools.marshalling.InputMarshaller;
 import org.drools.marshalling.MarshallerReaderContext;
 import org.drools.marshalling.MarshallerWriteContext;
-import org.drools.marshalling.OutputMarshaller;
+import org.drools.marshalling.ProcessInstanceMarshaller;
+import org.drools.marshalling.ProcessMarshallerRegistry;
+import org.drools.marshalling.RuleFlowProcessInstanceMarshaller;
+import org.drools.process.instance.impl.ProcessInstanceImpl;
 import org.drools.ruleflow.instance.RuleFlowProcessInstance;
 import org.drools.runtime.process.ProcessInstance;
+import org.drools.workflow.instance.impl.WorkflowProcessInstanceImpl;
 import org.hibernate.annotations.CollectionOfElements;
 
 @Entity
 public class ProcessInstanceInfo {
 
-	private @Id @GeneratedValue(strategy=GenerationType.AUTO) Long processInstanceId;
+	private @Id
+	@GeneratedValue(strategy = GenerationType.AUTO)
+	Long processInstanceId;
 	private String processId;
 	private Date startDate;
 	private Date lastReadDate;
 	private Date lastModificationDate;
 	private int state;
-	// TODO How do I mark a process instance info as dirty when the process instance
+	// TODO How do I mark a process instance info as dirty when the process
+	// instance
 	// has changed (so that byte array is regenerated and saved) ?
-	private @Lob byte[] processInstanceByteArray;
+	private @Lob
+	byte[] processInstanceByteArray;
 	@CollectionOfElements
 	private Set<String> eventTypes = new HashSet<String>();
-	private @Transient ProcessInstance processInstance;
-	
+	private @Transient
+	ProcessInstance processInstance;
+
 	ProcessInstanceInfo() {
 	}
-	
+
 	public ProcessInstanceInfo(ProcessInstance processInstance) {
 		this.processInstance = processInstance;
 		this.processId = processInstance.getProcessId();
 		startDate = new Date();
 	}
-	
+
 	public long getId() {
 		return processInstanceId;
 	}
-	
+
 	public String getProcessId() {
 		return processId;
 	}
-	
+
 	public Date getStartDate() {
 		return startDate;
 	}
-	
+
 	public Date getLastModificationDate() {
 		return lastModificationDate;
 	}
-	
+
 	public Date getLastReadDate() {
 		return lastReadDate;
 	}
-	
+
 	public void updateLastReadDate() {
 		lastReadDate = new Date();
 	}
-	
+
 	public int getState() {
 		return state;
 	}
-	
+
 	public ProcessInstance getProcessInstance() {
 		if (processInstance == null) {
 			try {
-				ByteArrayInputStream bais = new ByteArrayInputStream(processInstanceByteArray);
-				MarshallerReaderContext context = new MarshallerReaderContext(bais, null, null, null);
-				processInstance = InputMarshaller.readProcessInstance(context);
+				ByteArrayInputStream bais = new ByteArrayInputStream(
+						processInstanceByteArray);
+				MarshallerReaderContext context = new MarshallerReaderContext(
+						bais, null, null, null);
+				ProcessInstanceMarshaller marshaller = getMarshallerFromContext(context);
+				processInstance = marshaller.readProcessInstance(context);
 				context.close();
 			} catch (IOException e) {
 				e.printStackTrace();
 				throw new IllegalArgumentException(
-					"IOException while loading process instance: " + e.getMessage());
+						"IOException while loading process instance: "
+								+ e.getMessage());
 			}
 		}
 		return processInstance;
 	}
 
+	private ProcessInstanceMarshaller getMarshallerFromContext(
+			MarshallerReaderContext context) throws IOException {
+		ObjectInputStream stream = context.stream;
+		String processInstanceType = stream.readUTF();
+		return ProcessMarshallerRegistry.INSTANCE
+				.getMarshaller(processInstanceType);
+	}
+
+	private void saveProcessInstanceType(MarshallerWriteContext context,
+			ProcessInstance processInstance, String processInstanceType)
+			throws IOException {
+		ObjectOutputStream stream = context.stream;
+		// saves the processInstance type first
+		stream.writeUTF(processInstanceType);
+	}
+
 	@PreUpdate
 	public void update() {
 		ByteArrayOutputStream baos = new ByteArrayOutputStream();
 		try {
-			MarshallerWriteContext context = new MarshallerWriteContext(baos, null, null, null, null);
-			OutputMarshaller.writeProcessInstance(context, (RuleFlowProcessInstance) processInstance);
+			MarshallerWriteContext context = new MarshallerWriteContext(baos,
+					null, null, null, null);
+			String processType = ((ProcessInstanceImpl) processInstance).getProcess()
+					.getType();
+			saveProcessInstanceType(context, processInstance, processType);
+			ProcessInstanceMarshaller marshaller = ProcessMarshallerRegistry.INSTANCE.getMarshaller(processType);
+			marshaller.writeProcessInstance(
+					context, processInstance);
 			context.close();
 		} catch (IOException e) {
 			throw new IllegalArgumentException(
-				"IOException while storing process instance " + processInstance.getId() + ": " + e.getMessage());
+					"IOException while storing process instance "
+							+ processInstance.getId() + ": " + e.getMessage());
 		}
 		byte[] newByteArray = baos.toByteArray();
 		if (!Arrays.equals(newByteArray, processInstanceByteArray)) {
 			this.state = processInstance.getState();
 			this.lastModificationDate = new Date();
 			this.processInstanceByteArray = newByteArray;
-			this.eventTypes.clear(); 
-			for (String type: processInstance.getEventTypes()) {
+			this.eventTypes.clear();
+			for (String type : processInstance.getEventTypes()) {
 				eventTypes.add(type);
 			}
 		}
 	}
-	
 }




More information about the jboss-svn-commits mailing list