[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