public class DefaultPackageScanClassResolver extends java.lang.Object implements PackageScanClassResolver
PackageScanClassResolver| Constructor and Description |
|---|
DefaultPackageScanClassResolver() |
| Modifier and Type | Method and Description |
|---|---|
void |
addClassLoader(java.lang.ClassLoader classLoader)
Adds the class loader to the existing loaders
|
void |
addFilter(PackageScanFilter filter)
Add a filter that will be applied to all scan operations
|
protected void |
addIfMatching(PackageScanFilter test,
java.lang.String fqn,
java.util.Set<java.lang.Class<?>> classes)
Add the class designated by the fully qualified class name provided to
the set of resolved classes if and only if it is approved by the Test
supplied.
|
protected java.net.URL |
customResourceLocator(java.net.URL url) |
protected void |
find(PackageScanFilter test,
java.lang.String packageName,
java.lang.ClassLoader loader,
java.util.Set<java.lang.Class<?>> classes) |
protected void |
find(PackageScanFilter test,
java.lang.String packageName,
java.util.Set<java.lang.Class<?>> classes) |
java.util.Set<java.lang.Class<?>> |
findByFilter(PackageScanFilter filter,
java.lang.String... packageNames)
Attempts to discover classes filter by the provided filter
|
java.util.Set<java.lang.Class<?>> |
findImplementations(java.lang.Class parent,
java.lang.String... packageNames)
Attempts to discover classes that are assignable to the type provided.
|
java.util.Set<java.lang.ClassLoader> |
getClassLoaders()
Gets the ClassLoader instances that should be used when scanning for classes.
|
protected java.util.Enumeration<java.net.URL> |
getResources(java.lang.ClassLoader loader,
java.lang.String packageName)
Strategy to get the resources by the given classloader.
|
protected void |
loadImplementationsInJar(PackageScanFilter test,
java.lang.String parent,
java.io.InputStream stream,
java.lang.String urlPath,
java.util.Set<java.lang.Class<?>> classes)
Finds matching classes within a jar files that contains a folder
structure matching the package structure.
|
void |
removeFilter(PackageScanFilter filter)
Removes the filter
|
void |
setClassLoaders(java.util.Set<java.lang.ClassLoader> classLoaders)
Sets the ClassLoader instances that should be used when scanning for
classes.
|
protected final transient Logger log
public void addClassLoader(java.lang.ClassLoader classLoader)
PackageScanClassResolveraddClassLoader in interface PackageScanClassResolverclassLoader - the loader to addpublic void addFilter(PackageScanFilter filter)
PackageScanClassResolveraddFilter in interface PackageScanClassResolverfilter - filter to filter desired classes in all scan operationspublic void removeFilter(PackageScanFilter filter)
PackageScanClassResolverremoveFilter in interface PackageScanClassResolverfilter - filter to filter desired classes in all scan operationspublic java.util.Set<java.lang.ClassLoader> getClassLoaders()
PackageScanClassResolvergetClassLoaders in interface PackageScanClassResolverpublic void setClassLoaders(java.util.Set<java.lang.ClassLoader> classLoaders)
PackageScanClassResolversetClassLoaders in interface PackageScanClassResolverclassLoaders - loaders to use when scanning for classespublic java.util.Set<java.lang.Class<?>> findImplementations(java.lang.Class parent,
java.lang.String... packageNames)
PackageScanClassResolverfindImplementations in interface PackageScanClassResolverparent - the class of interface to find subclasses or implementations ofpackageNames - one or more package names to scan (including subpackages) for classespublic java.util.Set<java.lang.Class<?>> findByFilter(PackageScanFilter filter, java.lang.String... packageNames)
PackageScanClassResolverfindByFilter in interface PackageScanClassResolverfilter - filter to filter desired classes.packageNames - one or more package names to scan (including subpackages) for classesprotected void find(PackageScanFilter test, java.lang.String packageName, java.util.Set<java.lang.Class<?>> classes)
protected void find(PackageScanFilter test, java.lang.String packageName, java.lang.ClassLoader loader, java.util.Set<java.lang.Class<?>> classes)
protected java.net.URL customResourceLocator(java.net.URL url)
throws java.io.IOException
java.io.IOExceptionprotected java.util.Enumeration<java.net.URL> getResources(java.lang.ClassLoader loader,
java.lang.String packageName)
throws java.io.IOException
WebSpherePackageScanClassResolver
to take care of WebSphere's odditiy of resource loading.loader - the classloaderpackageName - the packagename for the package to loadjava.io.IOException - is thrown by the classloaderprotected void loadImplementationsInJar(PackageScanFilter test, java.lang.String parent, java.io.InputStream stream, java.lang.String urlPath, java.util.Set<java.lang.Class<?>> classes)
test - a Test used to filter the classes that are discoveredparent - the parent package under which classes must be in order to
be consideredstream - the inputstream of the jar file to be examined for classesurlPath - the url of the jar file to be examined for classesprotected void addIfMatching(PackageScanFilter test, java.lang.String fqn, java.util.Set<java.lang.Class<?>> classes)
test - the test used to determine if the class matchesfqn - the fully qualified name of a class