[jboss-svn-commits] JBL Code SVN: r11354 - in labs/jbossrules/trunk/drools-compiler/src: main/java/org/drools/rule/builder and 2 other directories.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Thu Apr 26 09:47:50 EDT 2007
Author: mark.proctor at jboss.com
Date: 2007-04-26 09:47:50 -0400 (Thu, 26 Apr 2007)
New Revision: 11354
Added:
labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/rule/builder/dialect/mvel/InstrumentedBuildContent.java
labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/rule/builder/dialect/mvel/InstrumentedDeclarationScopeResolver.java
Modified:
labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/compiler/PackageBuilder.java
labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/compiler/PackageBuilderConfiguration.java
labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/RuleBuildContext.java
labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/RuleBuilder.java
labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/rule/builder/dialect/java/RuleBuilderTest.java
labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/rule/builder/dialect/mvel/MVELConsequenceBuilderTest.java
labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/rule/builder/dialect/mvel/MVELEvalBuilderTest.java
labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/rule/builder/dialect/mvel/MVELPredicateBuilderTest.java
labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/rule/builder/dialect/mvel/MVELReturnValueBuilderTest.java
Log:
JBRULES-713 Make Dialects Pluggeable
-more refactoring to get things closer to pluggeable dialects
Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/compiler/PackageBuilder.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/compiler/PackageBuilder.java 2007-04-26 13:38:05 UTC (rev 11353)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/compiler/PackageBuilder.java 2007-04-26 13:47:50 UTC (rev 11354)
@@ -114,24 +114,32 @@
this.pkg = pkg;
this.classFieldExtractorCache = new ClassFieldExtractorCache();
+ this.dialects = new DialectRegistry();
if ( this.pkg != null ) {
this.typeResolver = new ClassTypeResolver( this.pkg.getImports(),
this.pkg.getPackageCompilationData().getClassLoader() );
// make an automatic import for the current package
this.typeResolver.addImport( this.pkg.getName() + ".*" );
+ this.dialects.addDialect( "java",
+ new JavaDialect( pkg,
+ configuration,
+ getTypeResolver(),
+ this.classFieldExtractorCache ) );
+ this.dialect = this.dialects.getDialect( "java" ); // TODO this should from the package
+
} else {
this.typeResolver = new ClassTypeResolver( new ArrayList(), configuration.getClassLoader() );
+ this.dialects.addDialect( "java",
+ new JavaDialect( pkg,
+ configuration,
+ getTypeResolver(),
+ this.classFieldExtractorCache ) );
+ this.dialects.addDialect( "default", this.dialects.getDialect( configuration.getDialect() ) );
+ this.dialect = this.dialects.getDialect( configuration.getDialect() );
}
- this.dialects = new DialectRegistry();
- this.dialects.addDialect( "java",
- new JavaDialect( pkg,
- configuration,
- getTypeResolver(),
- this.classFieldExtractorCache ) );
-
- this.dialect = this.dialects.getDialect( "java" );
+ //this.dialect = this.dialects.getDialect( "java" );
}
/**
@@ -258,6 +266,8 @@
private Package newPackage(final PackageDescr packageDescr) {
final Package pkg = new Package( packageDescr.getName(),
this.configuration.getClassLoader() );
+
+ this.dialect = this.dialects.getDialect( "java" ); // TODO this should from the package
this.dialect.init( pkg );
@@ -335,16 +345,16 @@
}
private void addRule(final RuleDescr ruleDescr) {
- this.dialect.init( ruleDescr );
+ //this.dialect.init( ruleDescr );
RuleBuildContext context = new RuleBuildContext( pkg,
- ruleDescr );
- context.setDialect( this.dialect );
+ ruleDescr,
+ this.dialects );
this.builder.build( context );
this.results.addAll( context.getErrors() );
- this.dialect.addRule( context );
+ context.getDialect().addRule( context );
this.pkg.addRule( context.getRule() );
}
Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/compiler/PackageBuilderConfiguration.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/compiler/PackageBuilderConfiguration.java 2007-04-26 13:38:05 UTC (rev 11353)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/compiler/PackageBuilderConfiguration.java 2007-04-26 13:47:50 UTC (rev 11354)
@@ -44,6 +44,9 @@
private static final int CONFIGURED_COMPILER = getDefaultCompiler();
private static final String CONFIGURED_LANGUAGE_LEVEL = getDefaultLanguageLevel();
+ public static final String[] DIALECTS = new String[]{"java", "mvel"};
+ private String dialect = getDefaultDialect();
+
private int compiler = PackageBuilderConfiguration.CONFIGURED_COMPILER;
private ClassLoader classLoader;
@@ -83,6 +86,14 @@
this.languageLevel = level;
}
+ public String getDialect() {
+ return this.dialect;
+ }
+
+ public void setDialect(String dialect) {
+ this.dialect = dialect;
+ }
+
/**
* Set the compiler to be used when building the rules semantic code blocks.
* This overrides the default, and even what was set as a system property.
@@ -111,6 +122,17 @@
}
}
+ static String getDefaultDialect() {
+ String dialect = System.getProperty( "drools.dialect",
+ "java" );
+
+ if ( Arrays.binarySearch( DIALECTS,
+ dialect ) < 0 ) {
+ throw new RuntimeDroolsException( " dialect is not a valid registered dialect" );
+ }
+ return dialect;
+ }
+
/**
* This will attempt to read the System property to work out what default to set.
* This should only be done once when the class is loaded. After that point, you will have
@@ -137,7 +159,7 @@
static String getDefaultLanguageLevel() {
try {
final String languageLevel = System.getProperty( "drools.compiler.languagelevel",
- DEFAULT_LANGUAGE_LEVEL );
+ DEFAULT_LANGUAGE_LEVEL );
if ( Arrays.binarySearch( LANGUAGE_LEVELS,
languageLevel ) < 0 ) {
Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/RuleBuildContext.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/RuleBuildContext.java 2007-04-26 13:38:05 UTC (rev 11353)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/RuleBuildContext.java 2007-04-26 13:47:50 UTC (rev 11354)
@@ -17,11 +17,16 @@
package org.drools.rule.builder;
import java.util.ArrayList;
+import java.util.Calendar;
import java.util.HashMap;
+import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Stack;
+import org.drools.base.evaluators.DateFactory;
+import org.drools.compiler.DialectRegistry;
+import org.drools.lang.descr.AttributeDescr;
import org.drools.lang.descr.QueryDescr;
import org.drools.lang.descr.RuleDescr;
import org.drools.rule.Package;
@@ -79,9 +84,10 @@
* Default constructor
*/
public RuleBuildContext(final Package pkg,
- final RuleDescr ruleDescr) {
+ final RuleDescr ruleDescr,
+ final DialectRegistry registry) {
this.pkg = pkg;
-
+
this.methods = new ArrayList();
this.invokers = new HashMap();
this.invokerLookups = new HashMap();
@@ -97,12 +103,18 @@
} else {
this.rule = new Rule( ruleDescr.getName() );
}
+
+ // Assign attributes
+ setAttributes( this.rule,
+ ruleDescr.getAttributes() );
+
+
+ String dialectName = ( this.rule.getDialect() != null ) ? this.rule.getDialect() : "default";
+ this.dialect = registry.getDialect( dialectName );
+
+ this.dialect.init( ruleDescr );
}
- public void setDialect(Dialect dialect) {
- this.dialect = dialect;
- }
-
public Dialect getDialect() {
return this.dialect;
}
@@ -227,16 +239,69 @@
this.patternId = patternId;
}
-// public String getRuleClass() {
-// return this.ruleClass;
-// }
-//
-// public void setRuleClass(final String ruleClass) {
-// this.ruleClass = ruleClass;
-// }
-
public Stack getBuildStack() {
return this.buildStack;
}
+ /**
+ * Sets rule Attributes
+ *
+ * @param rule
+ * @param attributes
+ */
+ public static void setAttributes(final Rule rule,
+ final List attributes) {
+
+ for ( final Iterator it = attributes.iterator(); it.hasNext(); ) {
+ final AttributeDescr attributeDescr = (AttributeDescr) it.next();
+ final String name = attributeDescr.getName();
+ if ( name.equals( "salience" ) ) {
+ rule.setSalience( Integer.parseInt( attributeDescr.getValue() ) );
+ } else if ( name.equals( "no-loop" ) ) {
+ if ( attributeDescr.getValue() == null ) {
+ rule.setNoLoop( true );
+ } else {
+ rule.setNoLoop( Boolean.valueOf( attributeDescr.getValue() ).booleanValue() );
+ }
+ } else if ( name.equals( "auto-focus" ) ) {
+ if ( attributeDescr.getValue() == null ) {
+ rule.setAutoFocus( true );
+ } else {
+ rule.setAutoFocus( Boolean.valueOf( attributeDescr.getValue() ).booleanValue() );
+ }
+ } else if ( name.equals( "agenda-group" ) ) {
+ rule.setAgendaGroup( attributeDescr.getValue() );
+ } else if ( name.equals( "activation-group" ) ) {
+ rule.setActivationGroup( attributeDescr.getValue() );
+ } else if ( name.equals( "ruleflow-group" ) ) {
+ rule.setRuleFlowGroup( attributeDescr.getValue() );
+ } else if ( name.equals( "lock-on-active" ) ) {
+ if ( attributeDescr.getValue() == null ) {
+ rule.setLockOnActive( true );
+ } else {
+ rule.setLockOnActive( Boolean.valueOf( attributeDescr.getValue() ).booleanValue() );
+ }
+ } else if ( name.equals( "duration" ) ) {
+ rule.setDuration( Long.parseLong( attributeDescr.getValue() ) );
+ rule.setAgendaGroup( "" );
+ } else if ( name.equals( "enabled" ) ) {
+ if ( attributeDescr.getValue() == null ) {
+ rule.setEnabled( true );
+ } else {
+ rule.setEnabled( Boolean.valueOf( attributeDescr.getValue() ).booleanValue() );
+ }
+ } else if ( name.equals( "date-effective" ) ) {
+ final Calendar cal = Calendar.getInstance();
+ cal.setTime( DateFactory.parseDate( attributeDescr.getValue() ) );
+ rule.setDateEffective( cal );
+ } else if ( name.equals( "date-expires" ) ) {
+ final Calendar cal = Calendar.getInstance();
+ cal.setTime( DateFactory.parseDate( attributeDescr.getValue() ) );
+ rule.setDateExpires( cal );
+ } else if ( name.equals( "dialect" ) ) {
+ rule.setDialect( attributeDescr.getValue() );
+ }
+ }
+ }
+
}
Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/RuleBuilder.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/RuleBuilder.java 2007-04-26 13:38:05 UTC (rev 11353)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/RuleBuilder.java 2007-04-26 13:47:50 UTC (rev 11354)
@@ -48,10 +48,6 @@
public void build(final RuleBuildContext context) {
RuleDescr ruleDescr = context.getRuleDescr();
- // Assign attributes
- setAttributes( context.getRule(),
- ruleDescr.getAttributes() );
-
final ConditionalElementBuilder builder = (ConditionalElementBuilder) context.getDialect().getBuilder( ruleDescr.getLhs().getClass() );
if ( builder != null ) {
final GroupElement ce = (GroupElement) builder.build( context,
@@ -72,67 +68,4 @@
context.getDialect().getRuleClassBuilder().buildRule( context,
ruleDescr );
}
-
- /**
- * Sets rule Attributes
- *
- * @param rule
- * @param attributes
- */
- public void setAttributes(final Rule rule,
- final List attributes) {
-
- for ( final Iterator it = attributes.iterator(); it.hasNext(); ) {
- final AttributeDescr attributeDescr = (AttributeDescr) it.next();
- final String name = attributeDescr.getName();
- if ( name.equals( "salience" ) ) {
- rule.setSalience( Integer.parseInt( attributeDescr.getValue() ) );
- } else if ( name.equals( "no-loop" ) ) {
- if ( attributeDescr.getValue() == null ) {
- rule.setNoLoop( true );
- } else {
- rule.setNoLoop( Boolean.valueOf( attributeDescr.getValue() ).booleanValue() );
- }
- } else if ( name.equals( "auto-focus" ) ) {
- if ( attributeDescr.getValue() == null ) {
- rule.setAutoFocus( true );
- } else {
- rule.setAutoFocus( Boolean.valueOf( attributeDescr.getValue() ).booleanValue() );
- }
- } else if ( name.equals( "agenda-group" ) ) {
- rule.setAgendaGroup( attributeDescr.getValue() );
- } else if ( name.equals( "activation-group" ) ) {
- rule.setActivationGroup( attributeDescr.getValue() );
- } else if ( name.equals( "ruleflow-group" ) ) {
- rule.setRuleFlowGroup( attributeDescr.getValue() );
- } else if ( name.equals( "lock-on-active" ) ) {
- if ( attributeDescr.getValue() == null ) {
- rule.setLockOnActive( true );
- } else {
- rule.setLockOnActive( Boolean.valueOf( attributeDescr.getValue() ).booleanValue() );
- }
- } else if ( name.equals( "duration" ) ) {
- rule.setDuration( Long.parseLong( attributeDescr.getValue() ) );
- rule.setAgendaGroup( "" );
- } else if ( name.equals( "enabled" ) ) {
- if ( attributeDescr.getValue() == null ) {
- rule.setEnabled( true );
- } else {
- rule.setEnabled( Boolean.valueOf( attributeDescr.getValue() ).booleanValue() );
- }
- } else if ( name.equals( "date-effective" ) ) {
- final Calendar cal = Calendar.getInstance();
- cal.setTime( DateFactory.parseDate( attributeDescr.getValue() ) );
- rule.setDateEffective( cal );
- } else if ( name.equals( "date-expires" ) ) {
- final Calendar cal = Calendar.getInstance();
- cal.setTime( DateFactory.parseDate( attributeDescr.getValue() ) );
- rule.setDateExpires( cal );
-
- } else if ( name.equals( "language" ) ) {
- //@todo: we don't currently support multiple languages
- }
- }
- }
-
}
\ No newline at end of file
Modified: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/rule/builder/dialect/java/RuleBuilderTest.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/rule/builder/dialect/java/RuleBuilderTest.java 2007-04-26 13:38:05 UTC (rev 11353)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/rule/builder/dialect/java/RuleBuilderTest.java 2007-04-26 13:47:50 UTC (rev 11354)
@@ -28,6 +28,7 @@
import org.codehaus.jfdi.interpreter.ClassTypeResolver;
import org.codehaus.jfdi.interpreter.TypeResolver;
import org.drools.base.ClassFieldExtractorCache;
+import org.drools.compiler.DialectRegistry;
import org.drools.compiler.DrlParser;
import org.drools.compiler.PackageBuilderConfiguration;
import org.drools.lang.descr.AttributeDescr;
@@ -75,6 +76,7 @@
final RuleDescr ruleDescr = (RuleDescr) pkgDescr.getRules().get( 0 );
final String ruleClassName = "RuleClassName.java";
ruleDescr.setClassName( ruleClassName );
+ ruleDescr.addAttribute( new AttributeDescr("dialect", "java") );
final TypeResolver typeResolver = new ClassTypeResolver( new ArrayList(),
this.getClass().getClassLoader() );
@@ -83,12 +85,16 @@
typeResolver.addImport( "java.lang.*" );
final RuleBuilder builder = new RuleBuilder( );
- RuleBuildContext context = new RuleBuildContext(pkg, ruleDescr);
- JavaDialect dialect = new JavaDialect( null,
+
+ JavaDialect dialect = new JavaDialect( pkg,
new PackageBuilderConfiguration(),
typeResolver,
- new ClassFieldExtractorCache() ) ;
- context.setDialect( dialect );
+ new ClassFieldExtractorCache() ) ;
+ DialectRegistry registry = new DialectRegistry();
+ registry.addDialect( "java", dialect );
+
+ RuleBuildContext context = new RuleBuildContext(pkg, ruleDescr, registry);
+
builder.build( context );
Assert.assertTrue( context.getErrors().toString(),
@@ -120,19 +126,19 @@
}
public void testBuildAttributes() throws Exception {
- final RuleBuilder builder = new RuleBuilder( );
-
- Rule rule = new Rule( "myrule" );
+ Rule rule = new Rule( "my rule" );
+
List attributes = new ArrayList();
+ attributes.add( new AttributeDescr("dialect", "java") );
attributes.add( new AttributeDescr( "no-loop",
"true" ) );
attributes.add( new AttributeDescr( "enabled",
"false" ) );
attributes.add( new AttributeDescr( "ruleflow-group",
"mygroup" ) );
- builder.setAttributes( rule,
- attributes );
+
+ RuleBuildContext.setAttributes( rule, attributes );
assertTrue( rule.getNoLoop() );
assertFalse( rule.isEffective() );
@@ -147,9 +153,8 @@
rule = new Rule( "myrule" );
- builder.setAttributes( rule,
- attributes );
-
+ RuleBuildContext.setAttributes( rule, attributes );
+
final Field eff = rule.getClass().getDeclaredField( "dateEffective" );
eff.setAccessible( true );
final Calendar effectiveDate = (Calendar) eff.get( rule );
Added: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/rule/builder/dialect/mvel/InstrumentedBuildContent.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/rule/builder/dialect/mvel/InstrumentedBuildContent.java (rev 0)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/rule/builder/dialect/mvel/InstrumentedBuildContent.java 2007-04-26 13:47:50 UTC (rev 11354)
@@ -0,0 +1,31 @@
+/**
+ *
+ */
+package org.drools.rule.builder.dialect.mvel;
+
+import org.drools.compiler.DialectRegistry;
+import org.drools.lang.descr.RuleDescr;
+import org.drools.rule.Package;
+import org.drools.rule.builder.RuleBuildContext;
+import org.drools.spi.DeclarationScopeResolver;
+
+public class InstrumentedBuildContent extends RuleBuildContext {
+ private DeclarationScopeResolver declarationScopeResolver;
+
+ public InstrumentedBuildContent(final Package pkg,
+ final RuleDescr ruleDescr,
+ final DialectRegistry registry) {
+ super( pkg,
+ ruleDescr,
+ registry );
+ }
+
+ public void setDeclarationResolver(final DeclarationScopeResolver declarationScopeResolver) {
+ this.declarationScopeResolver = declarationScopeResolver;
+ }
+
+ public DeclarationScopeResolver getDeclarationResolver() {
+ return this.declarationScopeResolver;
+ }
+
+}
\ No newline at end of file
Added: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/rule/builder/dialect/mvel/InstrumentedDeclarationScopeResolver.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/rule/builder/dialect/mvel/InstrumentedDeclarationScopeResolver.java (rev 0)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/rule/builder/dialect/mvel/InstrumentedDeclarationScopeResolver.java 2007-04-26 13:47:50 UTC (rev 11354)
@@ -0,0 +1,24 @@
+/**
+ *
+ */
+package org.drools.rule.builder.dialect.mvel;
+
+import java.util.Map;
+
+import org.drools.spi.DeclarationScopeResolver;
+
+public class InstrumentedDeclarationScopeResolver extends DeclarationScopeResolver {
+ private Map declarations;
+
+ public InstrumentedDeclarationScopeResolver() {
+ super( null );
+ }
+
+ public void setDeclarations(final Map map) {
+ this.declarations = map;
+ }
+
+ public Map getDeclarations() {
+ return this.declarations;
+ }
+}
\ No newline at end of file
Modified: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/rule/builder/dialect/mvel/MVELConsequenceBuilderTest.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/rule/builder/dialect/mvel/MVELConsequenceBuilderTest.java 2007-04-26 13:38:05 UTC (rev 11353)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/rule/builder/dialect/mvel/MVELConsequenceBuilderTest.java 2007-04-26 13:47:50 UTC (rev 11354)
@@ -5,20 +5,25 @@
import junit.framework.TestCase;
+import org.codehaus.jfdi.interpreter.ClassTypeResolver;
import org.drools.Cheese;
import org.drools.RuleBase;
import org.drools.RuleBaseFactory;
import org.drools.WorkingMemory;
+import org.drools.base.ClassFieldExtractorCache;
import org.drools.base.ClassObjectType;
import org.drools.base.DefaultKnowledgeHelper;
import org.drools.common.AgendaItem;
import org.drools.common.InternalFactHandle;
+import org.drools.compiler.DialectRegistry;
+import org.drools.compiler.PackageBuilderConfiguration;
import org.drools.lang.descr.RuleDescr;
import org.drools.reteoo.ReteTuple;
import org.drools.rule.Pattern;
import org.drools.rule.Declaration;
import org.drools.rule.Package;
import org.drools.rule.builder.RuleBuildContext;
+import org.drools.rule.builder.dialect.java.JavaDialect;
import org.drools.spi.PatternExtractor;
import org.drools.spi.DeclarationScopeResolver;
import org.drools.spi.ObjectType;
@@ -33,8 +38,15 @@
final RuleDescr ruleDescr = new RuleDescr( "rule 1" );
ruleDescr.setConsequence( "cheese.setPrice( 5 );" );
+ DialectRegistry registry = new DialectRegistry();
+ registry.addDialect( "default",
+ new JavaDialect( pkg,
+ new PackageBuilderConfiguration(),
+ new ClassTypeResolver(),
+ new ClassFieldExtractorCache() ) );
final InstrumentedBuildContent context = new InstrumentedBuildContent( pkg,
- ruleDescr );
+ ruleDescr,
+ registry );
final InstrumentedDeclarationScopeResolver declarationResolver = new InstrumentedDeclarationScopeResolver();
@@ -79,40 +91,4 @@
assertEquals( 5,
cheddar.getPrice() );
}
-
- public static class InstrumentedDeclarationScopeResolver extends DeclarationScopeResolver {
- private Map declarations;
-
- public InstrumentedDeclarationScopeResolver() {
- super( null );
- }
-
- public void setDeclarations(final Map map) {
- this.declarations = map;
- }
-
- public Map getDeclarations() {
- return this.declarations;
- }
- }
-
- public static class InstrumentedBuildContent extends RuleBuildContext {
- private DeclarationScopeResolver declarationScopeResolver;
-
- public InstrumentedBuildContent(final Package pkg,
- final RuleDescr ruleDescr) {
- super( pkg,
- ruleDescr );
- }
-
- public void setDeclarationResolver(final DeclarationScopeResolver declarationScopeResolver) {
- this.declarationScopeResolver = declarationScopeResolver;
- }
-
- public DeclarationScopeResolver getDeclarationResolver() {
- return this.declarationScopeResolver;
- }
-
- }
-
}
Modified: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/rule/builder/dialect/mvel/MVELEvalBuilderTest.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/rule/builder/dialect/mvel/MVELEvalBuilderTest.java 2007-04-26 13:38:05 UTC (rev 11353)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/rule/builder/dialect/mvel/MVELEvalBuilderTest.java 2007-04-26 13:47:50 UTC (rev 11354)
@@ -5,13 +5,17 @@
import junit.framework.TestCase;
+import org.codehaus.jfdi.interpreter.ClassTypeResolver;
import org.drools.Cheese;
import org.drools.RuleBase;
import org.drools.RuleBaseFactory;
import org.drools.WorkingMemory;
import org.drools.base.ClassFieldExtractor;
+import org.drools.base.ClassFieldExtractorCache;
import org.drools.base.ClassObjectType;
import org.drools.common.InternalFactHandle;
+import org.drools.compiler.DialectRegistry;
+import org.drools.compiler.PackageBuilderConfiguration;
import org.drools.lang.descr.EvalDescr;
import org.drools.lang.descr.RuleDescr;
import org.drools.reteoo.ReteTuple;
@@ -20,6 +24,7 @@
import org.drools.rule.EvalCondition;
import org.drools.rule.Package;
import org.drools.rule.builder.RuleBuildContext;
+import org.drools.rule.builder.dialect.java.JavaDialect;
import org.drools.rule.builder.dialect.mvel.MVELEvalBuilder;
import org.drools.spi.DeclarationScopeResolver;
import org.drools.spi.FieldExtractor;
@@ -33,8 +38,16 @@
final Package pkg = new Package( "pkg1" );
final RuleDescr ruleDescr = new RuleDescr( "rule 1" );
+ DialectRegistry registry = new DialectRegistry();
+ registry.addDialect( "default",
+ new JavaDialect( pkg,
+ new PackageBuilderConfiguration(),
+ new ClassTypeResolver(),
+ new ClassFieldExtractorCache() ) );
final InstrumentedBuildContent context = new InstrumentedBuildContent( pkg,
- ruleDescr );
+ ruleDescr,
+ registry );
+
final InstrumentedDeclarationScopeResolver declarationResolver = new InstrumentedDeclarationScopeResolver();
final FieldExtractor extractor = new ClassFieldExtractor( Cheese.class,
"price" );
@@ -74,39 +87,4 @@
wm ) );
}
- public static class InstrumentedDeclarationScopeResolver extends DeclarationScopeResolver {
- private Map declarations;
-
- public InstrumentedDeclarationScopeResolver() {
- super( null );
- }
-
- public void setDeclarations(final Map map) {
- this.declarations = map;
- }
-
- public Map getDeclarations() {
- return this.declarations;
- }
- }
-
- public static class InstrumentedBuildContent extends RuleBuildContext {
- private DeclarationScopeResolver declarationScopeResolver;
-
- public InstrumentedBuildContent(final Package pkg,
- final RuleDescr ruleDescr) {
- super( pkg,
- ruleDescr );
- }
-
- public void setDeclarationResolver(final DeclarationScopeResolver declarationScopeResolver) {
- this.declarationScopeResolver = declarationScopeResolver;
- }
-
- public DeclarationScopeResolver getDeclarationResolver() {
- return this.declarationScopeResolver;
- }
-
- }
-
}
Modified: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/rule/builder/dialect/mvel/MVELPredicateBuilderTest.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/rule/builder/dialect/mvel/MVELPredicateBuilderTest.java 2007-04-26 13:38:05 UTC (rev 11353)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/rule/builder/dialect/mvel/MVELPredicateBuilderTest.java 2007-04-26 13:47:50 UTC (rev 11354)
@@ -7,13 +7,17 @@
import junit.framework.TestCase;
+import org.codehaus.jfdi.interpreter.ClassTypeResolver;
import org.drools.Cheese;
import org.drools.RuleBase;
import org.drools.RuleBaseFactory;
import org.drools.base.ClassFieldExtractor;
+import org.drools.base.ClassFieldExtractorCache;
import org.drools.base.ClassObjectType;
import org.drools.common.InternalFactHandle;
import org.drools.common.InternalWorkingMemory;
+import org.drools.compiler.DialectRegistry;
+import org.drools.compiler.PackageBuilderConfiguration;
import org.drools.lang.descr.PredicateDescr;
import org.drools.lang.descr.RuleDescr;
import org.drools.reteoo.ReteTuple;
@@ -22,11 +26,10 @@
import org.drools.rule.Package;
import org.drools.rule.PredicateConstraint;
import org.drools.rule.PredicateConstraint.PredicateContextEntry;
-import org.drools.rule.builder.RuleBuildContext;
import org.drools.rule.builder.dialect.java.DeclarationTypeFixer;
+import org.drools.rule.builder.dialect.java.JavaDialect;
import org.drools.rule.builder.dialect.java.JavaExprAnalyzer;
import org.drools.rule.builder.dialect.java.KnowledgeHelperFixer;
-import org.drools.spi.DeclarationScopeResolver;
import org.drools.spi.FieldExtractor;
public class MVELPredicateBuilderTest extends TestCase {
@@ -38,8 +41,15 @@
final Package pkg = new Package( "pkg1" );
final RuleDescr ruleDescr = new RuleDescr( "rule 1" );
+ DialectRegistry registry = new DialectRegistry();
+ registry.addDialect( "default",
+ new JavaDialect( pkg,
+ new PackageBuilderConfiguration(),
+ new ClassTypeResolver(),
+ new ClassFieldExtractorCache() ) );
final InstrumentedBuildContent context = new InstrumentedBuildContent( pkg,
- ruleDescr );
+ ruleDescr,
+ registry );
final InstrumentedDeclarationScopeResolver declarationResolver = new InstrumentedDeclarationScopeResolver();
final FieldExtractor extractor = new ClassFieldExtractor( Cheese.class,
"price" );
@@ -111,39 +121,4 @@
stilton ) );
}
- public static class InstrumentedDeclarationScopeResolver extends DeclarationScopeResolver {
- private Map declarations;
-
- public InstrumentedDeclarationScopeResolver() {
- super( null );
- }
-
- public void setDeclarations(final Map map) {
- this.declarations = map;
- }
-
- public Map getDeclarations() {
- return this.declarations;
- }
- }
-
- public static class InstrumentedBuildContent extends RuleBuildContext {
- private DeclarationScopeResolver declarationScopeResolver;
-
- public InstrumentedBuildContent(final Package pkg,
- final RuleDescr ruleDescr) {
- super( pkg,
- ruleDescr );
- }
-
- public void setDeclarationResolver(final DeclarationScopeResolver declarationScopeResolver) {
- this.declarationScopeResolver = declarationScopeResolver;
- }
-
- public DeclarationScopeResolver getDeclarationResolver() {
- return this.declarationScopeResolver;
- }
-
- }
-
}
Modified: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/rule/builder/dialect/mvel/MVELReturnValueBuilderTest.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/rule/builder/dialect/mvel/MVELReturnValueBuilderTest.java 2007-04-26 13:38:05 UTC (rev 11353)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/rule/builder/dialect/mvel/MVELReturnValueBuilderTest.java 2007-04-26 13:47:50 UTC (rev 11354)
@@ -7,15 +7,19 @@
import junit.framework.TestCase;
+import org.codehaus.jfdi.interpreter.ClassTypeResolver;
import org.drools.Cheese;
import org.drools.RuleBase;
import org.drools.RuleBaseFactory;
import org.drools.base.ClassFieldExtractor;
+import org.drools.base.ClassFieldExtractorCache;
import org.drools.base.ClassObjectType;
import org.drools.base.ValueType;
import org.drools.base.evaluators.Operator;
import org.drools.common.InternalFactHandle;
import org.drools.common.InternalWorkingMemory;
+import org.drools.compiler.DialectRegistry;
+import org.drools.compiler.PackageBuilderConfiguration;
import org.drools.lang.descr.ReturnValueRestrictionDescr;
import org.drools.lang.descr.RuleDescr;
import org.drools.reteoo.ReteTuple;
@@ -26,6 +30,7 @@
import org.drools.rule.PredicateConstraint.PredicateContextEntry;
import org.drools.rule.builder.RuleBuildContext;
import org.drools.rule.builder.dialect.java.DeclarationTypeFixer;
+import org.drools.rule.builder.dialect.java.JavaDialect;
import org.drools.rule.builder.dialect.java.JavaExprAnalyzer;
import org.drools.rule.builder.dialect.java.KnowledgeHelperFixer;
import org.drools.spi.DeclarationScopeResolver;
@@ -40,8 +45,15 @@
final Package pkg = new Package( "pkg1" );
final RuleDescr ruleDescr = new RuleDescr( "rule 1" );
+ DialectRegistry registry = new DialectRegistry();
+ registry.addDialect( "default",
+ new JavaDialect( pkg,
+ new PackageBuilderConfiguration(),
+ new ClassTypeResolver(),
+ new ClassFieldExtractorCache() ) );
final InstrumentedBuildContent context = new InstrumentedBuildContent( pkg,
- ruleDescr );
+ ruleDescr,
+ registry );
final InstrumentedDeclarationScopeResolver declarationResolver = new InstrumentedDeclarationScopeResolver();
final FieldExtractor extractor = new ClassFieldExtractor( Cheese.class,
"price" );
@@ -123,40 +135,4 @@
tuple,
wm ) );
}
-
- public static class InstrumentedDeclarationScopeResolver extends DeclarationScopeResolver {
- private Map declarations;
-
- public InstrumentedDeclarationScopeResolver() {
- super( null );
- }
-
- public void setDeclarations(final Map map) {
- this.declarations = map;
- }
-
- public Map getDeclarations() {
- return this.declarations;
- }
- }
-
- public static class InstrumentedBuildContent extends RuleBuildContext {
- private DeclarationScopeResolver declarationScopeResolver;
-
- public InstrumentedBuildContent(final Package pkg,
- final RuleDescr ruleDescr) {
- super( pkg,
- ruleDescr );
- }
-
- public void setDeclarationResolver(final DeclarationScopeResolver declarationScopeResolver) {
- this.declarationScopeResolver = declarationScopeResolver;
- }
-
- public DeclarationScopeResolver getDeclarationResolver() {
- return this.declarationScopeResolver;
- }
-
- }
-
}
More information about the jboss-svn-commits
mailing list