Class ClassLoaderUtils

java.lang.Object
org.docx4j.org.apache.xml.security.utils.ClassLoaderUtils

public final class ClassLoaderUtils
extends java.lang.Object
This class is extremely useful for loading resources and classes in a fault tolerant manner that works across different applications servers. Do not touch this unless you're a grizzled classloading guru veteran who is going to verify any change on 6 different application servers.
  • Method Summary

    Modifier and Type Method Description
    static java.net.URL getResource​(java.lang.String resourceName, java.lang.Class<?> callingClass)
    Load a given resource.
    static java.io.InputStream getResourceAsStream​(java.lang.String resourceName, java.lang.Class<?> callingClass)
    This is a convenience method to load a resource as a stream.
    static java.util.List<java.net.URL> getResources​(java.lang.String resourceName, java.lang.Class<?> callingClass)
    Load a given resources.
    static java.lang.Class<?> loadClass​(java.lang.String className, java.lang.Class<?> callingClass)
    Load a class with a given name.

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Method Details

    • getResource

      public static java.net.URL getResource​(java.lang.String resourceName, java.lang.Class<?> callingClass)
      Load a given resource.

      This method will try to load the resource using the following methods (in order):

      • From Thread.currentThread().getContextClassLoader()
      • From ClassLoaderUtil.class.getClassLoader()
      • callingClass.getClassLoader()
      Parameters:
      resourceName - The name of the resource to load
      callingClass - The Class object of the calling object
    • getResources

      public static java.util.List<java.net.URL> getResources​(java.lang.String resourceName, java.lang.Class<?> callingClass)
      Load a given resources.

      This method will try to load the resources using the following methods (in order):

      • From Thread.currentThread().getContextClassLoader()
      • From ClassLoaderUtil.class.getClassLoader()
      • callingClass.getClassLoader()
      Parameters:
      resourceName - The name of the resource to load
      callingClass - The Class object of the calling object
    • getResourceAsStream

      public static java.io.InputStream getResourceAsStream​(java.lang.String resourceName, java.lang.Class<?> callingClass)
      This is a convenience method to load a resource as a stream.

      The algorithm used to find the resource is given in getResource()

      Parameters:
      resourceName - The name of the resource to load
      callingClass - The Class object of the calling object
    • loadClass

      public static java.lang.Class<?> loadClass​(java.lang.String className, java.lang.Class<?> callingClass) throws java.lang.ClassNotFoundException
      Load a class with a given name.

      It will try to load the class in the following order:

      • From Thread.currentThread().getContextClassLoader()
      • Using the basic Class.forName()
      • From ClassLoaderUtil.class.getClassLoader()
      • From the callingClass.getClassLoader()
      Parameters:
      className - The name of the class to load
      callingClass - The Class object of the calling object
      Throws:
      java.lang.ClassNotFoundException - If the class cannot be found anywhere.