org.apache.catalina.startup

## 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

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Class and Description
    --- | ---
    `static class` | `ClassLoaderFactory.Repository`
    `static class` | `ClassLoaderFactory.RepositoryType`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `ClassLoaderFactory()`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `static ClassLoader` | `createClassLoader(File[] unpacked, File[] packed, ClassLoader parent)` Create and return a new class loader, based on the configuration defaults and the specified directory paths:
    `static ClassLoader` | `createClassLoader(List<ClassLoaderFactory.Repository> repositories, ClassLoader parent)` Create and return a new class loader, based on the configuration defaults and the specified directory paths:

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### ClassLoaderFactory

          public ClassLoaderFactory()

  - ### Method Detail

    - #### 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

Copyright © 2000-2021 Apache Software Foundation. All Rights Reserved.