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:
-
ClassLoadHelper
LoadingLoaderClassLoadHelper
SimpleClassLoadHelper
ThreadContextClassLoadHelper
InitThreadContextClassLoadHelper
-
Constructor Summary
-
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.void
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.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:
initialize
in interfaceClassLoadHelper
-
loadClass
Return the class with the given name.- Specified by:
loadClass
in 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:
getResource
in 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:
getResources
in 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:
getResourceAsStream
in 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:
getClassLoader
in interfaceClassLoadHelper
- Returns:
- the class-loader user be the helper.
-