Package org.apache.camel.spi
Interface PackageScanClassResolver
-
- All Superinterfaces:
AutoCloseable
,Service
,StaticService
public interface PackageScanClassResolver extends StaticService
A resolver that can find classes based on package scanning.- See Also:
PackageScanResourceResolver
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description void
addClassLoader(ClassLoader classLoader)
Adds the class loader to the existing loadersvoid
addFilter(PackageScanFilter filter)
Add a filter that will be applied to all scan operationsvoid
clearCache()
Clears and frees the internal cache.Set<Class<?>>
findAnnotated(Class<? extends Annotation> annotation, String... packageNames)
Attempts to discover classes that are annotated with to the annotation.Set<Class<?>>
findAnnotated(Set<Class<? extends Annotation>> annotations, String... packageNames)
Attempts to discover classes that are annotated with to the annotation.Set<Class<?>>
findByFilter(PackageScanFilter filter, String... packageNames)
Attempts to discover classes filter by the provided filterSet<Class<?>>
findImplementations(Class<?> parent, String... packageNames)
Attempts to discover classes that are assignable to the type provided (exclude abstract classes).Set<ClassLoader>
getClassLoaders()
Gets the ClassLoader instances that should be used when scanning for classes.void
removeFilter(PackageScanFilter filter)
Removes the filtervoid
setAcceptableSchemes(String schemes)
To specify a set of accepted schemas to use for loading resources as URL connections (besides http and https schemas)
-
-
-
Method Detail
-
getClassLoaders
Set<ClassLoader> getClassLoaders()
Gets the ClassLoader instances that should be used when scanning for classes. This implementation will return a new unmodifiable set containing the classloaders. Use theaddClassLoader(ClassLoader)
method if you want to add new classloaders to the class loaders list.- Returns:
- the class loaders to use
-
addClassLoader
void addClassLoader(ClassLoader classLoader)
Adds the class loader to the existing loaders- Parameters:
classLoader
- the loader to add
-
findAnnotated
Set<Class<?>> findAnnotated(Class<? extends Annotation> annotation, String... packageNames)
Attempts to discover classes that are annotated with to the annotation.- Parameters:
annotation
- the annotation that should be present on matching classespackageNames
- one or more package names to scan (including subpackages) for classes- Returns:
- the classes found, returns an empty set if none found
-
findAnnotated
Set<Class<?>> findAnnotated(Set<Class<? extends Annotation>> annotations, String... packageNames)
Attempts to discover classes that are annotated with to the annotation.- Parameters:
annotations
- the annotations that should be present (any of them) on matching classespackageNames
- one or more package names to scan (including subpackages) for classes- Returns:
- the classes found, returns an empty set if none found
-
findImplementations
Set<Class<?>> findImplementations(Class<?> parent, String... packageNames)
Attempts to discover classes that are assignable to the type provided (exclude abstract classes). In the case that an interface is provided this method will collect implementations. In the case of a non-interface class, subclasses will be collected.- Parameters:
parent
- the class of interface to find subclasses or implementations ofpackageNames
- one or more package names to scan (including subpackages) for classes- Returns:
- the classes found, returns an empty set if none found
-
findByFilter
Set<Class<?>> findByFilter(PackageScanFilter filter, String... packageNames)
Attempts to discover classes filter by the provided filter- Parameters:
filter
- filter to filter desired classes.packageNames
- one or more package names to scan (including subpackages) for classes- Returns:
- the classes found, returns an empty set if none found
-
addFilter
void addFilter(PackageScanFilter filter)
Add a filter that will be applied to all scan operations- Parameters:
filter
- filter to filter desired classes in all scan operations
-
removeFilter
void removeFilter(PackageScanFilter filter)
Removes the filter- Parameters:
filter
- filter to filter desired classes in all scan operations
-
setAcceptableSchemes
void setAcceptableSchemes(String schemes)
To specify a set of accepted schemas to use for loading resources as URL connections (besides http and https schemas)
-
clearCache
void clearCache()
Clears and frees the internal cache.
-
-