[jboss-svn-commits] JBL Code SVN: r21345 - in labs/jbossrules/trunk: drools-compiler/src/test/java/org/drools/integrationtests and 7 other directories.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Mon Aug 4 12:03:37 EDT 2008


Author: KrisVerlaenen
Date: 2008-08-04 12:03:37 -0400 (Mon, 04 Aug 2008)
New Revision: 21345

Modified:
   labs/jbossrules/trunk/drools-compiler/src/main/resources/org/drools/rule/builder/dialect/java/javaInvokers.mvel
   labs/jbossrules/trunk/drools-compiler/src/main/resources/org/drools/rule/builder/dialect/java/javaRule.mvel
   labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/ProcessTimerTest.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/process/core/Context.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/process/core/context/AbstractContext.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/process/core/context/exception/ExceptionScope.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/process/core/impl/ProcessImpl.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/workflow/core/node/CompositeContextNode.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/workflow/instance/impl/NodeInstanceImpl.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/workflow/instance/node/TimerNodeInstance.java
Log:
JBRULES-1696: Extends WS-BPEL support

Modified: labs/jbossrules/trunk/drools-compiler/src/main/resources/org/drools/rule/builder/dialect/java/javaInvokers.mvel
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/resources/org/drools/rule/builder/dialect/java/javaInvokers.mvel	2008-08-04 15:55:24 UTC (rev 21344)
+++ labs/jbossrules/trunk/drools-compiler/src/main/resources/org/drools/rule/builder/dialect/java/javaInvokers.mvel	2008-08-04 16:03:37 UTC (rev 21345)
@@ -397,7 +397,7 @@
     }
 
     public void execute(org.drools.spi.KnowledgeHelper knowledgeHelper,
-                        org.drools.WorkingMemory workingMemory, org.drools.spi.ActionContext context ) throws Exception {
+                        org.drools.WorkingMemory workingMemory, org.drools.spi.ProcessContext context ) throws Exception {
 
         @foreach{type : globalTypes, identifier : globals} @{type} @{identifier} = ( @{type} ) workingMemory.getGlobal( "@{identifier}" );
         @end{}

Modified: labs/jbossrules/trunk/drools-compiler/src/main/resources/org/drools/rule/builder/dialect/java/javaRule.mvel
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/resources/org/drools/rule/builder/dialect/java/javaRule.mvel	2008-08-04 15:55:24 UTC (rev 21344)
+++ labs/jbossrules/trunk/drools-compiler/src/main/resources/org/drools/rule/builder/dialect/java/javaRule.mvel	2008-08-04 16:03:37 UTC (rev 21345)
@@ -106,7 +106,7 @@
 @end{}
 
 @declare{"actionMethod"}
-public static void @{methodName}(org.drools.spi.KnowledgeHelper drools at if{globals != empty}, at end{} @foreach{type :globalTypes, identifier : globals}  @{type} @{identifier} @end{","}, org.drools.spi.ActionContext context ) throws Exception {
+public static void @{methodName}(org.drools.spi.KnowledgeHelper drools at if{globals != empty}, at end{} @foreach{type :globalTypes, identifier : globals}  @{type} @{identifier} @end{","}, org.drools.spi.ProcessContext context ) throws Exception {
     @{text}
 }
 @end{}

Modified: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/ProcessTimerTest.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/ProcessTimerTest.java	2008-08-04 15:55:24 UTC (rev 21344)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/ProcessTimerTest.java	2008-08-04 16:03:37 UTC (rev 21345)
@@ -40,8 +40,9 @@
 			"    <timer id=\"3\" name=\"Timer\" delay=\"800\"  period=\"200\" />\n" +
 			"    <actionNode id=\"4\" name=\"Action\" >\n" +
 			"      <action type=\"expression\" dialect=\"java\" >System.out.println(\"Triggered\");\n" +
+			"myList.add( new Message() );\n" +
 			"insert( new Message() );\n" +
-			"myList.add( new Message() );</action>\n" +
+			"</action>\n" +
 			"    </actionNode>/n" + 
 			"    <milestone id=\"5\" name=\"Wait\" >Number( intValue &gt;= 5 ) from accumulate ( m: Message( ), count( m ) )</milestone>\n" +
 			"  </nodes>\n" +

Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/process/core/Context.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/process/core/Context.java	2008-08-04 15:55:24 UTC (rev 21344)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/process/core/Context.java	2008-08-04 16:03:37 UTC (rev 21345)
@@ -14,4 +14,6 @@
     
     Context resolveContext(Object param);
     
+    ContextContainer getContextContainer();
+    
 }

Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/process/core/context/AbstractContext.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/process/core/context/AbstractContext.java	2008-08-04 15:55:24 UTC (rev 21344)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/process/core/context/AbstractContext.java	2008-08-04 16:03:37 UTC (rev 21345)
@@ -3,12 +3,14 @@
 import java.io.Serializable;
 
 import org.drools.process.core.Context;
+import org.drools.process.core.ContextContainer;
 
 public abstract class AbstractContext implements Context, Serializable {
 
     private long id;
+    private ContextContainer contextContainer;
 
-    public long getId() {
+	public long getId() {
         return id;
     }
 
@@ -16,4 +18,12 @@
         this.id = id;
     }
     
+    public ContextContainer getContextContainer() {
+		return contextContainer;
+	}
+
+	public void setContextContainer(ContextContainer contextContainer) {
+		this.contextContainer = contextContainer;
+	}
+
 }

Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/process/core/context/exception/ExceptionScope.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/process/core/context/exception/ExceptionScope.java	2008-08-04 15:55:24 UTC (rev 21344)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/process/core/context/exception/ExceptionScope.java	2008-08-04 16:03:37 UTC (rev 21345)
@@ -23,7 +23,11 @@
     }
     
     public ExceptionHandler getExceptionHandler(String exception) {
-        return this.exceptionHandlers.get(exception);
+        ExceptionHandler result = exceptionHandlers.get(exception);
+        if (result == null) {
+        	result = exceptionHandlers.get(null);
+        }
+        return result;
     }
 
     public void removeExceptionHandler(String exception) {

Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/process/core/impl/ProcessImpl.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/process/core/impl/ProcessImpl.java	2008-08-04 15:55:24 UTC (rev 21344)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/process/core/impl/ProcessImpl.java	2008-08-04 16:03:37 UTC (rev 21345)
@@ -24,6 +24,7 @@
 import org.drools.process.core.Context;
 import org.drools.process.core.ContextContainer;
 import org.drools.process.core.Process;
+import org.drools.process.core.context.AbstractContext;
 
 /**
  * Default implementation of a Process
@@ -88,6 +89,7 @@
     
     public void addContext(Context context) {
         this.contextContainer.addContext(context);
+        ((AbstractContext) context).setContextContainer(this);
     }
     
     public Context getContext(String contextType, long id) {
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/workflow/core/node/CompositeContextNode.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/workflow/core/node/CompositeContextNode.java	2008-08-04 15:55:24 UTC (rev 21344)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/workflow/core/node/CompositeContextNode.java	2008-08-04 16:03:37 UTC (rev 21345)
@@ -4,6 +4,7 @@
 
 import org.drools.process.core.Context;
 import org.drools.process.core.ContextContainer;
+import org.drools.process.core.context.AbstractContext;
 import org.drools.process.core.impl.ContextContainerImpl;
 
 /**
@@ -22,6 +23,7 @@
     
     public void addContext(Context context) {
         this.contextContainer.addContext(context);
+        ((AbstractContext) context).setContextContainer(this);
     }
     
     public Context getContext(String contextType, long id) {

Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/workflow/instance/impl/NodeInstanceImpl.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/workflow/instance/impl/NodeInstanceImpl.java	2008-08-04 15:55:24 UTC (rev 21344)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/workflow/instance/impl/NodeInstanceImpl.java	2008-08-04 16:03:37 UTC (rev 21345)
@@ -137,8 +137,13 @@
         	NodeInstanceContainer nodeInstanceContainer = this.getNodeInstanceContainer();
         	while (contextInstanceContainer == null) {
         		if (nodeInstanceContainer instanceof ContextInstanceContainer) {
-        			contextInstanceContainer = (ContextInstanceContainer) nodeInstanceContainer;
-        		} else if (nodeInstanceContainer instanceof NodeInstance) {
+        			ContextInstanceContainer container = (ContextInstanceContainer) nodeInstanceContainer;
+        			if (container.getContextContainer() == context.getContextContainer()) {
+        				contextInstanceContainer = container;
+        				break;
+        			}
+        		}
+        		if (nodeInstanceContainer instanceof NodeInstance) {
         			nodeInstanceContainer = ((NodeInstance) nodeInstanceContainer).getNodeInstanceContainer();
         		} else {
         			break;

Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/workflow/instance/node/TimerNodeInstance.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/workflow/instance/node/TimerNodeInstance.java	2008-08-04 15:55:24 UTC (rev 21344)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/workflow/instance/node/TimerNodeInstance.java	2008-08-04 16:03:37 UTC (rev 21345)
@@ -29,25 +29,32 @@
             throw new IllegalArgumentException(
                 "A TimerNode only accepts default incoming connections!");
         }
-        Timer timer = getTimerNode().getTimer();
+        Timer timer = createTimer();
         addEventListeners();
         getProcessInstance().getWorkingMemory().getTimerManager()
             .registerTimer(timer, getProcessInstance());
         timerId = timer.getId();
     }
+    
+    protected Timer createTimer() {
+    	Timer timerDef = getTimerNode().getTimer(); 
+    	Timer timer = new Timer();
+    	timer.setDelay(timerDef.getDelay());
+    	timer.setPeriod(timerDef.getPeriod());
+    	return timer;
+    }
 
     public void signalEvent(String type, Object event) {
     	if ("timerTriggered".equals(type)) {
     		Timer timer = (Timer) event;
             if (timer.getId() == timerId) {
-                triggerCompleted();
+                triggerCompleted(timer.getPeriod() == 0);
             }
     	}
     }
     
-    public void triggerCompleted() {
-        triggerCompleted(Node.CONNECTION_DEFAULT_TYPE,
-            getTimerNode().getTimer().getPeriod() == 0);
+    public void triggerCompleted(boolean remove) {
+        triggerCompleted(Node.CONNECTION_DEFAULT_TYPE, remove);
     }
     
     public void cancel() {




More information about the jboss-svn-commits mailing list