[jboss-svn-commits] JBL Code SVN: r26528 - in labs/jbossrules/trunk/drools-compiler/src: test/java/org/drools/integrationtests and 1 other directory.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Thu May 14 00:25:19 EDT 2009
Author: KrisVerlaenen
Date: 2009-05-14 00:25:18 -0400 (Thu, 14 May 2009)
New Revision: 26528
Modified:
labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/dialect/mvel/MVELReturnValueEvaluatorBuilder.java
labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/ProcessSplitTest.java
Log:
JBRULES-1978: No access to context in a constraint
- add (k)context variable for MVEL code constraint compilation
Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/dialect/mvel/MVELReturnValueEvaluatorBuilder.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/dialect/mvel/MVELReturnValueEvaluatorBuilder.java 2009-05-14 04:24:12 UTC (rev 26527)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/dialect/mvel/MVELReturnValueEvaluatorBuilder.java 2009-05-14 04:25:18 UTC (rev 26528)
@@ -15,6 +15,8 @@
import org.drools.rule.MVELDialectRuntimeData;
import org.drools.rule.builder.PackageBuildContext;
import org.drools.rule.builder.ReturnValueEvaluatorBuilder;
+import org.drools.spi.KnowledgeHelper;
+import org.drools.spi.ProcessContext;
import org.drools.workflow.instance.impl.ReturnValueConstraintEvaluator;
public class MVELReturnValueEvaluatorBuilder
@@ -35,14 +37,17 @@
try {
MVELDialect dialect = (MVELDialect) context.getDialect( "mvel" );
+ Map<String, Class<?>> variables = new HashMap<String,Class<?>>();
+ variables.put("context", ProcessContext.class);
+ variables.put("kcontext", org.drools.runtime.process.ProcessContext.class);
+ variables.put("drools", KnowledgeHelper.class);
Dialect.AnalysisResult analysis = dialect.analyzeBlock( context,
descr,
dialect.getInterceptors(),
text,
- new Map[]{Collections.EMPTY_MAP, context.getPackageBuilder().getGlobals()},
+ new Map[]{variables, context.getPackageBuilder().getGlobals()},
null );
- Map<String, Class<?>> variableClasses = new HashMap<String, Class<?>>();
List<String> variableNames = analysis.getNotBoundedIdentifiers();
if (contextResolver != null) {
for (String variableName: variableNames) {
@@ -55,7 +60,7 @@
null,
"Could not find variable '" + variableName + "' for constraint '" + descr.getText() + "'" ) );
} else {
- variableClasses.put(variableName,
+ variables.put(variableName,
context.getDialect().getTypeResolver().resolveType(
variableScope.findVariable(variableName).getType().getStringType()));
}
@@ -66,7 +71,7 @@
analysis,
null,
null,
- variableClasses,
+ variables,
context );
MVELReturnValueEvaluator expr = new MVELReturnValueEvaluator( unit,
Modified: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/ProcessSplitTest.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/ProcessSplitTest.java 2009-05-14 04:24:12 UTC (rev 26527)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/ProcessSplitTest.java 2009-05-14 04:25:18 UTC (rev 26528)
@@ -634,7 +634,7 @@
" <split id=\"4\" name=\"Split\" type=\"2\" >" +
" <constraints>" +
" <constraint toNodeId=\"8\" toType=\"DROOLS_DEFAULT\" priority=\"2\" type=\"code\" dialect=\"mvel\" >return true;</constraint>" +
- " <constraint toNodeId=\"6\" toType=\"DROOLS_DEFAULT\" priority=\"1\" type=\"code\" dialect=\"mvel\" >return list != null && ((java.util.List) list).size >= 0;</constraint>" +
+ " <constraint toNodeId=\"6\" toType=\"DROOLS_DEFAULT\" priority=\"1\" type=\"code\" dialect=\"mvel\" >return list != null && list.size >= 0;</constraint>" +
" </constraints>" +
" </split>" +
" <end id=\"8\" name=\"End\" />" +
More information about the jboss-svn-commits
mailing list