Package org.apache.xbean.finder
Class ResourceFinder
java.lang.Object
org.apache.xbean.finder.ResourceFinder
- Version:
- $Rev: 1484013 $ $Date: 2013-05-18 00:09:26 +0200 (Sat, 18 May 2013) $
- Author:
- David Blevins
-
Constructor Summary
ConstructorsConstructorDescriptionResourceFinder
(String path) ResourceFinder
(String path, ClassLoader classLoader) ResourceFinder
(String path, ClassLoader classLoader, URL... urls) ResourceFinder
(String path, URL... urls) ResourceFinder
(URL... urls) -
Method Summary
Modifier and TypeMethodDescriptionstatic String
findAllClasses
(String uri) Executes findAllStrings assuming the strings are the names of a classes that should be loaded and returned.findAllImplementations
(Class<T> interfase) Assumes the class specified points to a file in the classpath that contains the name of a class that implements or is a subclass of the specfied class.findAllProperties
(String uri) Finds the corresponding resources and reads them in as a properties filesfindAllStrings
(String uri) Reads the contents of the found URLs as a list ofString
's and returns them.Executes findAvailableStrings assuming the strings are the names of a classes that should be loaded and returned.findAvailableImplementations
(Class<T> interfase) Assumes the class specified points to a file in the classpath that contains the name of a class that implements or is a subclass of the specfied class.Finds the corresponding resources and reads them in as a properties filesReads the contents of the found URLs as a Strings and returns them.Class<?>
ExecutesfindString(String)
assuming the contents URL found is the name of a class that should be loaded and returned.Class<?>
findImplementation
(Class<?> interfase) Assumes the class specified points to a file in the classpath that contains the name of a class that implements or is a subclass of the specfied class.findProperties
(String uri) Finds the corresponding resource and reads it in as a properties filefindString
(String uri) Reads the contents of the URL as aString
's and returns it.getResource
(String fullUri) getResourcesMap
(String uri) Returns a list of resources that could not be loaded in the last invoked findAvailable* or mapAvailable* methods.mapAllClasses
(String uri) Executes mapAllStrings assuming the value of each entry in the map is the name of a class that should be loaded.mapAllImplementations
(Class<T> interfase) Assumes the class specified points to a directory in the classpath that holds files containing the name of a class that implements or is a subclass of the specfied class.mapAllProperties
(String uri) Finds the corresponding resources and reads them in as a properties filesmapAllStrings
(String uri) Reads the contents of all non-directory URLs immediately under the specified location and returns them in a map keyed by the file name.Executes mapAvailableStrings assuming the value of each entry in the map is the name of a class that should be loaded.mapAvailableImplementations
(Class<T> interfase) Assumes the class specified points to a directory in the classpath that holds files containing the name of a class that implements or is a subclass of the specfied class.Finds the corresponding resources and reads them in as a properties filesReads the contents of all non-directory URLs immediately under the specified location and returns them in a map keyed by the file name.
-
Constructor Details
-
ResourceFinder
-
ResourceFinder
-
ResourceFinder
-
ResourceFinder
-
ResourceFinder
-
-
Method Details
-
getResourcesNotLoaded
Returns a list of resources that could not be loaded in the last invoked findAvailable* or mapAvailable* methods. The list will only contain entries of resources that match the requirements of the last invoked findAvailable* or mapAvailable* methods, but were unable to be loaded and included in their results. The list returned is unmodifiable and the results of this method will change after each invocation of a findAvailable* or mapAvailable* methods. This method is not thread safe. -
find
- Throws:
IOException
-
findAll
- Throws:
IOException
-
findString
Reads the contents of the URL as aString
's and returns it.- Parameters:
uri
-- Returns:
- a stringified content of a resource
- Throws:
IOException
- if a resource pointed out by the uri param could not be find- See Also:
-
findAllStrings
Reads the contents of the found URLs as a list ofString
's and returns them.- Parameters:
uri
-- Returns:
- a list of the content of each resource URL found
- Throws:
IOException
- if any of the found URLs are unable to be read.
-
findAvailableStrings
Reads the contents of the found URLs as a Strings and returns them. Individual URLs that cannot be read are skipped and added to the list of 'resourcesNotLoaded'- Parameters:
uri
-- Returns:
- a list of the content of each resource URL found
- Throws:
IOException
- if classLoader.getResources throws an exception
-
mapAllStrings
Reads the contents of all non-directory URLs immediately under the specified location and returns them in a map keyed by the file name. Any URLs that cannot be read will cause an exception to be thrown. Example classpath: META-INF/serializables/one META-INF/serializables/two META-INF/serializables/three META-INF/serializables/four/foo.txt ResourceFinder finder = new ResourceFinder("META-INF/"); Map map = finder.mapAvailableStrings("serializables"); map.contains("one"); // true map.contains("two"); // true map.contains("three"); // true map.contains("four"); // false- Parameters:
uri
-- Returns:
- a list of the content of each resource URL found
- Throws:
IOException
- if any of the urls cannot be read
-
mapAvailableStrings
Reads the contents of all non-directory URLs immediately under the specified location and returns them in a map keyed by the file name. Individual URLs that cannot be read are skipped and added to the list of 'resourcesNotLoaded' Example classpath: META-INF/serializables/one META-INF/serializables/two # not readable META-INF/serializables/three META-INF/serializables/four/foo.txt ResourceFinder finder = new ResourceFinder("META-INF/"); Map map = finder.mapAvailableStrings("serializables"); map.contains("one"); // true map.contains("two"); // false map.contains("three"); // true map.contains("four"); // false- Parameters:
uri
-- Returns:
- a list of the content of each resource URL found
- Throws:
IOException
- if classLoader.getResources throws an exception
-
findClass
ExecutesfindString(String)
assuming the contents URL found is the name of a class that should be loaded and returned.- Parameters:
uri
-- Returns:
- Throws:
IOException
ClassNotFoundException
-
findAllClasses
Executes findAllStrings assuming the strings are the names of a classes that should be loaded and returned. Any URL or class that cannot be loaded will cause an exception to be thrown.- Parameters:
uri
-- Returns:
- Throws:
IOException
ClassNotFoundException
-
findAvailableClasses
Executes findAvailableStrings assuming the strings are the names of a classes that should be loaded and returned. Any class that cannot be loaded will be skipped and placed in the 'resourcesNotLoaded' collection.- Parameters:
uri
-- Returns:
- Throws:
IOException
- if classLoader.getResources throws an exception
-
mapAllClasses
Executes mapAllStrings assuming the value of each entry in the map is the name of a class that should be loaded. Any class that cannot be loaded will be cause an exception to be thrown. Example classpath: META-INF/xmlparsers/xerces META-INF/xmlparsers/crimson ResourceFinder finder = new ResourceFinder("META-INF/"); Map map = finder.mapAvailableStrings("xmlparsers"); map.contains("xerces"); // true map.contains("crimson"); // true Class xercesClass = map.get("xerces"); Class crimsonClass = map.get("crimson");- Parameters:
uri
-- Returns:
- Throws:
IOException
ClassNotFoundException
-
mapAvailableClasses
Executes mapAvailableStrings assuming the value of each entry in the map is the name of a class that should be loaded. Any class that cannot be loaded will be skipped and placed in the 'resourcesNotLoaded' collection. Example classpath: META-INF/xmlparsers/xerces META-INF/xmlparsers/crimson ResourceFinder finder = new ResourceFinder("META-INF/"); Map map = finder.mapAvailableStrings("xmlparsers"); map.contains("xerces"); // true map.contains("crimson"); // true Class xercesClass = map.get("xerces"); Class crimsonClass = map.get("crimson");- Parameters:
uri
-- Returns:
- Throws:
IOException
- if classLoader.getResources throws an exception
-
findImplementation
Assumes the class specified points to a file in the classpath that contains the name of a class that implements or is a subclass of the specfied class. Any class that cannot be loaded will be cause an exception to be thrown. Example classpath: META-INF/java.io.InputStream # contains the classname org.acme.AcmeInputStream META-INF/java.io.OutputStream ResourceFinder finder = new ResourceFinder("META-INF/"); Class clazz = finder.findImplementation(java.io.InputStream.class); clazz.getName(); // returns "org.acme.AcmeInputStream"- Parameters:
interfase
- a superclass or interface- Returns:
- Throws:
IOException
- if the URL cannot be readClassNotFoundException
- if the class found is not loadableClassCastException
- if the class found is not assignable to the specified superclass or interface
-
findAllImplementations
public <T> List<Class<? extends T>> findAllImplementations(Class<T> interfase) throws IOException, ClassNotFoundException Assumes the class specified points to a file in the classpath that contains the name of a class that implements or is a subclass of the specfied class. Any class that cannot be loaded or assigned to the specified interface will be cause an exception to be thrown. Example classpath: META-INF/java.io.InputStream # contains the classname org.acme.AcmeInputStream META-INF/java.io.InputStream # contains the classname org.widget.NeatoInputStream META-INF/java.io.InputStream # contains the classname com.foo.BarInputStream ResourceFinder finder = new ResourceFinder("META-INF/"); List classes = finder.findAllImplementations(java.io.InputStream.class); classes.contains("org.acme.AcmeInputStream"); // true classes.contains("org.widget.NeatoInputStream"); // true classes.contains("com.foo.BarInputStream"); // true- Parameters:
interfase
- a superclass or interface- Returns:
- Throws:
IOException
- if the URL cannot be readClassNotFoundException
- if the class found is not loadableClassCastException
- if the class found is not assignable to the specified superclass or interface
-
findAvailableImplementations
public <T> List<Class<? extends T>> findAvailableImplementations(Class<T> interfase) throws IOException Assumes the class specified points to a file in the classpath that contains the name of a class that implements or is a subclass of the specfied class. Any class that cannot be loaded or are not assignable to the specified class will be skipped and placed in the 'resourcesNotLoaded' collection. Example classpath: META-INF/java.io.InputStream # contains the classname org.acme.AcmeInputStream META-INF/java.io.InputStream # contains the classname org.widget.NeatoInputStream META-INF/java.io.InputStream # contains the classname com.foo.BarInputStream ResourceFinder finder = new ResourceFinder("META-INF/"); List classes = finder.findAllImplementations(java.io.InputStream.class); classes.contains("org.acme.AcmeInputStream"); // true classes.contains("org.widget.NeatoInputStream"); // true classes.contains("com.foo.BarInputStream"); // true- Parameters:
interfase
- a superclass or interface- Returns:
- Throws:
IOException
- if classLoader.getResources throws an exception
-
mapAllImplementations
public <T> Map<String,Class<? extends T>> mapAllImplementations(Class<T> interfase) throws IOException, ClassNotFoundException Assumes the class specified points to a directory in the classpath that holds files containing the name of a class that implements or is a subclass of the specfied class. Any class that cannot be loaded or assigned to the specified interface will be cause an exception to be thrown. Example classpath: META-INF/java.net.URLStreamHandler/jar META-INF/java.net.URLStreamHandler/file META-INF/java.net.URLStreamHandler/http ResourceFinder finder = new ResourceFinder("META-INF/"); Map map = finder.mapAllImplementations(java.net.URLStreamHandler.class); Class jarUrlHandler = map.get("jar"); Class fileUrlHandler = map.get("file"); Class httpUrlHandler = map.get("http");- Parameters:
interfase
- a superclass or interface- Returns:
- Throws:
IOException
- if the URL cannot be readClassNotFoundException
- if the class found is not loadableClassCastException
- if the class found is not assignable to the specified superclass or interface
-
mapAvailableImplementations
public <T> Map<String,Class<? extends T>> mapAvailableImplementations(Class<T> interfase) throws IOException Assumes the class specified points to a directory in the classpath that holds files containing the name of a class that implements or is a subclass of the specfied class. Any class that cannot be loaded or are not assignable to the specified class will be skipped and placed in the 'resourcesNotLoaded' collection. Example classpath: META-INF/java.net.URLStreamHandler/jar META-INF/java.net.URLStreamHandler/file META-INF/java.net.URLStreamHandler/http ResourceFinder finder = new ResourceFinder("META-INF/"); Map map = finder.mapAllImplementations(java.net.URLStreamHandler.class); Class jarUrlHandler = map.get("jar"); Class fileUrlHandler = map.get("file"); Class httpUrlHandler = map.get("http");- Parameters:
interfase
- a superclass or interface- Returns:
- Throws:
IOException
- if classLoader.getResources throws an exception
-
findProperties
Finds the corresponding resource and reads it in as a properties file Example classpath: META-INF/widget.properties ResourceFinder finder = new ResourceFinder("META-INF/"); Properties widgetProps = finder.findProperties("widget.properties");- Parameters:
uri
-- Returns:
- Throws:
IOException
- if the URL cannot be read or is not in properties file format
-
findAllProperties
Finds the corresponding resources and reads them in as a properties files Any URL that cannot be read in as a properties file will cause an exception to be thrown. Example classpath: META-INF/app.properties META-INF/app.properties META-INF/app.properties ResourceFinder finder = new ResourceFinder("META-INF/"); ListappProps = finder.findAllProperties("app.properties"); - Parameters:
uri
-- Returns:
- Throws:
IOException
- if the URL cannot be read or is not in properties file format
-
findAvailableProperties
Finds the corresponding resources and reads them in as a properties files Any URL that cannot be read in as a properties file will be added to the 'resourcesNotLoaded' collection. Example classpath: META-INF/app.properties META-INF/app.properties META-INF/app.properties ResourceFinder finder = new ResourceFinder("META-INF/"); ListappProps = finder.findAvailableProperties("app.properties"); - Parameters:
uri
-- Returns:
- Throws:
IOException
- if classLoader.getResources throws an exception
-
mapAllProperties
Finds the corresponding resources and reads them in as a properties files Any URL that cannot be read in as a properties file will cause an exception to be thrown. Example classpath: - META-INF/jdbcDrivers/oracle.properties - META-INF/jdbcDrivers/mysql.props - META-INF/jdbcDrivers/derby ResourceFinder finder = new ResourceFinder("META-INF/"); ListdriversList = finder.findAvailableProperties("jdbcDrivers"); Properties oracleProps = driversList.get("oracle.properties"); Properties mysqlProps = driversList.get("mysql.props"); Properties derbyProps = driversList.get("derby"); - Parameters:
uri
-- Returns:
- Throws:
IOException
- if the URL cannot be read or is not in properties file format
-
mapAvailableProperties
Finds the corresponding resources and reads them in as a properties files Any URL that cannot be read in as a properties file will be added to the 'resourcesNotLoaded' collection. Example classpath: META-INF/jdbcDrivers/oracle.properties META-INF/jdbcDrivers/mysql.props META-INF/jdbcDrivers/derby ResourceFinder finder = new ResourceFinder("META-INF/"); ListdriversList = finder.findAvailableProperties("jdbcDrivers"); Properties oracleProps = driversList.get("oracle.properties"); Properties mysqlProps = driversList.get("mysql.props"); Properties derbyProps = driversList.get("derby"); - Parameters:
uri
-- Returns:
- Throws:
IOException
- if classLoader.getResources throws an exception
-
getResourcesMap
- Throws:
IOException
-
getResource
-
decode
-