Package org.quartz.classloading
Class CascadingClassLoadHelper
java.lang.Object
org.quartz.classloading.CascadingClassLoadHelper
- All Implemented Interfaces:
ClassLoadHelper
A
ClassLoadHelper uses all of the ClassLoadHelper types 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:
-
ClassLoadHelperLoadingLoaderClassLoadHelperSimpleClassLoadHelperThreadContextClassLoadHelperInitThreadContextClassLoadHelper
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionEnable sharing of the "best" class-loader with 3rd party.getJobClasses(String pkgname) Given a package name(s), search the classpath for all classes that extend sundial.job .getResource(String name) Finds a resource with a given name.getResourceAsStream(String name) Finds a resource with a given name.getResources(String name) Finds all resources with a given name.voidCalled 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.Return the class with the given name.
-
Constructor Details
-
CascadingClassLoadHelper
public CascadingClassLoadHelper()
-
-
Method Details
-
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
Return the class with the given name.- Specified by:
loadClassin interfaceClassLoadHelper- Parameters:
name- of the class to load.- Returns:
- the requested class.
- Throws:
ClassNotFoundException- if the class can be found in the classpath.
-
getResource
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
-
getResources
Finds all resources with a given name. This method returns empty list if no resource with this name is found.- Specified by:
getResourcesin interfaceClassLoadHelper- Parameters:
name- name of the desired resource- Returns:
- a java.net.URL list
-
getResourceAsStream
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
-
getJobClasses
Given a package name(s), search the classpath for all classes that extend sundial.job .A comma(,) or colon(:) can be used to specify multiple packages to scan for Jobs.
- Parameters:
pkgname-- Returns:
-
getClassLoader
Enable sharing of the "best" class-loader with 3rd party.- Specified by:
getClassLoaderin interfaceClassLoadHelper- Returns:
- the class-loader user be the helper.
-