Package org.apache.xml.security.utils
Class ClassLoaderUtils
- java.lang.Object
-
- org.apache.xml.security.utils.ClassLoaderUtils
-
public final class ClassLoaderUtils extends java.lang.Object
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 Modifier and Type Field Description private static org.slf4j.Logger
LOG
-
Constructor Summary
Constructors Modifier Constructor Description private
ClassLoaderUtils()
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static java.net.URL
getResource(java.lang.String resourceName, java.lang.Class<?> callingClass)
Load a given resource.static java.io.InputStream
getResourceAsStream(java.lang.String resourceName, java.lang.Class<?> callingClass)
This is a convenience method to load a resource as a stream.static java.util.List<java.net.URL>
getResources(java.lang.String resourceName, java.lang.Class<?> callingClass)
Load a given resources.static java.lang.Class<?>
loadClass(java.lang.String className, java.lang.Class<?> callingClass)
Load a class with a given name.private static java.lang.Class<?>
loadClass2(java.lang.String className, java.lang.Class<?> callingClass)
-
-
-
Method Detail
-
getResource
public static java.net.URL getResource(java.lang.String resourceName, java.lang.Class<?> callingClass)
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
public static java.util.List<java.net.URL> getResources(java.lang.String resourceName, java.lang.Class<?> callingClass)
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
public static java.io.InputStream getResourceAsStream(java.lang.String resourceName, java.lang.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 loadcallingClass
- The Class object of the calling object
-
loadClass
public static java.lang.Class<?> loadClass(java.lang.String className, java.lang.Class<?> callingClass) throws java.lang.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:
java.lang.ClassNotFoundException
- If the class cannot be found anywhere.
-
loadClass2
private static java.lang.Class<?> loadClass2(java.lang.String className, java.lang.Class<?> callingClass) throws java.lang.ClassNotFoundException
- Throws:
java.lang.ClassNotFoundException
-
-