[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