[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