[jboss-svn-commits] JBL Code SVN: r24312 - in labs/jbossrules/trunk/drools-process/drools-jpdl: src/main/java/org/drools/jpdl and 4 other directories.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Mon Dec 8 19:20:01 EST 2008


Author: KrisVerlaenen
Date: 2008-12-08 19:20:01 -0500 (Mon, 08 Dec 2008)
New Revision: 24312

Added:
   labs/jbossrules/trunk/drools-process/drools-jpdl/pom.xml
Modified:
   labs/jbossrules/trunk/drools-process/drools-jpdl/.classpath
   labs/jbossrules/trunk/drools-process/drools-jpdl/.project
   labs/jbossrules/trunk/drools-process/drools-jpdl/src/main/java/org/drools/jpdl/JpdlProcessValidator.java
   labs/jbossrules/trunk/drools-process/drools-jpdl/src/main/java/org/drools/jpdl/core/JpdlProcess.java
   labs/jbossrules/trunk/drools-process/drools-jpdl/src/main/java/org/drools/jpdl/core/node/JpdlNode.java
   labs/jbossrules/trunk/drools-process/drools-jpdl/src/main/java/org/drools/jpdl/instance/node/EndStateInstance.java
   labs/jbossrules/trunk/drools-process/drools-jpdl/src/main/java/org/drools/jpdl/instance/node/JoinInstance.java
   labs/jbossrules/trunk/drools-process/drools-jpdl/src/main/java/org/drools/jpdl/instance/node/JpdlNodeInstance.java
   labs/jbossrules/trunk/drools-process/drools-jpdl/src/main/java/org/drools/jpdl/instance/node/ProcessStateInstance.java
   labs/jbossrules/trunk/drools-process/drools-jpdl/src/main/java/org/drools/jpdl/instance/node/TaskNodeInstance.java
   labs/jbossrules/trunk/drools-process/drools-jpdl/src/test/java/org/drools/ParseSimpleProcessTest.java
   labs/jbossrules/trunk/drools-process/drools-jpdl/src/test/java/org/drools/SimpleProcessTest.java
Log:
 - updated jPDL code to latest changes

Modified: labs/jbossrules/trunk/drools-process/drools-jpdl/.classpath
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-jpdl/.classpath	2008-12-08 23:12:25 UTC (rev 24311)
+++ labs/jbossrules/trunk/drools-process/drools-jpdl/.classpath	2008-12-09 00:20:01 UTC (rev 24312)
@@ -1,17 +1,49 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="src" path="src/main/java"/>
-	<classpathentry kind="src" path="src/main/resources"/>
-	<classpathentry kind="src" path="src/test/java"/>
-	<classpathentry kind="src" path="src/test/resources"/>
-	<classpathentry combineaccessrules="false" exported="true" kind="src" path="/drools-compiler"/>
-	<classpathentry combineaccessrules="false" exported="true" kind="src" path="/drools-core"/>
-	<classpathentry exported="true" kind="con" path="org.eclipse.jdt.junit.JUNIT_CONTAINER/3"/>
-	<classpathentry exported="true" kind="lib" path="lib/jbpm-jpdl.jar" sourcepath="F:/Mijn documenten/projects/jbpm/jbpm-jpdl-3.2.GA/src/jpdl"/>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
-	<classpathentry kind="var" path="M2_REPO/commons-collections/commons-collections/3.2/commons-collections-3.2.jar"/>
-	<classpathentry kind="var" path="M2_REPO/commons-logging/commons-logging/1.0.4/commons-logging-1.0.4.jar"/>
-	<classpathentry kind="var" path="M2_REPO/org/mvel/mvel/2.0-SNAPSHOT/mvel-2.0-SNAPSHOT.jar"/>
-	<classpathentry kind="var" path="M2_REPO/dom4j/dom4j/1.6.1/dom4j-1.6.1.jar"/>
-	<classpathentry kind="output" path="bin"/>
-</classpath>
+<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/org/apache/ant/ant/1.7.0/ant-1.7.0.jar"/>
+  <classpathentry kind="var" path="M2_REPO/org/apache/ant/ant-launcher/1.7.0/ant-launcher-1.7.0.jar"/>
+  <classpathentry kind="var" path="M2_REPO/antlr/antlr/2.7.6/antlr-2.7.6.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/asm/asm/1.5.3/asm-1.5.3.jar"/>
+  <classpathentry kind="var" path="M2_REPO/asm/asm-attrs/1.5.3/asm-attrs-1.5.3.jar"/>
+  <classpathentry kind="var" path="M2_REPO/bsh/bsh/1.3.0/bsh-1.3.0.jar"/>
+  <classpathentry kind="var" path="M2_REPO/cglib/cglib/2.1_3/cglib-2.1_3.jar"/>
+  <classpathentry kind="var" path="M2_REPO/commons-collections/commons-collections/3.1/commons-collections-3.1.jar"/>
+  <classpathentry kind="var" path="M2_REPO/commons-logging/commons-logging/1.1.1/commons-logging-1.1.1.jar"/>
+  <classpathentry kind="var" path="M2_REPO/concurrent/concurrent/1.3.4/concurrent-1.3.4.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/apache/derby/derby/10.2.1.6/derby-10.2.1.6.jar"/>
+  <classpathentry kind="var" path="M2_REPO/dom4j/dom4j/1.6.1/dom4j-1.6.1.jar"/>
+  <classpathentry kind="var" path="M2_REPO/org/drools/drools-api/5.0.0.SNAPSHOT/drools-api-5.0.0.SNAPSHOT.jar" sourcepath="M2_REPO/org/drools/drools-api/5.0.0.SNAPSHOT/drools-api-5.0.0.SNAPSHOT-sources.jar"/>
+  <classpathentry kind="var" path="M2_REPO/org/drools/drools-compiler/5.0.0.SNAPSHOT/drools-compiler-5.0.0.SNAPSHOT.jar" sourcepath="M2_REPO/org/drools/drools-compiler/5.0.0.SNAPSHOT/drools-compiler-5.0.0.SNAPSHOT-sources.jar"/>
+  <classpathentry kind="var" path="M2_REPO/org/drools/drools-core/5.0.0.SNAPSHOT/drools-core-5.0.0.SNAPSHOT.jar" sourcepath="M2_REPO/org/drools/drools-core/5.0.0.SNAPSHOT/drools-core-5.0.0.SNAPSHOT-sources.jar"/>
+  <classpathentry kind="var" path="M2_REPO/net/sf/ehcache/ehcache/1.2.3/ehcache-1.2.3.jar"/>
+  <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/org/hibernate/hibernate/3.2.6.ga/hibernate-3.2.6.ga.jar"/>
+  <classpathentry kind="var" path="M2_REPO/org/apache/jackrabbit/jackrabbit-api/1.4/jackrabbit-api-1.4.jar"/>
+  <classpathentry kind="var" path="M2_REPO/org/apache/jackrabbit/jackrabbit-core/1.4.5/jackrabbit-core-1.4.5.jar"/>
+  <classpathentry kind="var" path="M2_REPO/org/apache/jackrabbit/jackrabbit-jcr-commons/1.4/jackrabbit-jcr-commons-1.4.jar"/>
+  <classpathentry kind="var" path="M2_REPO/org/apache/jackrabbit/jackrabbit-spi/1.4/jackrabbit-spi-1.4.jar"/>
+  <classpathentry kind="var" path="M2_REPO/org/apache/jackrabbit/jackrabbit-spi-commons/1.4/jackrabbit-spi-commons-1.4.jar"/>
+  <classpathentry kind="var" path="M2_REPO/org/apache/jackrabbit/jackrabbit-text-extractors/1.4/jackrabbit-text-extractors-1.4.jar"/>
+  <classpathentry kind="var" path="M2_REPO/janino/janino/2.5.15/janino-2.5.15.jar"/>
+  <classpathentry kind="var" path="M2_REPO/org/jbpm/jbpm3/jbpm-jpdl/3.3.0.GA/jbpm-jpdl-3.3.0.GA.jar"/>
+  <classpathentry kind="var" path="M2_REPO/org/jmock/jmock/2.5.0.1/jmock-2.5.0.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/javax/transaction/jta/1.0.1B/jta-1.0.1B.jar"/>
+  <classpathentry kind="var" path="M2_REPO/junit/junit/3.8.1/junit-3.8.1.jar"/>
+  <classpathentry kind="var" path="M2_REPO/org/apache/lucene/lucene-core/2.2.0/lucene-core-2.2.0.jar"/>
+  <classpathentry kind="var" path="M2_REPO/org/mvel/mvel2/2.0.4-SNAPSHOT/mvel2-2.0.4-SNAPSHOT.jar"/>
+  <classpathentry kind="var" path="M2_REPO/nekohtml/nekohtml/0.9.4/nekohtml-0.9.4.jar"/>
+  <classpathentry kind="var" path="M2_REPO/pdfbox/pdfbox/0.6.4/pdfbox-0.6.4.jar"/>
+  <classpathentry kind="var" path="M2_REPO/poi/poi/2.5.1-final-20040804/poi-2.5.1-final-20040804.jar"/>
+  <classpathentry kind="var" path="M2_REPO/org/textmining/tm-extractors/0.4/tm-extractors-0.4.jar"/>
+  <classpathentry kind="var" path="M2_REPO/xerces/xercesImpl/2.8.0/xercesImpl-2.8.0.jar"/>
+  <classpathentry kind="var" path="M2_REPO/xml-apis/xml-apis/2.0.2/xml-apis-2.0.2.jar"/>
+</classpath>
\ No newline at end of file

Modified: labs/jbossrules/trunk/drools-process/drools-jpdl/.project
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-jpdl/.project	2008-12-08 23:12:25 UTC (rev 24311)
+++ labs/jbossrules/trunk/drools-process/drools-jpdl/.project	2008-12-09 00:20:01 UTC (rev 24312)
@@ -1,17 +1,13 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>drools-jpdl</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-	</natures>
-</projectDescription>
+<projectDescription>
+  <name>drools-jpdl</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

Added: labs/jbossrules/trunk/drools-process/drools-jpdl/pom.xml
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-jpdl/pom.xml	                        (rev 0)
+++ labs/jbossrules/trunk/drools-process/drools-jpdl/pom.xml	2008-12-09 00:20:01 UTC (rev 24312)
@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+
+  <modelVersion>4.0.0</modelVersion>
+  <parent>
+    <artifactId>drools</artifactId>
+    <groupId>org.drools</groupId>
+    <version>5.0.0.SNAPSHOT</version>
+  </parent>
+
+  <artifactId>drools-jpdl</artifactId>
+  <packaging>jar</packaging>
+  <name>Drools :: Process :: jPDL3</name>
+
+  <build/>
+
+  <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>
+
+    <!-- External dependencies -->
+    <dependency>
+      <groupId>org.jbpm.jbpm3</groupId>
+      <artifactId>jbpm-jpdl</artifactId>
+      <version>3.3.0.GA</version>
+    </dependency>
+
+ </dependencies>
+
+</project>

Modified: labs/jbossrules/trunk/drools-process/drools-jpdl/src/main/java/org/drools/jpdl/JpdlProcessValidator.java
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-jpdl/src/main/java/org/drools/jpdl/JpdlProcessValidator.java	2008-12-08 23:12:25 UTC (rev 24311)
+++ labs/jbossrules/trunk/drools-process/drools-jpdl/src/main/java/org/drools/jpdl/JpdlProcessValidator.java	2008-12-09 00:20:01 UTC (rev 24312)
@@ -6,18 +6,19 @@
 import java.util.List;
 import java.util.Map;
 
+import org.drools.definition.process.Connection;
+import org.drools.definition.process.Node;
+import org.drools.definition.process.Process;
 import org.drools.jpdl.core.JpdlProcess;
 import org.drools.jpdl.core.node.EndState;
 import org.drools.jpdl.core.node.StartState;
-import org.drools.process.core.Process;
 import org.drools.process.core.Work;
 import org.drools.process.core.context.variable.Variable;
 import org.drools.process.core.validation.ProcessValidationError;
 import org.drools.process.core.validation.ProcessValidator;
 import org.drools.process.core.validation.impl.ProcessValidationErrorImpl;
-import org.drools.workflow.core.Connection;
-import org.drools.workflow.core.Node;
 import org.drools.workflow.core.impl.DroolsConsequenceAction;
+import org.drools.workflow.core.impl.NodeImpl;
 import org.drools.workflow.core.node.ActionNode;
 import org.drools.workflow.core.node.CompositeNode;
 import org.drools.workflow.core.node.Join;
@@ -26,9 +27,9 @@
 import org.drools.workflow.core.node.Split;
 import org.drools.workflow.core.node.SubProcessNode;
 import org.drools.workflow.core.node.WorkItemNode;
-import org.mvel.ErrorDetail;
-import org.mvel.ParserContext;
-import org.mvel.compiler.ExpressionCompiler;
+import org.mvel2.ErrorDetail;
+import org.mvel2.ParserContext;
+import org.mvel2.compiler.ExpressionCompiler;
 
 public class JpdlProcessValidator implements ProcessValidator {
     
@@ -91,7 +92,7 @@
                     errors.add(new ProcessValidationErrorImpl(process,
                         "Start state '" + node.getName() + "' [" + node.getId() + "] has more than one type of outgoing connections."));
                 }
-                List<Connection> connections = startState.getOutgoingConnections(Node.CONNECTION_DEFAULT_TYPE);  
+                List<Connection> connections = startState.getOutgoingConnections(NodeImpl.CONNECTION_DEFAULT_TYPE);  
                 if (connections == null || connections.size() == 0) {
                     errors.add(new ProcessValidationErrorImpl(process,
                         "Start state '" + node.getName() + "' [" + node.getId() + "] has no default outgoing connections."));
@@ -106,7 +107,7 @@
                     errors.add(new ProcessValidationErrorImpl(process,
                         "End state '" + node.getName() + "' [" + node.getId() + "] has more than one type of incoming connections."));
                 }
-                List<Connection> connections = endState.getIncomingConnections(Node.CONNECTION_DEFAULT_TYPE);  
+                List<Connection> connections = endState.getIncomingConnections(NodeImpl.CONNECTION_DEFAULT_TYPE);  
                 if (connections == null || connections.size() == 0) {
                     errors.add(new ProcessValidationErrorImpl(process,
                         "End state '" + node.getName() + "' [" + node.getId() + "] has no default incoming connections."));

Modified: labs/jbossrules/trunk/drools-process/drools-jpdl/src/main/java/org/drools/jpdl/core/JpdlProcess.java
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-jpdl/src/main/java/org/drools/jpdl/core/JpdlProcess.java	2008-12-08 23:12:25 UTC (rev 24311)
+++ labs/jbossrules/trunk/drools-process/drools-jpdl/src/main/java/org/drools/jpdl/core/JpdlProcess.java	2008-12-09 00:20:01 UTC (rev 24312)
@@ -1,8 +1,8 @@
 package org.drools.jpdl.core;
 
+import org.drools.definition.process.Node;
 import org.drools.jpdl.core.node.StartState;
 import org.drools.process.core.context.variable.VariableScope;
-import org.drools.workflow.core.Node;
 import org.drools.workflow.core.impl.WorkflowProcessImpl;
 
 public class JpdlProcess extends WorkflowProcessImpl {

Modified: labs/jbossrules/trunk/drools-process/drools-jpdl/src/main/java/org/drools/jpdl/core/node/JpdlNode.java
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-jpdl/src/main/java/org/drools/jpdl/core/node/JpdlNode.java	2008-12-08 23:12:25 UTC (rev 24311)
+++ labs/jbossrules/trunk/drools-process/drools-jpdl/src/main/java/org/drools/jpdl/core/node/JpdlNode.java	2008-12-09 00:20:01 UTC (rev 24312)
@@ -4,8 +4,8 @@
 import java.util.List;
 import java.util.Map;
 
+import org.drools.definition.process.Connection;
 import org.drools.process.core.context.exception.ExceptionScope;
-import org.drools.workflow.core.Connection;
 import org.drools.workflow.core.impl.NodeImpl;
 import org.jbpm.graph.def.Action;
 import org.jbpm.graph.def.Event;
@@ -119,13 +119,26 @@
 	}
 
 	private class JpdlExceptionHandler implements org.drools.process.core.context.exception.ExceptionHandler {
+
 		private ExceptionHandler exceptionHandler;
+		private String faultVariable;
+		
 		private JpdlExceptionHandler(ExceptionHandler exceptionHandler) {
 			this.exceptionHandler = exceptionHandler;
 		}
+		
 		public ExceptionHandler getExceptionHandler() {
 			return exceptionHandler;
 		}
+		
+		public String getFaultVariable() {
+			return faultVariable;
+		}
+		
+		public void setFaultVariable(String faultVariable) {
+			this.faultVariable = faultVariable;
+		}
+		
 	}
 
 }

Modified: labs/jbossrules/trunk/drools-process/drools-jpdl/src/main/java/org/drools/jpdl/instance/node/EndStateInstance.java
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-jpdl/src/main/java/org/drools/jpdl/instance/node/EndStateInstance.java	2008-12-08 23:12:25 UTC (rev 24311)
+++ labs/jbossrules/trunk/drools-process/drools-jpdl/src/main/java/org/drools/jpdl/instance/node/EndStateInstance.java	2008-12-09 00:20:01 UTC (rev 24312)
@@ -1,13 +1,14 @@
 package org.drools.jpdl.instance.node;
 
 import org.drools.process.instance.ProcessInstance;
+import org.drools.workflow.instance.NodeInstanceContainer;
 
 public class EndStateInstance extends JpdlNodeInstance {
 
     private static final long serialVersionUID = 1L;
 
     public void leave() {
-        getNodeInstanceContainer().removeNodeInstance(this);
+        ((NodeInstanceContainer) getNodeInstanceContainer()).removeNodeInstance(this);
         getProcessInstance().setState(ProcessInstance.STATE_COMPLETED);
     }
     

Modified: labs/jbossrules/trunk/drools-process/drools-jpdl/src/main/java/org/drools/jpdl/instance/node/JoinInstance.java
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-jpdl/src/main/java/org/drools/jpdl/instance/node/JoinInstance.java	2008-12-08 23:12:25 UTC (rev 24311)
+++ labs/jbossrules/trunk/drools-process/drools-jpdl/src/main/java/org/drools/jpdl/instance/node/JoinInstance.java	2008-12-09 00:20:01 UTC (rev 24312)
@@ -4,8 +4,8 @@
 import java.util.HashMap;
 import java.util.Map;
 
+import org.drools.definition.process.Connection;
 import org.drools.jpdl.core.node.Join;
-import org.drools.workflow.core.Connection;
 import org.drools.workflow.core.Node;
 import org.drools.workflow.instance.NodeInstance;
 import org.jbpm.graph.exe.Token;

Modified: labs/jbossrules/trunk/drools-process/drools-jpdl/src/main/java/org/drools/jpdl/instance/node/JpdlNodeInstance.java
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-jpdl/src/main/java/org/drools/jpdl/instance/node/JpdlNodeInstance.java	2008-12-08 23:12:25 UTC (rev 24311)
+++ labs/jbossrules/trunk/drools-process/drools-jpdl/src/main/java/org/drools/jpdl/instance/node/JpdlNodeInstance.java	2008-12-09 00:20:01 UTC (rev 24312)
@@ -10,13 +10,14 @@
 import org.drools.jpdl.core.node.JpdlNode;
 import org.drools.process.core.context.exception.ExceptionScope;
 import org.drools.process.core.context.variable.VariableScope;
-import org.drools.process.core.timer.Timer;
 import org.drools.process.instance.ProcessInstance;
 import org.drools.process.instance.context.exception.ExceptionScopeInstance;
 import org.drools.process.instance.context.variable.VariableScopeInstance;
-import org.drools.process.instance.timer.TimerListener;
+import org.drools.process.instance.timer.TimerInstance;
+import org.drools.runtime.process.EventListener;
+import org.drools.runtime.process.NodeInstance;
 import org.drools.workflow.core.Node;
-import org.drools.workflow.instance.NodeInstance;
+import org.drools.workflow.instance.NodeInstanceContainer;
 import org.drools.workflow.instance.impl.NodeInstanceImpl;
 import org.jbpm.JbpmException;
 import org.jbpm.calendar.BusinessCalendar;
@@ -25,6 +26,7 @@
 import org.jbpm.graph.def.DelegationException;
 import org.jbpm.graph.def.Event;
 import org.jbpm.graph.def.ExceptionHandler;
+import org.jbpm.graph.def.ProcessDefinition;
 import org.jbpm.graph.def.Transition;
 import org.jbpm.graph.exe.ExecutionContext;
 import org.jbpm.graph.exe.Token;
@@ -32,13 +34,13 @@
 import org.jbpm.scheduler.def.CancelTimerAction;
 import org.jbpm.scheduler.def.CreateTimerAction;
 
-public class JpdlNodeInstance extends NodeInstanceImpl implements TimerListener {
+public class JpdlNodeInstance extends NodeInstanceImpl implements EventListener {
 
 	private static final long serialVersionUID = 1L;
 	private static final BusinessCalendar BUSINESS_CALENDAR = new BusinessCalendar();
 	
     private Map<Long, Action> timerActions = new HashMap<Long, Action>();
-	private Map<String, List<Timer>> timers = new HashMap<String, List<Timer>>();
+	private Map<String, List<TimerInstance>> timers = new HashMap<String, List<TimerInstance>>();
 	
 	public JpdlNode getJpdlNode() {
 		return (JpdlNode) getNode();
@@ -86,7 +88,7 @@
 				+ "' is not a leaving transition of node '" + this + "'");
 		}
 		fireEvent(Event.EVENTTYPE_NODE_LEAVE);
-        getNodeInstanceContainer().removeNodeInstance(this);
+        ((NodeInstanceContainer) getNodeInstanceContainer()).removeNodeInstance(this);
         Event event = connection.getEvent(Event.EVENTTYPE_TRANSITION);
         if (event != null) {
             List<Action> actions = event.getActions();
@@ -100,7 +102,7 @@
                         try {
                             for (ExceptionHandler exceptionHandler: exceptionHandlers) {
                                 if (exceptionHandler.matches(exception)) {
-                                    exceptionHandler.handleException(new JpdlExecutionContext());
+                                    exceptionHandler.handleException(null, new JpdlExecutionContext());
                                     handled = true;
                                 }
                             }
@@ -134,8 +136,8 @@
                         + " evaluated to 'false'");
             }
         }
-        getNodeInstanceContainer().getNodeInstance(connection.getTo())
-            .trigger(this, connection.getToType());
+        ((NodeInstanceContainer) getNodeInstanceContainer())
+        	.getNodeInstance(connection.getTo()).trigger(this, connection.getToType());
 	}
 
     public void fireEvent(String eventType) {
@@ -162,7 +164,7 @@
 	    if (action instanceof CreateTimerAction) {
 	        CreateTimerAction createTimerAction = (CreateTimerAction) action; 
 	        String timerName = createTimerAction.getTimerName();
-	        Timer timer = new Timer();
+	        TimerInstance timer = new TimerInstance();
 	        long delay = BUSINESS_CALENDAR.add(new Date(0),
                 new Duration(createTimerAction.getDueDate())).getTime();
             timer.setDelay(delay);
@@ -177,20 +179,20 @@
 	        getProcessInstance().getWorkingMemory().getTimerManager()
 	            .registerTimer(timer, getProcessInstance());
 	        timerActions.put(timer.getId(), createTimerAction.getTimerAction());
-	        List<Timer> timerList = timers.get(timerName);
+	        List<TimerInstance> timerList = timers.get(timerName);
 	        if (timerList == null) {
-	            timerList = new ArrayList<Timer>();
+	            timerList = new ArrayList<TimerInstance>();
 	            timers.put(timerName, timerList);
 	        }
 	        timerList.add(timer);
 	    } else if (action instanceof CancelTimerAction) {
 	        String timerName = ((CancelTimerAction) action).getTimerName();
-	        List<Timer> timerList = timers.get(timerName);
+	        List<TimerInstance> timerList = timers.get(timerName);
 	        if (timerList != null) {
-	            for (Timer timer: timerList) {
+	            for (TimerInstance timer: timerList) {
 	                timerActions.remove(timer.getId());
 	                getProcessInstance().getWorkingMemory().getTimerManager()
-	                    .cancelTimer(timer);
+	                    .cancelTimer(timer.getId());
 	            }
                 timers.remove(timerName);
                 if (timerActions.isEmpty()) {
@@ -225,24 +227,27 @@
 	}
 	
     public void registerTimerListener() {
-        getProcessInstance().addTimerListener(this);
+        getProcessInstance().addEventListener("timerTriggered", this, false);
     }
     
     public void removeTimerListener() {
-        getProcessInstance().removeTimerListener(this);
+        getProcessInstance().removeEventListener("timerTriggered", this, false);
     }
 
-    public void timerTriggered(Timer timer) {
-        timerTriggered(timer, new JpdlExecutionContext());
+    public String[] getEventTypes() {
+    	return new String[] { "timerTriggered" };
     }
     
-    protected void timerTriggered(Timer timer, ExecutionContext executionContext) {
-        Action action = timerActions.get(timer.getId());
-        if (action != null) {
-            executeAction(action, executionContext);
-        }
+    public void signalEvent(String type, Object event) {
+    	if ("timerTriggered".equals(type)) {
+    		TimerInstance timer = (TimerInstance) event;
+            Action action = timerActions.get(timer.getId());
+            if (action != null) {
+                executeAction(action, new JpdlExecutionContext());
+            }
+    	}
     }
-
+    
 	public class JpdlExecutionContext extends ExecutionContext {
 	    public JpdlExecutionContext() {
 	        super((Token) null);
@@ -272,6 +277,9 @@
         public NodeInstance getDroolsNodeInstance() {
             return JpdlNodeInstance.this;
         }
+        public ProcessDefinition getProcessDefinition() {
+        	return null;
+        }
 	}
 
 }

Modified: labs/jbossrules/trunk/drools-process/drools-jpdl/src/main/java/org/drools/jpdl/instance/node/ProcessStateInstance.java
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-jpdl/src/main/java/org/drools/jpdl/instance/node/ProcessStateInstance.java	2008-12-08 23:12:25 UTC (rev 24311)
+++ labs/jbossrules/trunk/drools-process/drools-jpdl/src/main/java/org/drools/jpdl/instance/node/ProcessStateInstance.java	2008-12-09 00:20:01 UTC (rev 24312)
@@ -13,6 +13,7 @@
 import org.drools.event.RuleFlowStartedEvent;
 import org.drools.jpdl.core.node.ProcessState;
 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.workflow.instance.NodeInstance;
 import org.jbpm.context.def.VariableAccess;
@@ -72,7 +73,8 @@
     				if (variableAccess.isWritable()) {
     					String mappedName = variableAccess.getMappedName();
     					VariableScopeInstance variableScopeInstance = (VariableScopeInstance)
-							event.getProcessInstance().getContextInstance(VariableScope.VARIABLE_SCOPE);
+							((ProcessInstance) event.getProcessInstance())
+								.getContextInstance(VariableScope.VARIABLE_SCOPE);
     					Object value = variableScopeInstance.getVariable(mappedName);
     					if (value != null) {
         					String variableName = variableAccess.getVariableName();
@@ -103,6 +105,11 @@
         // Do nothing
     }
 
+    public void afterRuleFlowNodeLeft(RuleFlowNodeTriggeredEvent event,
+            WorkingMemory workingMemory) {
+        // Do nothing
+    }
+
     public void afterRuleFlowStarted(RuleFlowStartedEvent event,
             WorkingMemory workingMemory) {
         // Do nothing
@@ -128,6 +135,11 @@
         // Do nothing
     }
 
+    public void beforeRuleFlowNodeLeft(RuleFlowNodeTriggeredEvent event,
+            WorkingMemory workingMemory) {
+        // Do nothing
+    }
+
     public void beforeRuleFlowStarted(RuleFlowStartedEvent event,
             WorkingMemory workingMemory) {
         // Do nothing

Modified: labs/jbossrules/trunk/drools-process/drools-jpdl/src/main/java/org/drools/jpdl/instance/node/TaskNodeInstance.java
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-jpdl/src/main/java/org/drools/jpdl/instance/node/TaskNodeInstance.java	2008-12-08 23:12:25 UTC (rev 24311)
+++ labs/jbossrules/trunk/drools-process/drools-jpdl/src/main/java/org/drools/jpdl/instance/node/TaskNodeInstance.java	2008-12-09 00:20:01 UTC (rev 24312)
@@ -8,13 +8,14 @@
 import org.drools.jpdl.core.node.TaskNode;
 import org.drools.process.core.context.swimlane.SwimlaneContext;
 import org.drools.process.core.context.variable.VariableScope;
-import org.drools.process.instance.WorkItem;
+import org.drools.process.instance.ProcessInstance;
 import org.drools.process.instance.WorkItemListener;
 import org.drools.process.instance.WorkItemManager;
 import org.drools.process.instance.context.swimlane.SwimlaneContextInstance;
 import org.drools.process.instance.context.variable.VariableScopeInstance;
 import org.drools.process.instance.impl.WorkItemImpl;
-import org.drools.workflow.instance.NodeInstance;
+import org.drools.runtime.process.NodeInstance;
+import org.drools.runtime.process.WorkItem;
 import org.jbpm.JbpmException;
 import org.jbpm.calendar.BusinessCalendar;
 import org.jbpm.calendar.Duration;
@@ -230,11 +231,13 @@
 	}
 
     public void addEventListeners() {
-        getProcessInstance().addWorkItemListener(this);
+    	((ProcessInstance) getProcessInstance()).addEventListener("workItemCompleted", this, false);
+    	((ProcessInstance) getProcessInstance()).addEventListener("workItemAborted", this, false);
     }
     
     public void removeEventListeners() {
-        getProcessInstance().removeWorkItemListener(this);
+        ((ProcessInstance) getProcessInstance()).removeEventListener("workItemCompleted", this, false);
+        ((ProcessInstance) getProcessInstance()).removeEventListener("workItemAborted", this, false);
     }
 
     public void workItemAborted(WorkItem workItem) {

Modified: labs/jbossrules/trunk/drools-process/drools-jpdl/src/test/java/org/drools/ParseSimpleProcessTest.java
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-jpdl/src/test/java/org/drools/ParseSimpleProcessTest.java	2008-12-08 23:12:25 UTC (rev 24311)
+++ labs/jbossrules/trunk/drools-process/drools-jpdl/src/test/java/org/drools/ParseSimpleProcessTest.java	2008-12-09 00:20:01 UTC (rev 24312)
@@ -6,10 +6,10 @@
 import org.drools.jpdl.core.JpdlProcess;
 import org.drools.process.core.validation.ProcessValidationError;
 import org.drools.process.instance.ProcessInstance;
-import org.drools.process.instance.WorkItem;
 import org.drools.process.instance.WorkItemHandler;
-import org.drools.process.instance.WorkItemManager;
 import org.drools.rule.Package;
+import org.drools.runtime.process.WorkItem;
+import org.drools.runtime.process.WorkItemManager;
 
 public class ParseSimpleProcessTest extends TestCase {
 

Modified: labs/jbossrules/trunk/drools-process/drools-jpdl/src/test/java/org/drools/SimpleProcessTest.java
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-jpdl/src/test/java/org/drools/SimpleProcessTest.java	2008-12-08 23:12:25 UTC (rev 24311)
+++ labs/jbossrules/trunk/drools-process/drools-jpdl/src/test/java/org/drools/SimpleProcessTest.java	2008-12-09 00:20:01 UTC (rev 24312)
@@ -23,11 +23,11 @@
 				"Message variable should not exist yet", 
 				instance.getContextInstance().getVariable("message"));
 
-		instance.signal();
-		assertEquals(
-				"Instance is in node1", 
-				instance.getRootToken().getNode().getName(), 
-				"node1");
+//		instance.signal();
+//		assertEquals(
+//				"Instance is in node1", 
+//				instance.getRootToken().getNode().getName(), 
+//				"node1");
 		
 		instance.signal();
 		assertEquals(




More information about the jboss-svn-commits mailing list