[jboss-svn-commits] JBL Code SVN: r19581 - in labs/jbossrules/trunk/drools-core/src/main/java/org/drools: spi and 1 other directories.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Tue Apr 15 18:44:06 EDT 2008
Author: KrisVerlaenen
Date: 2008-04-15 18:44:05 -0400 (Tue, 15 Apr 2008)
New Revision: 19581
Modified:
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/mvel/MVELAction.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/spi/Action.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/workflow/instance/node/ActionNodeInstance.java
Log:
JBRULES-1561: Code completion for ruleflow action editor
- Added code completion to action dialog
JBRULES-1402: Inserting facts within "Action Node" (IDE RULEFLOW EDITOR)
- support for drools.* and update/insert/... methods (for both Java and MVEL
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/mvel/MVELAction.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/mvel/MVELAction.java 2008-04-15 22:44:00 UTC (rev 19580)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/mvel/MVELAction.java 2008-04-15 22:44:05 UTC (rev 19581)
@@ -1,19 +1,20 @@
package org.drools.base.mvel;
+import java.io.Externalizable;
+import java.io.IOException;
+import java.io.ObjectInput;
+import java.io.ObjectOutput;
+import java.io.Serializable;
+
import org.drools.WorkingMemory;
import org.drools.rule.MVELDialectData;
import org.drools.rule.Package;
import org.drools.spi.Action;
+import org.drools.spi.KnowledgeHelper;
import org.mvel.MVEL;
import org.mvel.compiler.CompiledExpression;
import org.mvel.debug.DebugTools;
-import java.io.Externalizable;
-import java.io.IOException;
-import java.io.ObjectInput;
-import java.io.ObjectOutput;
-import java.io.Serializable;
-
public class MVELAction
implements
Action,
@@ -46,13 +47,13 @@
return "mvel";
}
- public void execute(final WorkingMemory workingMemory) throws Exception {
+ public void execute(final KnowledgeHelper knowledgeHelper, final WorkingMemory workingMemory) throws Exception {
// must clone to avoid concurrency problems
DroolsMVELFactory factory = (DroolsMVELFactory) this.prototype.clone();
factory.setContext( null,
+ knowledgeHelper,
null,
- null,
workingMemory,
null );
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/spi/Action.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/spi/Action.java 2008-04-15 22:44:00 UTC (rev 19580)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/spi/Action.java 2008-04-15 22:44:05 UTC (rev 19581)
@@ -4,5 +4,5 @@
public interface Action {
- public void execute(final WorkingMemory workingMemory) throws Exception ;
+ public void execute(final KnowledgeHelper knowledgeHelper, final WorkingMemory workingMemory) throws Exception ;
}
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/workflow/instance/node/ActionNodeInstance.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/workflow/instance/node/ActionNodeInstance.java 2008-04-15 22:44:00 UTC (rev 19580)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/workflow/instance/node/ActionNodeInstance.java 2008-04-15 22:44:05 UTC (rev 19581)
@@ -16,7 +16,12 @@
* limitations under the License.
*/
+import org.drools.WorkingMemory;
+import org.drools.base.DefaultKnowledgeHelper;
+import org.drools.base.SequentialKnowledgeHelper;
+import org.drools.common.InternalRuleBase;
import org.drools.spi.Action;
+import org.drools.spi.KnowledgeHelper;
import org.drools.workflow.core.Node;
import org.drools.workflow.core.node.ActionNode;
import org.drools.workflow.instance.NodeInstance;
@@ -42,7 +47,9 @@
}
Action action = (Action) getActionNode().getAction();
try {
- action.execute( getProcessInstance().getWorkingMemory() );
+ KnowledgeHelper knowledgeHelper = createKnowledgeHelper();
+
+ action.execute( knowledgeHelper, getProcessInstance().getWorkingMemory() );
} catch (Exception e) {
throw new RuntimeException("unable to execute Action", e);
}
@@ -53,5 +60,14 @@
getNodeInstanceContainer().removeNodeInstance(this);
getNodeInstanceContainer().getNodeInstance(getActionNode().getTo().getTo()).trigger(this, getActionNode().getTo().getToType());
}
+
+ private KnowledgeHelper createKnowledgeHelper() {
+ WorkingMemory workingMemory = getProcessInstance().getWorkingMemory();
+ if ( ((InternalRuleBase) workingMemory.getRuleBase()).getConfiguration().isSequential() ) {
+ return new SequentialKnowledgeHelper( workingMemory );
+ } else {
+ return new DefaultKnowledgeHelper( workingMemory );
+ }
+ }
}
\ No newline at end of file
More information about the jboss-svn-commits
mailing list