[jboss-cvs] JBossAS SVN: r100337 - projects/kernel/branches/resolver/dependency/src/main/java/org/jboss/dependency/plugins/resolver.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Wed Feb 3 07:02:38 EST 2010
Author: kabir.khan at jboss.com
Date: 2010-02-03 07:02:38 -0500 (Wed, 03 Feb 2010)
New Revision: 100337
Modified:
projects/kernel/branches/resolver/dependency/src/main/java/org/jboss/dependency/plugins/resolver/DependencyResolverAbstractFactory.java
Log:
Configure with system properties
Modified: projects/kernel/branches/resolver/dependency/src/main/java/org/jboss/dependency/plugins/resolver/DependencyResolverAbstractFactory.java
===================================================================
--- projects/kernel/branches/resolver/dependency/src/main/java/org/jboss/dependency/plugins/resolver/DependencyResolverAbstractFactory.java 2010-02-03 12:02:08 UTC (rev 100336)
+++ projects/kernel/branches/resolver/dependency/src/main/java/org/jboss/dependency/plugins/resolver/DependencyResolverAbstractFactory.java 2010-02-03 12:02:38 UTC (rev 100337)
@@ -21,8 +21,12 @@
*/
package org.jboss.dependency.plugins.resolver;
+import java.security.AccessController;
+import java.security.PrivilegedAction;
+
import org.jboss.dependency.spi.Controller;
import org.jboss.dependency.spi.resolver.DependencyResolverFactory;
+import org.jboss.logging.Logger;
/**
*
@@ -31,28 +35,46 @@
*/
public class DependencyResolverAbstractFactory
{
+ private static final Logger log = Logger.getLogger(DependencyResolverFactory.class);
+
private static final DependencyResolverAbstractFactory INSTANCE = new DependencyResolverAbstractFactory();
private static final DependencyResolverFactory factory;
+
+ private static final String RESOLVER_PROPERTY_NAME = "org.jboss.kernel.dependency.resolver";
+ private static final String STANDARD_RESOLVER = "STANDARD";
+ private static final String INDEXING_RESOLVER = "INDEXING";
+
static
{
//TODO configure with system properties
+
+ String value = AccessController.doPrivileged(new PrivilegedAction<String>()
+ {
+ public String run()
+ {
+ //return System.getProperty(RESOLVER_PROPERTY_NAME, INDEXING_RESOLVER);
+ return System.getProperty(RESOLVER_PROPERTY_NAME, STANDARD_RESOLVER);
+ }
+ });
-// String name = "org.jboss.dependency.plugins.resolver.standard.StandardDependencyResolverFactory";
-// String name = "org.jboss.dependency.plugins.resolver.indexing.IndexingDependencyResolverFactory";
- String name = "org.jboss.kernel.plugins.resolver.indexing.IndexingKernelDependencyResolverFactory";
- Class<?> clazz;
- try
+ Class<?> clazz = null;
+ if (value.equalsIgnoreCase(INDEXING_RESOLVER))
{
- clazz = Class.forName(name);
+ clazz = loadClass("org.jboss.kernel.plugins.resolver.indexing.IndexingKernelDependencyResolverFactory");
+ if (clazz == null)
+ clazz = loadClass("org.jboss.dependency.plugins.resolver.indexing.IndexingDependencyResolverFactory");
}
- catch (ClassNotFoundException e1)
- {
- // AutoGenerated
- throw new RuntimeException(e1);
- }
-
+ else if (value.equalsIgnoreCase(STANDARD_RESOLVER))
+ clazz = loadClass("org.jboss.dependency.plugins.resolver.standard.StandardDependencyResolverFactory");
+ else
+ clazz = loadClass(value);
+
+ if (clazz == null)
+ throw new IllegalStateException("Could not load a dependency resolver factory class called " + value);
+
try
{
+ log.debug("Attemting to instantiate dependency resolver factory class " + clazz.getName());
factory = (DependencyResolverFactory)clazz.newInstance();
}
catch(Exception e)
@@ -61,6 +83,20 @@
}
}
+ private static Class<?> loadClass(String name)
+ {
+ try
+ {
+ log.debug("Attemting to load dependency resolver factory class " + name);
+ return Class.forName(name);
+ }
+ catch (ClassNotFoundException e1)
+ {
+ log.warn("Could not load dependency resolver factory class " + name);
+ return null;
+ }
+ }
+
private DependencyResolverAbstractFactory()
{
}
More information about the jboss-cvs-commits
mailing list