[jboss-svn-commits] JBL Code SVN: r31078 - in labs/jbossrules/trunk: drools-api/META-INF and 15 other directories.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Thu Jan 14 00:36:16 EST 2010


Author: mark.proctor at jboss.com
Date: 2010-01-14 00:36:13 -0500 (Thu, 14 Jan 2010)
New Revision: 31078

Added:
   labs/jbossrules/trunk/drools-api/src/main/java/org/drools/osgi/
   labs/jbossrules/trunk/drools-api/src/main/java/org/drools/osgi/api/
   labs/jbossrules/trunk/drools-api/src/main/java/org/drools/osgi/api/Activator.java
   labs/jbossrules/trunk/drools-api/src/main/java/org/drools/util/internal/ServiceRegistry.java
   labs/jbossrules/trunk/drools-api/src/main/java/org/drools/util/internal/ServiceRegistryImpl.java
Removed:
   labs/jbossrules/trunk/drools-api/src/main/java/org/drools/ProviderInitializationException.java
   labs/jbossrules/trunk/drools-api/src/main/java/org/drools/util/internal/ServiceLocatorImpl.java
Modified:
   labs/jbossrules/trunk/drools-api/.classpath
   labs/jbossrules/trunk/drools-api/META-INF/MANIFEST.MF
   labs/jbossrules/trunk/drools-api/pom.xml
   labs/jbossrules/trunk/drools-api/src/main/java/org/drools/KnowledgeBaseFactory.java
   labs/jbossrules/trunk/drools-api/src/main/java/org/drools/SystemEventListenerFactory.java
   labs/jbossrules/trunk/drools-api/src/main/java/org/drools/agent/KnowledgeAgentFactory.java
   labs/jbossrules/trunk/drools-api/src/main/java/org/drools/builder/KnowledgeBuilderFactory.java
   labs/jbossrules/trunk/drools-api/src/main/java/org/drools/builder/help/KnowledgeBuilderHelper.java
   labs/jbossrules/trunk/drools-api/src/main/java/org/drools/command/CommandFactory.java
   labs/jbossrules/trunk/drools-api/src/main/java/org/drools/io/ResourceFactory.java
   labs/jbossrules/trunk/drools-api/src/main/java/org/drools/logger/KnowledgeRuntimeLoggerFactory.java
   labs/jbossrules/trunk/drools-api/src/main/java/org/drools/marshalling/MarshallerFactory.java
   labs/jbossrules/trunk/drools-api/src/main/java/org/drools/persistence/jpa/JPAKnowledgeService.java
   labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/help/BatchExecutionHelper.java
   labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/pipeline/PipelineFactory.java
   labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/compiler/DecisionTableFactory.java
Log:
JBRULES-2351 OSGi Ready
-Implemented a ServiceRegistry, with defaults for reflection lookup. OSGi or other containers can inject their instances.

Modified: labs/jbossrules/trunk/drools-api/.classpath
===================================================================
--- labs/jbossrules/trunk/drools-api/.classpath	2010-01-14 03:16:32 UTC (rev 31077)
+++ labs/jbossrules/trunk/drools-api/.classpath	2010-01-14 05:36:13 UTC (rev 31078)
@@ -45,6 +45,7 @@
   <classpathentry kind="var" path="M2_REPO/org/milyn/milyn-smooks-javabean/1.2/milyn-smooks-javabean-1.2.jar"/>
   <classpathentry kind="var" path="M2_REPO/org/mvel/mvel2/2.0.12/mvel2-2.0.12.jar"/>
   <classpathentry kind="var" path="M2_REPO/org/objenesis/objenesis/1.0/objenesis-1.0.jar"/>
+  <classpathentry kind="var" path="M2_REPO/org/osgi/org.osgi.core/r4v42/org.osgi.core-r4v42.jar"/>
   <classpathentry kind="var" path="M2_REPO/org/apache/poi/poi/3.2-FINAL/poi-3.2-FINAL.jar"/>
   <classpathentry kind="var" path="M2_REPO/xerces/xercesImpl/2.9.1/xercesImpl-2.9.1.jar"/>
   <classpathentry kind="var" path="M2_REPO/xml-apis/xml-apis/1.3.04/xml-apis-1.3.04.jar"/>

Modified: labs/jbossrules/trunk/drools-api/META-INF/MANIFEST.MF
===================================================================
--- labs/jbossrules/trunk/drools-api/META-INF/MANIFEST.MF	2010-01-14 03:16:32 UTC (rev 31077)
+++ labs/jbossrules/trunk/drools-api/META-INF/MANIFEST.MF	2010-01-14 05:36:13 UTC (rev 31078)
@@ -39,6 +39,7 @@
  org.drools.util.internal;version="5.1",
  org.drools.vsm;version="5.1",
  org.milyn;resolution:=optional,
+ org.osgi.framework,
  org.quartz;version="1.6";resolution:=optional
 Bnd-LastModified: 1263413779469
 Export-Package: org.drools;version="5.1.0.SNAPSHOT";

Modified: labs/jbossrules/trunk/drools-api/pom.xml
===================================================================
--- labs/jbossrules/trunk/drools-api/pom.xml	2010-01-14 03:16:32 UTC (rev 31077)
+++ labs/jbossrules/trunk/drools-api/pom.xml	2010-01-14 05:36:13 UTC (rev 31078)
@@ -13,6 +13,12 @@
   <name>Drools :: API</name>
 
   <dependencies>    
+      <dependency>  
+         <groupId>org.osgi</groupId>  
+         <artifactId>org.osgi.core</artifactId>  
+         <scope>provided</scope>
+       </dependency>
+         
          <dependency>  
             <groupId>com.sun.xml</groupId>  
             <artifactId>com.springsource.com.sun.tools.xjc</artifactId>  

Modified: labs/jbossrules/trunk/drools-api/src/main/java/org/drools/KnowledgeBaseFactory.java
===================================================================
--- labs/jbossrules/trunk/drools-api/src/main/java/org/drools/KnowledgeBaseFactory.java	2010-01-14 03:16:32 UTC (rev 31077)
+++ labs/jbossrules/trunk/drools-api/src/main/java/org/drools/KnowledgeBaseFactory.java	2010-01-14 05:36:13 UTC (rev 31078)
@@ -2,9 +2,10 @@
 
 import java.util.Properties;
 
+import org.drools.builder.KnowledgeBuilderProvider;
 import org.drools.runtime.Environment;
 import org.drools.runtime.KnowledgeSessionConfiguration;
-import org.drools.util.internal.ServiceLocatorImpl;
+import org.drools.util.internal.ServiceRegistryImpl;
 
 /**
  * <p>
@@ -151,12 +152,6 @@
 
     @SuppressWarnings("unchecked")
     private static void loadProvider() {
-        try {
-            // we didn't find anything in properties so lets try and us reflection
-            Class<KnowledgeBaseProvider> cls = (Class<KnowledgeBaseProvider>) Class.forName( "org.drools.impl.KnowledgeBaseProviderImpl" );
-            setKnowledgeBaseProvider( cls.newInstance() );
-        } catch ( Exception e ) {
-            throw new ProviderInitializationException( "Provider org.drools.impl.KnowledgeBaseProviderImpl could not be set.", e );
-        }
+        setKnowledgeBaseProvider( ServiceRegistryImpl.getInstance().get( KnowledgeBaseProvider.class ) );
     }
 }

Deleted: labs/jbossrules/trunk/drools-api/src/main/java/org/drools/ProviderInitializationException.java
===================================================================
--- labs/jbossrules/trunk/drools-api/src/main/java/org/drools/ProviderInitializationException.java	2010-01-14 03:16:32 UTC (rev 31077)
+++ labs/jbossrules/trunk/drools-api/src/main/java/org/drools/ProviderInitializationException.java	2010-01-14 05:36:13 UTC (rev 31078)
@@ -1,62 +0,0 @@
-package org.drools;
-
-/*
- * Copyright 2005 JBoss Inc
- * 
- * 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.
- */
-
-/**
- * If a provider is not set on a factory it will attempt to initialise one, typically using reflection.
- * If an issue occured while doing this a ProviderInitializationException is created.
- * 
- * @see RuntimeException
- *
- */
-public class ProviderInitializationException extends RuntimeException {
-    /**
-     * 
-     */
-    private static final long serialVersionUID = 400L;
-
-    /**
-     * @see java.lang.Exception#Exception()
-     */
-    public ProviderInitializationException() {
-        super();
-    }
-
-    /**
-     * @see java.lang.Exception#Exception(String message)
-     */
-    public ProviderInitializationException(final String message) {
-        super( message );
-    }
-
-    /**
-     * @see java.lang.Exception#Exception(String message, Throwable cause)
-     */
-    public ProviderInitializationException(final String message,
-                                           final Throwable cause) {
-        super( message,
-               cause );
-    }
-
-    /**
-     * @see java.lang.Exception#Exception(Throwable cause)
-     */
-    public ProviderInitializationException(final Throwable cause) {
-        super( cause );
-    }
-
-}
\ No newline at end of file

Modified: labs/jbossrules/trunk/drools-api/src/main/java/org/drools/SystemEventListenerFactory.java
===================================================================
--- labs/jbossrules/trunk/drools-api/src/main/java/org/drools/SystemEventListenerFactory.java	2010-01-14 03:16:32 UTC (rev 31077)
+++ labs/jbossrules/trunk/drools-api/src/main/java/org/drools/SystemEventListenerFactory.java	2010-01-14 05:36:13 UTC (rev 31078)
@@ -1,5 +1,7 @@
 package org.drools;
 
+import org.drools.util.internal.ServiceRegistryImpl;
+
 /**
  * This factory allows you to set the SystemEventListener that will be used by various components of Drools, such
  * as the KnowledgeAgent, ResourceChangeNotifier and ResourceChangeListener.
@@ -39,13 +41,6 @@
     }
 
     private static void loadProvider() {
-        try {
-            // we didn't find anything in properties so lets try and us reflection
-            Class<SystemEventListenerProvider> cls = (Class<SystemEventListenerProvider>) Class.forName( "org.drools.impl.SystemEventListenerProviderImpl" );
-            setSystemEventListenerProvider( cls.newInstance() );
-        } catch ( Exception e ) {
-            throw new ProviderInitializationException( "Provider org.drools.impl.SystemEventListenerProviderImpl could not be set.",
-                                                       e );
-        }
+        setSystemEventListenerProvider( ServiceRegistryImpl.getInstance().get( SystemEventListenerProvider.class ) );
     }
 }

Modified: labs/jbossrules/trunk/drools-api/src/main/java/org/drools/agent/KnowledgeAgentFactory.java
===================================================================
--- labs/jbossrules/trunk/drools-api/src/main/java/org/drools/agent/KnowledgeAgentFactory.java	2010-01-14 03:16:32 UTC (rev 31077)
+++ labs/jbossrules/trunk/drools-api/src/main/java/org/drools/agent/KnowledgeAgentFactory.java	2010-01-14 05:36:13 UTC (rev 31078)
@@ -4,7 +4,6 @@
 
 import org.drools.KnowledgeBase;
 import org.drools.KnowledgeBaseFactory;
-import org.drools.ProviderInitializationException;
 import org.drools.io.ResourceFactory;
 
 /**
@@ -163,7 +162,7 @@
             Class<KnowledgeAgentProvider> cls = (Class<KnowledgeAgentProvider>) Class.forName(providerClassName);
             setKnowledgeAgentProvider( cls.newInstance() );
         } catch ( Exception e ) {
-            throw new ProviderInitializationException( "Provider "+providerClassName+" could not be set." );
+            throw new RuntimeException( "Provider "+providerClassName+" could not be set." );
         }
     }
 }

Modified: labs/jbossrules/trunk/drools-api/src/main/java/org/drools/builder/KnowledgeBuilderFactory.java
===================================================================
--- labs/jbossrules/trunk/drools-api/src/main/java/org/drools/builder/KnowledgeBuilderFactory.java	2010-01-14 03:16:32 UTC (rev 31077)
+++ labs/jbossrules/trunk/drools-api/src/main/java/org/drools/builder/KnowledgeBuilderFactory.java	2010-01-14 05:36:13 UTC (rev 31078)
@@ -3,7 +3,7 @@
 import java.util.Properties;
 
 import org.drools.KnowledgeBase;
-import org.drools.ProviderInitializationException;
+import org.drools.util.internal.ServiceRegistryImpl;
 
 /**
  * This factory is used to build the knowledge base definitions that are held collectively in
@@ -104,12 +104,6 @@
     }
 
     private static void loadProvider() {
-        try {
-            Class<KnowledgeBuilderProvider> cls = (Class<KnowledgeBuilderProvider>) Class.forName( "org.drools.builder.impl.KnowledgeBuilderProviderImpl" );
-            setKnowledgeBuilderProvider( cls.newInstance() );
-        } catch ( Exception e2 ) {
-            throw new ProviderInitializationException( "Provider org.drools.builder.impl.KnowledgeBuilderProviderImpl could not be set.",
-                                                       e2 );
-        }
+        setKnowledgeBuilderProvider( ServiceRegistryImpl.getInstance().get( KnowledgeBuilderProvider.class ) );
     }
 }

Modified: labs/jbossrules/trunk/drools-api/src/main/java/org/drools/builder/help/KnowledgeBuilderHelper.java
===================================================================
--- labs/jbossrules/trunk/drools-api/src/main/java/org/drools/builder/help/KnowledgeBuilderHelper.java	2010-01-14 03:16:32 UTC (rev 31077)
+++ labs/jbossrules/trunk/drools-api/src/main/java/org/drools/builder/help/KnowledgeBuilderHelper.java	2010-01-14 05:36:13 UTC (rev 31078)
@@ -8,7 +8,6 @@
 import javax.xml.bind.JAXBException;
 
 import org.drools.KnowledgeBase;
-import org.drools.ProviderInitializationException;
 import org.drools.builder.KnowledgeBuilder;
 import org.drools.builder.KnowledgeBuilderFactory;
 import org.drools.io.Resource;
@@ -110,7 +109,7 @@
             Class<DroolsJaxbHelperProvider> cls = (Class<DroolsJaxbHelperProvider>) Class.forName( "org.drools.runtime.pipeline.impl.DroolsJaxbHelperProviderImpl" );
             setDroolsJaxbHelperProvider( cls.newInstance() );
         } catch ( Exception e2 ) {
-            throw new ProviderInitializationException( "Provider org.drools.runtime.pipeline.impl.DroolsJaxbHelperProviderImpl could not be set.",
+            throw new RuntimeException( "Provider org.drools.runtime.pipeline.impl.DroolsJaxbHelperProviderImpl could not be set.",
                                                        e2 );
         }
     }

Modified: labs/jbossrules/trunk/drools-api/src/main/java/org/drools/command/CommandFactory.java
===================================================================
--- labs/jbossrules/trunk/drools-api/src/main/java/org/drools/command/CommandFactory.java	2010-01-14 03:16:32 UTC (rev 31077)
+++ labs/jbossrules/trunk/drools-api/src/main/java/org/drools/command/CommandFactory.java	2010-01-14 05:36:13 UTC (rev 31078)
@@ -3,7 +3,6 @@
 import java.util.List;
 import java.util.Map;
 
-import org.drools.ProviderInitializationException;
 import org.drools.runtime.ObjectFilter;
 import org.drools.runtime.rule.FactHandle;
 
@@ -280,7 +279,7 @@
             Class<CommandFactoryProvider> cls = (Class<CommandFactoryProvider>) Class.forName( "org.drools.command.impl.CommandFactoryProviderImpl" );
             setCommandFactoryProvider( cls.newInstance() );
         } catch ( Exception e2 ) {
-            throw new ProviderInitializationException( "Provider org.drools.command.impl.CommandFactoryProviderImpl could not be set.",
+            throw new RuntimeException( "Provider org.drools.command.impl.CommandFactoryProviderImpl could not be set.",
                                                        e2 );
         }
     }

Modified: labs/jbossrules/trunk/drools-api/src/main/java/org/drools/io/ResourceFactory.java
===================================================================
--- labs/jbossrules/trunk/drools-api/src/main/java/org/drools/io/ResourceFactory.java	2010-01-14 03:16:32 UTC (rev 31077)
+++ labs/jbossrules/trunk/drools-api/src/main/java/org/drools/io/ResourceFactory.java	2010-01-14 05:36:13 UTC (rev 31078)
@@ -5,7 +5,8 @@
 import java.io.Reader;
 import java.net.URL;
 
-import org.drools.ProviderInitializationException;
+import org.drools.KnowledgeBaseProvider;
+import org.drools.util.internal.ServiceRegistryImpl;
 
 /**
  * <p>
@@ -108,13 +109,7 @@
     }
 
     private static void loadProvider() {
-        try {
-            Class<ResourceProvider> cls = (Class<ResourceProvider>) Class.forName( "org.drools.io.impl.ResourceProviderImpl" );
-            setResourceProvider( cls.newInstance() );
-        } catch ( Exception e2 ) {
-            throw new ProviderInitializationException( "Provider org.drools.io.impl.ResourceProviderImpl could not be set.",
-                                                       e2 );
-        }
+        setResourceProvider( ServiceRegistryImpl.getInstance().get( ResourceProvider.class ) );
     }
 
 }

Modified: labs/jbossrules/trunk/drools-api/src/main/java/org/drools/logger/KnowledgeRuntimeLoggerFactory.java
===================================================================
--- labs/jbossrules/trunk/drools-api/src/main/java/org/drools/logger/KnowledgeRuntimeLoggerFactory.java	2010-01-14 03:16:32 UTC (rev 31077)
+++ labs/jbossrules/trunk/drools-api/src/main/java/org/drools/logger/KnowledgeRuntimeLoggerFactory.java	2010-01-14 05:36:13 UTC (rev 31078)
@@ -1,6 +1,5 @@
 package org.drools.logger;
 
-import org.drools.ProviderInitializationException;
 import org.drools.event.KnowledgeRuntimeEventManager;
 
 /**
@@ -84,7 +83,7 @@
             Class<KnowledgeRuntimeLoggerProvider> cls = (Class<KnowledgeRuntimeLoggerProvider>) Class.forName( "org.drools.audit.KnowledgeRuntimeLoggerProviderImpl" );
             setKnowledgeRuntimeLoggerProvider( cls.newInstance() );
         } catch ( Exception e ) {
-            throw new ProviderInitializationException( "Provider org.drools.audit.KnowledgeRuntimeLoggerProviderImpl could not be set.",
+            throw new RuntimeException( "Provider org.drools.audit.KnowledgeRuntimeLoggerProviderImpl could not be set.",
                                                        e );
         }
     }

Modified: labs/jbossrules/trunk/drools-api/src/main/java/org/drools/marshalling/MarshallerFactory.java
===================================================================
--- labs/jbossrules/trunk/drools-api/src/main/java/org/drools/marshalling/MarshallerFactory.java	2010-01-14 03:16:32 UTC (rev 31077)
+++ labs/jbossrules/trunk/drools-api/src/main/java/org/drools/marshalling/MarshallerFactory.java	2010-01-14 05:36:13 UTC (rev 31078)
@@ -3,7 +3,6 @@
 import java.io.ByteArrayOutputStream;
 
 import org.drools.KnowledgeBase;
-import org.drools.ProviderInitializationException;
 
 
 /**
@@ -113,7 +112,7 @@
             Class<MarshallerProvider> cls = (Class<MarshallerProvider>) Class.forName( "org.drools.marshalling.impl.MarshallerProviderImpl" );
             setMarshallerProvider( cls.newInstance() );
         } catch ( Exception e2 ) {
-            throw new ProviderInitializationException( "Provider org.drools.marshalling.impl.MarshallerProviderImpl could not be set.",
+            throw new RuntimeException( "Provider org.drools.marshalling.impl.MarshallerProviderImpl could not be set.",
                                                        e2 );
         }
     }

Added: labs/jbossrules/trunk/drools-api/src/main/java/org/drools/osgi/api/Activator.java
===================================================================
--- labs/jbossrules/trunk/drools-api/src/main/java/org/drools/osgi/api/Activator.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-api/src/main/java/org/drools/osgi/api/Activator.java	2010-01-14 05:36:13 UTC (rev 31078)
@@ -0,0 +1,29 @@
+package org.drools.osgi.api;
+
+import java.util.Hashtable;
+
+import org.osgi.framework.BundleActivator;
+import org.osgi.framework.BundleContext;
+import org.osgi.framework.ServiceRegistration;
+
+public class Activator
+    implements
+    BundleActivator {
+    private ServiceRegistration serviceRegistry;
+//    private ServiceRegistration kbaseReg;
+
+    public void start(BundleContext bc) throws Exception {
+//        System.out.println( "registering core drools services" );
+//        this.resourceReg = bc.registerService( ResourceProvider.class.getName(),
+//                                               new ResourceProviderImpl(),
+//                                               new Hashtable() );
+//        this.kbaseReg = bc.registerService( KnowledgeBaseProvider.class.getName(),
+//                                            new KnowledgeBaseProviderImpl(),
+//                                            new Hashtable() );
+//        System.out.println( "drools core services registered" );
+    }
+
+    public void stop(BundleContext bc) throws Exception {
+//        this.resourceReg.unregister();
+    }
+}

Modified: labs/jbossrules/trunk/drools-api/src/main/java/org/drools/persistence/jpa/JPAKnowledgeService.java
===================================================================
--- labs/jbossrules/trunk/drools-api/src/main/java/org/drools/persistence/jpa/JPAKnowledgeService.java	2010-01-14 03:16:32 UTC (rev 31077)
+++ labs/jbossrules/trunk/drools-api/src/main/java/org/drools/persistence/jpa/JPAKnowledgeService.java	2010-01-14 05:36:13 UTC (rev 31078)
@@ -1,11 +1,11 @@
 package org.drools.persistence.jpa;
 
 import org.drools.KnowledgeBase;
-import org.drools.ProviderInitializationException;
+import org.drools.KnowledgeBaseProvider;
 import org.drools.runtime.Environment;
 import org.drools.runtime.KnowledgeSessionConfiguration;
 import org.drools.runtime.StatefulKnowledgeSession;
-import org.drools.util.internal.ServiceLocatorImpl;
+import org.drools.util.internal.ServiceRegistryImpl;
 
 /**
  * <p>
@@ -123,7 +123,7 @@
             Class<JPAKnowledgeServiceProvider> cls = (Class<JPAKnowledgeServiceProvider>) Class.forName( "org.drools.persistence.jpa.impl.JPAKnowledgeServiceProviderImpl" );
             setJPAKnowledgeServiceProvider( cls.newInstance() );
         } catch ( Exception e ) {
-            throw new ProviderInitializationException( "Provider org.drools.persistence.jpa.impl.JPAKnowledgeServiceProviderImpl could not be set.",
+            throw new RuntimeException( "Provider org.drools.persistence.jpa.impl.JPAKnowledgeServiceProviderImpl could not be set.",
                                                        e );
         }
     }

Modified: labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/help/BatchExecutionHelper.java
===================================================================
--- labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/help/BatchExecutionHelper.java	2010-01-14 03:16:32 UTC (rev 31077)
+++ labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/help/BatchExecutionHelper.java	2010-01-14 05:36:13 UTC (rev 31078)
@@ -1,7 +1,5 @@
 package org.drools.runtime.help;
 
-import org.drools.ProviderInitializationException;
-
 import com.thoughtworks.xstream.XStream;
 
 /**
@@ -258,7 +256,7 @@
             Class<BatchExecutionHelperProvider> cls = (Class<BatchExecutionHelperProvider>) Class.forName( "org.drools.runtime.help.impl.BatchExecutionHelperProviderImpl" );
             setBatchExecutionHelperProvider( cls.newInstance() );
         } catch ( Exception e2 ) {
-            throw new ProviderInitializationException( "Provider org.drools.runtime.help.impl.BatchExecutionHelperProviderImpl could not be set.",
+            throw new RuntimeException( "Provider org.drools.runtime.help.impl.BatchExecutionHelperProviderImpl could not be set.",
                                                        e2 );
         }
     }

Modified: labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/pipeline/PipelineFactory.java
===================================================================
--- labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/pipeline/PipelineFactory.java	2010-01-14 03:16:32 UTC (rev 31077)
+++ labs/jbossrules/trunk/drools-api/src/main/java/org/drools/runtime/pipeline/PipelineFactory.java	2010-01-14 05:36:13 UTC (rev 31078)
@@ -9,7 +9,6 @@
 import net.sf.jxls.reader.ReaderBuilder;
 import net.sf.jxls.reader.XLSReader;
 
-import org.drools.ProviderInitializationException;
 import org.drools.builder.help.KnowledgeBuilderHelper;
 import org.drools.io.ResourceFactory;
 import org.drools.runtime.StatefulKnowledgeSession;
@@ -588,7 +587,7 @@
             Class<CorePipelineProvider> cls = (Class<CorePipelineProvider>) Class.forName( "org.drools.runtime.pipeline.impl.CorePipelineProviderImpl" );
             setCorePipelineProvider( cls.newInstance() );
         } catch ( Exception e2 ) {
-            throw new ProviderInitializationException( "org.drools.runtime.pipeline.impl.CorePipelineProviderImpl could not be set.",
+            throw new RuntimeException( "org.drools.runtime.pipeline.impl.CorePipelineProviderImpl could not be set.",
                                                        e2 );
         }
     }
@@ -609,7 +608,7 @@
             Class<JaxbTransformerProvider> cls = (Class<JaxbTransformerProvider>) Class.forName( "org.drools.runtime.pipeline.impl.JaxbTransformerProviderImpl" );
             setJaxbTransformerProvider( cls.newInstance() );
         } catch ( Exception e2 ) {
-            throw new ProviderInitializationException( "Provider org.drools.runtime.pipeline.impl.JaxbTransformerProviderImpl could not be set.",
+            throw new RuntimeException( "Provider org.drools.runtime.pipeline.impl.JaxbTransformerProviderImpl could not be set.",
                                                        e2 );
         }
     }
@@ -630,7 +629,7 @@
             Class<SmooksTransformerProvider> cls = (Class<SmooksTransformerProvider>) Class.forName( "org.drools.runtime.pipeline.impl.SmooksTransformerProviderImpl" );
             setSmooksTransformerProvider( cls.newInstance() );
         } catch ( Exception e2 ) {
-            throw new ProviderInitializationException( "Provider org.drools.runtime.pipeline.impl.SmooksTransformerProviderImpl could not be set.",
+            throw new RuntimeException( "Provider org.drools.runtime.pipeline.impl.SmooksTransformerProviderImpl could not be set.",
                                                        e2 );
         }
     }
@@ -651,7 +650,7 @@
             Class<XStreamTransformerProvider> cls = (Class<XStreamTransformerProvider>) Class.forName( "org.drools.runtime.pipeline.impl.XStreamTransformerProviderImpl" );
             setXStreamTransformerProvider( cls.newInstance() );
         } catch ( Exception e2 ) {
-            throw new ProviderInitializationException( "Provider org.drools.runtime.pipeline.impl.XStreamTransformerProviderImpl could not be set.",
+            throw new RuntimeException( "Provider org.drools.runtime.pipeline.impl.XStreamTransformerProviderImpl could not be set.",
                                                        e2 );
         }
     }
@@ -672,7 +671,7 @@
             Class<JxlsTransformerProvider> cls = (Class<JxlsTransformerProvider>) Class.forName( "org.drools.runtime.pipeline.impl.JxlsTransformer$JxlsTransformerProviderImpl" );
             setJxlsTransformerProvider( cls.newInstance() );
         } catch ( Exception e2 ) {
-            throw new ProviderInitializationException( "Provider org.drools.runtime.pipeline.impl.JxlsTransformer$JxlsTransformerProviderImpl could not be set.",
+            throw new RuntimeException( "Provider org.drools.runtime.pipeline.impl.JxlsTransformer$JxlsTransformerProviderImpl could not be set.",
                                                        e2 );
         }
     }
@@ -693,7 +692,7 @@
             Class<JmsMessengerProvider> cls = (Class<JmsMessengerProvider>) Class.forName( "org.drools.runtime.pipeline.impl.JmsMessengerProviderImpl" );
             setJmsMessengerProvider( cls.newInstance() );
         } catch ( Exception e2 ) {
-            throw new ProviderInitializationException( "Provider org.drools.runtime.pipeline.impl.JmsMessengerProviderImpl could not be set.",
+            throw new RuntimeException( "Provider org.drools.runtime.pipeline.impl.JmsMessengerProviderImpl could not be set.",
                                                        e2 );
         }
     }

Deleted: labs/jbossrules/trunk/drools-api/src/main/java/org/drools/util/internal/ServiceLocatorImpl.java
===================================================================
--- labs/jbossrules/trunk/drools-api/src/main/java/org/drools/util/internal/ServiceLocatorImpl.java	2010-01-14 03:16:32 UTC (rev 31077)
+++ labs/jbossrules/trunk/drools-api/src/main/java/org/drools/util/internal/ServiceLocatorImpl.java	2010-01-14 05:36:13 UTC (rev 31078)
@@ -1,71 +0,0 @@
-/*
- * 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.util.internal;
-
-import java.util.HashMap;
-import java.util.Map;
-import java.util.concurrent.Callable;
-import java.util.concurrent.ConcurrentHashMap;
-
-import org.drools.KnowledgeBaseProvider;
-import org.drools.builder.KnowledgeBuilderProvider;
-import org.drools.io.ResourceProvider;
-
-/**
- * This is an internal class, not for public consumption.
- *
- */
-public class serviceLocatorImpl {
-    private static ServiceLocatorImpl            instance         = new ServiceLocatorImpl();
-
-    private Map<String, Callable<Class< ? >>> serviceFactories = new HashMap<String, Callable<Class< ? >>>();
-
-    public static ServiceLocatorImpl getInstance() {
-        return ServiceLocatorImpl.instance;
-    }
-    
-    public synchronized void registerLocator(String name, Callable<Class< ? >> cal) {
-        this.serviceFactories.put( name, cal );
-    }
-    
-    public synchronized void unregisterLocator(String name) {
-        this.serviceFactories.remove( name );
-    }
-
-    public synchronized <T> T locate(Class<T> cls) {
-
-        Callable<Class< ? >> cal = this.serviceFactories.get( cls.getName() );
-        if ( cal != null ) {
-            try {
-                return cls.cast( cal.call() );
-            } catch ( Exception e ) {
-                throw new IllegalArgumentException( "Unable to instantiate service for Class '" + (cls != null ? cls.getName() : null) + "'",
-                                                    e );
-            }
-        } else {
-            throw new IllegalArgumentException( "Unable to locate a service for Class '" + (cls != null ? cls.getName() : null) + "'" );
-        }
-    }
-
-    private void init() {
-        serviceFactories.put( KnowledgeBuilderProvider.class.getName(),
-                              null );
-        serviceFactories.put( KnowledgeBaseProvider.class.getName(),
-                              null );
-        serviceFactories.put( ResourceProvider.class.getName(),
-                              null );
-    }
-
-}

Added: labs/jbossrules/trunk/drools-api/src/main/java/org/drools/util/internal/ServiceRegistry.java
===================================================================
--- labs/jbossrules/trunk/drools-api/src/main/java/org/drools/util/internal/ServiceRegistry.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-api/src/main/java/org/drools/util/internal/ServiceRegistry.java	2010-01-14 05:36:13 UTC (rev 31078)
@@ -0,0 +1,16 @@
+package org.drools.util.internal;
+
+import java.util.concurrent.Callable;
+
+import org.apache.poi.hssf.record.formula.functions.T;
+
+public interface ServiceRegistry {
+
+    public <T> void registerLocator(Class<T> cls,
+                                  Callable<Class<T>> cal);
+
+    public void unregisterLocator(Class<T> cls);
+    
+    public <T> T get(Class<T> cls);
+
+}
\ No newline at end of file

Copied: labs/jbossrules/trunk/drools-api/src/main/java/org/drools/util/internal/ServiceRegistryImpl.java (from rev 31077, labs/jbossrules/trunk/drools-api/src/main/java/org/drools/util/internal/ServiceLocatorImpl.java)
===================================================================
--- labs/jbossrules/trunk/drools-api/src/main/java/org/drools/util/internal/ServiceRegistryImpl.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-api/src/main/java/org/drools/util/internal/ServiceRegistryImpl.java	2010-01-14 05:36:13 UTC (rev 31078)
@@ -0,0 +1,123 @@
+/*
+ * 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.util.internal;
+
+import java.util.HashMap;
+import java.util.Map;
+import java.util.concurrent.Callable;
+import java.util.concurrent.ConcurrentHashMap;
+
+import org.apache.poi.hssf.record.formula.functions.T;
+import org.drools.KnowledgeBaseProvider;
+import org.drools.builder.KnowledgeBuilderProvider;
+import org.drools.io.ResourceProvider;
+
+/**
+ * This is an internal class, not for public consumption.
+ *
+ */
+public class ServiceRegistryImpl
+    implements
+    ServiceRegistry {
+    private static ServiceRegistry     instance        = new ServiceRegistryImpl();
+
+    private Map<String, Callable< ? >> registry        = new HashMap<String, Callable< ? >>();
+    private Map<String, Callable< ? >> defaultServices = new HashMap<String, Callable< ? >>();
+
+    public static ServiceRegistry getInstance() {
+        return ServiceRegistryImpl.instance;
+    }
+
+    ServiceRegistryImpl() {
+        init();
+    }
+    
+    /* (non-Javadoc)
+     * @see org.drools.util.internal.ServiceRegistry#registerLocator(java.lang.String, java.util.concurrent.Callable)
+     */
+    public synchronized <T> void registerLocator(Class<T> cls,
+                                                 Callable<Class<T>> cal) {
+        this.registry.put( cls.getName(),
+                           cal );
+    }
+
+    /* (non-Javadoc)
+     * @see org.drools.util.internal.ServiceRegistry#unregisterLocator(java.lang.String)
+     */
+    public synchronized void unregisterLocator(Class<T> cls) {
+        this.registry.remove( cls.getName() );
+        this.registry.put( cls.getName(), this.defaultServices.get( cls.getName() ) );
+    }
+
+    public synchronized <T> T get(Class<T> cls) {
+
+        Callable< ? > cal = this.registry.get( cls.getName() );
+        if ( cal != null ) {
+            try {
+                return cls.cast( cal.call() );
+            } catch ( Exception e ) {
+                throw new IllegalArgumentException( "Unable to instantiate service for Class '" + (cls != null ? cls.getName() : null) + "'",
+                                                    e );
+            }
+        } else {
+            throw new IllegalArgumentException( "Unable to locate a service for Class '" + (cls != null ? cls.getName() : null) + "'" );
+        }
+    }
+
+    private void init() {
+        ReflectionInstantiator<KnowledgeBuilderProvider> kbuilderRi = new ReflectionInstantiator<KnowledgeBuilderProvider>( "org.drools.builder.impl.KnowledgeBuilderProviderImpl" );
+        registry.put( KnowledgeBuilderProvider.class.getName(),
+                      kbuilderRi );
+        defaultServices.put( KnowledgeBuilderProvider.class.getName(),
+                             kbuilderRi );
+
+        ReflectionInstantiator<KnowledgeBaseProvider> kbaseRi = new ReflectionInstantiator<KnowledgeBaseProvider>( "org.drools.impl.KnowledgeBaseProviderImpl" );
+        registry.put( KnowledgeBaseProvider.class.getName(),
+                      kbaseRi );
+        defaultServices.put( KnowledgeBaseProvider.class.getName(),
+                             kbaseRi );
+
+        ReflectionInstantiator<ResourceProvider> resourceRi = new ReflectionInstantiator<ResourceProvider>( "org.drools.io.impl.ResourceProviderImpl" );
+        registry.put( ResourceProvider.class.getName(),
+                      resourceRi );
+        defaultServices.put( ResourceProvider.class.getName(),
+                             resourceRi );
+    }
+
+    static class ReflectionInstantiator<V>
+        implements
+        Callable<V> {
+        private String name;
+
+        public ReflectionInstantiator(String name) {
+            this.name = name;
+        }
+
+        public V call() throws Exception {
+            return (V) newInstance( name );
+        }
+    }
+
+    static <T> T newInstance(String name) {
+        try {
+            Class<T> cls = (Class<T>) Class.forName( name );
+            return cls.newInstance();
+        } catch ( Exception e2 ) {
+            throw new IllegalArgumentException( "Unable to instantiate '" + name + "'",
+                                                       e2 );
+        }
+    }
+
+}

Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/compiler/DecisionTableFactory.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/compiler/DecisionTableFactory.java	2010-01-14 03:16:32 UTC (rev 31077)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/compiler/DecisionTableFactory.java	2010-01-14 05:36:13 UTC (rev 31078)
@@ -3,7 +3,6 @@
 import java.io.InputStream;
 import java.io.Reader;
 
-import org.drools.ProviderInitializationException;
 import org.drools.builder.DecisionTableConfiguration;
 import org.drools.osgi.compiler.Activator;
 
@@ -34,7 +33,7 @@
             Class<DecisionTableProvider> cls = ( Class<DecisionTableProvider> ) Class.forName( "org.drools.decisiontable.DecisionTableProviderImpl" );            
             setDecisionTableProvider( cls.newInstance() );
         } catch ( Exception e2 ) {
-            throw new ProviderInitializationException( "Provider org.drools.decisiontable.DecisionTableProviderImpl could not be set.", e2);
+            throw new RuntimeException( "Provider org.drools.decisiontable.DecisionTableProviderImpl could not be set.", e2);
         }
     }       
 }



More information about the jboss-svn-commits mailing list