[jboss-svn-commits] JBL Code SVN: r20153 - in labs/jbossrules/trunk/drools-compiler/src: main/resources/META-INF and 4 other directories.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Sat May 24 09:51:04 EDT 2008
Author: KrisVerlaenen
Date: 2008-05-24 09:51:04 -0400 (Sat, 24 May 2008)
New Revision: 20153
Added:
labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/SubProcessTest.java
labs/jbossrules/trunk/drools-compiler/src/test/resources/META-INF/bpelProcessInstanceFactory.conf
Modified:
labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/processes/MappingHandler.java
labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/processes/SubProcessNodeHandler.java
labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/processes/WorkItemNodeHandler.java
labs/jbossrules/trunk/drools-compiler/src/main/resources/META-INF/drools-processes-4.0.xsd
labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/bpel/test/BPELTest.java
labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/xml/processes/XMLPersistenceTest.java
Log:
JBRULES-1622: SubProcess node should support variable mapping and independence
- adding in both core and IDE
Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/processes/MappingHandler.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/processes/MappingHandler.java 2008-05-24 13:50:56 UTC (rev 20152)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/processes/MappingHandler.java 2008-05-24 13:51:04 UTC (rev 20153)
@@ -2,7 +2,7 @@
import java.util.HashSet;
-import org.drools.workflow.core.node.WorkItemNode;
+import org.drools.process.core.context.variable.Mappable;
import org.drools.xml.BaseAbstractHandler;
import org.drools.xml.ExtensibleXmlParser;
import org.drools.xml.Handler;
@@ -16,7 +16,7 @@
public MappingHandler() {
if ( (this.validParents == null) && (this.validPeers == null) ) {
this.validParents = new HashSet();
- this.validParents.add( WorkItemNode.class );
+ this.validParents.add( Mappable.class );
this.validPeers = new HashSet();
this.validPeers.add( null );
@@ -32,17 +32,17 @@
final Attributes attrs,
final ExtensibleXmlParser parser) throws SAXException {
parser.startConfiguration(localName, attrs);
- WorkItemNode workItemNode = (WorkItemNode) parser.getParent();
+ Mappable mappable = (Mappable) parser.getParent();
final String type = attrs.getValue("type");
emptyAttributeCheck(localName, "type", type, parser);
- final String parameterName = attrs.getValue("parameterName");
- emptyAttributeCheck(localName, "parameterName", parameterName, parser);
- final String variableName = attrs.getValue("variableName");
- emptyAttributeCheck(localName, "variableName", variableName, parser);
+ final String fromName = attrs.getValue("from");
+ emptyAttributeCheck(localName, "from", fromName, parser);
+ final String toName = attrs.getValue("to");
+ emptyAttributeCheck(localName, "to", toName, parser);
if ("in".equals(type)) {
- workItemNode.addInMapping(parameterName, variableName);
+ mappable.addInMapping(toName, fromName);
} else if ("out".equals(type)) {
- workItemNode.addOutMapping(parameterName, variableName);
+ mappable.addOutMapping(fromName, toName);
} else {
throw new SAXParseException(
"Unknown mapping type " + type, parser.getLocator());
Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/processes/SubProcessNodeHandler.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/processes/SubProcessNodeHandler.java 2008-05-24 13:50:56 UTC (rev 20152)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/processes/SubProcessNodeHandler.java 2008-05-24 13:51:04 UTC (rev 20153)
@@ -1,5 +1,7 @@
package org.drools.xml.processes;
+import java.util.Map;
+
import org.drools.workflow.core.Node;
import org.drools.workflow.core.node.SubProcessNode;
import org.drools.xml.Configuration;
@@ -21,6 +23,8 @@
subProcessNode.setProcessId(processId);
String waitForCompletion = config.getAttribute("waitForCompletion");
subProcessNode.setWaitForCompletion(!"false".equals(waitForCompletion));
+ String independent = config.getAttribute("independent");
+ subProcessNode.setIndependent(!"false".equals(independent));
}
public Class generateNodeFor() {
@@ -37,7 +41,25 @@
if (!subProcessNode.isWaitForCompletion()) {
xmlDump.append("waitForCompletion=\"false\" ");
}
- endNode(xmlDump);
+ if (!subProcessNode.isIndependent()) {
+ xmlDump.append("independent=\"false\" ");
+ }
+ xmlDump.append(">" + EOL);
+ Map<String, String> inMappings = subProcessNode.getInMappings();
+ for (Map.Entry<String, String> inMapping: inMappings.entrySet()) {
+ xmlDump.append(
+ " <mapping type=\"in\" "
+ + "from=\"" + inMapping.getValue() + "\" "
+ + "to=\"" + inMapping.getKey() + "\" />" + EOL);
+ }
+ Map<String, String> outMappings = subProcessNode.getOutMappings();
+ for (Map.Entry<String, String> outMapping: outMappings.entrySet()) {
+ xmlDump.append(
+ " <mapping type=\"out\" "
+ + "from=\"" + outMapping.getKey() + "\" "
+ + "to=\"" + outMapping.getValue() + "\" />" + EOL);
+ }
+ endNode("subProcess", xmlDump);
}
}
Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/processes/WorkItemNodeHandler.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/processes/WorkItemNodeHandler.java 2008-05-24 13:50:56 UTC (rev 20152)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/xml/processes/WorkItemNodeHandler.java 2008-05-24 13:51:04 UTC (rev 20153)
@@ -44,15 +44,15 @@
for (Map.Entry<String, String> inMapping: inMappings.entrySet()) {
xmlDump.append(
" <mapping type=\"in\" "
- + "parameterName=\"" + inMapping.getKey() + "\" "
- + "variableName=\"" + inMapping.getValue() + "\" />" + EOL);
+ + "from=\"" + inMapping.getValue() + "\" "
+ + "to=\"" + inMapping.getKey() + "\" />" + EOL);
}
Map<String, String> outMappings = workItemNode.getOutMappings();
for (Map.Entry<String, String> outMapping: outMappings.entrySet()) {
xmlDump.append(
" <mapping type=\"out\" "
- + "parameterName=\"" + outMapping.getKey() + "\" "
- + "variableName=\"" + outMapping.getValue() + "\" />" + EOL);
+ + "from=\"" + outMapping.getKey() + "\" "
+ + "to=\"" + outMapping.getValue() + "\" />" + EOL);
}
endNode("workItem", xmlDump);
}
Modified: labs/jbossrules/trunk/drools-compiler/src/main/resources/META-INF/drools-processes-4.0.xsd
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/resources/META-INF/drools-processes-4.0.xsd 2008-05-24 13:50:56 UTC (rev 20152)
+++ labs/jbossrules/trunk/drools-compiler/src/main/resources/META-INF/drools-processes-4.0.xsd 2008-05-24 13:51:04 UTC (rev 20153)
@@ -202,6 +202,9 @@
</xs:element>
<xs:element name="subProcess">
<xs:complexType>
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:element ref="drools:mapping"/>
+ </xs:choice>
<xs:attribute name="id" type="xs:string" use="required"/>
<xs:attribute name="name" type="xs:string"/>
<xs:attribute name="x" type="xs:string"/>
@@ -210,6 +213,7 @@
<xs:attribute name="height" type="xs:string"/>
<xs:attribute name="processId" type="xs:string"/>
<xs:attribute name="waitForCompletion" type="xs:string"/>
+ <xs:attribute name="independent" type="xs:string"/>
</xs:complexType>
</xs:element>
<xs:element name="workItem">
@@ -248,8 +252,8 @@
<xs:element name="mapping">
<xs:complexType>
<xs:attribute name="type" type="xs:string" use="required"/>
- <xs:attribute name="parameterName" type="xs:string" use="required"/>
- <xs:attribute name="variableName" type="xs:string" use="required"/>
+ <xs:attribute name="from" type="xs:string" use="required"/>
+ <xs:attribute name="to" type="xs:string" use="required"/>
</xs:complexType>
</xs:element>
<xs:element name="timer">
Modified: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/bpel/test/BPELTest.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/bpel/test/BPELTest.java 2008-05-24 13:50:56 UTC (rev 20152)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/bpel/test/BPELTest.java 2008-05-24 13:51:04 UTC (rev 20153)
@@ -22,7 +22,6 @@
import org.drools.bpel.core.BPELReply;
import org.drools.bpel.core.BPELSequence;
import org.drools.bpel.instance.BPELProcessInstance;
-import org.drools.bpel.instance.BPELProcessInstanceFactory;
import org.drools.common.AbstractRuleBase;
import org.drools.common.InternalWorkingMemory;
import org.drools.compiler.PackageBuilder;
@@ -252,18 +251,17 @@
}
// normal execution
- public static void main1(String[] args) {
+ public static void main(String[] args) {
BPELProcess process = getProcess();
// execute
Properties properties = new Properties();
+ properties.put( "processInstanceFactoryRegistry", "bpelProcessInstanceFactory.conf" );
properties.put( "processNodeInstanceFactoryRegistry", "bpelProcessNodeInstanceFactory.conf" );
properties.put( "processContextInstanceFactoryRegistry", "bpelProcessContextInstanceFactory.conf" );
RuleBaseConfiguration ruleBaseConf = new RuleBaseConfiguration( properties );
AbstractRuleBase ruleBase = (AbstractRuleBase) RuleBaseFactory.newRuleBase(ruleBaseConf);
ruleBase.addProcess(process);
InternalWorkingMemory workingMemory = new ReteooWorkingMemory(1, ruleBase);
- workingMemory.registerProcessInstanceFactory(
- BPELProcess.BPEL_TYPE, new BPELProcessInstanceFactory());
WorkItemHandler handler = new WebServiceInvocationHandler();
workingMemory.getWorkItemManager().registerWorkItemHandler("WebServiceInvocation", handler);
WorkingMemoryFileLogger logger = new WorkingMemoryFileLogger(workingMemory);
@@ -297,18 +295,17 @@
}
// shipping returns fault
- public static void main(String[] args) {
+ public static void main1(String[] args) {
BPELProcess process = getProcess();
// execute
Properties properties = new Properties();
+ properties.put( "processInstanceFactoryRegistry", "bpelProcessInstanceFactory.conf" );
properties.put( "processNodeInstanceFactoryRegistry", "bpelProcessNodeInstanceFactory.conf" );
properties.put( "processContextInstanceFactoryRegistry", "bpelProcessContextInstanceFactory.conf" );
RuleBaseConfiguration ruleBaseConf = new RuleBaseConfiguration( properties );
AbstractRuleBase ruleBase = (AbstractRuleBase) RuleBaseFactory.newRuleBase(ruleBaseConf);
ruleBase.addProcess(process);
InternalWorkingMemory workingMemory = new ReteooWorkingMemory(1, ruleBase);
- workingMemory.registerProcessInstanceFactory(
- BPELProcess.BPEL_TYPE, new BPELProcessInstanceFactory());
WorkItemHandler handler = new WebServiceInvocationHandler();
workingMemory.getWorkItemManager().registerWorkItemHandler("WebServiceInvocation", handler);
WorkingMemoryFileLogger logger = new WorkingMemoryFileLogger(workingMemory);
Added: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/SubProcessTest.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/SubProcessTest.java (rev 0)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/SubProcessTest.java 2008-05-24 13:51:04 UTC (rev 20153)
@@ -0,0 +1,175 @@
+package org.drools.integrationtests;
+
+import java.io.Reader;
+import java.io.StringReader;
+import java.util.HashMap;
+import java.util.Map;
+
+import junit.framework.TestCase;
+
+import org.drools.Person;
+import org.drools.RuleBase;
+import org.drools.RuleBaseFactory;
+import org.drools.WorkingMemory;
+import org.drools.compiler.PackageBuilder;
+import org.drools.process.core.context.variable.VariableScope;
+import org.drools.process.instance.ProcessInstance;
+import org.drools.process.instance.context.variable.VariableScopeInstance;
+import org.drools.rule.Package;
+
+public class SubProcessTest extends TestCase {
+
+ public void testSubProcess() {
+ try {
+ RuleBase ruleBase = readRule(true);
+ WorkingMemory workingMemory = ruleBase.newStatefulSession();
+ ProcessInstance processInstance =
+ workingMemory.startProcess("com.sample.ruleflow");
+ assertEquals(ProcessInstance.STATE_ACTIVE, processInstance.getState());
+ assertEquals(2, workingMemory.getProcessInstances().size());
+ workingMemory.insert(new Person());
+ assertEquals(ProcessInstance.STATE_COMPLETED, processInstance.getState());
+ assertEquals(0, workingMemory.getProcessInstances().size());
+ } catch (Throwable t) {
+ t.printStackTrace();
+ }
+ }
+
+ public void testSubProcessCancel() {
+ try {
+ RuleBase ruleBase = readRule(true);
+ WorkingMemory workingMemory = ruleBase.newStatefulSession();
+ ProcessInstance processInstance =
+ workingMemory.startProcess("com.sample.ruleflow");
+ assertEquals(ProcessInstance.STATE_ACTIVE, processInstance.getState());
+ assertEquals(2, workingMemory.getProcessInstances().size());
+ processInstance.setState(ProcessInstance.STATE_ABORTED);
+ assertEquals(1, workingMemory.getProcessInstances().size());
+ } catch (Throwable t) {
+ t.printStackTrace();
+ }
+ }
+
+ public void testIndependentSubProcessCancel() {
+ try {
+ RuleBase ruleBase = readRule(false);
+ WorkingMemory workingMemory = ruleBase.newStatefulSession();
+ ProcessInstance processInstance =
+ workingMemory.startProcess("com.sample.ruleflow");
+ assertEquals(ProcessInstance.STATE_ACTIVE, processInstance.getState());
+ assertEquals(2, workingMemory.getProcessInstances().size());
+ processInstance.setState(ProcessInstance.STATE_ABORTED);
+ assertEquals(0, workingMemory.getProcessInstances().size());
+ } catch (Throwable t) {
+ t.printStackTrace();
+ }
+ }
+
+ public void testVariableMapping() {
+ try {
+ RuleBase ruleBase = readRule(false);
+ WorkingMemory workingMemory = ruleBase.newStatefulSession();
+ Map<String, Object> map = new HashMap<String, Object>();
+ map.put("x", "x-value");
+ ProcessInstance processInstance =
+ workingMemory.startProcess("com.sample.ruleflow", map);
+ assertEquals(ProcessInstance.STATE_ACTIVE, processInstance.getState());
+ assertEquals(2, workingMemory.getProcessInstances().size());
+ for (ProcessInstance p: workingMemory.getProcessInstances()) {
+ VariableScopeInstance variableScopeInstance = (VariableScopeInstance)
+ p.getContextInstance(VariableScope.VARIABLE_SCOPE);
+ if ("com.sample.ruleflow".equals(p.getProcessId())) {
+ assertEquals("x-value", variableScopeInstance.getVariable("x"));
+ } else if ("com.sample.subflow".equals(p.getProcessId())) {
+ assertEquals("x-value", variableScopeInstance.getVariable("y"));
+ assertEquals("z-value", variableScopeInstance.getVariable("z"));
+ }
+ }
+ workingMemory.insert(new Person());
+ assertEquals(ProcessInstance.STATE_COMPLETED, processInstance.getState());
+ VariableScopeInstance variableScopeInstance = (VariableScopeInstance)
+ processInstance.getContextInstance(VariableScope.VARIABLE_SCOPE);
+ assertEquals("z-value", variableScopeInstance.getVariable("x"));
+ assertEquals(0, workingMemory.getProcessInstances().size());
+ } catch (Throwable t) {
+ t.printStackTrace();
+ }
+ }
+
+ private static RuleBase readRule(boolean independent) throws Exception {
+ PackageBuilder builder = new PackageBuilder();
+ Reader source = new StringReader(
+ "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" +
+ "<process xmlns=\"http://drools.org/drools-4.0/process\"\n" +
+ " xmlns:xs=\"http://www.w3.org/2001/XMLSchema-instance\"\n" +
+ " xs:schemaLocation=\"http://drools.org/drools-4.0/process drools-processes-4.0.xsd\"\n" +
+ " type=\"RuleFlow\" name=\"ruleflow\" id=\"com.sample.ruleflow\" package-name=\"com.sample\" >\n" +
+ "\n" +
+ " <header>\n" +
+ " <variables>\n" +
+ " <variable name=\"x\" >\n" +
+ " <type name=\"org.drools.process.core.datatype.impl.type.StringDataType\" />\n" +
+ " <value></value>\n" +
+ " </variable>\n" +
+ " </variables>\n" +
+ " </header>\n" +
+ "\n" +
+ " <nodes>\n" +
+ " <start id=\"1\" name=\"Start\" />\n" +
+ " <subProcess id=\"2\" name=\"SubProcess\" processId=\"com.sample.subflow\" independent=\"" + independent + "\" >\n" +
+ " <mapping type=\"in\" from=\"x\" to=\"y\" />\n" +
+ " <mapping type=\"out\" from=\"z\" to=\"x\" />\n" +
+ " </subProcess>\n" +
+ " <end id=\"3\" name=\"End\" />\n" +
+ " </nodes>\n" +
+ "\n" +
+ " <connections>\n" +
+ " <connection from=\"1\" to=\"2\" />\n" +
+ " <connection from=\"2\" to=\"3\" />\n" +
+ " </connections>\n" +
+ "\n" +
+ "</process>");
+ builder.addRuleFlow(source);
+ source = new StringReader(
+ "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" +
+ "<process xmlns=\"http://drools.org/drools-4.0/process\"\n" +
+ " xmlns:xs=\"http://www.w3.org/2001/XMLSchema-instance\"\n" +
+ " xs:schemaLocation=\"http://drools.org/drools-4.0/process drools-processes-4.0.xsd\"\n" +
+ " type=\"RuleFlow\" name=\"flow\" id=\"com.sample.subflow\" package-name=\"com.sample\" >\n" +
+ "\n" +
+ " <header>\n" +
+ " <imports>\n" +
+ " <import name=\"org.drools.Person\" />\n" +
+ " </imports>\n" +
+ " <variables>\n" +
+ " <variable name=\"y\" >\n" +
+ " <type name=\"org.drools.process.core.datatype.impl.type.StringDataType\" />\n" +
+ " <value></value>\n" +
+ " </variable>\n" +
+ " <variable name=\"z\" >\n" +
+ " <type name=\"org.drools.process.core.datatype.impl.type.StringDataType\" />\n" +
+ " <value>z-value</value>\n" +
+ " </variable>\n" +
+ " </variables>\n" +
+ " </header>\n" +
+ "\n" +
+ " <nodes>\n" +
+ " <start id=\"1\" name=\"Start\" />\n" +
+ " <milestone id=\"2\" name=\"Event Wait\" >Person( )</milestone>\n" +
+ " <end id=\"3\" name=\"End\" />\n" +
+ " </nodes>\n" +
+ "\n" +
+ " <connections>\n" +
+ " <connection from=\"1\" to=\"2\" />\n" +
+ " <connection from=\"2\" to=\"3\" />\n" +
+ " </connections>\n" +
+ "\n" +
+ "</process>");
+ builder.addRuleFlow(source);
+ Package pkg = builder.getPackage();
+ RuleBase ruleBase = RuleBaseFactory.newRuleBase();
+ ruleBase.addPackage( pkg );
+ return ruleBase;
+ }
+
+}
Modified: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/xml/processes/XMLPersistenceTest.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/xml/processes/XMLPersistenceTest.java 2008-05-24 13:50:56 UTC (rev 20152)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/xml/processes/XMLPersistenceTest.java 2008-05-24 13:51:04 UTC (rev 20153)
@@ -18,6 +18,7 @@
import org.drools.process.core.datatype.impl.type.StringDataType;
import org.drools.process.core.impl.ParameterDefinitionImpl;
import org.drools.process.core.impl.WorkImpl;
+import org.drools.process.core.timer.Timer;
import org.drools.ruleflow.core.RuleFlowProcess;
import org.drools.workflow.core.Connection;
import org.drools.workflow.core.Constraint;
@@ -33,6 +34,7 @@
import org.drools.workflow.core.node.Split;
import org.drools.workflow.core.node.StartNode;
import org.drools.workflow.core.node.SubProcessNode;
+import org.drools.workflow.core.node.TimerNode;
import org.drools.workflow.core.node.WorkItemNode;
import org.drools.xml.XmlProcessReader;
import org.drools.xml.XmlRuleFlowProcessDumper;
@@ -57,6 +59,7 @@
process.addNode(new RuleSetNode());
process.addNode(new SubProcessNode());
process.addNode(new WorkItemNode());
+ process.addNode(new TimerNode());
XmlRuleFlowProcessDumper dumper = new XmlRuleFlowProcessDumper();
@@ -65,7 +68,7 @@
throw new IllegalArgumentException("Failed to persist empty nodes!");
}
- System.out.println(xml);
+// System.out.println(xml);
XmlProcessReader reader = new XmlProcessReader(
new PackageBuilderConfiguration().getSemanticModules());
@@ -74,7 +77,7 @@
throw new IllegalArgumentException("Failed to reload process!");
}
- assertEquals(9, process.getNodes().length);
+ assertEquals(10, process.getNodes().length);
// System.out.println("************************************");
@@ -83,7 +86,7 @@
throw new IllegalArgumentException("Failed to persist empty nodes!");
}
-// System.out.println(xml2);
+ System.out.println(xml2);
// assertEquals(xml, xml2);
}
@@ -206,6 +209,9 @@
subProcess.setMetaData("height", 4);
subProcess.setProcessId("processId");
subProcess.setWaitForCompletion(false);
+ subProcess.setIndependent(false);
+ subProcess.addInMapping("subvar1", "var1");
+ subProcess.addOutMapping("subvar2", "var2");
process.addNode(subProcess);
connection = new ConnectionImpl(milestone, Node.CONNECTION_DEFAULT_TYPE, subProcess, Node.CONNECTION_DEFAULT_TYPE);
connection.setMetaData("bendpoints", "[10,10]");
@@ -229,6 +235,19 @@
connection = new ConnectionImpl(subProcess, Node.CONNECTION_DEFAULT_TYPE, workItemNode, Node.CONNECTION_DEFAULT_TYPE);
connection.setMetaData("bendpoints", "[]");
+ TimerNode timerNode = new TimerNode();
+ timerNode.setName("timer");
+ timerNode.setMetaData("x", 1);
+ timerNode.setMetaData("y", 2);
+ timerNode.setMetaData("width", 3);
+ timerNode.setMetaData("height", 4);
+ Timer timer = new Timer();
+ timer.setDelay(1000);
+ timer.setPeriod(1000);
+ timerNode.setTimer(timer);
+ process.addNode(timerNode);
+ new ConnectionImpl(workItemNode, Node.CONNECTION_DEFAULT_TYPE, timerNode, Node.CONNECTION_DEFAULT_TYPE);
+
EndNode endNode = new EndNode();
endNode.setName("end");
endNode.setMetaData("x", 1);
@@ -236,7 +255,7 @@
endNode.setMetaData("width", 3);
endNode.setMetaData("height", 4);
process.addNode(endNode);
- new ConnectionImpl(workItemNode, Node.CONNECTION_DEFAULT_TYPE, endNode, Node.CONNECTION_DEFAULT_TYPE);
+ new ConnectionImpl(timerNode, Node.CONNECTION_DEFAULT_TYPE, endNode, Node.CONNECTION_DEFAULT_TYPE);
XmlRuleFlowProcessDumper dumper = new XmlRuleFlowProcessDumper();
@@ -245,7 +264,7 @@
throw new IllegalArgumentException("Failed to persist empty nodes!");
}
- System.out.println(xml);
+// System.out.println(xml);
XmlProcessReader reader = new XmlProcessReader(
new PackageBuilderConfiguration().getSemanticModules());
@@ -254,7 +273,7 @@
throw new IllegalArgumentException("Failed to reload process!");
}
- assertEquals(9, process.getNodes().length);
+ assertEquals(10, process.getNodes().length);
// System.out.println("************************************");
@@ -263,7 +282,7 @@
throw new IllegalArgumentException("Failed to persist empty nodes!");
}
-// System.out.println(xml2);
+ System.out.println(xml2);
// assertEquals(xml, xml2);
}
Added: labs/jbossrules/trunk/drools-compiler/src/test/resources/META-INF/bpelProcessInstanceFactory.conf
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/resources/META-INF/bpelProcessInstanceFactory.conf (rev 0)
+++ labs/jbossrules/trunk/drools-compiler/src/test/resources/META-INF/bpelProcessInstanceFactory.conf 2008-05-24 13:51:04 UTC (rev 20153)
@@ -0,0 +1,7 @@
+// we use MVEL to configure our process, simply populate a map, which will be added to the main registry
+import org.drools.bpel.core.BPELProcess;
+import org.drools.bpel.instance.BPELProcessInstanceFactory;
+
+[
+ BPELProcess : new BPELProcessInstanceFactory(),
+]
More information about the jboss-svn-commits
mailing list