Apache CXF API

org.apache.cxf.common.classloader
Class ClassLoaderUtils

java.lang.Object
  extended by org.apache.cxf.common.classloader.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.


Nested Class Summary
static class ClassLoaderUtils.ClassLoaderHolder
           
 
Method Summary
static URL getResource(String resourceName, Class<?> callingClass)
          Load a given resource.
static InputStream getResourceAsStream(String resourceName, Class<?> callingClass)
          This is a convenience method to load a resource as a stream.
static List<URL> getResources(String resourceName, Class<?> callingClass)
          Load a given resources.
static ClassLoader getURLClassLoader(List<URL> urlList, ClassLoader parent)
           
static ClassLoader getURLClassLoader(URL[] urls, ClassLoader parent)
           
static Class<?> loadClass(String className, Class<?> callingClass)
          Load a class with a given name.
static
<T> Class<? extends T>
loadClass(String className, Class<?> callingClass, Class<T> type)
           
static ClassLoaderUtils.ClassLoaderHolder setThreadContextClassloader(ClassLoader newLoader)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Method Detail

setThreadContextClassloader

public static ClassLoaderUtils.ClassLoaderHolder setThreadContextClassloader(ClassLoader newLoader)

getURLClassLoader

public static ClassLoader getURLClassLoader(URL[] urls,
                                            ClassLoader parent)

getURLClassLoader

public static ClassLoader getURLClassLoader(List<URL> urlList,
                                            ClassLoader parent)

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):

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):

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:

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.

loadClass

public static <T> Class<? extends T> loadClass(String className,
                                               Class<?> callingClass,
                                               Class<T> type)
                                    throws ClassNotFoundException
Throws:
ClassNotFoundException

Apache CXF API

Apache CXF