[jboss-cvs] JBossAS SVN: r86456 - projects/bootstrap/trunk/src/main/java/org/jboss/bootstrap.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Mon Mar 30 02:27:52 EDT 2009


Author: ALRubinger
Date: 2009-03-30 02:27:52 -0400 (Mon, 30 Mar 2009)
New Revision: 86456

Modified:
   projects/bootstrap/trunk/src/main/java/org/jboss/bootstrap/ServerLoader.java
Log:
[JBBOOT-19] Merge the explicit boot list from AS until the issue of $JBOSS_HOME/lib may all be put on the CP

Modified: projects/bootstrap/trunk/src/main/java/org/jboss/bootstrap/ServerLoader.java
===================================================================
--- projects/bootstrap/trunk/src/main/java/org/jboss/bootstrap/ServerLoader.java	2009-03-30 06:27:05 UTC (rev 86455)
+++ projects/bootstrap/trunk/src/main/java/org/jboss/bootstrap/ServerLoader.java	2009-03-30 06:27:52 UTC (rev 86456)
@@ -29,9 +29,11 @@
 import java.net.URISyntaxException;
 import java.net.URL;
 import java.net.URLClassLoader;
+import java.util.HashSet;
 import java.util.LinkedList;
 import java.util.List;
 import java.util.Properties;
+import java.util.Set;
 import java.util.StringTokenizer;
 
 import org.jboss.bootstrap.spi.Server;
@@ -76,6 +78,48 @@
  */
 public class ServerLoader
 {
+   /**
+    * The default list of boot libraries.  Does not include
+    * the JAXP or JMX impl, users of this class should add the
+    * proper libraries.
+    * TODO: use vfs to list the root directory
+    * http://www.jboss.org/index.html?module=bb&op=viewtopic&t=153175
+    */
+   @Deprecated
+   public static final String[] DEFAULT_BOOT_LIBRARY_LIST = {
+      // Logging
+      "log4j-boot.jar",
+      "jboss-logging-spi.jar",
+      "jboss-logging-log4j.jar",
+      "jboss-logging-jdk.jar",
+      "jboss-logmanager.jar",
+      "jboss-logbridge.jar",
+      // Common jars
+      "jboss-common-core.jar",
+      "jboss-xml-binding.jar",
+      "jaxb-api.jar",
+      // Bootstrap
+      "jboss-bootstrap.jar",
+      // Microcontainer
+      "javassist.jar",
+      "jboss-reflect.jar",
+      "jboss-mdr.jar",
+      "jboss-dependency.jar",
+      "jboss-kernel.jar",
+      "jboss-metatype.jar",
+      "jboss-managed.jar",
+      // Fixme ClassLoading
+      "jboss-vfs.jar",
+      "jboss-classloading-spi.jar",
+      "jboss-classloader.jar",
+      "jboss-classloading.jar",
+      "jboss-classloading-vfs.jar",
+      // Fixme aop
+      "jboss-aop.jar",
+      "jboss-aop-mc-int.jar",
+      "trove.jar",
+   };
+
    /** The default server type. */
    public static final String DEFAULT_SERVER_TYPE = "org.jboss.bootstrap.microcontainer.ServerImpl";
 
@@ -123,6 +167,14 @@
          // need library url to make boot urls list
          libraryURL = new URL(homeURL, ServerConfig.LIBRARY_URL_SUFFIX);
       }
+
+      // If the home URL begins with http add the webav and httpclient jars
+      if( homeURL.getProtocol().startsWith("http") == true )
+      {
+         this.addLibrary("webdavlib.jar");
+         this.addLibrary("commons-httpclient.jar");
+         this.addLibrary("commons-logging.jar");
+      }
    }
 
    /**
@@ -216,9 +268,9 @@
     * Returns an array of URLs which will be used to load the
     * core system and construct a new Server object instance.
     * @return the urls
-    * @throws IOException for a bad url or library access problem
+    * @throws MalformedURLException for a bad url
     */
-   protected URL[] getBootClasspath() throws IOException, URISyntaxException
+   protected URL[] getBootClasspath() throws MalformedURLException, URISyntaxException
    {
       List<URL> list = new LinkedList<URL>();
 
@@ -235,18 +287,12 @@
             list.add(url);
          }
       }
-      // Scan the libraryURL using the VFS
       else
       {
-         File libraryDir = new File(libraryURL.toURI());
-         File[] jars = libraryDir.listFiles();
-         if(jars != null)
+         for (String jar : DEFAULT_BOOT_LIBRARY_LIST)
          {
-            for(File jar : jars)
-            {
-               URL url = jar.toURL();
-               list.add(url);
-            }
+            URL url = new URL(libraryURL, jar);
+            list.add(url);
          }
       }
 
@@ -273,19 +319,17 @@
          URL[] urls = getBootClasspath();
          URLClassLoader classLoader = new NoAnnotationURLClassLoader(urls, parent);
          Thread.currentThread().setContextClassLoader(classLoader);
-         
-         if(props.containsKey(""))
+           
+         /*
+         // Log the boot URLs (uncomment to test)
+         StringBuffer sb = new StringBuffer("Boot URLs:\n");
+         for (URL url : urls)
          {
-            // Log the boot URLs (uncomment to test)
-             
-            StringBuffer sb = new StringBuffer("Boot URLs:\n");
-            for(URL url : urls)
-            {
-               sb.append(url.toExternalForm());
-               sb.append("\n");
-            }
-            System.out.println(sb);
+            sb.append(url.toExternalForm());
+            sb.append("\n");
          }
+         System.out.println(sb);
+         */
 
          // construct a new Server instance
          String typename = props.getProperty(ServerConfig.SERVER_TYPE, DEFAULT_SERVER_TYPE);
@@ -312,10 +356,11 @@
       throws Exception
    {
       // load the class first
-      Class<Server> type = (Class<Server>) loader.loadClass(typename);
+      Class<?> type = loader.loadClass(typename);
       
       // and then create a new instance
-      Server server = type.newInstance();
+      Server server = (Server) type.newInstance();
       return server;
    }
 }
+




More information about the jboss-cvs-commits mailing list