Package org.quartz.simpl
Class CascadingClassLoadHelper
- java.lang.Object
-
- org.quartz.simpl.CascadingClassLoadHelper
-
- All Implemented Interfaces:
ClassLoadHelper
public class CascadingClassLoadHelper extends java.lang.Object implements ClassLoadHelper
AClassLoadHelperuses all of theClassLoadHelpertypes that are found in this package in its attempts to load a class, when one scheme is found to work, it is promoted to the scheme that will be used first the next time a class is loaded (in order to improve performance).This approach is used because of the wide variance in class loader behavior between the various environments in which Quartz runs (e.g. disparate application servers, stand-alone, mobile devices, etc.). Because of this disparity, Quartz ran into difficulty with a one class-load style fits-all design. Thus, this class loader finds the approach that works, then 'remembers' it.
- Author:
- jhouse, pl47ypus
- See Also:
ClassLoadHelper,LoadingLoaderClassLoadHelper,SimpleClassLoadHelper,ThreadContextClassLoadHelper,InitThreadContextClassLoadHelper
-
-
Constructor Summary
Constructors Constructor Description CascadingClassLoadHelper()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description java.lang.ClassLoadergetClassLoader()Enable sharing of the "best" class-loader with 3rd party.java.net.URLgetResource(java.lang.String name)Finds a resource with a given name.java.io.InputStreamgetResourceAsStream(java.lang.String name)Finds a resource with a given name.voidinitialize()Called to give the ClassLoadHelper a chance to initialize itself, including the opportunity to "steal" the class loader off of the calling thread, which is the thread that is initializing Quartz.java.lang.Class<?>loadClass(java.lang.String name)Return the class with the given name.<T> java.lang.Class<? extends T>loadClass(java.lang.String name, java.lang.Class<T> clazz)Return the class of the given type with the given name.
-
-
-
Method Detail
-
initialize
public void initialize()
Called to give the ClassLoadHelper a chance to initialize itself, including the opportunity to "steal" the class loader off of the calling thread, which is the thread that is initializing Quartz.- Specified by:
initializein interfaceClassLoadHelper
-
loadClass
public java.lang.Class<?> loadClass(java.lang.String name) throws java.lang.ClassNotFoundExceptionReturn the class with the given name.- Specified by:
loadClassin interfaceClassLoadHelper- Parameters:
name- the FQCN of the class to load.- Returns:
- the requested class.
- Throws:
java.lang.ClassNotFoundException- if the class can be found in the classpath.
-
loadClass
public <T> java.lang.Class<? extends T> loadClass(java.lang.String name, java.lang.Class<T> clazz) throws java.lang.ClassNotFoundExceptionDescription copied from interface:ClassLoadHelperReturn the class of the given type with the given name.- Specified by:
loadClassin interfaceClassLoadHelper- Parameters:
name- the FQCN of the class to load.- Returns:
- the requested class.
- Throws:
java.lang.ClassNotFoundException- if the class can be found in the classpath.
-
getResource
public java.net.URL getResource(java.lang.String name)
Finds a resource with a given name. This method returns null if no resource with this name is found.- Specified by:
getResourcein interfaceClassLoadHelper- Parameters:
name- name of the desired resource- Returns:
- a java.net.URL object
-
getResourceAsStream
public java.io.InputStream getResourceAsStream(java.lang.String name)
Finds a resource with a given name. This method returns null if no resource with this name is found.- Specified by:
getResourceAsStreamin interfaceClassLoadHelper- Parameters:
name- name of the desired resource- Returns:
- a java.io.InputStream object
-
getClassLoader
public java.lang.ClassLoader getClassLoader()
Enable sharing of the "best" class-loader with 3rd party.- Specified by:
getClassLoaderin interfaceClassLoadHelper- Returns:
- the class-loader user be the helper.
-
-