com.opensymphony.xwork2.util.finder
Class ResourceFinder
java.lang.Object
com.opensymphony.xwork2.util.finder.ResourceFinder
public class ResourceFinder
- extends Object
- Version:
- $Rev: 1292705 $ $Date: 2012-02-23 09:40:53 +0100 (Thu, 23 Feb 2012) $
- Author:
- David Blevins
Method Summary |
URL |
find(String uri)
|
List<URL> |
findAll(String uri)
|
List<Class> |
findAllClasses(String uri)
Executes findAllStrings assuming the strings are
the names of a classes that should be loaded and returned. |
List<Class> |
findAllImplementations(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. |
List<Properties> |
findAllProperties(String uri)
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. |
List<String> |
findAllStrings(String uri)
Reads the contents of the found URLs as a list of String 's and returns them. |
List<Class> |
findAvailableClasses(String uri)
Executes findAvailableStrings assuming the strings are
the names of a classes that should be loaded and returned. |
List<Class> |
findAvailableImplementations(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. |
List<Properties> |
findAvailableProperties(String uri)
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. |
List<String> |
findAvailableStrings(String uri)
Reads the contents of the found URLs as a Strings and returns them. |
Class |
findClass(String uri)
Executes findString(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. |
Set<String> |
findPackages(String uri)
Gets a list of subpckages from jars or dirs |
Map<URL,Set<String>> |
findPackagesMap(String uri)
Gets a list of subpckages from jars or dirs |
Properties |
findProperties(String uri)
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"); |
String |
findString(String uri)
Reads the contents of the URL as a String 's and returns it. |
Map<String,URL> |
getResourcesMap(String uri)
|
List<String> |
getResourcesNotLoaded()
Returns a list of resources that could not be loaded in the last invoked findAvailable* or
mapAvailable* methods. |
Map<String,Class> |
mapAllClasses(String uri)
Executes mapAllStrings assuming the value of each entry in the
map is the name of a class that should be loaded. |
Map<String,Class> |
mapAllImplementations(Class 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. |
Map<String,Properties> |
mapAllProperties(String uri)
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. |
Map<String,String> |
mapAllStrings(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. |
Map<String,Class> |
mapAvailableClasses(String uri)
Executes mapAvailableStrings assuming the value of each entry in the
map is the name of a class that should be loaded. |
Map<String,Class> |
mapAvailableImplementations(Class 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. |
Map<String,Properties> |
mapAvailableProperties(String uri)
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. |
Map<String,String> |
mapAvailableStrings(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. |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
ResourceFinder
public ResourceFinder(URL... urls)
ResourceFinder
public ResourceFinder(String path)
ResourceFinder
public ResourceFinder(String path,
URL... urls)
ResourceFinder
public ResourceFinder(String path,
ClassLoaderInterface classLoaderInterface)
ResourceFinder
public ResourceFinder(String path,
ClassLoaderInterface classLoaderInterface,
URL... urls)
getResourcesNotLoaded
public List<String> 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
public URL find(String uri)
throws IOException
- Throws:
IOException
findAll
public List<URL> findAll(String uri)
throws IOException
- Throws:
IOException
findString
public String findString(String uri)
throws IOException
- Reads the contents of the URL as a
String
'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:
ClassLoader.getResource(String)
findAllStrings
public List<String> findAllStrings(String uri)
throws IOException
- Reads the contents of the found URLs as a list of
String
'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
public List<String> findAvailableStrings(String uri)
throws IOException
- 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
public Map<String,String> mapAllStrings(String uri)
throws IOException
- 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
public Map<String,String> mapAvailableStrings(String uri)
throws IOException
- 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
public Class findClass(String uri)
throws IOException,
ClassNotFoundException
- Executes
findString(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
public List<Class> findAllClasses(String uri)
throws IOException,
ClassNotFoundException
- 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
public List<Class> findAvailableClasses(String uri)
throws IOException
- 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
public Map<String,Class> mapAllClasses(String uri)
throws IOException,
ClassNotFoundException
- 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
public Map<String,Class> mapAvailableClasses(String uri)
throws IOException
- 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
public Class findImplementation(Class 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 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 read
ClassNotFoundException
- if the class found is not loadable
ClassCastException
- if the class found is not assignable to the specified superclass or interface
findAllImplementations
public List<Class> findAllImplementations(Class 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 read
ClassNotFoundException
- if the class found is not loadable
ClassCastException
- if the class found is not assignable to the specified superclass or interface
findAvailableImplementations
public List<Class> findAvailableImplementations(Class 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 Map<String,Class> mapAllImplementations(Class 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 read
ClassNotFoundException
- if the class found is not loadable
ClassCastException
- if the class found is not assignable to the specified superclass or interface
mapAvailableImplementations
public Map<String,Class> mapAvailableImplementations(Class 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
public Properties findProperties(String uri)
throws IOException
- 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
public List<Properties> findAllProperties(String uri)
throws IOException
- 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/");
List appProps = finder.findAllProperties("app.properties");
- Parameters:
uri
-
- Returns:
-
- Throws:
IOException
- if the URL cannot be read or is not in properties file format
findAvailableProperties
public List<Properties> findAvailableProperties(String uri)
throws IOException
- 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/");
List appProps = finder.findAvailableProperties("app.properties");
- Parameters:
uri
-
- Returns:
-
- Throws:
IOException
- if classLoader.getResources throws an exception
mapAllProperties
public Map<String,Properties> mapAllProperties(String uri)
throws IOException
- 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/");
List driversList = 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
public Map<String,Properties> mapAvailableProperties(String uri)
throws IOException
- 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/");
List driversList = 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
public Map<String,URL> getResourcesMap(String uri)
throws IOException
- Throws:
IOException
findPackages
public Set<String> findPackages(String uri)
throws IOException
- Gets a list of subpckages from jars or dirs
- Throws:
IOException
findPackagesMap
public Map<URL,Set<String>> findPackagesMap(String uri)
throws IOException
- Gets a list of subpckages from jars or dirs
- Throws:
IOException
Copyright © 2000-2012 Apache Software Foundation. All Rights Reserved.