public abstract class AnnotationProvider extends Object
An integration point for integrators to provide custom annotation scanning.
All AnnotationProvider
implementations must scan for the following annotations:
The AnnotationProvider
instance will be wrapped as a Future
and executed
during the environment initialization. The result of the future can be obtained by calling
ConfigManager.getAnnotatedClasses(javax.faces.context.FacesContext)
.
The Future
itself can be obtained from the application map using the key
com.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.
Modifier and Type | Field and Description |
---|---|
protected javax.servlet.ServletContext |
servletContext |
protected AnnotationProvider |
wrappedAnnotationProvider
The wrapped annotation provider.
|
Constructor and Description |
---|
AnnotationProvider() |
AnnotationProvider(javax.servlet.ServletContext servletContext) |
Modifier and Type | Method and Description |
---|---|
abstract Map<Class<? extends Annotation>,Set<Class<?>>> |
getAnnotatedClasses(Set<URI> urls) |
protected javax.servlet.ServletContext servletContext
protected AnnotationProvider wrappedAnnotationProvider
ServiceLoader
(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).public AnnotationProvider(javax.servlet.ServletContext servletContext)
public AnnotationProvider()
public abstract Map<Class<? extends Annotation>,Set<Class<?>>> getAnnotatedClasses(Set<URI> urls)
urls
- a Set
of 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.Map
of classes mapped to a specific annotation type. If no annotations are present, this
method returns an empty Map
.Comments to: faces-dev@eclipse.org.
Copyright © 2019 Eclipse Foundation. All rights reserved.
Use is subject to license terms.