Class AnnotationProvider
- java.lang.Object
-
- com.sun.faces.spi.AnnotationProvider
-
- Direct Known Subclasses:
AnnotationScanner,FilterClassesFromFacesInitializerAnnotationProvider
public abstract class AnnotationProvider extends Object
An integration point for integrators to provide custom annotation scanning.
All
AnnotationProviderimplementations must scan for the following annotations:- FacesComponent
- FacesConverter
- FacesRenderer
- FacesValidator
- ManagedBean
- NamedEvent
- FacesBehavior
- FacesBehaviorRenderer
The
AnnotationProviderinstance will be wrapped as aFutureand executed during the environment initialization. The result of the future can be obtained by callingConfigManager.getAnnotatedClasses(jakarta.faces.context.FacesContext).The
Futureitself can be obtained from the application map using the keycom.sun.faces.config.ConfigManager__ANNOTATION_SCAN_TASK.It's important to note that the value returned by either method described above is only available while the application is being initialized and will be removed before the application is put into service.
To register a custom AnnotationProvider with the runtime, place a file named com.sun.faces.spi.annotationprovider within META-INF/services of a JAR file, with a single line referencing the fully qualified class name of the AnnotationProvider implementation. Custom AnnotationProviders can be used to decorate the default AnnotationProvider by providing a constructor that takes an AnnotationProvider as the second parameter:
public AnnotationProvider(ServletContext sc, AnnotationProvider parent)If decoration is not desired, then the custom provider must have a constructor that takes one paramer, a
ServletContext:public AnnotationProvider(ServletContext sc)All customer providers must extend this class.
-
-
Field Summary
Fields Modifier and Type Field Description protected jakarta.servlet.ServletContextservletContextprotected AnnotationProviderwrappedAnnotationProviderThe wrapped annotation provider.
-
Constructor Summary
Constructors Constructor Description AnnotationProvider()AnnotationProvider(jakarta.servlet.ServletContext servletContext)
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description abstract Map<Class<? extends Annotation>,Set<Class<?>>>getAnnotatedClasses(Set<URI> urls)
-
-
-
Field Detail
-
servletContext
protected jakarta.servlet.ServletContext servletContext
-
wrappedAnnotationProvider
protected AnnotationProvider wrappedAnnotationProvider
The wrapped annotation provider. May be null if this class is not loaded viaServiceLoader(from a file named com.sun.faces.spi.AnnotationProvider) and is instead loaded via Mojarra's ServiceFactory (from a file named com.sun.faces.spi.annotationprovider).
-
-
Method Detail
-
getAnnotatedClasses
public abstract Map<Class<? extends Annotation>,Set<Class<?>>> getAnnotatedClasses(Set<URI> urls)
- Parameters:
urls- aSetof URLs that refer to specific faces-config.xml documents on the classpath. The information returned by the map may return annotation information from sources outside of those defined by the urls.- Returns:
- a
Mapof classes mapped to a specific annotation type. If no annotations are present, this method returns an emptyMap.
-
-