[jboss-cvs] jboss-seam/src/main/org/jboss/seam/drools ...
Gavin King
gavin.king at jboss.com
Tue Jul 10 04:57:37 EDT 2007
User: gavin
Date: 07/07/10 04:57:37
Modified: src/main/org/jboss/seam/drools
DroolsActionHandler.java
DroolsAssignmentHandler.java
DroolsDecisionHandler.java DroolsHandler.java
ManagedWorkingMemory.java
Added: src/main/org/jboss/seam/drools SeamGlobalResolver.java
Log:
JBSEAM-1606, JBSEAM 1632
Revision Changes Path
1.6 +2 -4 jboss-seam/src/main/org/jboss/seam/drools/DroolsActionHandler.java
(In the diff below, changes in quantity of whitespace are not shown.)
Index: DroolsActionHandler.java
===================================================================
RCS file: /cvsroot/jboss/jboss-seam/src/main/org/jboss/seam/drools/DroolsActionHandler.java,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -b -r1.5 -r1.6
--- DroolsActionHandler.java 20 Jun 2007 05:49:43 -0000 1.5
+++ DroolsActionHandler.java 10 Jul 2007 08:57:36 -0000 1.6
@@ -15,12 +15,10 @@
public class DroolsActionHandler extends DroolsHandler implements ActionHandler
{
private static final long serialVersionUID = 7752070876220597913L;
+
public List<String> assertObjects;
public String workingMemoryName;
- /**
- * The FireRulesActionHandler gets variables from the Instance, and asserts
- * them into the Rules Engine and invokes the rules.
- */
+
public void execute(ExecutionContext executionContext) throws Exception
{
getWorkingMemory(workingMemoryName, assertObjects, executionContext).fireAllRules();
1.6 +4 -2 jboss-seam/src/main/org/jboss/seam/drools/DroolsAssignmentHandler.java
(In the diff below, changes in quantity of whitespace are not shown.)
Index: DroolsAssignmentHandler.java
===================================================================
RCS file: /cvsroot/jboss/jboss-seam/src/main/org/jboss/seam/drools/DroolsAssignmentHandler.java,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -b -r1.5 -r1.6
--- DroolsAssignmentHandler.java 20 Jun 2007 05:49:43 -0000 1.5
+++ DroolsAssignmentHandler.java 10 Jul 2007 08:57:36 -0000 1.6
@@ -17,13 +17,15 @@
public class DroolsAssignmentHandler extends DroolsHandler implements AssignmentHandler
{
private static final long serialVersionUID = -7114640047036854546L;
+
public String workingMemoryName;
public List<String> assertObjects;
- public void assign(Assignable assignable, ExecutionContext executionContext)
- throws Exception
+
+ public void assign(Assignable assignable, ExecutionContext executionContext) throws Exception
{
WorkingMemory workingMemory = getWorkingMemory(workingMemoryName, assertObjects, executionContext);
workingMemory.setGlobal( "assignable", assignable );
workingMemory.fireAllRules();
}
+
}
\ No newline at end of file
1.6 +2 -4 jboss-seam/src/main/org/jboss/seam/drools/DroolsDecisionHandler.java
(In the diff below, changes in quantity of whitespace are not shown.)
Index: DroolsDecisionHandler.java
===================================================================
RCS file: /cvsroot/jboss/jboss-seam/src/main/org/jboss/seam/drools/DroolsDecisionHandler.java,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -b -r1.5 -r1.6
--- DroolsDecisionHandler.java 20 Jun 2007 05:49:43 -0000 1.5
+++ DroolsDecisionHandler.java 10 Jul 2007 08:57:36 -0000 1.6
@@ -16,12 +16,10 @@
public class DroolsDecisionHandler extends DroolsHandler implements DecisionHandler
{
private static final long serialVersionUID = -8900810376838166513L;
+
public List<String> assertObjects;
public String workingMemoryName;
- /**
- * The FireRulesActionHandler gets variables from the Instance, and asserts
- * them into the Rules Engine and invokes the rules.
- */
+
public String decide(ExecutionContext executionContext) throws Exception
{
WorkingMemory workingMemory = getWorkingMemory(workingMemoryName, assertObjects, executionContext);
1.8 +0 -1 jboss-seam/src/main/org/jboss/seam/drools/DroolsHandler.java
(In the diff below, changes in quantity of whitespace are not shown.)
Index: DroolsHandler.java
===================================================================
RCS file: /cvsroot/jboss/jboss-seam/src/main/org/jboss/seam/drools/DroolsHandler.java,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -b -r1.7 -r1.8
--- DroolsHandler.java 19 Jun 2007 19:02:32 -0000 1.7
+++ DroolsHandler.java 10 Jul 2007 08:57:36 -0000 1.8
@@ -26,7 +26,6 @@
for (String objectName: expressions)
{
- //TODO: delegate to jBPM instead of to JSF
Object object = Expressions.instance().createValueExpression(objectName).getValue();
//Object object = new SeamVariableResolver().resolveVariable(objectName);
// assert the object into the rules engine
1.14 +32 -20 jboss-seam/src/main/org/jboss/seam/drools/ManagedWorkingMemory.java
(In the diff below, changes in quantity of whitespace are not shown.)
Index: ManagedWorkingMemory.java
===================================================================
RCS file: /cvsroot/jboss/jboss-seam/src/main/org/jboss/seam/drools/ManagedWorkingMemory.java,v
retrieving revision 1.13
retrieving revision 1.14
diff -u -b -r1.13 -r1.14
--- ManagedWorkingMemory.java 8 Jul 2007 21:13:36 -0000 1.13
+++ ManagedWorkingMemory.java 10 Jul 2007 08:57:36 -0000 1.14
@@ -4,6 +4,7 @@
import org.drools.RuleBase;
import org.drools.StatefulSession;
+import org.drools.spi.GlobalResolver;
import org.jboss.seam.Component;
import org.jboss.seam.ScopeType;
import org.jboss.seam.annotations.Destroy;
@@ -63,6 +64,14 @@
{
if (statefulSession==null)
{
+ statefulSession = getRuleBaseFromValueBinding().newStatefulSession();
+ statefulSession.setGlobalResolver( createGlobalResolver() );
+ }
+ return statefulSession;
+ }
+
+ protected RuleBase getRuleBaseFromValueBinding()
+ {
RuleBase ruleBase;
if (this.ruleBase!=null)
{
@@ -82,9 +91,12 @@
{
throw new IllegalStateException("RuleBase not found: " + ruleBaseName);
}
- statefulSession = ruleBase.newStatefulSession();
+ return ruleBase;
}
- return statefulSession;
+
+ protected GlobalResolver createGlobalResolver()
+ {
+ return new SeamGlobalResolver();
}
@Destroy
1.1 date: 2007/07/10 08:57:36; author: gavin; state: Exp;jboss-seam/src/main/org/jboss/seam/drools/SeamGlobalResolver.java
Index: SeamGlobalResolver.java
===================================================================
package org.jboss.seam.drools;
import org.drools.spi.GlobalResolver;
import org.jboss.seam.Component;
import org.jboss.seam.contexts.Contexts;
import org.jboss.seam.core.Init;
/**
* Resolves Seam context variables as Drools globals
*
* @author Gavin King
*
*/
class SeamGlobalResolver implements GlobalResolver
{
public Object resolve(String name)
{
if ( !Contexts.isApplicationContextActive() )
{
//TODO: Drools should let us chain GlobalResolvers
//return resolver.resolve(name)
return null;
}
else
{
Object instance = Component.getInstance(name);
if (instance==null)
{
/*instance = resolver.resolve(name);
if (instance==null)
{*/
return Init.instance().getRootNamespace().getChild(name);
/*}
else
{
return instance;
}*/
}
else
{
return instance;
}
}
}
}
More information about the jboss-cvs-commits
mailing list