[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