Class ClassLoaderFactory

java.lang.Object
org.apache.catalina.startup.ClassLoaderFactory

public final class ClassLoaderFactory extends Object

Utility class for building class loaders for Catalina. The factory method requires the following parameters in order to build a new class loader (with suitable defaults in all cases):

  • A set of directories containing unpacked classes (and resources) that should be included in the class loader's repositories.
  • A set of directories containing classes and resources in JAR files. Each readable JAR file discovered in these directories will be added to the class loader's repositories.
  • ClassLoader instance that should become the parent of the new class loader.
Author:
Craig R. McClanahan
  • Constructor Details

    • ClassLoaderFactory

      public ClassLoaderFactory()
  • Method Details

    • createClassLoader

      public static ClassLoader createClassLoader(File[] unpacked, File[] packed, ClassLoader parent) throws Exception
      Create and return a new class loader, based on the configuration defaults and the specified directory paths:
      Parameters:
      unpacked - Array of pathnames to unpacked directories that should be added to the repositories of the class loader, or null for no unpacked directories to be considered
      packed - Array of pathnames to directories containing JAR files that should be added to the repositories of the class loader, or null for no directories of JAR files to be considered
      parent - Parent class loader for the new class loader, or null for the system class loader.
      Returns:
      the new class loader
      Throws:
      Exception - if an error occurs constructing the class loader
    • createClassLoader

      public static ClassLoader createClassLoader(List<ClassLoaderFactory.Repository> repositories, ClassLoader parent) throws Exception
      Create and return a new class loader, based on the configuration defaults and the specified directory paths:
      Parameters:
      repositories - List of class directories, jar files, jar directories or URLS that should be added to the repositories of the class loader.
      parent - Parent class loader for the new class loader, or null for the system class loader.
      Returns:
      the new class loader
      Throws:
      Exception - if an error occurs constructing the class loader