[jboss-svn-commits] JBL Code SVN: r25647 - in labs/jbossrules/trunk: drools-api/src/main/java/org/drools/builder/conf and 5 other directories.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Sat Mar 14 11:22:53 EDT 2009


Author: tirelli
Date: 2009-03-14 11:22:53 -0400 (Sat, 14 Mar 2009)
New Revision: 25647

Added:
   labs/jbossrules/trunk/drools-api/src/main/java/org/drools/builder/conf/DefaultPackageNameOption.java
   labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/test_NoPackageDeclaration.drl
Modified:
   labs/jbossrules/trunk/drools-api/src/main/java/org/drools/builder/KnowledgeBuilderConfiguration.java
   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/test/java/org/drools/builder/KnowledgeBuilderConfigurationTest.java
   labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/MiscTest.java
   labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/test_GeneratedBeans.drl
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/ClassFieldWriter.java
Log:
JBRULES-1951: enabling default package configuration

Modified: labs/jbossrules/trunk/drools-api/src/main/java/org/drools/builder/KnowledgeBuilderConfiguration.java
===================================================================
--- labs/jbossrules/trunk/drools-api/src/main/java/org/drools/builder/KnowledgeBuilderConfiguration.java	2009-03-14 08:16:21 UTC (rev 25646)
+++ labs/jbossrules/trunk/drools-api/src/main/java/org/drools/builder/KnowledgeBuilderConfiguration.java	2009-03-14 15:22:53 UTC (rev 25647)
@@ -73,6 +73,8 @@
  * <li>drools.accumulate.function.min = org.drools.base.accumulators.MinAccumulateFunction</li>
  * <li>drools.accumulate.function.count = org.drools.base.accumulators.CountAccumulateFunction</li>
  * <li>drools.accumulate.function.sum = org.drools.base.accumulators.SumAccumulateFunction</li>
+ * <li>drools.accumulate.function.collectSet = org.drools.base.accumulators.CollectSetAccumulateFunction</li>
+ * <li>drools.accumulate.function.collectList = org.drools.base.accumulators.CollectListAccumulateFunction</li>
  * </ul>
  * </p>
  */

Added: labs/jbossrules/trunk/drools-api/src/main/java/org/drools/builder/conf/DefaultPackageNameOption.java
===================================================================
--- labs/jbossrules/trunk/drools-api/src/main/java/org/drools/builder/conf/DefaultPackageNameOption.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-api/src/main/java/org/drools/builder/conf/DefaultPackageNameOption.java	2009-03-14 15:22:53 UTC (rev 25647)
@@ -0,0 +1,100 @@
+/*
+ * Copyright 2008 Red Hat
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+package org.drools.builder.conf;
+
+
+/**
+ * A class for the default package name configuration.
+ * 
+ * @author etirelli
+ */
+public class DefaultPackageNameOption implements SingleValueKnowledgeBuilderOption {
+
+    private static final long serialVersionUID = -8461267995706982981L;
+
+    /**
+     * The property name for the default package name
+     */
+    public static final String PROPERTY_NAME = "drools.defaultPackageName";
+    
+    /**
+     * package name
+     */
+    private final String packageName;
+    
+    /**
+     * Private constructor to enforce the use of the factory method
+     * @param packageName
+     */
+    private DefaultPackageNameOption( String packageName ) {
+        this.packageName = packageName;
+    }
+    
+    /**
+     * This is a factory method for this DefaultPackageName configuration.
+     * The factory method is a best practice for the case where the 
+     * actual object construction is changed in the future.
+     * 
+     * @param packageName the name of the package to be configured as default
+     * 
+     * @return the actual type safe default package name configuration.
+     */
+    public static DefaultPackageNameOption get( String packageName ) {
+        return new DefaultPackageNameOption( packageName );
+    }
+    
+    /**
+     * {@inheritDoc}
+     */
+    public String getPropertyName() {
+        return PROPERTY_NAME;
+    }
+    
+    /**
+     * Returns the name of the package configured as default
+     * 
+     * @return
+     */
+    public String getPackageName() {
+        return packageName;
+    }
+
+    @Override
+    public int hashCode() {
+        final int prime = 31;
+        int result = 1;
+        result = prime * result + ((packageName == null) ? 0 : packageName.hashCode());
+        return result;
+    }
+
+    @Override
+    public boolean equals(Object obj) {
+        if ( this == obj ) return true;
+        if ( obj == null ) return false;
+        if ( getClass() != obj.getClass() ) return false;
+        DefaultPackageNameOption other = (DefaultPackageNameOption) obj;
+        if ( packageName == null ) {
+            if ( other.packageName != null ) return false;
+        } else if ( !packageName.equals( other.packageName ) ) return false;
+        return true;
+    }
+    
+    @Override
+    public String toString() {
+        return "DefaultPackageNameOption( name="+packageName+" )";
+    }
+}


Property changes on: labs/jbossrules/trunk/drools-api/src/main/java/org/drools/builder/conf/DefaultPackageNameOption.java
___________________________________________________________________
Name: svn:executable
   + *

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	2009-03-14 08:16:21 UTC (rev 25646)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/compiler/PackageBuilder.java	2009-03-14 15:22:53 UTC (rev 25647)
@@ -121,11 +121,6 @@
     private ReteooRuleBase                ruleBase;
 
     /**
-     * Current default package
-     */
-    private String                        defaultNamespace;
-
-    /**
      * default dialect
      */
     private final String                  defaultDialect;
@@ -227,7 +222,6 @@
 
         this.rootClassLoader = new CompositeClassLoader( this.configuration.getClassLoader() );
 
-        this.defaultNamespace = pkg.getName();
         this.defaultDialect = this.configuration.getDefaultDialect();
 
         this.pkgRegistryMap = new HashMap<String, PackageRegistry>();
@@ -586,18 +580,10 @@
             }
         }
 
-        if ( !isEmpty( packageDescr.getNamespace() ) ) {
-            // use the default namespace
-            if ( checkNamespace( packageDescr.getNamespace() ) ) {
-                this.defaultNamespace = packageDescr.getNamespace();
-            } else {
-                //force the default.
-                packageDescr.setNamespace( this.defaultNamespace );
-            }
-        } else {
-            // packagedescr defines a new default namespace
-            packageDescr.setNamespace( this.defaultNamespace );
+        if ( isEmpty( packageDescr.getNamespace() ) ) {
+            packageDescr.setNamespace( this.configuration.getDefaultPackageName() );
         }
+        checkNamespace( packageDescr.getNamespace() );
 
         PackageRegistry pkgRegistry = this.pkgRegistryMap.get( packageDescr.getNamespace() );
         if ( pkgRegistry == null ) {
@@ -613,8 +599,8 @@
 
         // only try to compile if there are no parse errors
         if ( !hasErrors() ) {
-            for ( final Iterator it = packageDescr.getFactTemplates().iterator(); it.hasNext(); ) {
-                addFactTemplate( (FactTemplateDescr) it.next() );
+            for ( final FactTemplateDescr factTempl : packageDescr.getFactTemplates() ) {
+                addFactTemplate( packageDescr, factTempl );
             }
 
             if ( !packageDescr.getFunctions().isEmpty() ) {
@@ -623,7 +609,7 @@
                     FunctionDescr functionDescr = (FunctionDescr) it.next();
                     if ( isEmpty( functionDescr.getNamespace() ) ) {
                         // make sure namespace is set on components
-                        functionDescr.setNamespace( this.defaultNamespace );
+                        functionDescr.setNamespace( packageDescr.getNamespace() );
                     }
                     if ( isEmpty( functionDescr.getDialect() ) ) {
                         // make sure namespace is set on components
@@ -654,7 +640,7 @@
                 RuleDescr ruleDescr = (RuleDescr) it.next();
                 if ( isEmpty( ruleDescr.getNamespace() ) ) {
                     // make sure namespace is set on components
-                    ruleDescr.setNamespace( this.defaultNamespace );
+                    ruleDescr.setNamespace( packageDescr.getNamespace() );
                 }
                 if ( isEmpty( ruleDescr.getDialect() ) ) {
                     ruleDescr.addAttribute( new AttributeDescr( "dialect", pkgRegistry.getDialect() ) );
@@ -683,8 +669,6 @@
      */
     private boolean checkNamespace(String newName) {
         if ( this.configuration == null ) return true;
-        if ( this.defaultNamespace == null ) return true;
-        if ( this.defaultNamespace.equals( newName ) ) return true;
         return this.configuration.isAllowMultipleNamespaces();
     }
 
@@ -851,10 +835,8 @@
     //    }
 
     private void validateUniqueRuleNames(final PackageDescr packageDescr) {
-        final Set names = new HashSet();
-        String namespace = packageDescr.getNamespace();
-        for ( final Iterator iter = packageDescr.getRules().iterator(); iter.hasNext(); ) {
-            final RuleDescr rule = (RuleDescr) iter.next();
+        final Set<String> names = new HashSet<String>();
+        for ( final RuleDescr rule : packageDescr.getRules() ) {
             final String name = rule.getName();
             if ( names.contains( name ) ) {
                 this.results.add( new ParserError( "Duplicate rule name: " + name,
@@ -900,34 +882,25 @@
     }
 
     private void mergePackage(final PackageDescr packageDescr) {
-        PackageRegistry pkgRegistry;
-        if ( isEmpty( packageDescr.getName() ) ) {
-            pkgRegistry = this.pkgRegistryMap.get( this.defaultNamespace );
-        } else {
-            pkgRegistry = this.pkgRegistryMap.get( packageDescr.getNamespace() );
-        }
+        PackageRegistry pkgRegistry = this.pkgRegistryMap.get( packageDescr.getNamespace() );
 
-        final List imports = packageDescr.getImports();
-        for ( final Iterator it = imports.iterator(); it.hasNext(); ) {
-            ImportDescr importEntry = (ImportDescr) it.next();
+        for ( final ImportDescr importEntry : packageDescr.getImports() ) {
             pkgRegistry.addImport( importEntry.getTarget() );
         }
 
         processTypeDeclarations( packageDescr );
 
-        for ( final Iterator it = packageDescr.getFunctionImports().iterator(); it.hasNext(); ) {
-            String importEntry = ((FunctionImportDescr) it.next()).getTarget();
+        for ( final FunctionImportDescr functionImport : packageDescr.getFunctionImports() ) {
+            String importEntry = functionImport.getTarget();
             pkgRegistry.addStaticImport( importEntry );
             pkgRegistry.getPackage().addStaticImport( importEntry );
         }
 
-        final List globals = packageDescr.getGlobals();
-        for ( final Iterator it = globals.iterator(); it.hasNext(); ) {
-            final GlobalDescr global = (GlobalDescr) it.next();
+        for ( final GlobalDescr global : packageDescr.getGlobals() ) {
             final String identifier = global.getIdentifier();
             final String className = global.getType();
 
-            Class clazz;
+            Class<?> clazz;
             try {
                 clazz = pkgRegistry.getTypeResolver().resolveType( className );
                 pkgRegistry.getPackage().addGlobal( identifier,
@@ -947,24 +920,15 @@
      * @param packageDescr
      */
     private void processTypeDeclarations(final PackageDescr packageDescr) {
-        PackageRegistry defaultRegistry;
-        if ( isEmpty( packageDescr.getName() ) ) {
-            defaultRegistry = this.pkgRegistryMap.get( this.defaultNamespace );
-        } else {
-            defaultRegistry = this.pkgRegistryMap.get( packageDescr.getNamespace() );
-        }
+        PackageRegistry defaultRegistry = this.pkgRegistryMap.get( packageDescr.getNamespace() );
 
         PackageRegistry pkgRegistry = null;
         for ( TypeDeclarationDescr typeDescr : packageDescr.getTypeDeclarations() ) {
             // make sure namespace is set on components
             if ( isEmpty( typeDescr.getNamespace() ) ) {
-                // use the default namespace 
-                typeDescr.setNamespace( defaultRegistry.getPackage().getName() );
-                pkgRegistry = defaultRegistry;
-            } else {
-                // use the namespace specified by the type declaration
-                pkgRegistry = this.pkgRegistryMap.get( typeDescr.getNamespace() );
+                typeDescr.setNamespace( packageDescr.getNamespace() );
             }
+            pkgRegistry = this.pkgRegistryMap.get( typeDescr.getNamespace() );
 
             TypeDeclaration type = new TypeDeclaration( typeDescr.getTypeName() );
             if ( resource != null && ((InternalResource) resource).hasURL() ) {
@@ -1152,10 +1116,10 @@
                                         pkgRegistry.getTypeResolver() );
     }
 
-    private void addFactTemplate(final FactTemplateDescr factTemplateDescr) {
+    private void addFactTemplate(final PackageDescr pkgDescr, final FactTemplateDescr factTemplateDescr) {
         final List fields = new ArrayList();
         int index = 0;
-        PackageRegistry pkgRegistry = this.pkgRegistryMap.get( this.defaultNamespace );
+        PackageRegistry pkgRegistry = this.pkgRegistryMap.get( pkgDescr.getNamespace() );
         for ( final Iterator it = factTemplateDescr.getFields().iterator(); it.hasNext(); ) {
             final FieldTemplateDescr fieldTemplateDescr = (FieldTemplateDescr) it.next();
             FieldTemplate fieldTemplate = null;
@@ -1217,7 +1181,10 @@
      * Compiled packages are serializable.
      */
     public Package getPackage() {
-        PackageRegistry pkgRegistry = this.pkgRegistryMap.get( this.defaultNamespace );
+        PackageRegistry pkgRegistry = null;
+        if( ! this.pkgRegistryMap.isEmpty() ) {
+            pkgRegistry = (PackageRegistry) this.pkgRegistryMap.values().toArray()[0]; 
+        }
         Package pkg = null;
         if ( pkgRegistry != null ) {
             pkg = pkgRegistry.getPackage();
@@ -1308,10 +1275,6 @@
         this.results.clear();
     }
 
-    public String getDefaultNamespace() {
-        return this.defaultNamespace;
-    }
-
     public String getDefaultDialect() {
         return this.defaultDialect;
     }

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	2009-03-14 08:16:21 UTC (rev 25646)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/compiler/PackageBuilderConfiguration.java	2009-03-14 15:22:53 UTC (rev 25647)
@@ -31,6 +31,7 @@
 import org.drools.builder.KnowledgeBuilderConfiguration;
 import org.drools.builder.conf.AccumulateFunctionOption;
 import org.drools.builder.conf.DefaultDialectOption;
+import org.drools.builder.conf.DefaultPackageNameOption;
 import org.drools.builder.conf.DumpDirOption;
 import org.drools.builder.conf.EvaluatorOption;
 import org.drools.builder.conf.KnowledgeBuilderOption;
@@ -83,7 +84,7 @@
     implements
     KnowledgeBuilderConfiguration {
 
-    private Map                             dialectConfigurations;
+    private Map<String, DialectConfiguration> dialectConfigurations;
 
     private DefaultDialectOption            defaultDialect;
 
@@ -105,6 +106,8 @@
 
     private boolean                         processStringEscapes                 = true;
 
+    private String                          defaultPackageName;
+
     public boolean isAllowMultipleNamespaces() {
         return allowMultipleNamespaces;
     }
@@ -168,7 +171,7 @@
             this.chainedProperties.addProperties( properties );
         }
 
-        this.dialectConfigurations = new HashMap();
+        this.dialectConfigurations = new HashMap<String, DialectConfiguration>();
 
         buildDialectConfigurationMap();
 
@@ -181,6 +184,10 @@
         setProperty( ProcessStringEscapesOption.PROPERTY_NAME,
                      this.chainedProperties.getProperty( ProcessStringEscapesOption.PROPERTY_NAME,
                                                          "true" ) );
+        
+        setProperty( DefaultPackageNameOption.PROPERTY_NAME,
+                     this.chainedProperties.getProperty( DefaultPackageNameOption.PROPERTY_NAME,
+                                                         "org.drools.pkg" ) );
     }
 
     public void setProperty(String name,
@@ -199,6 +206,8 @@
             this.evaluatorRegistry.addEvaluatorDefinition( value );
         } else if ( name.equals( DumpDirOption.PROPERTY_NAME ) ) {
             buildDumpDirectory( value );
+        } else if ( name.equals( DefaultPackageNameOption.PROPERTY_NAME ) ) {
+            setDefaultPackageName( value );
         } else if ( name.equals( ProcessStringEscapesOption.PROPERTY_NAME ) ) {
             setProcessStringEscapes( Boolean.parseBoolean( value ) );
         }
@@ -212,6 +221,8 @@
 
         if ( name.equals( DefaultDialectOption.PROPERTY_NAME ) ) {
             return getDefaultDialect();
+        } else if ( name.equals( DefaultPackageNameOption.PROPERTY_NAME ) ) {
+            return getDefaultPackageName();
         } else if ( name.startsWith( AccumulateFunctionOption.PROPERTY_NAME ) ) {
             int index = AccumulateFunctionOption.PROPERTY_NAME.length();
             AccumulateFunction function = this.accumulateFunctions.get( name.substring( index ) );
@@ -610,6 +621,14 @@
     public void setProcessStringEscapes(boolean processStringEscapes) {
         this.processStringEscapes = processStringEscapes;
     }
+    
+    public String getDefaultPackageName() {
+        return defaultPackageName;
+    }
+    
+    public void setDefaultPackageName(String defaultPackageName) {
+        this.defaultPackageName = defaultPackageName;
+    }
 
     @SuppressWarnings("unchecked")
     public <T extends SingleValueKnowledgeBuilderOption> T getOption(Class<T> option) {
@@ -619,6 +638,8 @@
             return (T) DumpDirOption.get( this.dumpDirectory );
         } else if ( ProcessStringEscapesOption.class.equals( option ) ) {
             return (T) ( this.processStringEscapes ? ProcessStringEscapesOption.YES : ProcessStringEscapesOption.NO ); 
+        } else if ( DefaultPackageNameOption.class.equals( option ) ) {
+            return (T) DefaultPackageNameOption.get( this.defaultPackageName );
         }
         return null;
     }
@@ -648,6 +669,9 @@
             this.evaluatorRegistry.addEvaluatorDefinition( (EvaluatorDefinition) ((EvaluatorOption)option).getEvaluatorDefinition() );
         } else if ( option instanceof ProcessStringEscapesOption ) {
             this.processStringEscapes = ((ProcessStringEscapesOption) option).isProcessStringEscapes();
+        } else if ( option instanceof DefaultPackageNameOption ) {
+            setDefaultPackageName( ((DefaultPackageNameOption) option).getPackageName() );
         }
     }
+
 }
\ No newline at end of file

Modified: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/builder/KnowledgeBuilderConfigurationTest.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/builder/KnowledgeBuilderConfigurationTest.java	2009-03-14 08:16:21 UTC (rev 25646)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/builder/KnowledgeBuilderConfigurationTest.java	2009-03-14 15:22:53 UTC (rev 25647)
@@ -28,6 +28,7 @@
 import org.drools.base.evaluators.EvaluatorDefinition;
 import org.drools.builder.conf.AccumulateFunctionOption;
 import org.drools.builder.conf.DefaultDialectOption;
+import org.drools.builder.conf.DefaultPackageNameOption;
 import org.drools.builder.conf.DumpDirOption;
 import org.drools.builder.conf.EvaluatorOption;
 import org.drools.builder.conf.ProcessStringEscapesOption;
@@ -230,6 +231,35 @@
                       config.getProperty( ProcessStringEscapesOption.PROPERTY_NAME ) );
     }
 
+    public void testDefaultPackageNameConfiguration() {
+        // setting the default dialect using the type safe method
+        config.setOption( DefaultPackageNameOption.get( "org.test" ) );
+
+        // checking the type safe getOption() method
+        assertEquals( DefaultPackageNameOption.get( "org.test" ),
+                      config.getOption( DefaultPackageNameOption.class ) );
+        // checking string conversion
+        assertEquals( "org.test",
+                      config.getOption( DefaultPackageNameOption.class ).getPackageName() );
+        // checking the string based getProperty() method
+        assertEquals( "org.test",
+                      config.getProperty( DefaultPackageNameOption.PROPERTY_NAME ) );
+
+        // setting the default dialect using the string based setProperty() method
+        config.setProperty( DefaultPackageNameOption.PROPERTY_NAME,
+                            "org.drools" );
+        
+        // checking the type safe getOption() method
+        assertEquals( DefaultPackageNameOption.get( "org.drools" ),
+                      config.getOption( DefaultPackageNameOption.class ) );
+        // checking string conversion
+        assertEquals( "org.drools",
+                      config.getOption( DefaultPackageNameOption.class ).getPackageName() );
+        // checking the string based getProperty() method
+        assertEquals( "org.drools",
+                      config.getProperty( DefaultPackageNameOption.PROPERTY_NAME ) );
+    }
+    
     /**
      * an accumulate function implemented as an inner class
      * @author admin

Modified: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/MiscTest.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/MiscTest.java	2009-03-14 08:16:21 UTC (rev 25646)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/MiscTest.java	2009-03-14 15:22:53 UTC (rev 25647)
@@ -6180,7 +6180,7 @@
         assertEquals( Integer.valueOf( 10 ), results.get( 0 ) );
     }
 
-    public void FIXME_testDRLWithoutPackageDeclaration() throws Exception {
+    public void testDRLWithoutPackageDeclaration() throws Exception {
         final KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder();
         kbuilder.add( ResourceFactory.newInputStreamResource( getClass().getResourceAsStream( "test_NoPackageDeclaration.drl" ) ), 
                       ResourceType.DRL );
@@ -6188,16 +6188,17 @@
         final KnowledgeBase kbase = KnowledgeBaseFactory.newKnowledgeBase();
         kbase.addKnowledgePackages( kbuilder.getKnowledgePackages() );
         
-        final List results = new ArrayList(); 
+        // no package defined, so it is set to the default
+        final FactType factType = kbase.getFactType( "org.drools.pkg", "Person" );
+        assertNotNull( factType );
+        final Object bob = factType.newInstance();
+        factType.set( bob, "name", "Bob" );
+        factType.set( bob, "age", Integer.valueOf( 30 ) );
         
         final StatefulKnowledgeSession session = kbase.newStatefulKnowledgeSession();
+        final List results = new ArrayList(); 
         session.setGlobal( "results", results );
         
-        final FactType factType = kbase.getFactType( "", "Person" );
-        final Object bob = factType.newInstance();
-        factType.set( bob, "name", "Bob" );
-        factType.set( bob, "age", Integer.valueOf( 30 ) );
-        
         session.insert( bob );
         session.fireAllRules();
         

Modified: labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/test_GeneratedBeans.drl
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/test_GeneratedBeans.drl	2009-03-14 08:16:21 UTC (rev 25646)
+++ labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/test_GeneratedBeans.drl	2009-03-14 15:22:53 UTC (rev 25647)
@@ -9,6 +9,7 @@
 end
 
 declare Person
+    name : String
 	age: int
 	likes: Cheese
 end

Added: labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/test_NoPackageDeclaration.drl
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/test_NoPackageDeclaration.drl	                        (rev 0)
+++ labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/test_NoPackageDeclaration.drl	2009-03-14 15:22:53 UTC (rev 25647)
@@ -0,0 +1,18 @@
+global java.util.List results
+
+function boolean test( Object o1, Object o2 ) {
+    return o1.equals(o2);
+}
+
+declare Person
+    name : String @key
+    age : int
+end    
+
+rule "TestRule"
+when
+    $p : Person( name == "Bob" );
+then
+    results.add( $p );
+end 
+

Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/ClassFieldWriter.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/ClassFieldWriter.java	2009-03-14 08:16:21 UTC (rev 25646)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/ClassFieldWriter.java	2009-03-14 15:22:53 UTC (rev 25647)
@@ -47,36 +47,8 @@
                             final String fieldName) {
         this.className = className;
         this.fieldName = fieldName;
-//        this.clazz = clazz;
-//        this.fieldName = fieldName;
-//        init( findClassLoader( classLoader ),
-//              factory );
     }    
 
-//    public ClassFieldWriter(final Class< ? > clazz,
-//                            final String fieldName,
-//                            final ClassLoader classLoader,
-//                            final ClassFieldAccessorFactory factory) {
-//        this.clazz = clazz;
-//        this.fieldName = fieldName;
-//        init( findClassLoader( classLoader ),
-//              factory );
-//    }
-
-//    /**
-//     * @param classLoader
-//     */
-//    private ClassLoader findClassLoader(final ClassLoader classLoader) {
-//        ClassLoader loader = classLoader;
-//        if ( loader == null ) {
-//            loader = Thread.currentThread().getContextClassLoader();
-//            if ( loader == null ) {
-//                loader = this.getClass().getClassLoader();
-//            }
-//        }
-//        return loader;
-//    }
-
     public void writeExternal(ObjectOutput out) throws IOException {
         out.writeObject( className );
         out.writeObject( fieldName );
@@ -87,17 +59,6 @@
         className = (String) is.readObject();
         fieldName = (String) is.readObject();
     }
-//
-//    private void init(final ClassLoader classLoader,
-//                      final ClassFieldAccessorFactory factory) {
-//        try {
-//            this.writer = factory.getClassFieldWriter( this.clazz,
-//                                                       this.fieldName,
-//                                                       classLoader );
-//        } catch ( final Exception e ) {
-//            throw new RuntimeDroolsException( e );
-//        }
-//    }
     
     public void setWriteAccessor(WriteAccessor writer) {
         this.writer = writer;




More information about the jboss-svn-commits mailing list