public class ResourceFinder extends Object
| Constructor and Description | 
|---|
| ResourceFinder(String path) | 
| ResourceFinder(String path,
              ClassLoaderInterface classLoaderInterface) | 
| ResourceFinder(String path,
              ClassLoaderInterface classLoaderInterface,
              URL... urls)Create a ResourceFinder instance for looking up resources (via ClassLoader or via specific URLs
 specifying resource locations). | 
| ResourceFinder(String path,
              URL... urls) | 
| ResourceFinder(URL... urls) | 
| Modifier and Type | Method and Description | 
|---|---|
| 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 | 
| 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 | 
| 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) | 
| Map<URL,Set<String>> | findPackagesMap(String uri) | 
| Properties | findProperties(String uri)
 Finds the corresponding resource and reads it in as a properties file | 
| 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 specified class. | 
| Map<String,Properties> | mapAllProperties(String uri)
 Finds the corresponding resources and reads them in as a properties files | 
| 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 specified class. | 
| Map<String,Properties> | mapAvailableProperties(String uri)
 Finds the corresponding resources and reads them in as a properties files | 
| 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. | 
public ResourceFinder(URL... urls)
public ResourceFinder(String path)
public ResourceFinder(String path, ClassLoaderInterface classLoaderInterface)
public ResourceFinder(String path, ClassLoaderInterface classLoaderInterface, URL... urls)
path - Base path from which to look for resources (typically "xyz/abc/klm" form for file or
              jar contents).classLoaderInterface - ClassLoader to perform the resource lookup.  If null, a default Thread
              ClassLoader will be used.urls - URLs (typically file: or jar:) within which to search for resources, instead of the
              ClassLoader.  If null, fallback to a ClassLoader instead.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.public URL find(String uri) throws IOException
IOExceptionpublic List<URL> findAll(String uri) throws IOException
IOExceptionpublic String findString(String uri) throws IOException
String's and returns it.uri - URLIOException - if a resource pointed out by the uri param could not be findClassLoader.getResource(String)public List<String> findAllStrings(String uri) throws IOException
String's and returns them.uri - URLIOException - if any of the found URLs are unable to be read.public List<String> findAvailableStrings(String uri) throws IOException
uri - URLIOException - if classLoader.getResources throws an exceptionpublic 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
 uri - URLIOException - if any of the urls cannot be readpublic 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
 uri - URLIOException - if classLoader.getResources throws an exceptionpublic Class findClass(String uri) throws IOException, ClassNotFoundException
findString(String) assuming the contents URL found is the name of
 a class that should be loaded and returned.uri - URLIOException - in case of IO errorsClassNotFoundException - when class is not foundpublic 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.
uri - URLIOException - in case of IO errorsClassNotFoundException - when class is not foundpublic 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.
uri - URLIOException - if classLoader.getResources throws an exceptionpublic 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");
 uri - URLIOException - in case of IO errorsClassNotFoundException - when class is not foundpublic 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");
 uri - URLIOException - if classLoader.getResources throws an exceptionpublic 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"
 interfase - a superclass or interfaceIOException - 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 interfacepublic 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
 interfase - a superclass or interfaceIOException - 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 interfacepublic 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
 interfase - a superclass or interfaceIOException - if classLoader.getResources throws an exceptionpublic 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 specified 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");
 interfase - a superclass or interfaceIOException - 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 interfacepublic 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 specified 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");
 interfase - a superclass or interfaceIOException - if classLoader.getResources throws an exceptionpublic 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");
 uri - URLIOException - if the URL cannot be read or is not in properties file formatpublic 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<Properties> appProps = finder.findAllProperties("app.properties");
 uri - URLIOException - if the URL cannot be read or is not in properties file formatpublic 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<Properties> appProps = finder.findAvailableProperties("app.properties");
 uri - URLIOException - if classLoader.getResources throws an exceptionpublic 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<Properties> driversList = finder.findAvailableProperties("jdbcDrivers");
 Properties oracleProps = driversList.get("oracle.properties");
 Properties mysqlProps = driversList.get("mysql.props");
 Properties derbyProps = driversList.get("derby");
 uri - URLIOException - if the URL cannot be read or is not in properties file formatpublic 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<Properties> driversList = finder.findAvailableProperties("jdbcDrivers");
 Properties oracleProps = driversList.get("oracle.properties");
 Properties mysqlProps = driversList.get("mysql.props");
 Properties derbyProps = driversList.get("derby");
 uri - URLIOException - if classLoader.getResources throws an exceptionpublic Map<String,URL> getResourcesMap(String uri) throws IOException
IOExceptionpublic Set<String> findPackages(String uri) throws IOException
uri - URLIOException - in case of IO errorspublic Map<URL,Set<String>> findPackagesMap(String uri) throws IOException
uri - URLIOException - in case of IO errorsCopyright © 2000–2025 Apache Software Foundation. All rights reserved.