| java.lang.Object org.apache.commons.discovery.tools.ResourceUtils
ResourceUtils | public class ResourceUtils (Code) | | Mechanisms to locate and load a class.
The load methods locate a class only.
The find methods locate a class and verify that the
class implements an given interface or extends a given class.
author: Richard A. Sitze author: Craig R. McClanahan author: Costin Manolache |
Method Summary | |
public static String | getPackageName(Class clazz) Get package name. | public static Resource | getResource(Class spi, String resourceName, ClassLoaders loaders) Load the resource resourceName . | public static Properties | loadProperties(Class spi, String propertiesFileName, ClassLoaders classLoaders) Load named property file, optionally qualifed by spi's package name
as per Class.getResource.
A property file is loaded using the following sequence of class loaders:
- Thread Context Class Loader
- DiscoverSingleton's Caller's Class Loader
- SPI's Class Loader
- DiscoverSingleton's (this class) Class Loader
- System Class Loader
Parameters: propertiesFileName - The property file name. |
getPackageName | public static String getPackageName(Class clazz)(Code) | | Get package name.
Not all class loaders 'keep' package information,
in which case Class.getPackage() returns null.
This means that calling Class.getPackage().getName()
is unreliable at best.
|
getResource | public static Resource getResource(Class spi, String resourceName, ClassLoaders loaders) throws DiscoveryException(Code) | | Load the resource resourceName .
Try each classloader in succession,
until first succeeds, or all fail.
If all fail and resouceName is not absolute
(doesn't start with '/' character), then retry with
packageName/resourceName after changing all
'.' to '/'.
Parameters: resourceName - The name of the resource to load. |
loadProperties | public static Properties loadProperties(Class spi, String propertiesFileName, ClassLoaders classLoaders) throws DiscoveryException(Code) | | Load named property file, optionally qualifed by spi's package name
as per Class.getResource.
A property file is loaded using the following sequence of class loaders:
- Thread Context Class Loader
- DiscoverSingleton's Caller's Class Loader
- SPI's Class Loader
- DiscoverSingleton's (this class) Class Loader
- System Class Loader
Parameters: propertiesFileName - The property file name. Instance of a class implementing the SPI. exception: DiscoveryException - Thrown if the name of a class implementingthe SPI cannot be found, if the class cannot be loaded andinstantiated, or if the resulting class does not implement(or extend) the SPI. |
|
|