[jboss-svn-commits] JBL Code SVN: r17070 - in labs/jbossrules/trunk/drools-compiler/src: main/java/org/drools/rule/builder/dialect/java and 1 other directories.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Thu Dec 6 20:39:35 EST 2007
Author: mark.proctor at jboss.com
Date: 2007-12-06 20:39:35 -0500 (Thu, 06 Dec 2007)
New Revision: 17070
Modified:
labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/compiler/ProcessBuilder.java
labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/dialect/java/JavaDialect.java
labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/test_ConstraintDialects.rfm
Log:
JBRULES-1352 Allow Constraints to also use dialectable expression evaluations
-no longer attempt to compile if there is no code
-do not build constraints for AND type splits.
Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/compiler/ProcessBuilder.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/compiler/ProcessBuilder.java 2007-12-06 19:27:47 UTC (rev 17069)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/compiler/ProcessBuilder.java 2007-12-07 01:39:35 UTC (rev 17070)
@@ -157,6 +157,10 @@
}
public void buildSplit(Process process, ProcessDescr processDescr, ProcessBuildContext context, SplitImpl splitNode) {
+ if ( splitNode.getType() == Split.TYPE_AND ) {
+ // we only process or/xor
+ return;
+ }
// we need to clone the map, so we can update the original while iterating.
Map map = new HashMap( splitNode.getConstraints() );
for ( Iterator it = map.entrySet().iterator(); it.hasNext(); ) {
@@ -171,7 +175,7 @@
ruleConstraint.setPriority( constraint.getPriority() );
ruleConstraint.setPriority( constraint.getPriority() );
splitNode.setConstraint( connection, ruleConstraint );
- } else if ( "eval".equals( constraint.getType() ) ) {
+ } else if ( "code".equals( constraint.getType() ) ) {
ReturnValueConstraintEvaluator returnValueConstraint = new ReturnValueConstraintEvaluator();
returnValueConstraint.setDialect( constraint.getDialect() );
returnValueConstraint.setName( constraint.getName() );
Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/dialect/java/JavaDialect.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/dialect/java/JavaDialect.java 2007-12-06 19:27:47 UTC (rev 17069)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/dialect/java/JavaDialect.java 2007-12-07 01:39:35 UTC (rev 17070)
@@ -458,6 +458,10 @@
ProcessClassBuilder classBuilder = context.getDialect().getProcessClassBuilder();
String processClass = classBuilder.buildRule( context );
+ if ( processClass == null ) {
+ // nothing to compile.
+ return;
+ }
final Process process = context.getProcess();
final ProcessDescr processDescr = context.getProcessDescr();
Modified: labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/test_ConstraintDialects.rfm
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/test_ConstraintDialects.rfm 2007-12-06 19:27:47 UTC (rev 17069)
+++ labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/test_ConstraintDialects.rfm 2007-12-07 01:39:35 UTC (rev 17070)
@@ -56,7 +56,7 @@
<constraint>return inList.contains( 3 );</constraint>
<priority>3</priority>
<dialect>java</dialect>
- <type>eval</type>
+ <type>code</type>
</org.drools.ruleflow.core.impl.ConstraintImpl>
</entry>
<entry>
@@ -130,7 +130,7 @@
<constraint>return inList.contains( 1 );</constraint>
<priority>1</priority>
<dialect>mvel</dialect>
- <type>eval</type>
+ <type>code</type>
</org.drools.ruleflow.core.impl.ConstraintImpl>
</entry>
</constraints>
More information about the jboss-svn-commits
mailing list