[jboss-svn-commits] JBL Code SVN: r31000 - in labs/jbossrules/trunk: drools-api/src/main/java/org/drools/util and 17 other directories.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Sun Jan 10 01:28:31 EST 2010


Author: mark.proctor at jboss.com
Date: 2010-01-10 01:28:30 -0500 (Sun, 10 Jan 2010)
New Revision: 31000

Removed:
   labs/jbossrules/trunk/drools-api/build.properties
Modified:
   labs/jbossrules/trunk/drools-api/src/main/java/org/drools/util/ChainedProperties.java
   labs/jbossrules/trunk/drools-api/src/main/java/org/drools/util/ProviderLocator.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/main/java/org/drools/rule/builder/dialect/java/JavaFunctionBuilder.java
   labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/compiler/PackageBuilderConfigurationTest.java
   labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/compiler/PackageBuilderTest.java
   labs/jbossrules/trunk/drools-container/drools-osgi/org.drools.osgi.api/.classpath
   labs/jbossrules/trunk/drools-container/drools-osgi/org.drools.osgi.api/META-INF/MANIFEST.MF
   labs/jbossrules/trunk/drools-container/drools-osgi/org.drools.osgi.impl/.classpath
   labs/jbossrules/trunk/drools-container/drools-osgi/org.drools.osgi.impl/META-INF/MANIFEST.MF
   labs/jbossrules/trunk/drools-container/drools-osgi/org.drools.osgi.impl/src/main/java/org/drools/osgi/impl/Activator.java
   labs/jbossrules/trunk/drools-container/pom.xml
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/RuleBaseConfiguration.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/SessionConfiguration.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/ClassFieldAccessorCache.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/AbstractRuleBase.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/InternalRuleBase.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/MemoryVisitor.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/ObjectTypeNode.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/DialectRuntimeData.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/DialectRuntimeRegistry.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/JavaDialectRuntimeData.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/MVELDialectRuntimeData.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/MapBackedClassLoader.java
   labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/service/DefaultEscalatedDeadlineHandler.java
   labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/service/SendIcal.java
   labs/jbossrules/trunk/drools-process/drools-process-task/src/test/java/org/drools/task/service/IcalTest.java
   labs/jbossrules/trunk/drools-process/drools-workitems/src/test/java/org/drools/process/workitem/email/EmailWorkItemHandlerTest.java
Log:
JBRULES-2351 OSGi Ready
-Classloader reworking, to make sure it can always find the user classes as well as the drools classes.

Deleted: labs/jbossrules/trunk/drools-api/build.properties
===================================================================
--- labs/jbossrules/trunk/drools-api/build.properties	2010-01-09 08:25:36 UTC (rev 30999)
+++ labs/jbossrules/trunk/drools-api/build.properties	2010-01-10 06:28:30 UTC (rev 31000)
@@ -1,14 +0,0 @@
-bin.includes = META-INF/,\
-               icons/,\
-               lib/,\
-               drools-core.jar
-src.includes = META-INF/,\
-               build.properties,\
-               .classpath,\
-               .project,\
-               icons/
-jars.compile.order = drools-core.jar
-source.drools-core.jar = src/main/java/
-output.drools-core.jar = target/classes/
-jars.extra.classpath = lib/drools-asm-2.2.1.jar,\
-                       lib/xstream-1.1.3.jar

Modified: labs/jbossrules/trunk/drools-api/src/main/java/org/drools/util/ChainedProperties.java
===================================================================
--- labs/jbossrules/trunk/drools-api/src/main/java/org/drools/util/ChainedProperties.java	2010-01-09 08:25:36 UTC (rev 30999)
+++ labs/jbossrules/trunk/drools-api/src/main/java/org/drools/util/ChainedProperties.java	2010-01-10 06:28:30 UTC (rev 31000)
@@ -30,28 +30,16 @@
 
     public ChainedProperties() {
     }
-
-    public ChainedProperties(String confFileName) {
-        this( null,
-              confFileName );
-    }
-
-    public ChainedProperties(ClassLoader classLoader,
-                             String confFileName) {
-        this( classLoader,
-              confFileName,
+    
+    public ChainedProperties(String confFileName, ClassLoader classLoader) {
+        this( confFileName,
+              classLoader,
               true );
-    }
-
-    public ChainedProperties(ClassLoader classLoader,
-                             String confFileName,
+    }    
+    
+    public ChainedProperties(String confFileName,
+                             ClassLoader classLoader,
                              boolean populateDefaults) {
-        if ( classLoader == null ) {
-            classLoader = Thread.currentThread().getContextClassLoader();
-            if ( classLoader == null ) {
-                classLoader = this.getClass().getClassLoader();
-            }
-        }
 
         this.props = new ArrayList<Properties>();
         this.defaultProps = new ArrayList<Properties>();
@@ -72,68 +60,55 @@
         // Working directory properties file
         loadProperties( "drools." + confFileName,
                         this.props );
+        
+//        if ( classLoader == null ) {
+//            classLoader = Thread.currentThread().getContextClassLoader();
+//            if ( classLoader == null ) {
+//                classLoader = cls.getClassLoader();
+//            }
+//        }        
 
         // check META-INF directories for all known ClassLoaders
         ClassLoader confClassLoader = classLoader;
-        if ( confClassLoader != null ) {
-            loadProperties( getResources( "META-INF/drools." + confFileName,
-                                          confClassLoader ),
-                            this.props );
-        }
+        loadProperties( getResources( "META-INF/drools." + confFileName,
+                                      confClassLoader ),
+                        this.props );
+        loadProperties( getResources( "/META-INF/drools." + confFileName,
+                                      confClassLoader ),
+                        this.props );   
 
-        confClassLoader = getClass().getClassLoader();
+        confClassLoader = ClassLoader.getSystemClassLoader();
         if ( confClassLoader != null && confClassLoader != classLoader ) {
             loadProperties( getResources( "META-INF/drools." + confFileName,
                                           confClassLoader ),
                             this.props );
-        }
-
-        confClassLoader = Thread.currentThread().getContextClassLoader();
-        if ( confClassLoader != null && confClassLoader != classLoader ) {
-            loadProperties( getResources( "META-INF/drools." + confFileName,
+            loadProperties( getResources( "/META-INF/drools." + confFileName,
                                           confClassLoader ),
-                            this.props );
+                            this.props );            
         }
 
-        confClassLoader = ClassLoader.getSystemClassLoader();
-        if ( confClassLoader != null && confClassLoader != classLoader ) {
-            loadProperties( getResources( "META-INF/drools." + confFileName,
-                                          confClassLoader ),
-                            this.props );
-        }
-
         if ( !populateDefaults ) {
             return;
         }
 
         // load defaults
         confClassLoader = classLoader;
-        if ( confClassLoader != null ) {
-            loadProperties( getResources( "META-INF/drools.default." + confFileName,
-                                          confClassLoader ),
-                            this.defaultProps );
-        }
+        loadProperties( getResources( "META-INF/drools.default." + confFileName,
+                                      confClassLoader ),
+                        this.defaultProps );
+        loadProperties( getResources( "/META-INF/drools.default." + confFileName,
+                                      confClassLoader ),
+                        this.defaultProps );  
 
-        confClassLoader = getClass().getClassLoader();
+        confClassLoader = ClassLoader.getSystemClassLoader();
         if ( confClassLoader != null && confClassLoader != classLoader ) {
             loadProperties( getResources( "META-INF/drools.default." + confFileName,
                                           confClassLoader ),
                             this.defaultProps );
-        }
-
-        confClassLoader = Thread.currentThread().getContextClassLoader();
-        if ( confClassLoader != null && confClassLoader != classLoader ) {
-            loadProperties( getResources( "META-INF/drools.default." + confFileName,
+            loadProperties( getResources( "/META-INF/drools.default." + confFileName,
                                           confClassLoader ),
-                            this.defaultProps );
+                            this.defaultProps );            
         }
-
-        confClassLoader = ClassLoader.getSystemClassLoader();
-        if ( confClassLoader != null && confClassLoader != classLoader ) {
-            loadProperties( getResources( "META-INF/drools.default." + confFileName,
-                                          confClassLoader ),
-                            this.defaultProps );
-        }
     }
 
     @SuppressWarnings("unchecked")

Modified: labs/jbossrules/trunk/drools-api/src/main/java/org/drools/util/ProviderLocator.java
===================================================================
--- labs/jbossrules/trunk/drools-api/src/main/java/org/drools/util/ProviderLocator.java	2010-01-09 08:25:36 UTC (rev 30999)
+++ labs/jbossrules/trunk/drools-api/src/main/java/org/drools/util/ProviderLocator.java	2010-01-10 06:28:30 UTC (rev 31000)
@@ -135,8 +135,9 @@
         }
 
         // Look for a definition in the Drools config files.
-        ChainedProperties props = new ChainedProperties( classLoader,
-                                                         CONFIG_FILE );
+        ChainedProperties props = new ChainedProperties( CONFIG_FILE,
+                                                         ClassLoaderUtil.getClassLoader( null, ProviderLocator.class ),
+                                                         true );
         String providerName = props.getProperty( serviceClass.getName(),
                                                  null );
         if ( providerName != null ) {
@@ -176,8 +177,8 @@
         final String msg = MessageFormat.format( ERR_NOT_FOUND,
                                                  serviceClass.getName() );
         throw new ProviderInitializationException( msg );
-    }
-
+    }   
+    
     /**
      * Parses a Provider-Configuration File as described in the JAR
      * File Specification.

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	2010-01-09 08:25:36 UTC (rev 30999)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/compiler/PackageBuilder.java	2010-01-10 06:28:30 UTC (rev 31000)
@@ -79,7 +79,7 @@
 import org.drools.lang.dsl.DSLTokenizedMappingFile;
 import org.drools.lang.dsl.DefaultExpander;
 import org.drools.reteoo.ReteooRuleBase;
-import org.drools.rule.CompositeClassLoader;
+import org.drools.rule.DroolsCompositeClassLoader;
 import org.drools.rule.Function;
 import org.drools.rule.ImportDeclaration;
 import org.drools.rule.JavaDialectRuntimeData;
@@ -127,7 +127,7 @@
      */
     private final String                      defaultDialect;
 
-    private CompositeClassLoader              rootClassLoader;
+    private DroolsCompositeClassLoader              rootClassLoader;
 
     private Map<String, Class< ? >>           globals;
 
@@ -190,7 +190,7 @@
             //this.environment.set( EnvironmentName.DATE_FORMATS , this.dateFormats );
         }        
 
-        this.rootClassLoader = new CompositeClassLoader( this.configuration.getClassLoader() );
+        this.rootClassLoader = new DroolsCompositeClassLoader( this.configuration.getClassLoader() );
 
         this.defaultDialect = this.configuration.getDefaultDialect();
 
@@ -217,7 +217,7 @@
         if ( ruleBase != null ) {
             this.rootClassLoader = ((InternalRuleBase) ruleBase).getRootClassLoader();
         } else {
-            this.rootClassLoader = new CompositeClassLoader( this.configuration.getClassLoader() );
+            this.rootClassLoader = new DroolsCompositeClassLoader( this.configuration.getClassLoader() );
         }
         
         this.dateFormats = null;//(DateFormats) this.environment.get( EnvironmentName.DATE_FORMATS );
@@ -1489,7 +1489,7 @@
         return name.toUpperCase().charAt( 0 ) + name.substring( 1 );
     }
 
-    public CompositeClassLoader getRootClassLoader() {
+    public DroolsCompositeClassLoader getRootClassLoader() {
         return this.rootClassLoader;
     }
 }
\ No newline at end of file

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	2010-01-09 08:25:36 UTC (rev 30999)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/compiler/PackageBuilderConfiguration.java	2010-01-10 06:28:30 UTC (rev 31000)
@@ -43,7 +43,9 @@
 import org.drools.rule.Package;
 import org.drools.runtime.rule.AccumulateFunction;
 import org.drools.util.ChainedProperties;
+import org.drools.util.ClassLoaderUtil;
 import org.drools.util.ClassUtils;
+import org.drools.util.CompositeClassLoader;
 import org.drools.util.ConfFileUtils;
 import org.drools.util.StringUtils;
 import org.drools.workflow.core.Node;
@@ -156,16 +158,11 @@
 
     private void init(ClassLoader classLoader,
                       Properties properties) {
-        if ( classLoader == null ) {
-            classLoader = Thread.currentThread().getContextClassLoader();
-            if ( classLoader == null ) {
-                classLoader = this.getClass().getClassLoader();
-            }
-        }
         setClassLoader( classLoader );
 
-        this.chainedProperties = new ChainedProperties( this.classLoader,
-                                                        "packagebuilder.conf" );
+        this.chainedProperties = new ChainedProperties( "packagebuilder.conf",
+                                                        this.classLoader,
+                                                        true);
 
         if ( properties != null ) {
             this.chainedProperties.addProperties( properties );
@@ -319,11 +316,9 @@
         return this.classLoader;
     }
 
-    /** Use this to override the classloader that will be used for the rules. */
+    /** Use this to override the classLoader that will be used for the rules. */
     public void setClassLoader(final ClassLoader classLoader) {
-        if ( classLoader != null ) {
-            this.classLoader = classLoader;
-        }
+        this.classLoader =  ClassLoaderUtil.getClassLoader( classLoader, getClass() );
     }
 
     public void addSemanticModule(SemanticModule module) {

Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/dialect/java/JavaFunctionBuilder.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/dialect/java/JavaFunctionBuilder.java	2010-01-09 08:25:36 UTC (rev 30999)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/dialect/java/JavaFunctionBuilder.java	2010-01-10 06:28:30 UTC (rev 31000)
@@ -76,6 +76,9 @@
 
         vars.put( "parameterNames",
                   functionDescr.getParameterNames() );
+        
+        vars.put("hashCode",
+                new Integer(functionDescr.getText().hashCode() ) );        
 
         // Check that all the parameters are resolvable
         final Map params = new HashMap();

Modified: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/compiler/PackageBuilderConfigurationTest.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/compiler/PackageBuilderConfigurationTest.java	2010-01-09 08:25:36 UTC (rev 30999)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/compiler/PackageBuilderConfigurationTest.java	2010-01-10 06:28:30 UTC (rev 31000)
@@ -60,8 +60,8 @@
 
     public void testIgnoreDetauls() {
         // check standard chained properties, that includes defaults
-        ChainedProperties chainedProperties = new ChainedProperties( null,
-                                                                     "packagebuilder.conf",
+        ChainedProperties chainedProperties = new ChainedProperties( "packagebuilder.conf",
+                                                                     getClass().getClassLoader(),
                                                                      true );
         //System.out.println( chainedProperties.getProperty( "drools.dialect.java.compiler",
         //                                                   null ) );
@@ -70,9 +70,9 @@
 
 
         // now check that chained properties can ignore defaults
-        chainedProperties = new ChainedProperties( null,
-                                                   "packagebuilder.conf",
-                                                   false );
+        chainedProperties = new ChainedProperties( "packagebuilder.conf",
+                                                   getClass().getClassLoader(),
+                                                   true );
         //System.out.println( chainedProperties.getProperty( "drools.dialect.java.compiler",
         //                                                   null ) );
         assertNull( chainedProperties.getProperty( "drools.dialect.java.compiler",
@@ -80,8 +80,8 @@
 
 
         // now check it can find defaults again.
-        chainedProperties = new ChainedProperties( null,
-                                                   "packagebuilder.conf",
+        chainedProperties = new ChainedProperties( "packagebuilder.conf",
+                                                   getClass().getClassLoader(),
                                                    true );
         //System.out.println( chainedProperties.getProperty( "drools.dialect.java.compiler",
         //                                                   null ) );

Modified: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/compiler/PackageBuilderTest.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/compiler/PackageBuilderTest.java	2010-01-09 08:25:36 UTC (rev 30999)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/compiler/PackageBuilderTest.java	2010-01-10 06:28:30 UTC (rev 31000)
@@ -74,7 +74,7 @@
 import org.drools.process.core.Process;
 import org.drools.reteoo.ReteooRuleBase;
 import org.drools.rule.Behavior;
-import org.drools.rule.CompositeClassLoader;
+import org.drools.rule.DroolsCompositeClassLoader;
 import org.drools.rule.Declaration;
 import org.drools.rule.EvalCondition;
 import org.drools.rule.GroupElement;
@@ -1088,7 +1088,7 @@
         assertFalse( builder.hasErrors() );
 
         Package bp = builder.getPackage();
-        CompositeClassLoader rootClassloader = new CompositeClassLoader( Thread.currentThread().getContextClassLoader() );
+        DroolsCompositeClassLoader rootClassloader = new DroolsCompositeClassLoader( Thread.currentThread().getContextClassLoader() );
         JavaDialectRuntimeData dialectData = (JavaDialectRuntimeData) bp.getDialectRuntimeRegistry().getDialectData( "java" );
         dialectData.onAdd( bp.getDialectRuntimeRegistry(),
                            rootClassloader );

Modified: labs/jbossrules/trunk/drools-container/drools-osgi/org.drools.osgi.api/.classpath
===================================================================
--- labs/jbossrules/trunk/drools-container/drools-osgi/org.drools.osgi.api/.classpath	2010-01-09 08:25:36 UTC (rev 30999)
+++ labs/jbossrules/trunk/drools-container/drools-osgi/org.drools.osgi.api/.classpath	2010-01-10 06:28:30 UTC (rev 31000)
@@ -4,7 +4,7 @@
 	<classpathentry kind="src" path="src/main/resources"/>
 	<classpathentry kind="src" path="src/test/java"/>
 	<classpathentry kind="src" path="src/test/resources"/>
-	<classpathentry exported="true" kind="lib" path="lib/drools-api.jar"/>
+	<classpathentry exported="true" kind="lib" path="lib/drools-api.jar" sourcepath="/drools-api"/>
 	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
 	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
 	<classpathentry kind="output" path="target/classes"/>

Modified: labs/jbossrules/trunk/drools-container/drools-osgi/org.drools.osgi.api/META-INF/MANIFEST.MF
===================================================================
--- labs/jbossrules/trunk/drools-container/drools-osgi/org.drools.osgi.api/META-INF/MANIFEST.MF	2010-01-09 08:25:36 UTC (rev 30999)
+++ labs/jbossrules/trunk/drools-container/drools-osgi/org.drools.osgi.api/META-INF/MANIFEST.MF	2010-01-10 06:28:30 UTC (rev 31000)
@@ -5,11 +5,11 @@
 Bundle-Version: 5.1.0.SNAPSHOT
 Bundle-Activator: org.drools.osgi.api.Activator
 Bundle-Vendor: JBoss, a division of Red Hat
-Require-Bundle: org.eclipse.jdt.core
 Bundle-ClassPath: .,
  lib/drools-api.jar
 Bundle-RequiredExecutionEnvironment: J2SE-1.5
-Export-Package: org.drools.agent,
+Export-Package: org.drools,
+ org.drools.agent,
  org.drools.builder,
  org.drools.builder.conf,
  org.drools.builder.help,

Modified: labs/jbossrules/trunk/drools-container/drools-osgi/org.drools.osgi.impl/.classpath
===================================================================
--- labs/jbossrules/trunk/drools-container/drools-osgi/org.drools.osgi.impl/.classpath	2010-01-09 08:25:36 UTC (rev 30999)
+++ labs/jbossrules/trunk/drools-container/drools-osgi/org.drools.osgi.impl/.classpath	2010-01-10 06:28:30 UTC (rev 31000)
@@ -6,8 +6,8 @@
 	<classpathentry exported="true" kind="lib" path="lib/joda-time.jar"/>
 	<classpathentry exported="true" kind="lib" path="lib/jxl.jar"/>
 	<classpathentry exported="true" kind="lib" path="lib/mvel2.jar"/>
-	<classpathentry exported="true" kind="lib" path="lib/drools-compiler.jar"/>
-	<classpathentry exported="true" kind="lib" path="lib/drools-core.jar"/>
+	<classpathentry exported="true" kind="lib" path="lib/drools-compiler.jar" sourcepath="/drools-compiler"/>
+	<classpathentry exported="true" kind="lib" path="lib/drools-core.jar" sourcepath="/drools-core"/>
 	<classpathentry exported="true" kind="lib" path="lib/drools-decisiontables.jar"/>
 	<classpathentry exported="true" kind="lib" path="lib/drools-templates.jar"/>
 	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>

Modified: labs/jbossrules/trunk/drools-container/drools-osgi/org.drools.osgi.impl/META-INF/MANIFEST.MF
===================================================================
--- labs/jbossrules/trunk/drools-container/drools-osgi/org.drools.osgi.impl/META-INF/MANIFEST.MF	2010-01-09 08:25:36 UTC (rev 30999)
+++ labs/jbossrules/trunk/drools-container/drools-osgi/org.drools.osgi.impl/META-INF/MANIFEST.MF	2010-01-10 06:28:30 UTC (rev 31000)
@@ -3,7 +3,8 @@
 Bundle-Name: Drools Impl Plugin
 Bundle-SymbolicName: org.drools.osgi.impl
 Bundle-Version: 5.1.0.SNAPSHOT
-Require-Bundle: org.drools.osgi.api
+Require-Bundle: org.drools.osgi.api,
+ org.eclipse.jdt.core;bundle-version="3.5.1"
 Bundle-RequiredExecutionEnvironment: J2SE-1.5
 Bundle-ClassPath: .,
  lib/drools-compiler.jar,

Modified: labs/jbossrules/trunk/drools-container/drools-osgi/org.drools.osgi.impl/src/main/java/org/drools/osgi/impl/Activator.java
===================================================================
--- labs/jbossrules/trunk/drools-container/drools-osgi/org.drools.osgi.impl/src/main/java/org/drools/osgi/impl/Activator.java	2010-01-09 08:25:36 UTC (rev 30999)
+++ labs/jbossrules/trunk/drools-container/drools-osgi/org.drools.osgi.impl/src/main/java/org/drools/osgi/impl/Activator.java	2010-01-10 06:28:30 UTC (rev 31000)
@@ -2,17 +2,22 @@
 
 import java.util.Hashtable;
 
+import org.drools.KnowledgeBaseProvider;
 import org.drools.builder.KnowledgeBuilderProvider;
 import org.drools.builder.impl.KnowledgeBuilderProviderImpl;
+import org.drools.impl.KnowledgeBaseProviderImpl;
 import org.drools.io.ResourceProvider;
 import org.drools.io.impl.ResourceProviderImpl;
 import org.osgi.framework.BundleActivator;
 import org.osgi.framework.BundleContext;
 import org.osgi.framework.ServiceRegistration;
 
-public class Activator implements BundleActivator {
+public class Activator
+    implements
+    BundleActivator {
     private ServiceRegistration kbuilderReg;
     private ServiceRegistration resourceReg;
+    private ServiceRegistration kbaseReg;
 
     public void start(BundleContext bc) throws Exception {
         this.kbuilderReg = bc.registerService( KnowledgeBuilderProvider.class.getName(),
@@ -21,11 +26,15 @@
         this.resourceReg = bc.registerService( ResourceProvider.class.getName(),
                                                new ResourceProviderImpl(),
                                                new Hashtable() );
-        System.out.println( "registered" );
+        this.kbaseReg = bc.registerService( KnowledgeBaseProvider.class.getName(),
+                                            new KnowledgeBaseProviderImpl(),
+                                            new Hashtable() );
+        System.out.println( "impl registered" );
     }
 
     public void stop(BundleContext bc) throws Exception {
         this.kbuilderReg.unregister();
         this.resourceReg.unregister();
+        this.kbaseReg.unregister();
     }
 }

Modified: labs/jbossrules/trunk/drools-container/pom.xml
===================================================================
--- labs/jbossrules/trunk/drools-container/pom.xml	2010-01-09 08:25:36 UTC (rev 30999)
+++ labs/jbossrules/trunk/drools-container/pom.xml	2010-01-10 06:28:30 UTC (rev 31000)
@@ -14,6 +14,7 @@
   
   <modules>
       <module>drools-spring</module>
+      <module>drools-osgi</module>
   </modules>
   
 </project>

Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/RuleBaseConfiguration.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/RuleBaseConfiguration.java	2010-01-09 08:25:36 UTC (rev 30999)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/RuleBaseConfiguration.java	2010-01-10 06:28:30 UTC (rev 31000)
@@ -68,6 +68,8 @@
 import org.drools.runtime.rule.impl.DefaultConsequenceExceptionHandler;
 import org.drools.spi.ConflictResolver;
 import org.drools.util.ChainedProperties;
+import org.drools.util.ClassLoaderUtil;
+import org.drools.util.CompositeClassLoader;
 import org.drools.util.ConfFileUtils;
 import org.drools.util.StringUtils;
 import org.drools.workflow.core.Node;
@@ -379,15 +381,9 @@
                       Properties properties) {
         this.immutable = false;
 
-        if ( classLoader != null ) {
-            this.classLoader = classLoader;
-        } else if ( Thread.currentThread().getContextClassLoader() != null ) {
-            this.classLoader = Thread.currentThread().getContextClassLoader();
-        } else {
-            this.classLoader = this.getClass().getClassLoader();
-        }
+        setClassLoader( classLoader );
 
-        this.chainedProperties = new ChainedProperties( "rulebase.conf" );
+        this.chainedProperties = new ChainedProperties( "rulebase.conf", this.classLoader, true );
 
         if ( properties != null ) {
             this.chainedProperties.addProperties( properties );
@@ -971,7 +967,7 @@
     }
 
     public void setClassLoader(ClassLoader classLoader) {
-        this.classLoader = classLoader;
+        this.classLoader =  ClassLoaderUtil.getClassLoader( classLoader, getClass() );
     }
 
     /**

Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/SessionConfiguration.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/SessionConfiguration.java	2010-01-09 08:25:36 UTC (rev 30999)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/SessionConfiguration.java	2010-01-10 06:28:30 UTC (rev 31000)
@@ -36,6 +36,7 @@
 import org.drools.runtime.conf.SingleValueKnowledgeSessionOption;
 import org.drools.runtime.process.WorkItemHandler;
 import org.drools.util.ChainedProperties;
+import org.drools.util.ClassLoaderUtil;
 import org.drools.util.ConfFileUtils;
 import org.drools.util.StringUtils;
 import org.mvel2.MVEL;
@@ -117,19 +118,11 @@
     }
 
     private void init(ClassLoader classLoader, Properties properties) {
+    	this.classLoader =  ClassLoaderUtil.getClassLoader( classLoader, getClass() );
     	
-    	if ( classLoader != null ) {
-            this.classLoader = classLoader;
-        } else if ( Thread.currentThread().getContextClassLoader() != null ) {
-            this.classLoader = Thread.currentThread().getContextClassLoader();
-        } else {
-            this.classLoader = this.getClass().getClassLoader();
-        }
-    	
         this.immutable = false;
+        this.chainedProperties = new ChainedProperties( "session.conf",  this.classLoader );
 
-        this.chainedProperties = new ChainedProperties( "session.conf" );
-
         if ( properties != null ) {
             this.chainedProperties.addProperties( properties );
         }

Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/ClassFieldAccessorCache.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/ClassFieldAccessorCache.java	2010-01-09 08:25:36 UTC (rev 30999)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/ClassFieldAccessorCache.java	2010-01-10 06:28:30 UTC (rev 31000)
@@ -9,48 +9,18 @@
 import org.drools.util.asm.ClassFieldInspector;
 
 public class ClassFieldAccessorCache {
-    private static ClassFieldAccessorCache instance;
 
     private Map<ClassLoader, CacheEntry>   cacheByClassLoader;
 
     private ClassLoader                    classLoader;
 
-    //    private boolean                        eagerWire;
 
-    //    public static ClassFieldAccessorCache getInstance() {
-    //        if ( instance == null ) {
-    //            ClassLoader cl = Thread.currentThread().getContextClassLoader();
-    //            if ( cl == null ) {
-    //                cl = ClassFieldAccessorCache.class.getClassLoader();
-    //            }
-    //            instance = new ClassFieldAccessorCache( cl );
-    //        }
-    //        
-    //        return instance;
-    //    }
-    //
-    //    public ClassFieldAccessorCache() {
-    //        // we don't set the classloader here, its just for Externalisable
-    //        // any using class will need to set the classloader before using
-    //        this( null );
-    //    }
-
     public ClassFieldAccessorCache(ClassLoader classLoader) {
         //        lookup = new HashMap<AccessorKey, LookupEntry>();
         cacheByClassLoader = new WeakHashMap<ClassLoader, CacheEntry>();
         this.classLoader = classLoader;
     }
 
-    //    public void writeExternal(ObjectOutput out) throws IOException {
-    //        out.writeObject( lookup );
-    //
-    //    }
-    //
-    //    public void readExternal(ObjectInput in) throws IOException,
-    //                                            ClassNotFoundException {
-    //        lookup = ( Map<AccessorKey, LookupEntry> ) in.readObject();
-    //    }
-
     public void setClassLoader(ClassLoader classLoader) {
         this.classLoader = classLoader;
     }
@@ -58,136 +28,7 @@
     public ClassLoader getClassLoader() {
         return this.classLoader;
     }
-
-    //    public void setEagerWire(boolean eagerWire) {
-    //        this.eagerWire = eagerWire;
-    //    }
-    //
-    //    public ClassFieldWriter getWriter(Class cls,
-    //                                      String fieldName,
-    //                                      ClassLoader classLoader) {
-    //        //        return getReader( cls.getName(),
-    //        //                          fieldName,
-    //        //                          null );
-    //        return null;
-    //    }
-    //
-    //    public ClassFieldReader getReader(Class cls,
-    //                                      String fieldName,
-    //                                      ClassLoader classLoader) {
-    //        return getReader( cls.getName(),
-    //                          fieldName,
-    //                          null );
-    //    }
-    //
-    //    public synchronized ClassFieldReader getReader(final String className,
-    //                                                   final String fieldName,
-    //                                                   final AcceptsReadAccessor target) {
-    //        AccessorKey key = new AccessorKey( className,
-    //                                           fieldName );
-    //        LookupEntry entry = this.lookup.get( key );
-    //        if ( entry == null ) {
-    //            entry = new LookupEntry( new ClassFieldReader( className,
-    //                                                           fieldName ) );
-    //        }
-    //
-    //        if ( target != null ) {
-    //            entry.addReadAccessorTargets( target );
-    //        }
-    //
-    //        if ( this.eagerWire ) {
-    //            wire( entry.getClassFieldReader() );
-    //        }
-    //
-    //        return entry.getClassFieldReader();
-    //    }
-    //
-    //    public synchronized ClassFieldWriter getWriter(final String className,
-    //                                                   final String fieldName,
-    //                                                   final AcceptsWriteAccessor target) {
-    //        AccessorKey key = new AccessorKey( className,
-    //                                           fieldName );
-    //        LookupEntry entry = this.lookup.get( key );
-    //        if ( entry == null ) {
-    //            entry = new LookupEntry( new ClassFieldWriter( className,
-    //                                                           fieldName ) );
-    //            if ( target != null ) {
-    //                //entry.addReadAccessorTargets( target );
-    //            }
-    //        }
-    //
-    //        if ( this.eagerWire ) {
-    //            wire( entry.getClassFieldReader() );
-    //        }
-    //
-    //        return entry.getClassFieldWriter();
-    //    }
-    //
-    //    public void merge(ClassFieldAccessorCache other) {
-    //        for ( Entry<AccessorKey, LookupEntry> entry : other.lookup.entrySet() ) {
-    //            LookupEntry lookupEntry = this.lookup.get( entry.getKey() );
-    //            if ( lookupEntry == null ) {
-    //                // ClassFieldReader does not exist here, so copy in everything.
-    //                this.lookup.put( entry.getKey(),
-    //                                 entry.getValue() );
-    //            } else {
-    //                // iterate through new constraints adding them and wiring them up
-    //                // to the existing ClassFieldReader
-    //                for ( AcceptsReadAccessor target : entry.getValue().getReadAccessorTargets() ) {
-    //                    target.setReadAccessor( lookupEntry.getClassFieldReader() );
-    //                    lookupEntry.addReadAccessorTargets( target );
-    //                }
-    //            }
-    //        }
-    //    }
-    //
-    //    public void wire() {
-    //        for ( Entry<AccessorKey, LookupEntry> entry : lookup.entrySet() ) {
-    //            wire( entry.getValue().getClassFieldReader() );
-    //        }
-    //    }
-    //
-    //    public void wire(ClassFieldReader reader) {
-    //        reader.setReadAccessor( getReadAcessor( reader ) );
-    //    }
-    //
-    //    public void wire(ClassFieldWriter writer) {
-    //        writer.setWriteAccessor( getWriteAcessor( writer ) );
-    //    }
-    //
-    //    public ClassFieldAccessor getAccessor(Class cls,
-    //                                          String fieldName,
-    //                                          ClassLoader classLoader) {
-    //        return getAccessor( cls.getName(),
-    //                            fieldName,
-    //                            null );
-    //    }
-    //
-    //    public ClassFieldAccessor getAccessor(final String className,
-    //                                          final String fieldName,
-    //                                          final AcceptsReadAccessor target) {
-    //        AccessorKey key = new AccessorKey( className,
-    //                                           fieldName );
-    //        LookupEntry entry = this.lookup.get( key );
-    //        if ( entry == null ) {
-    //            entry = new LookupEntry( new ClassFieldReader( className,
-    //                                                           fieldName ),
-    //                                     new ClassFieldWriter( className,
-    //                                                           fieldName ) );
-    //            if ( target != null ) {
-    //                entry.addReadAccessorTargets( target );
-    //            }
-    //        }
-    //
-    //        if ( this.eagerWire ) {
-    //            wire( entry.getClassFieldReader() );
-    //            wire( entry.getClassFieldWriter() );
-    //        }
-    //
-    //        return new ClassFieldAccessor( entry.getClassFieldReader(),
-    //                                       entry.getClassFieldWriter() );
-    //    }
-
+    
     public ClassObjectType getClassObjectType(ClassObjectType objectType) {
         // always lookup the class, as the ClassObjectType might refer to the class from another ClassLoader
         Class cls = getClass( objectType.getClassName() );
@@ -273,14 +114,12 @@
     public CacheEntry getCacheEntry(Class cls) {
         // System classloader classes return null on some JVMs
         ClassLoader cl = cls.getClassLoader() != null ? 
-        		         cls.getClassLoader() : ( this.classLoader != null ) ? 
-        		        		                  this.classLoader : 
-        		        		                  ClassLoader.getSystemClassLoader();
+        		         cls.getClassLoader() : this.classLoader;
 
         CacheEntry cache = this.cacheByClassLoader.get( cl );
         if ( cache == null ) {
             // setup a cache for this ClassLoader
-            cache = new CacheEntry( cl );
+            cache = new CacheEntry( this.classLoader );
             this.cacheByClassLoader.put( cl,
                                          cache );
         }

Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/AbstractRuleBase.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/AbstractRuleBase.java	2010-01-09 08:25:36 UTC (rev 30999)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/AbstractRuleBase.java	2010-01-10 06:28:30 UTC (rev 31000)
@@ -49,7 +49,7 @@
 import org.drools.impl.EnvironmentFactory;
 import org.drools.management.DroolsManagementAgent;
 import org.drools.process.core.Process;
-import org.drools.rule.CompositeClassLoader;
+import org.drools.rule.DroolsCompositeClassLoader;
 import org.drools.rule.DialectRuntimeRegistry;
 import org.drools.rule.Function;
 import org.drools.rule.ImportDeclaration;
@@ -87,7 +87,7 @@
 
     private Map                                        agendaGroupRuleTotals;
 
-    private transient CompositeClassLoader             rootClassLoader;
+    private transient DroolsCompositeClassLoader             rootClassLoader;
 
     /**
      * The fact handle factory.
@@ -153,7 +153,7 @@
             this.agendaGroupRuleTotals = new HashMap();
         }
 
-        this.rootClassLoader = new CompositeClassLoader( this.config.getClassLoader() );
+        this.rootClassLoader = new DroolsCompositeClassLoader( this.config.getClassLoader() );
         this.pkgs = new HashMap<String, Package>();
         this.processes = new HashMap();
         this.globals = new HashMap<String, Class< ? >>();
@@ -250,7 +250,7 @@
             droolsStream = new DroolsObjectInputStream( bytes );
         }
 
-        this.rootClassLoader = new CompositeClassLoader( droolsStream.getParentClassLoader() );
+        this.rootClassLoader = new DroolsCompositeClassLoader( droolsStream.getParentClassLoader() );
         droolsStream.setClassLoader( this.rootClassLoader );
         droolsStream.setRuleBase( this );
 
@@ -826,7 +826,7 @@
         return this.config;
     }
 
-    public CompositeClassLoader getRootClassLoader() {
+    public DroolsCompositeClassLoader getRootClassLoader() {
         return this.rootClassLoader;
     }
 

Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/InternalRuleBase.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/InternalRuleBase.java	2010-01-09 08:25:36 UTC (rev 30999)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/InternalRuleBase.java	2010-01-10 06:28:30 UTC (rev 31000)
@@ -30,7 +30,7 @@
 import org.drools.reteoo.Rete;
 import org.drools.reteoo.ReteooBuilder;
 import org.drools.reteoo.ReteooWorkingMemory;
-import org.drools.rule.CompositeClassLoader;
+import org.drools.rule.DroolsCompositeClassLoader;
 import org.drools.rule.Package;
 import org.drools.rule.TypeDeclaration;
 import org.drools.spi.FactHandleFactory;
@@ -100,7 +100,7 @@
                               PropagationContext context,
                               ReteooWorkingMemory workingMemory) throws FactException;
  
-    public CompositeClassLoader getRootClassLoader();   
+    public DroolsCompositeClassLoader getRootClassLoader();   
     
     public Rete getRete();
     

Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/MemoryVisitor.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/MemoryVisitor.java	2010-01-09 08:25:36 UTC (rev 30999)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/MemoryVisitor.java	2010-01-10 06:28:30 UTC (rev 31000)
@@ -7,9 +7,9 @@
 import java.lang.reflect.Field;
 
 import org.drools.common.InternalWorkingMemory;
-import org.drools.reteoo.RuleTerminalNode.TerminalNodeMemory;
 import org.drools.util.AbstractHashTable;
 import org.drools.util.Entry;
+import org.drools.util.ObjectHashSet;
 import org.drools.util.ReflectiveVisitor;
 import org.drools.util.RightTupleIndexHashTable;
 import org.drools.util.RightTupleList;
@@ -60,8 +60,8 @@
     public void visitObjectTypeNode(final ObjectTypeNode node) {
         System.out.println( indent() + node );
 
-        final RightTupleList memory = (RightTupleList) this.workingMemory.getNodeMemory( node );
-        checkObjectHashTable( memory );
+        ObjectHashSet memory = (ObjectHashSet) workingMemory.getNodeMemory( node );
+        checkObjectHashSet( memory );
 
         this.indent++;
         try {
@@ -81,9 +81,6 @@
     public void visitAlphaNode(final AlphaNode node) {
         System.out.println( indent() + node );
 
-        final RightTupleList memory = (RightTupleList) this.workingMemory.getNodeMemory( node );
-        checkObjectHashTable( memory );
-
         this.indent++;
         try {
             final Field field = ObjectSource.class.getDeclaredField( "sink" );
@@ -168,10 +165,10 @@
         this.indent--;
     }
 
-    public void visitTerminalNode(final RuleTerminalNode node) {
+    public void visitRuleTerminalNode(final RuleTerminalNode node) {
         System.out.println( indent() + node );
-        final TerminalNodeMemory memory = (TerminalNodeMemory) this.workingMemory.getNodeMemory( node );
-        checkLeftTupleMemory( memory.getTupleMemory() );
+//        final TerminalNodeMemory memory = (TerminalNodeMemory) this.workingMemory.getNodeMemory( node );
+//        checkLeftTupleMemory( memory.getTupleMemory() );
     }
 
     //    private void checkObjectHashMap(final ObjectHashMap map) {
@@ -189,6 +186,26 @@
     //        }
     //    }
 
+    private void checkObjectHashSet(ObjectHashSet memory) {
+        final Entry[] entries = memory.getTable();
+        int factCount = 0;
+        int bucketCount = 0;
+        for ( int i = 0, length = entries.length; i < length; i++ ) {
+            if ( entries[i] != null ) {
+                Entry  entry = (Entry ) entries[i];
+                while ( entry != null ) {
+                  entry = entry.getNext();
+                  factCount++;                    
+                }
+            }
+        }
+        
+        System.out.println( indent() + "ObjectHashSet: " + memory.size() + ":" + factCount );
+        if( factCount != memory.size() ) {
+            System.out.println( indent() + "error" );
+        }
+    }
+    
     private void checkObjectHashTable(final RightTupleMemory memory) {
         if ( memory instanceof RightTupleList ) {
             checkRightTupleList( (RightTupleList) memory );

Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/ObjectTypeNode.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/ObjectTypeNode.java	2010-01-09 08:25:36 UTC (rev 30999)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/ObjectTypeNode.java	2010-01-10 06:28:30 UTC (rev 31000)
@@ -168,10 +168,10 @@
     public void assertObject(final InternalFactHandle factHandle,
                              final PropagationContext context,
                              final InternalWorkingMemory workingMemory) {
-        if (context.getType() == PropagationContext.MODIFICATION && this.skipOnModify && context.getDormantActivations() == 0) {
-            // we do this after the shadowproxy update, just so that its up to date for the future
-            return;
-        }
+//        if (context.getType() == PropagationContext.MODIFICATION && this.skipOnModify && context.getDormantActivations() == 0) {
+//            // we do this after the shadowproxy update, just so that its up to date for the future
+//            return;
+//        }
 
         if (this.objectMemoryEnabled) {
             final ObjectHashSet memory = (ObjectHashSet) workingMemory.getNodeMemory(this);
@@ -214,9 +214,9 @@
                               final PropagationContext context,
                               final InternalWorkingMemory workingMemory) {
 
-        if (context.getType() == PropagationContext.MODIFICATION && this.skipOnModify && context.getDormantActivations() == 0) {
-            return;
-        }
+//        if (context.getType() == PropagationContext.MODIFICATION && this.skipOnModify && context.getDormantActivations() == 0) {
+//            return;
+//        }
 
         if (this.objectMemoryEnabled) {
             final ObjectHashSet memory = (ObjectHashSet) workingMemory.getNodeMemory(this);

Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/DialectRuntimeData.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/DialectRuntimeData.java	2010-01-09 08:25:36 UTC (rev 30999)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/DialectRuntimeData.java	2010-01-10 06:28:30 UTC (rev 31000)
@@ -14,10 +14,10 @@
 
     public void reload();
 
-    public DialectRuntimeData clone(DialectRuntimeRegistry registry, CompositeClassLoader rootClassLoader);
+    public DialectRuntimeData clone(DialectRuntimeRegistry registry, DroolsCompositeClassLoader rootClassLoader);
 
     public void onAdd(DialectRuntimeRegistry dialectRuntimeRegistry,
-                     CompositeClassLoader rootClassLoader);
+                     DroolsCompositeClassLoader rootClassLoader);
     
     public void onRemove();
     

Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/DialectRuntimeRegistry.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/DialectRuntimeRegistry.java	2010-01-09 08:25:36 UTC (rev 30999)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/DialectRuntimeRegistry.java	2010-01-10 06:28:30 UTC (rev 31000)
@@ -42,7 +42,7 @@
         this.lineMappings = (Map) stream.readObject();
     }
 
-    public void onAdd(CompositeClassLoader rootClassLoader) {
+    public void onAdd(DroolsCompositeClassLoader rootClassLoader) {
         //this.classLoader = rootClassLoader;
         for ( Iterator it = this.dialects.values().iterator(); it.hasNext(); ) {
             DialectRuntimeData data = (DialectRuntimeData) it.next();
@@ -85,7 +85,7 @@
     }
 
     public void merge(DialectRuntimeRegistry newDatas,
-                      CompositeClassLoader rootClassLoader) {
+                      DroolsCompositeClassLoader rootClassLoader) {
         for ( Entry<String, DialectRuntimeData> entry : newDatas.dialects.entrySet() ) {
             DialectRuntimeData data = this.dialects.get( entry.getKey() );
             if ( data == null ) {

Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/JavaDialectRuntimeData.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/JavaDialectRuntimeData.java	2010-01-09 08:25:36 UTC (rev 30999)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/JavaDialectRuntimeData.java	2010-01-10 06:28:30 UTC (rev 31000)
@@ -36,6 +36,7 @@
 import org.drools.RuntimeDroolsException;
 import org.drools.common.DroolsObjectInput;
 import org.drools.spi.Wireable;
+import org.drools.util.DroolsClassLoader;
 import org.drools.util.StringUtils;
 
 public class JavaDialectRuntimeData
@@ -58,7 +59,7 @@
 
     private transient PackageClassLoader   classLoader;
 
-    private transient CompositeClassLoader rootClassLoader;
+    private transient DroolsCompositeClassLoader rootClassLoader;
 
     private boolean                        dirty;
 
@@ -121,7 +122,7 @@
     }
 
     public void onAdd(DialectRuntimeRegistry registry,
-                      CompositeClassLoader rootClassLoader) {
+                      DroolsCompositeClassLoader rootClassLoader) {
         this.registry = registry;
         this.rootClassLoader = rootClassLoader;
         this.classLoader = new PackageClassLoader( this,
@@ -152,7 +153,7 @@
     }
 
     public DialectRuntimeData clone(DialectRuntimeRegistry registry,
-                                    CompositeClassLoader rootClassLoader) {
+                                    DroolsCompositeClassLoader rootClassLoader) {
         DialectRuntimeData cloneOne = new JavaDialectRuntimeData();
         cloneOne.merge( registry,
                         this );
@@ -422,10 +423,10 @@
         implements
         DroolsClassLoader {
         private JavaDialectRuntimeData store;
-        CompositeClassLoader           rootClassLoader;
+        DroolsCompositeClassLoader           rootClassLoader;
 
         public PackageClassLoader(JavaDialectRuntimeData store,
-                                  CompositeClassLoader rootClassLoader) {
+                                  DroolsCompositeClassLoader rootClassLoader) {
             super( rootClassLoader );
             this.rootClassLoader = rootClassLoader;
             this.store = store;

Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/MVELDialectRuntimeData.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/MVELDialectRuntimeData.java	2010-01-09 08:25:36 UTC (rev 30999)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/MVELDialectRuntimeData.java	2010-01-10 06:28:30 UTC (rev 31000)
@@ -25,7 +25,7 @@
 
     private Map<Wireable, MVELCompileable> invokerLookups;
 
-    private CompositeClassLoader           rootClassLoader;
+    private DroolsCompositeClassLoader           rootClassLoader;
 
     private List<Wireable>                 wireList = Collections.<Wireable> emptyList();
 
@@ -70,7 +70,7 @@
     }
 
     public DialectRuntimeData clone(DialectRuntimeRegistry registry,
-                                    CompositeClassLoader rootClassLoader) {
+                                    DroolsCompositeClassLoader rootClassLoader) {
         DialectRuntimeData clone = new MVELDialectRuntimeData();
         clone.merge( registry,
                      this );
@@ -80,7 +80,7 @@
     }
 
     public void onAdd(DialectRuntimeRegistry registry,
-                      CompositeClassLoader rootClassLoader) {
+                      DroolsCompositeClassLoader rootClassLoader) {
         this.rootClassLoader = rootClassLoader;
 
         //        for (Entry<Wireable, MVELCompilable> entry : this.invokerLookups.entrySet() ) {

Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/MapBackedClassLoader.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/MapBackedClassLoader.java	2010-01-09 08:25:36 UTC (rev 30999)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/MapBackedClassLoader.java	2010-01-10 06:28:30 UTC (rev 31000)
@@ -8,6 +8,8 @@
 import java.util.HashMap;
 import java.util.Map;
 
+import org.drools.util.DroolsClassLoader;
+
 public class MapBackedClassLoader extends ClassLoader
     implements
     DroolsClassLoader {

Modified: labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/service/DefaultEscalatedDeadlineHandler.java
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/service/DefaultEscalatedDeadlineHandler.java	2010-01-09 08:25:36 UTC (rev 30999)
+++ labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/service/DefaultEscalatedDeadlineHandler.java	2010-01-10 06:28:30 UTC (rev 31000)
@@ -30,6 +30,7 @@
 import org.drools.task.User;
 import org.drools.task.UserInfo;
 import org.drools.util.ChainedProperties;
+import org.drools.util.ClassLoaderUtil;
 import org.mvel2.MVEL;
 import org.mvel2.compiler.ExpressionCompiler;
 import org.mvel2.templates.TemplateRuntime;
@@ -63,7 +64,7 @@
     public DefaultEscalatedDeadlineHandler() {
         handler = new EmailWorkItemHandler();
         
-        ChainedProperties conf = new ChainedProperties("drools.email.conf");
+        ChainedProperties conf = new ChainedProperties("drools.email.conf",  ClassLoaderUtil.getClassLoader( null, getClass() ) );
         String host = conf.getProperty( "host", null );
         String port = conf.getProperty( "port", "25" );
         

Modified: labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/service/SendIcal.java
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/service/SendIcal.java	2010-01-09 08:25:36 UTC (rev 30999)
+++ labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/service/SendIcal.java	2010-01-10 06:28:30 UTC (rev 31000)
@@ -28,6 +28,7 @@
 import org.drools.task.User;
 import org.drools.task.UserInfo;
 import org.drools.util.ChainedProperties;
+import org.drools.util.ClassLoaderUtil;
 
 //import net.fortuna.ical4j.model.Calendar;
 //import net.fortuna.ical4j.model.DateTime;
@@ -70,7 +71,7 @@
     }
 
     SendIcal() {
-        ChainedProperties conf = new ChainedProperties( "drools.email.conf" );
+        ChainedProperties conf = new ChainedProperties( "drools.email.conf",ClassLoaderUtil.getClassLoader( null, getClass() ) );
         String host = conf.getProperty( "mail.smtp.host",
                                         "localhost" );
         String port = conf.getProperty( "mail.smtp.port",

Modified: labs/jbossrules/trunk/drools-process/drools-process-task/src/test/java/org/drools/task/service/IcalTest.java
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-process-task/src/test/java/org/drools/task/service/IcalTest.java	2010-01-09 08:25:36 UTC (rev 30999)
+++ labs/jbossrules/trunk/drools-process/drools-process-task/src/test/java/org/drools/task/service/IcalTest.java	2010-01-10 06:28:30 UTC (rev 31000)
@@ -1,7 +1,5 @@
 package org.drools.task.service;
 
-import org.drools.task.service.responsehandlers.BlockingAddTaskResponseHandler;
-import org.drools.task.service.responsehandlers.BlockingTaskOperationResponseHandler;
 import java.io.ByteArrayOutputStream;
 import java.io.InputStream;
 import java.io.StringReader;
@@ -18,11 +16,14 @@
 
 import org.apache.commons.collections.map.HashedMap;
 import org.apache.mina.transport.socket.nio.NioSocketConnector;
+import org.drools.SystemEventListenerFactory;
 import org.drools.task.BaseTest;
 import org.drools.task.MockUserInfo;
 import org.drools.task.Task;
+import org.drools.task.service.responsehandlers.BlockingAddTaskResponseHandler;
+import org.drools.task.service.responsehandlers.BlockingTaskOperationResponseHandler;
 import org.drools.util.ChainedProperties;
-import org.drools.SystemEventListenerFactory;
+import org.drools.util.ClassLoaderUtil;
 import org.subethamail.wiser.Wiser;
 import org.subethamail.wiser.WiserMessage;
 
@@ -39,7 +40,7 @@
     protected void setUp() throws Exception {
         super.setUp();
         
-        ChainedProperties props = new ChainedProperties( "process.email.conf" );
+        ChainedProperties props = new ChainedProperties( "process.email.conf", ClassLoaderUtil.getClassLoader( null, getClass() ) );
         emailHost = props.getProperty( "host", "locahost" );
         emailPort = props.getProperty( "port", "2345" );        
         

Modified: labs/jbossrules/trunk/drools-process/drools-workitems/src/test/java/org/drools/process/workitem/email/EmailWorkItemHandlerTest.java
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-workitems/src/test/java/org/drools/process/workitem/email/EmailWorkItemHandlerTest.java	2010-01-09 08:25:36 UTC (rev 30999)
+++ labs/jbossrules/trunk/drools-process/drools-workitems/src/test/java/org/drools/process/workitem/email/EmailWorkItemHandlerTest.java	2010-01-10 06:28:30 UTC (rev 31000)
@@ -13,6 +13,8 @@
 import org.drools.process.instance.impl.WorkItemImpl;
 import org.drools.runtime.process.WorkItemManager;
 import org.drools.util.ChainedProperties;
+import org.drools.util.ClassLoaderUtil;
+import org.drools.util.ProviderLocator;
 import org.subethamail.wiser.Wiser;
 import org.subethamail.wiser.WiserMessage;
 
@@ -24,7 +26,7 @@
     
     @Override
     protected void setUp() throws Exception {
-        ChainedProperties props = new ChainedProperties( "email.conf" );
+        ChainedProperties props = new ChainedProperties( "email.conf", ClassLoaderUtil.getClassLoader( null, getClass()) );
         emailHost = props.getProperty( "host", "localhost" );
         emailPort = props.getProperty( "port", "2345" );
         



More information about the jboss-svn-commits mailing list