org.apache.camel.spi
Interface PackageScanClassResolver

All Known Implementing Classes:
CorePackageScanClassResolver, DefaultPackageScanClassResolver, EclipsePackageScanClassResolver, OsgiPackageScanClassResolver, WebSpherePackageScanClassResolver

public interface PackageScanClassResolver

A resolver that can find resources based on package scanning.


Method Summary
 void addClassLoader(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
 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 filter
 Set<Class<?>> findImplementations(Class<?> parent, String... packageNames)
          Attempts to discover classes that are assignable to the type provided.
 Set<ClassLoader> getClassLoaders()
          Gets the ClassLoader instances that should be used when scanning for classes.
 void removeFilter(PackageScanFilter filter)
          Removes the filter
 void setClassLoaders(Set<ClassLoader> classLoaders)
          Deprecated. will be removed in Camel 3.0. Use addClassLoader(ClassLoader) instead.
 

Method Detail

setClassLoaders

@Deprecated
void setClassLoaders(Set<ClassLoader> classLoaders)
Deprecated. will be removed in Camel 3.0. Use addClassLoader(ClassLoader) instead.

Sets the ClassLoader instances that should be used when scanning for classes. If none is set then the context classloader will be used.

Parameters:
classLoaders - loaders to use when scanning for classes

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 the addClassLoader(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 classes
packageNames - 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 classes
packageNames - 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. 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 of
packageNames - 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


Apache CAMEL