Overview | Package | Class | Use | Tree | Deprecated | Index | Help
| Apache CXF API
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## org.apache.cxf.common.classloader
Class ClassLoaderUtils

    java.lang.Object
      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):
  - 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.

### loadClass

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

  Throws:
    `ClassNotFoundException`

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
| Apache CXF API
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Apache CXF