Package org.ofbiz.core.entity.util
Class ClassLoaderUtils
java.lang.Object
org.ofbiz.core.entity.util.ClassLoaderUtils
This is a copy of the Jira core com.atlassian.core.util.ClassLoaderUtils!
A copy was made into the Ofbiz project so that this class could be used in Ofbiz
without creating any circluar dependencies on the Jira project.
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!
- Version:
- $Revision: 1.2 $
- Author:
- $Author: hbarney $
-
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 Enumeration<URL>getResources(String resourceName, Class<?> callingClass) returns all found resources as java.net.URLs.static Class<?>Load a class with a given name.static voidPrints the current classloader hierarchy - useful for debugging.static voidPrints the classloader hierarchy from a given classloader - useful for debugging.
-
Constructor Details
-
ClassLoaderUtils
public ClassLoaderUtils()
-
-
Method Details
-
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(java.lang.String) - From
ClassLoaderUtil.class.getClassLoader() - From the
callingClass.getClassLoader()
- Parameters:
className- The name of the class to loadcallingClass- The Class object of the calling object- Throws:
ClassNotFoundException- If the class cannot be found anywhere.
- From
-
getResource
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 loadcallingClass- The Class object of the calling object
-
getResources
public static Enumeration<URL> getResources(String resourceName, Class<?> callingClass) throws IOException returns all found resources as java.net.URLs.This method will try to load the resource using the following methods (in order):
- Parameters:
resourceName- The name of the resource to loadcallingClass- The Class object of the calling object- Throws:
IOException
-
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
-
printClassLoader
public static void printClassLoader()Prints the current classloader hierarchy - useful for debugging. -
printClassLoader
Prints the classloader hierarchy from a given classloader - useful for debugging.
-