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

## com.opensymphony.xwork2.util
Class ClassLoaderUtil

    java.lang.Object
      com.opensymphony.xwork2.util.ClassLoaderUtil

    public class ClassLoaderUtil

extends Object

This class is extremely useful for loading resources and classes in a fault tolerant manner that works across different applications servers. It has come out of many months of frustrating use of multiple application servers at Atlassian, please don't change things unless you're sure they're not going to break in one server or another! It was brought in from oscore trunk revision 147.

Version:
  $Revision: 117 $
Author:
  $Author: hani $

Nested Class Summary
`protected static class` | `ClassLoaderUtil.AggregateIterator<E>` Aggregates Enumeration instances into one iterator and filters out duplicates.

Constructor Summary
`ClassLoaderUtil()`

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 Iterator<URL>` | `getResources(String resourceName, Class callingClass, boolean aggregate)` Load all resources with a given name, potentially aggregating all results from the searched classloaders.
`static Class` | `loadClass(String className, 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`

Constructor Detail

### ClassLoaderUtil

    public ClassLoaderUtil()

Method Detail

### getResources

    public static Iterator<URL> getResources(String resourceName,
                                             Class callingClass,
                                             boolean aggregate)
                                      throws IOException

  Load all resources with a given name, potentially aggregating all results from the searched classloaders. If no results are found, the resource name is prepended by '/' and tried again. 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 resources to load
    `callingClass` - The Class object of the calling object
  Throws:
    `IOException`

### 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 IllegalStateException("Unable to call ")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.

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

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