Class ClassLoaderUtils


  • public final class ClassLoaderUtils
    extends 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 Detail

      • getResource

        public static URL getResource​(String resourceName,
                                      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 List<URL> getResources​(String resourceName,
                                             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 InputStream getResourceAsStream​(String resourceName,
                                                      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 Class<?> loadClass​(String className,
                                         Class<?> callingClass)
                                  throws 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:
        ClassNotFoundException - If the class cannot be found anywhere.
      • getClassLoaderName

        public static String getClassLoaderName​(Class<?> type)