[jboss-svn-commits] JBL Code SVN: r32707 - labs/jbossrules/branches/drools_repo_services_diega_baunax/drools-compiler/src/main/java/org/drools/compiler.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Mon May 3 10:13:39 EDT 2010


Author: baunax
Date: 2010-05-03 10:13:39 -0400 (Mon, 03 May 2010)
New Revision: 32707

Modified:
   labs/jbossrules/branches/drools_repo_services_diega_baunax/drools-compiler/src/main/java/org/drools/compiler/BusinessRuleProviderFactory.java
Log:
make it thread safe

Modified: labs/jbossrules/branches/drools_repo_services_diega_baunax/drools-compiler/src/main/java/org/drools/compiler/BusinessRuleProviderFactory.java
===================================================================
--- labs/jbossrules/branches/drools_repo_services_diega_baunax/drools-compiler/src/main/java/org/drools/compiler/BusinessRuleProviderFactory.java	2010-05-03 14:12:56 UTC (rev 32706)
+++ labs/jbossrules/branches/drools_repo_services_diega_baunax/drools-compiler/src/main/java/org/drools/compiler/BusinessRuleProviderFactory.java	2010-05-03 14:13:39 UTC (rev 32707)
@@ -10,9 +10,16 @@
 import org.drools.util.ServiceRegistryImpl;
 
 public class BusinessRuleProviderFactory {
-
+	private static BusinessRuleProviderFactory instance = new BusinessRuleProviderFactory();
 	private BusinessRuleProvider provider;
 
+	private BusinessRuleProviderFactory() {
+	}
+
+	public static BusinessRuleProviderFactory getInstance() {
+		return instance;
+	}
+
 	public BusinessRuleProvider getProvider() throws CheckedDroolsException {
 		if (null == provider)
 			provider = loadProvider();
@@ -22,27 +29,31 @@
 	private BusinessRuleProvider loadProvider() throws CheckedDroolsException {
 		String interfaceName = BusinessRuleProvider.class.getName();
 		try {
-			Enumeration<URL> systemResources = ClassLoader.getSystemResources("META-INF/services/" + interfaceName);
 			URL systemResource = null;
-			while (systemResources.hasMoreElements()) {
+			for (Enumeration<URL> systemResources = ClassLoader
+					.getSystemResources("META-INF/services/" + interfaceName); systemResources
+					.hasMoreElements();) {
 				if (null != systemResource)
 					throwMultipleImplementationsDetected();
 				systemResource = systemResources.nextElement();
 			}
 
-			if (null == systemResource)
+			if (systemResource == null) {
 				throwNoImplementationFound();
+			}
 
         	BufferedReader reader = new BufferedReader(new InputStreamReader(systemResource.openStream()));
 			String className = null;
 			for (String currentName; (currentName = reader.readLine()) != null;) {
-				if (null != className)
+				if (className != null) {
 					throwMultipleImplementationsDetected();
+				}
 				className = currentName;
 			}
 
-			if (null == className)
+			if (null == className) {
 				throwNoImplementationFound();
+			}
 
         	ServiceRegistryImpl.getInstance().addDefault(BusinessRuleProvider.class, className);
 			return ServiceRegistryImpl.getInstance().get(BusinessRuleProvider.class);
@@ -58,15 +69,4 @@
 	private void throwMultipleImplementationsDetected() {
 		throw new IllegalStateException("multiple BusinessRuleProvider implementations detected");
 	}
-
-	private static BusinessRuleProviderFactory instance;
-
-	private BusinessRuleProviderFactory() {
-	}
-
-	public static BusinessRuleProviderFactory getInstance() {
-		if (null == instance)
-			instance = new BusinessRuleProviderFactory();
-		return instance;
-	}
 }



More information about the jboss-svn-commits mailing list