[jboss-svn-commits] JBL Code SVN: r21558 - labs/jbossrules/trunk/drools-api/src/main/java/org/drools.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Thu Aug 14 22:39:10 EDT 2008
Author: mark.proctor at jboss.com
Date: 2008-08-14 22:39:09 -0400 (Thu, 14 Aug 2008)
New Revision: 21558
Modified:
labs/jbossrules/trunk/drools-api/src/main/java/org/drools/KnowledgeBaseFactory.java
Log:
JBRULES-1734 Drools-API
-added LoadProvider
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 2008-08-15 02:03:12 UTC (rev 21557)
+++ labs/jbossrules/trunk/drools-api/src/main/java/org/drools/KnowledgeBaseFactory.java 2008-08-15 02:39:09 UTC (rev 21558)
@@ -1,5 +1,7 @@
package org.drools;
+import org.drools.util.ChainedProperties;
+
public class KnowledgeBaseFactory {
private static KnowledgeBaseProvider provider;
@@ -8,6 +10,28 @@
}
public static KnowledgeBase newKnowledgeBase() {
+ if ( provider == null ) {
+ loadProvider();
+ }
return provider.newKnowledgeBase();
}
+
+ private static void loadProvider() {
+ try {
+ ChainedProperties properties = new ChainedProperties( "drools-providers.conf" );
+ String className = properties.getProperty( "KnowledgeSessionProvider", null );
+ if ( className != null || className.trim().length() > 0 ) {
+ Class<KnowledgeBaseProvider> cls = ( Class<KnowledgeBaseProvider> ) Class.forName( className );
+ setKnowledgeBaseProvider( cls.newInstance() );
+ }
+ } catch ( Exception e1 ) {
+ try {
+ // we didn't find anything in properties so lets try and us reflection
+ Class<KnowledgeBaseProvider> cls = ( Class<KnowledgeBaseProvider> ) Class.forName( "org.drools.KnowledgeBaseProviderImpl" );
+ setKnowledgeBaseProvider( cls.newInstance() );
+ } catch ( Exception e2 ) {
+ throw new ProviderInitializationException( "Provider was not set and the Factory was unable to load a provider from properties, nor could reflection find org.drools.KnowledgeBaseProviderImpl." );
+ }
+ }
+ }
}
More information about the jboss-svn-commits
mailing list