Class ClassLoaderUtil
java.lang.Object
com.opensymphony.module.sitemesh.util.ClassLoaderUtil
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
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic URLgetResource(String resourceName, Class<?> callingClass) Load a given resource.static InputStreamgetResourceAsStream(String resourceName, Class<?> callingClass) This is a convenience method to load a resource as a stream.static Class<?> Load a class with a given name.
-
Constructor Details
-
ClassLoaderUtil
public ClassLoaderUtil()
-
-
Method Details
-
getResource
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 loadcallingClass- The Class object of the calling object- Returns:
- the resource
-
getResourceAsStream
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 loadcallingClass- The Class object of the calling object- Returns:
- the resource as stream
-
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 loadcallingClass- The Class object of the calling object- Returns:
- the class
- Throws:
ClassNotFoundException- If the class cannot be found anywhere.
-