Package org.apache.xml.security.utils
Class ClassLoaderUtils
java.lang.Object
org.apache.xml.security.utils.ClassLoaderUtils
This class is extremely useful for loading resources and classes in a fault
tolerant manner that works across different applications servers. Do not
touch this unless you're a grizzled classloading guru veteran who is going to
verify any change on 6 different application servers.
-
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic 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.getResources
(String resourceName, Class<?> callingClass) Load a given resources.static Class<?>
Load a class with a given name.private static Class<?>
loadClass2
(String className, Class<?> callingClass)
-
Field Details
-
LOG
private static final org.slf4j.Logger LOG
-
-
Constructor Details
-
ClassLoaderUtils
private ClassLoaderUtils()
-
-
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
-
getResources
Load a given resources. 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 resource to loadcallingClass
- The Class object of the calling object
-
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
-
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- Throws:
ClassNotFoundException
- If the class cannot be found anywhere.
-
loadClass2
private static Class<?> loadClass2(String className, Class<?> callingClass) throws ClassNotFoundException - Throws:
ClassNotFoundException
-