org.apache.struts2.util
Class ClassLoaderUtils

java.lang.Object
  extended by org.apache.struts2.util.ClassLoaderUtils

public 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.

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!


Constructor Summary
ClassLoaderUtils()
           
 
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 Class loadClass(String className, Class callingClass)
          Load a class with a given name.
static void printClassLoader()
          Prints the current classloader hierarchy - useful for debugging.
static void printClassLoader(ClassLoader cl)
          Prints the classloader hierarchy from a given classloader - useful for debugging.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ClassLoaderUtils

public ClassLoaderUtils()
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):

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.

printClassLoader

public static void printClassLoader()
Prints the current classloader hierarchy - useful for debugging.


printClassLoader

public static void printClassLoader(ClassLoader cl)
Prints the classloader hierarchy from a given classloader - useful for debugging.



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