|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectcom.atlassian.core.util.ClassLoaderUtils
public class ClassLoaderUtils
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 ResourceBundle |
getBundle(String resourceName,
Locale locale,
Class callingClass)
getBundle() version of getResource() (that checks against the same list of class loaders) |
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 Enumeration |
getResources(String resourceName,
Class callingClass)
returns all found resources as java.net.URLs. |
static Class |
loadClass(String className,
Class callingClass)
Load a class with a given name. |
static Class |
loadClass(String className,
ClassLoader callingClassLoader)
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 |
|---|
public ClassLoaderUtils()
| Method Detail |
|---|
public static Class loadClass(String className,
Class callingClass)
throws ClassNotFoundException
It will try to load the class in the following order:
Thread.currentThread().getContextClassLoader()
Class.forName(java.lang.String)
ClassLoaderUtil.class.getClassLoader()
callingClass.getClassLoader()
className - The name of the class to loadcallingClass - The Class object of the calling object
ClassNotFoundException - If the class cannot be found anywhere.
public static Class loadClass(String className,
ClassLoader callingClassLoader)
throws ClassNotFoundException
It will try to load the class in the following order:
Thread.currentThread().getContextClassLoader()
Class.forName(java.lang.String)
ClassLoaderUtil.class.getClassLoader()
callingClass.getClassLoader()
className - The name of the class to loadcallingClassLoader - The ClassLoader the calling object which will be used to look up className
ClassNotFoundException - If the class cannot be found anywhere.
public static URL getResource(String resourceName,
Class callingClass)
This method will try to load the resource using the following methods (in order):
Thread.currentThread().getContextClassLoader()
ClassLoaderUtil.class.getClassLoader()
callingClass.getClassLoader()
resourceName - The name of the resource to loadcallingClass - The Class object of the calling object
public static ResourceBundle getBundle(String resourceName,
Locale locale,
Class callingClass)
resourceName - locale - callingClass -
public static Enumeration getResources(String resourceName,
Class callingClass)
throws IOException
This method will try to load the resource using the following methods (in order):
Thread.currentThread().getContextClassLoader()
ClassLoaderUtil.class.getClassLoader()
callingClass.getClassLoader()
resourceName - The name of the resource to loadcallingClass - The Class object of the calling object
IOException
public static InputStream getResourceAsStream(String resourceName,
Class callingClass)
resourceName - The name of the resource to loadcallingClass - The Class object of the calling objectpublic static void printClassLoader()
public static void printClassLoader(ClassLoader cl)
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||