[jboss-svn-commits] JBL Code SVN: r19385 - in labs/jbossrules/trunk: 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 16:59:35 EDT 2008
Author: tirelli
Date: 2008-04-02 16:59:35 -0400 (Wed, 02 Apr 2008)
New Revision: 19385
Modified:
labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/dialect/java/JavaConsequenceBuilder.java
labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/MiscTest.java
labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/test_JavaModifyBlock.drl
labs/jbossrules/trunk/drools-examples/drools-examples-drl/src/main/java/org/drools/examples/HonestPoliticianExample.java
labs/jbossrules/trunk/drools-examples/drools-examples-drl/src/main/rules/org/drools/examples/HonestPolitician.drl
Log:
JBRULES-1542: fixing modify block bug in trunk
Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/dialect/java/JavaConsequenceBuilder.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/dialect/java/JavaConsequenceBuilder.java 2008-04-02 19:40:06 UTC (rev 19384)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/dialect/java/JavaConsequenceBuilder.java 2008-04-02 20:59:35 UTC (rev 19385)
@@ -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.compiler.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/trunk/drools-compiler/src/test/java/org/drools/integrationtests/MiscTest.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/MiscTest.java 2008-04-02 19:40:06 UTC (rev 19384)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/MiscTest.java 2008-04-02 20:59:35 UTC (rev 19385)
@@ -56,6 +56,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;
@@ -4915,16 +4916,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/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/test_JavaModifyBlock.drl
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/test_JavaModifyBlock.drl 2008-04-02 19:40:06 UTC (rev 19384)
+++ labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/test_JavaModifyBlock.drl 2008-04-02 20:59:35 UTC (rev 19385)
@@ -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/trunk/drools-examples/drools-examples-drl/src/main/java/org/drools/examples/HonestPoliticianExample.java
===================================================================
--- labs/jbossrules/trunk/drools-examples/drools-examples-drl/src/main/java/org/drools/examples/HonestPoliticianExample.java 2008-04-02 19:40:06 UTC (rev 19384)
+++ labs/jbossrules/trunk/drools-examples/drools-examples-drl/src/main/java/org/drools/examples/HonestPoliticianExample.java 2008-04-02 20:59:35 UTC (rev 19385)
@@ -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/trunk/drools-examples/drools-examples-drl/src/main/rules/org/drools/examples/HonestPolitician.drl
===================================================================
--- labs/jbossrules/trunk/drools-examples/drools-examples-drl/src/main/rules/org/drools/examples/HonestPolitician.drl 2008-04-02 19:40:06 UTC (rev 19384)
+++ labs/jbossrules/trunk/drools-examples/drools-examples-drl/src/main/rules/org/drools/examples/HonestPolitician.drl 2008-04-02 20:59:35 UTC (rev 19385)
@@ -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