Package org.apache.wss4j.common.util
Class Loader
java.lang.Object
org.apache.wss4j.common.util.Loader
Load resources (or images) from various sources.
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final StringSystem property holding a comma-separated list of URL schemes thatloadInputStream(ClassLoader, String)is allowed to open when a resource string parses as a URL. -
Method Summary
Modifier and TypeMethodDescriptionstatic ClassLoadergetClassLoader(Class<?> clazz) Get the class loader of the class argumentstatic URLgetResource(ClassLoader loader, String resource) This method will search forresourcein different places.static URLgetResource(String resource) This method will search forresourcein different places.static InputStreamgetResourceAsStream(String resourceName) This is a convenience method to load a resource as a stream.static ClassLoadergetTCL()Get the Thread context class loader.static Class<?>loadClass(ClassLoader loader, String clazz) Try the specified classloader and then fall back to the loadClassstatic <T> Class<? extends T>loadClass(ClassLoader loader, String clazz, Class<T> type) Try the specified classloader and then fall back to the loadClassstatic Class<?>If running under JDK 1.2 load the specified class using theThreadcontextClassLoaderif that fails try Class.forname.static Class<?>static <T> Class<? extends T>static <T> Class<? extends T>If running under JDK 1.2 load the specified class using theThreadcontextClassLoaderif that fails try Class.forname.static InputStreamloadInputStream(ClassLoader loader, String resource) Load a resource as a stream.
-
Field Details
-
ALLOWED_URL_SCHEMES_PROPERTY
System property holding a comma-separated list of URL schemes thatloadInputStream(ClassLoader, String)is allowed to open when a resource string parses as a URL. The default is "file,jar": remote fetching of configured resources (keystores, truststores, CRLs, properties files) over e.g. http is not enabled unless explicitly configured. For a nested-URL scheme such as "jar" (jar:<url>!/<entry>), the embedded URL must use an allowed scheme as well: "jar:file:..." is permitted by default, "jar:http://..." is not.- See Also:
-
-
Method Details
-
loadInputStream
public static InputStream loadInputStream(ClassLoader loader, String resource) throws WSSecurityException, IOException Load a resource as a stream. The resolution order is:- the file system - an existing file wins, so that a path configured by the operator cannot be shadowed by a same-named classpath resource;
- a URL, if the resource string parses as one and its scheme is in the allowed
list (see
ALLOWED_URL_SCHEMES_PROPERTY; "file" and "jar" by default) - for a nested-URL scheme such as "jar", the embedded URL's scheme must also be in the allowed list; - the classpath.
- Throws:
WSSecurityExceptionIOException
-
getResource
This method will search forresourcein different places. The search order is as follows:- Search for
resourceusing the thread context class loader under Java2. - Try one last time with
ClassLoader.getSystemResource(resource), that is is using the system class loader in JDK 1.2 and virtual machine's built-in class loader in JDK 1.1.
- Parameters:
resource-- Returns:
- the url to the resource or null if not found
- Search for
-
getResource
This method will search forresourcein different places. The search order is as follows:- Search for
resourceusing the supplied class loader. If that fails, search forresourceusing the thread context class loader. - Try one last time with
ClassLoader.getSystemResource(resource), that is is using the system class loader in JDK 1.2 and virtual machine's built-in class loader in JDK 1.1.
- Parameters:
resource-- Returns:
- the url to the resource or null if not found
- Search for
-
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 load
-
getTCL
Get the Thread context class loader.- Returns:
- the Thread context class loader
- Throws:
IllegalAccessExceptionInvocationTargetException
-
getClassLoader
Get the class loader of the class argument- Returns:
- the class loader of the argument
-
loadClass
Try the specified classloader and then fall back to the loadClass- Parameters:
loader-clazz-- Returns:
- Class
- Throws:
ClassNotFoundException
-
loadClass
public static <T> Class<? extends T> loadClass(ClassLoader loader, String clazz, Class<T> type) throws ClassNotFoundException Try the specified classloader and then fall back to the loadClass- Parameters:
loader-clazz-type-- Returns:
- Class
- Throws:
ClassNotFoundException
-
loadClass
If running under JDK 1.2 load the specified class using theThreadcontextClassLoaderif that fails try Class.forname.- Parameters:
clazz-- Returns:
- the class
- Throws:
ClassNotFoundException
-
loadClass
public static <T> Class<? extends T> loadClass(String clazz, Class<T> type) throws ClassNotFoundException If running under JDK 1.2 load the specified class using theThreadcontextClassLoaderif that fails try Class.forname.- Parameters:
clazz-type- Type to cast it to- Returns:
- the class
- Throws:
ClassNotFoundException
-
loadClass
public static <T> Class<? extends T> loadClass(String clazz, boolean warn, Class<T> type) throws ClassNotFoundException - Throws:
ClassNotFoundException
-
loadClass
- Throws:
ClassNotFoundException
-