[jboss-svn-commits] JBL Code SVN: r13521 - labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/compiler.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Sat Jul 14 22:43:46 EDT 2007


Author: mark.proctor at jboss.com
Date: 2007-07-14 22:43:46 -0400 (Sat, 14 Jul 2007)
New Revision: 13521

Modified:
   labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/compiler/PackageBuilderConfigurationTest.java
Log:
JBRULES-1010 pluggeable Dialect Configuration.
-Allow for chainedproperties searching, which ignores defaults

Modified: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/compiler/PackageBuilderConfigurationTest.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/compiler/PackageBuilderConfigurationTest.java	2007-07-15 02:43:06 UTC (rev 13520)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/compiler/PackageBuilderConfigurationTest.java	2007-07-15 02:43:46 UTC (rev 13521)
@@ -5,8 +5,8 @@
 import java.util.Map;
 import java.util.Properties;
 
-import org.drools.EventManager;
-import org.drools.WorkingMemory;
+import junit.framework.TestCase;
+
 import org.drools.base.ClassFieldExtractorCache;
 import org.drools.base.TypeResolver;
 import org.drools.lang.descr.AndDescr;
@@ -18,7 +18,6 @@
 import org.drools.lang.descr.ImportDescr;
 import org.drools.lang.descr.PackageDescr;
 import org.drools.lang.descr.RuleDescr;
-import org.drools.rule.Declaration;
 import org.drools.rule.Package;
 import org.drools.rule.Pattern;
 import org.drools.rule.Rule;
@@ -38,45 +37,73 @@
 import org.drools.rule.builder.dialect.java.JavaDialect;
 import org.drools.rule.builder.dialect.java.JavaDialectConfiguration;
 import org.drools.rule.builder.dialect.mvel.MVELDialect;
-import org.drools.spi.EvalExpression;
-import org.drools.spi.Tuple;
+import org.drools.util.ChainedProperties;
 
-import junit.framework.TestCase;
-
 public class PackageBuilderConfigurationTest extends TestCase {
 
     protected void setUp() throws Exception {
         System.getProperties().remove( "drools.dialect.java.compiler" );
         System.getProperties().remove( "drools.dialect.default" );
     }
-    
+
     protected void tearDown() throws Exception {
         System.getProperties().remove( "drools.dialect.java.compiler" );
         System.getProperties().remove( "drools.dialect.default" );
     }
-    
+
+    public void testIgnoreDetauls() {
+        // check standard chained properties, that includes defaults
+        ChainedProperties chainedProperties = new ChainedProperties( null,
+                                                                     "packagebuilder.conf",
+                                                                     true );
+        System.out.println( chainedProperties.getProperty( "drools.dialect.java.compiler",
+                                                           null ) );
+        assertNotNull( chainedProperties.getProperty( "drools.dialect.java.compiler",
+                                                      null ) );
+
+                
+        // now check that chained properties can ignore defaults
+        chainedProperties = new ChainedProperties( null,
+                                                   "packagebuilder.conf",
+                                                   false );
+        System.out.println( chainedProperties.getProperty( "drools.dialect.java.compiler",
+                                                           null ) );
+        assertNull( chainedProperties.getProperty( "drools.dialect.java.compiler",
+                                                   null ) );
+
+        
+        // now check it can find defaults again.
+        chainedProperties = new ChainedProperties( null,
+                                                   "packagebuilder.conf",
+                                                   true );
+        System.out.println( chainedProperties.getProperty( "drools.dialect.java.compiler",
+                                                           null ) );
+        assertNotNull( chainedProperties.getProperty( "drools.dialect.java.compiler",
+                                                      null ) );
+    }
+
     public void testSystemProperties() {
         PackageBuilderConfiguration cfg = new PackageBuilderConfiguration();
-        JavaDialectConfiguration javaConf = ( JavaDialectConfiguration ) cfg.getDialectConfiguration( "java" );
+        JavaDialectConfiguration javaConf = (JavaDialectConfiguration) cfg.getDialectConfiguration( "java" );
         assertEquals( JavaDialectConfiguration.ECLIPSE,
                       javaConf.getCompiler() );
 
         System.setProperty( "drools.dialect.java.compiler",
                             "JANINO" );
         cfg = new PackageBuilderConfiguration();
-        javaConf = ( JavaDialectConfiguration ) cfg.getDialectConfiguration( "java" );
+        javaConf = (JavaDialectConfiguration) cfg.getDialectConfiguration( "java" );
         assertEquals( JavaDialectConfiguration.JANINO,
                       javaConf.getCompiler() );
 
         PackageBuilderConfiguration cfg2 = new PackageBuilderConfiguration();
-        JavaDialectConfiguration javaConf2 = ( JavaDialectConfiguration ) cfg2.getDialectConfiguration( "java" );
+        JavaDialectConfiguration javaConf2 = (JavaDialectConfiguration) cfg2.getDialectConfiguration( "java" );
         assertEquals( javaConf.getCompiler(),
                       javaConf2.getCompiler() );
 
         System.setProperty( "drools.dialect.java.compiler",
                             "ECLIPSE" );
         cfg = new PackageBuilderConfiguration();
-        javaConf = ( JavaDialectConfiguration ) cfg.getDialectConfiguration( "java" );
+        javaConf = (JavaDialectConfiguration) cfg.getDialectConfiguration( "java" );
         assertEquals( JavaDialectConfiguration.ECLIPSE,
                       javaConf.getCompiler() );
 
@@ -89,9 +116,9 @@
                       javaConf2.getCompiler() );
 
         final PackageBuilderConfiguration cfg3 = new PackageBuilderConfiguration();
-        JavaDialectConfiguration javaConf3 = ( JavaDialectConfiguration ) cfg3.getDialectConfiguration( "java" );
+        JavaDialectConfiguration javaConf3 = (JavaDialectConfiguration) cfg3.getDialectConfiguration( "java" );
         assertEquals( javaConf.getCompiler(),
-                      javaConf3.getCompiler() );               
+                      javaConf3.getCompiler() );
     }
 
     public void testProgrammaticProperties() {
@@ -104,59 +131,68 @@
         PackageBuilderConfiguration cfg1 = new PackageBuilderConfiguration( properties );
         assertTrue( cfg1.getDefaultDialect() instanceof MVELDialect );
 
-        final PackageBuilderConfiguration cfg2 = new PackageBuilderConfiguration(properties);
+        final PackageBuilderConfiguration cfg2 = new PackageBuilderConfiguration( properties );
         assertEquals( cfg1.getDefaultDialect().getClass(),
-                      cfg2.getDefaultDialect().getClass() );            
+                      cfg2.getDefaultDialect().getClass() );
     }
-    
+
     public void testMockDialect() {
-        Package pkg = new Package("org.pkg1");
+        Package pkg = new Package( "org.pkg1" );
 
         PackageBuilderConfiguration cfg1 = new PackageBuilderConfiguration();
         MockDialectConfiguration mockConf = new MockDialectConfiguration();
-        cfg1.getDialectRegistry().addDialectConfiguration( "mock", mockConf );        
+        cfg1.getDialectRegistry().addDialectConfiguration( "mock",
+                                                           mockConf );
         cfg1.setDefaultDialect( "mock" );
-        
+
         PackageBuilder builder = new PackageBuilder( pkg,
-                                                     cfg1 );        
-        
-        MockDialect mockDialect2 = ( MockDialect ) builder.getPackageBuilderConfiguration().getDefaultDialect();
-        assertSame( mockConf.getDialect(), mockDialect2);
-        
-        assertSame(builder, mockDialect2.getPackageBuilder() );
-        assertSame(pkg, mockDialect2.getPkg() );
+                                                     cfg1 );
+
+        MockDialect mockDialect2 = (MockDialect) builder.getPackageBuilderConfiguration().getDefaultDialect();
+        assertSame( mockConf.getDialect(),
+                    mockDialect2 );
+
+        assertSame( builder,
+                    mockDialect2.getPackageBuilder() );
+        assertSame( pkg,
+                    mockDialect2.getPkg() );
         assertNull( mockDialect2.getRuleDescr() );
-        
-        
-        RuleDescr ruleDescr = new RuleDescr("test rule");
-        ruleDescr.addAttribute( new AttributeDescr("dialect", "mock") );
+
+        RuleDescr ruleDescr = new RuleDescr( "test rule" );
+        ruleDescr.addAttribute( new AttributeDescr( "dialect",
+                                                    "mock" ) );
         ruleDescr.setLhs( new AndDescr() );
         EvalDescr evalDescr = new EvalDescr();
-        ruleDescr.getLhs().addDescr( evalDescr  );
+        ruleDescr.getLhs().addDescr( evalDescr );
 
-        PackageDescr pkgDescr = new PackageDescr("org.pkg1");
-        pkgDescr.addImport( new ImportDescr("java.util.HashMap") );
+        PackageDescr pkgDescr = new PackageDescr( "org.pkg1" );
+        pkgDescr.addImport( new ImportDescr( "java.util.HashMap" ) );
         FunctionImportDescr functionImportDescr = new FunctionImportDescr();
         functionImportDescr.setTarget( "System.out.println" );
         pkgDescr.addFunctionImport( functionImportDescr );
-        
+
         pkgDescr.addRule( ruleDescr );
-        
+
         builder.addPackage( pkgDescr );
-        
-        assertSame( ruleDescr, mockDialect2.getRuleDescr() );
+
+        assertSame( ruleDescr,
+                    mockDialect2.getRuleDescr() );
         assertTrue( mockDialect2.getImport().contains( "java.util.HashMap" ) );
         assertTrue( mockDialect2.getStaticImport().contains( "System.out.println" ) );
-        assertEquals( "eval was built", evalDescr.getContent() );
-        assertEquals( "consequence was built", ruleDescr.getConsequence() );
+        assertEquals( "eval was built",
+                      evalDescr.getContent() );
+        assertEquals( "consequence was built",
+                      ruleDescr.getConsequence() );
         assertTrue( mockDialect2.isCompileAll() );
-        
+
         assertNotNull( pkg.getRule( "test rule" ) );
-                        
+
     }
-    
-    public static class MockDialectConfiguration implements DialectConfiguration {
-        private MockDialect dialect = new MockDialect();
+
+    public static class MockDialectConfiguration
+        implements
+        DialectConfiguration {
+        private MockDialect                 dialect = new MockDialect();
         private PackageBuilderConfiguration conf;
 
         public Dialect getDialect() {
@@ -168,25 +204,27 @@
         }
 
         public void init(PackageBuilderConfiguration configuration) {
-            this.conf = configuration;            
+            this.conf = configuration;
         }
-        
+
     }
-    
-    public static class MockDialect implements Dialect {
+
+    public static class MockDialect
+        implements
+        Dialect {
         private PackageBuilder builder;
-        private Package pkg;
-        private RuleDescr ruleDescr;
-        private Rule rule;
-        
-        private List imports = new ArrayList();
-        private List staticImports = new ArrayList();
-        
-        private boolean compileAll = false;
-        
+        private Package        pkg;
+        private RuleDescr      ruleDescr;
+        private Rule           rule;
+
+        private List           imports       = new ArrayList();
+        private List           staticImports = new ArrayList();
+
+        private boolean        compileAll    = false;
+
         public void init(PackageBuilder builder) {
             this.builder = builder;
-            
+
         }
 
         public void init(Package pkg) {
@@ -196,8 +234,7 @@
         public void init(RuleDescr ruleDescr) {
             this.ruleDescr = ruleDescr;
         }
-                
-        
+
         public PackageBuilder getPackageBuilder() {
             return builder;
         }
@@ -213,29 +250,29 @@
         public void addFunction(FunctionDescr functionDescr,
                                 TypeResolver typeResolver) {
             // TODO Auto-generated method stub
-            
+
         }
 
         public void addImport(String importEntry) {
-            this.imports.add( importEntry );           
+            this.imports.add( importEntry );
         }
-        
+
         public List getImport() {
             return this.imports;
         }
-        
+
         public void addStaticImport(String importEntry) {
             this.imports.add( importEntry );
-        }       
-        
+        }
+
         public List getStaticImport() {
             return this.imports;
         }
 
         public void addRule(RuleBuildContext context) {
-             this.rule = context.getRule();            
+            this.rule = context.getRule();
         }
-        
+
         public Rule getRule() {
             return this.rule;
         }
@@ -255,9 +292,9 @@
         }
 
         public void compileAll() {
-            this.compileAll = true;            
+            this.compileAll = true;
         }
-        
+
         public boolean isCompileAll() {
             return this.compileAll;
         }
@@ -273,7 +310,7 @@
             } else if ( clazz == AndDescr.class ) {
                 return new GroupElementBuilder();
             } else {
-                throw new RuntimeException( "clazz " + clazz + " is not yet configured " ); 
+                throw new RuntimeException( "clazz " + clazz + " is not yet configured " );
             }
         }
 
@@ -343,15 +380,17 @@
         public TypeResolver getTypeResolver() {
             // TODO Auto-generated method stub
             return null;
-        }        
-    }    
-    
-    public static class MockEvalBuilder implements RuleConditionBuilder {
+        }
+    }
 
+    public static class MockEvalBuilder
+        implements
+        RuleConditionBuilder {
+
         public RuleConditionElement build(RuleBuildContext context,
                                           BaseDescr descr) {
-            EvalDescr evalDescr = ( EvalDescr ) descr;
-            evalDescr.setContent( "eval was built" );            
+            EvalDescr evalDescr = (EvalDescr) descr;
+            evalDescr.setContent( "eval was built" );
             return null;
         }
 
@@ -360,14 +399,16 @@
                                           Pattern prefixPattern) {
             return null;
         }
-        
+
     }
-    
-    public static class MockConsequenceBuilder implements ConsequenceBuilder {
 
+    public static class MockConsequenceBuilder
+        implements
+        ConsequenceBuilder {
+
         public void build(RuleBuildContext context) {
             context.getRuleDescr().setConsequence( "consequence was built" );
         }
-        
+
     }
 }




More information about the jboss-svn-commits mailing list