[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