[jboss-svn-commits] JBL Code SVN: r19383 - in labs/jbossrules/branches/4.0.x: drools-compiler/src/test/java/org/drools/integrationtests and 3 other directories.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Wed Apr 2 15:18:55 EDT 2008


Author: tirelli
Date: 2008-04-02 15:18:55 -0400 (Wed, 02 Apr 2008)
New Revision: 19383

Modified:
   labs/jbossrules/branches/4.0.x/drools-compiler/src/main/java/org/drools/rule/builder/dialect/java/JavaConsequenceBuilder.java
   labs/jbossrules/branches/4.0.x/drools-compiler/src/test/java/org/drools/integrationtests/MiscTest.java
   labs/jbossrules/branches/4.0.x/drools-compiler/src/test/resources/org/drools/integrationtests/test_JavaModifyBlock.drl
   labs/jbossrules/branches/4.0.x/drools-examples/drools-examples-drl/src/main/java/org/drools/examples/HonestPoliticianExample.java
   labs/jbossrules/branches/4.0.x/drools-examples/drools-examples-drl/src/main/rules/org/drools/examples/HonestPolitician.drl
Log:
JBRULES-1542: fixing problem related to use of inner classes in modify blocks

Modified: labs/jbossrules/branches/4.0.x/drools-compiler/src/main/java/org/drools/rule/builder/dialect/java/JavaConsequenceBuilder.java
===================================================================
--- labs/jbossrules/branches/4.0.x/drools-compiler/src/main/java/org/drools/rule/builder/dialect/java/JavaConsequenceBuilder.java	2008-04-02 19:17:51 UTC (rev 19382)
+++ labs/jbossrules/branches/4.0.x/drools-compiler/src/main/java/org/drools/rule/builder/dialect/java/JavaConsequenceBuilder.java	2008-04-02 19:18:55 UTC (rev 19383)
@@ -33,6 +33,7 @@
 import org.drools.rule.builder.dialect.java.parser.JavaModifyBlockDescr;
 import org.drools.rule.builder.dialect.mvel.MVELDialect;
 import org.drools.spi.PatternExtractor;
+import org.drools.util.ClassUtils;
 import org.mvel.ExecutableStatement;
 
 /**
@@ -178,12 +179,13 @@
 
                 return null;
             }
-
+            String retString = ClassUtils.canonicalName( ret );
+            
             // adding modify expression
             consequence.append( "{\n" );
-            consequence.append( ret.getName() );
+            consequence.append( retString );
             consequence.append( " __obj__ = (" );
-            consequence.append( ret.getName() );
+            consequence.append( retString );
             consequence.append( ") " );
             consequence.append( d.getModifyExpression() );
             consequence.append( ";\n" );

Modified: labs/jbossrules/branches/4.0.x/drools-compiler/src/test/java/org/drools/integrationtests/MiscTest.java
===================================================================
--- labs/jbossrules/branches/4.0.x/drools-compiler/src/test/java/org/drools/integrationtests/MiscTest.java	2008-04-02 19:17:51 UTC (rev 19382)
+++ labs/jbossrules/branches/4.0.x/drools-compiler/src/test/java/org/drools/integrationtests/MiscTest.java	2008-04-02 19:18:55 UTC (rev 19383)
@@ -60,6 +60,7 @@
 import org.drools.Message;
 import org.drools.Order;
 import org.drools.OrderItem;
+import org.drools.OuterClass;
 import org.drools.Person;
 import org.drools.PersonFinal;
 import org.drools.PersonInterface;
@@ -4788,16 +4789,18 @@
         workingMemory.insert( bob );
         workingMemory.insert( new Cheese() );
         workingMemory.insert( new Cheese() );
+        workingMemory.insert( new OuterClass.InnerClass( 1 ) );
 
-        workingMemory.fireAllRules( 2 );
+        workingMemory.fireAllRules( );
 
-        assertEquals( "should have fired only once",
-                      1,
+        assertEquals( 2,
                       list.size() );
         assertEquals( "full",
                       bob.getStatus() );
         assertEquals( 31,
                       bob.getAge() );
+        assertEquals( 2,
+                      ((OuterClass.InnerClass)list.get( 1 )).getIntAttr() );
     }
 
     public void testOrCE() throws Exception {

Modified: labs/jbossrules/branches/4.0.x/drools-compiler/src/test/resources/org/drools/integrationtests/test_JavaModifyBlock.drl
===================================================================
--- labs/jbossrules/branches/4.0.x/drools-compiler/src/test/resources/org/drools/integrationtests/test_JavaModifyBlock.drl	2008-04-02 19:17:51 UTC (rev 19382)
+++ labs/jbossrules/branches/4.0.x/drools-compiler/src/test/resources/org/drools/integrationtests/test_JavaModifyBlock.drl	2008-04-02 19:18:55 UTC (rev 19383)
@@ -1,8 +1,11 @@
 package org.drools;
 
+import org.drools.OuterClass.InnerClass;
+
 global java.util.List results;
 
 rule "test modify block"
+    salience 10
 when
     $p: Person( status == "hungry" )
     $c: Cheese( )
@@ -13,4 +16,14 @@
         setAge( $p.getAge() + 1 ) 
     }
     results.add( $p );
+end
+
+rule "uses inner class"
+when
+    $ic : InnerClass( intAttr == 1 )
+then
+    modify( $ic ) {
+        setIntAttr( 2 )
+    }
+    results.add( $ic );
 end
\ No newline at end of file

Modified: labs/jbossrules/branches/4.0.x/drools-examples/drools-examples-drl/src/main/java/org/drools/examples/HonestPoliticianExample.java
===================================================================
--- labs/jbossrules/branches/4.0.x/drools-examples/drools-examples-drl/src/main/java/org/drools/examples/HonestPoliticianExample.java	2008-04-02 19:17:51 UTC (rev 19382)
+++ labs/jbossrules/branches/4.0.x/drools-examples/drools-examples-drl/src/main/java/org/drools/examples/HonestPoliticianExample.java	2008-04-02 19:18:55 UTC (rev 19383)
@@ -1,5 +1,6 @@
 package org.drools.examples;
 
+import java.io.File;
 import java.io.InputStreamReader;
 
 import org.drools.RuleBase;
@@ -7,6 +8,7 @@
 import org.drools.StatefulSession;
 import org.drools.audit.WorkingMemoryFileLogger;
 import org.drools.compiler.PackageBuilder;
+import org.drools.compiler.PackageBuilderConfiguration;
 
 public class HonestPoliticianExample {
 
@@ -15,7 +17,9 @@
      */
     public static void main(final String[] args) throws Exception {
 
-        final PackageBuilder builder = new PackageBuilder();
+        PackageBuilderConfiguration conf = new PackageBuilderConfiguration();
+        conf.setDumpDir( new File("target") );
+        final PackageBuilder builder = new PackageBuilder(conf);
         builder.addPackageFromDrl( new InputStreamReader( HonestPoliticianExample.class.getResourceAsStream( "HonestPolitician.drl" ) ) );
 
         final RuleBase ruleBase = RuleBaseFactory.newRuleBase();

Modified: labs/jbossrules/branches/4.0.x/drools-examples/drools-examples-drl/src/main/rules/org/drools/examples/HonestPolitician.drl
===================================================================
--- labs/jbossrules/branches/4.0.x/drools-examples/drools-examples-drl/src/main/rules/org/drools/examples/HonestPolitician.drl	2008-04-02 19:17:51 UTC (rev 19382)
+++ labs/jbossrules/branches/4.0.x/drools-examples/drools-examples-drl/src/main/rules/org/drools/examples/HonestPolitician.drl	2008-04-02 19:18:55 UTC (rev 19383)
@@ -32,6 +32,8 @@
         exists( Hope() )
     then
         System.out.println( "I'm an evil corporation and I have corrupted " + politician.getName() );
-        modify( politician ) {setHonest( false )}
+        modify( politician ) { 
+            setHonest( false ) 
+        }
 end
 




More information about the jboss-svn-commits mailing list