[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 >= 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