Package org.eclipse.jetty.annotations
Class AnnotationConfiguration
java.lang.Object
org.eclipse.jetty.webapp.AbstractConfiguration
org.eclipse.jetty.annotations.AnnotationConfiguration
- All Implemented Interfaces:
Configuration
Configuration for Annotations
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic classclassParserTask Task to executing scanning of a resource for annotations.classServletContainerInitializerComparator Comparator impl that orders a set of ServletContainerInitializers according to the list of classnames (optionally containing a "*" wildcard character) established in a ServletContainerInitializerOrdering.classServletContainerInitializerOrderingclassTimeStatistic Simple class to capture elapsed time of an operation.Nested classes/interfaces inherited from interface org.eclipse.jetty.webapp.Configuration
Configuration.ClassList, Configuration.Wrapper, Configuration.WrapperFunction -
Field Summary
FieldsModifier and TypeFieldDescriptionprotected ClassInheritanceHandlerprotected final List<ContainerInitializerAnnotationHandler>protected org.eclipse.jetty.util.statistic.CounterStatisticprotected final List<AbstractDiscoverableAnnotationHandler>protected ServiceLoader<javax.servlet.ServletContainerInitializer>protected List<AnnotationConfiguration.ParserTask>protected Patternprotected org.eclipse.jetty.util.statistic.CounterStatisticprotected org.eclipse.jetty.util.statistic.CounterStatisticstatic final Stringstatic final Stringstatic final Stringstatic final intstatic final booleanstatic final Stringstatic final Stringstatic final Stringstatic final StringFields inherited from interface org.eclipse.jetty.webapp.Configuration
ATTR -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidvoidcloneConfigure(WebAppContext template, WebAppContext context) voidconfigure(WebAppContext context) protected AnnotationParsercreateAnnotationParser(int javaPlatform) voidcreateServletContainerInitializerAnnotationHandlers(WebAppContext context, List<javax.servlet.ServletContainerInitializer> scis) getFragmentFromJar(org.eclipse.jetty.util.resource.Resource jar, List<FragmentDescriptor> frags) Get the web-fragment.xml from a jargetInitializerOrdering(WebAppContext context) Jetty-specific extension that allows an ordering to be applied across ALL ServletContainerInitializers.org.eclipse.jetty.util.resource.ResourcegetJarFor(javax.servlet.ServletContainerInitializer service) protected intgetMaxScanWait(WebAppContext context) Work out how long we should wait for the async scanning to occur.List<javax.servlet.ServletContainerInitializer>getNonExcludedInitializers(WebAppContext context) Get SCIs that are not excluded from considerationbooleanisFromContainerClassPath(WebAppContext context, javax.servlet.ServletContainerInitializer sci) Test if the ServletContainerInitializer is from the container classpathbooleanisFromExcludedJar(WebAppContext context, javax.servlet.ServletContainerInitializer sci, org.eclipse.jetty.util.resource.Resource sciResource) Check to see if the ServletContainerIntializer loaded via the ServiceLoader came from a jar that is excluded by the fragment ordering.booleanisFromWebInfClasses(WebAppContext context, org.eclipse.jetty.util.resource.Resource sci) Test if the ServletContainerInitializer is from WEB-INF/classesbooleanprotected booleanisUseMultiThreading(WebAppContext context) Check if we should use multiple threads to scan for annotations or notbooleanmatchesExclusionPattern(javax.servlet.ServletContainerInitializer sci) Test if the ServletContainerIntializer is excluded by the o.e.j.containerInitializerExclusionPatternvoidparseContainerPath(WebAppContext context, AnnotationParser parser) Scan jars on container path.voidparseWebInfClasses(WebAppContext context, AnnotationParser parser) Scan classes in WEB-INF/classesvoidparseWebInfLib(WebAppContext context, AnnotationParser parser) Scan jars in WEB-INF/libvoidpostConfigure(WebAppContext context) voidpreConfigure(WebAppContext context) protected voidscanForAnnotations(WebAppContext context) Perform scanning of classes for annotationsMethods inherited from class org.eclipse.jetty.webapp.AbstractConfiguration
deconfigure, destroy
-
Field Details
-
SERVLET_CONTAINER_INITIALIZER_EXCLUSION_PATTERN
- See Also:
-
SERVLET_CONTAINER_INITIALIZER_ORDER
- See Also:
-
CLASS_INHERITANCE_MAP
- See Also:
-
CONTAINER_INITIALIZERS
- See Also:
-
CONTAINER_INITIALIZER_STARTER
- See Also:
-
MULTI_THREADED
- See Also:
-
MAX_SCAN_WAIT
- See Also:
-
DEFAULT_MAX_SCAN_WAIT
public static final int DEFAULT_MAX_SCAN_WAIT- See Also:
-
DEFAULT_MULTI_THREADED
public static final boolean DEFAULT_MULTI_THREADED- See Also:
-
_discoverableAnnotationHandlers
-
_classInheritanceHandler
-
_containerInitializerAnnotationHandlers
-
_parserTasks
-
_containerPathStats
protected org.eclipse.jetty.util.statistic.CounterStatistic _containerPathStats -
_webInfLibStats
protected org.eclipse.jetty.util.statistic.CounterStatistic _webInfLibStats -
_webInfClassesStats
protected org.eclipse.jetty.util.statistic.CounterStatistic _webInfClassesStats -
_sciExcludePattern
-
_loadedInitializers
-
-
Constructor Details
-
AnnotationConfiguration
public AnnotationConfiguration()
-
-
Method Details
-
preConfigure
- Specified by:
preConfigurein interfaceConfiguration- Overrides:
preConfigurein classAbstractConfiguration- Throws:
Exception
-
addDiscoverableAnnotationHandler
-
configure
- Specified by:
configurein interfaceConfiguration- Overrides:
configurein classAbstractConfiguration- Throws:
Exception- See Also:
-
postConfigure
- Specified by:
postConfigurein interfaceConfiguration- Overrides:
postConfigurein classAbstractConfiguration- Throws:
Exception- See Also:
-
scanForAnnotations
Perform scanning of classes for annotations- Parameters:
context- the context for the scan- Throws:
Exception- if unable to scan
-
createAnnotationParser
- Parameters:
javaPlatform- The java platform to scan for.- Returns:
- a new AnnotationParser. This method can be overridden to use a different implementation of the AnnotationParser. Note that this is considered internal API.
-
isUseMultiThreading
Check if we should use multiple threads to scan for annotations or not- Parameters:
context- the context of the multi threaded setting- Returns:
- true if multi threading is enabled on the context, server, or via a System property.
- See Also:
-
getMaxScanWait
Work out how long we should wait for the async scanning to occur.- Parameters:
context- the context of the max scan wait setting- Returns:
- the max scan wait setting on the context, or server, or via a System property.
- See Also:
-
cloneConfigure
- Specified by:
cloneConfigurein interfaceConfiguration- Overrides:
cloneConfigurein classAbstractConfiguration- Throws:
Exception- See Also:
-
createServletContainerInitializerAnnotationHandlers
public void createServletContainerInitializerAnnotationHandlers(WebAppContext context, List<javax.servlet.ServletContainerInitializer> scis) -
getJarFor
public org.eclipse.jetty.util.resource.Resource getJarFor(javax.servlet.ServletContainerInitializer service) throws IOException - Throws:
IOException
-
isFromExcludedJar
public boolean isFromExcludedJar(WebAppContext context, javax.servlet.ServletContainerInitializer sci, org.eclipse.jetty.util.resource.Resource sciResource) Check to see if the ServletContainerIntializer loaded via the ServiceLoader came from a jar that is excluded by the fragment ordering. See ServletSpec 3.0 p.85.- Parameters:
context- the context for the jarssci- the servlet container initializersciResource- the resource for the servlet container initializer- Returns:
- true if excluded
-
matchesExclusionPattern
public boolean matchesExclusionPattern(javax.servlet.ServletContainerInitializer sci) Test if the ServletContainerIntializer is excluded by the o.e.j.containerInitializerExclusionPattern- Parameters:
sci- the ServletContainerIntializer- Returns:
- true if the ServletContainerIntializer is excluded
-
isFromContainerClassPath
public boolean isFromContainerClassPath(WebAppContext context, javax.servlet.ServletContainerInitializer sci) Test if the ServletContainerInitializer is from the container classpath- Parameters:
context- the context for the webapp classpathsci- the ServletContainerIntializer- Returns:
- true if ServletContainerIntializer is from container classpath
-
isFromWebInfClasses
public boolean isFromWebInfClasses(WebAppContext context, org.eclipse.jetty.util.resource.Resource sci) Test if the ServletContainerInitializer is from WEB-INF/classes- Parameters:
context- the webapp to testsci- a Resource representing the SCI- Returns:
- true if the sci Resource is inside a WEB-INF/classes directory, false otherwise
-
getNonExcludedInitializers
public List<javax.servlet.ServletContainerInitializer> getNonExcludedInitializers(WebAppContext context) throws Exception Get SCIs that are not excluded from consideration- Parameters:
context- the web app context- Returns:
- the list of non-excluded servlet container initializers
- Throws:
Exception- if unable to get list
-
getInitializerOrdering
public AnnotationConfiguration.ServletContainerInitializerOrdering getInitializerOrdering(WebAppContext context) Jetty-specific extension that allows an ordering to be applied across ALL ServletContainerInitializers.- Parameters:
context- the context for the initializer ordering configuration- Returns:
- the ordering of the ServletContainerIntializer's
-
parseContainerPath
Scan jars on container path.- Parameters:
context- the context for the scanparser- the parser to scan with- Throws:
Exception- if unable to scan
-
parseWebInfLib
Scan jars in WEB-INF/lib- Parameters:
context- the context for the scanparser- the annotation parser to use- Throws:
Exception- if unable to scan and/or parse
-
parseWebInfClasses
Scan classes in WEB-INF/classes- Parameters:
context- the context for the scanparser- the annotation parser to use- Throws:
Exception- if unable to scan and/or parse
-
getFragmentFromJar
public FragmentDescriptor getFragmentFromJar(org.eclipse.jetty.util.resource.Resource jar, List<FragmentDescriptor> frags) throws Exception Get the web-fragment.xml from a jar- Parameters:
jar- the jar to look in for a fragmentfrags- the fragments previously found- Returns:
- true if the fragment if found, or null of not found
- Throws:
Exception- if unable to determine the the fragment contains
-
isMetaDataComplete
-