[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