Class AnnotationConfiguration
java.lang.Object
org.eclipse.jetty.ee10.webapp.AbstractConfiguration
org.eclipse.jetty.ee10.annotations.AnnotationConfiguration
- All Implemented Interfaces:
Configuration
- Direct Known Subclasses:
AnnotationConfiguration
Configuration for Annotations
-
Nested Class Summary
Modifier and TypeClassDescriptionstatic class
static class
static class
ParserTaskstatic class
ServletContainerInitializerComparatorstatic class
ServletContainerInitializerOrderingprotected static class
static class
Simple class to capture elapsed time of an operation.Nested classes/interfaces inherited from class org.eclipse.jetty.ee10.webapp.AbstractConfiguration
AbstractConfiguration.Builder
-
Field Summary
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionvoid
configure
(WebAppContext context) Configure WebApp.protected AnnotationParser
createAnnotationParser
(int javaPlatform) void
createServletContainerInitializerAnnotationHandlers
(WebAppContext context, List<jakarta.servlet.ServletContainerInitializer> scis) getInitializerOrdering
(WebAppContext context) Jetty-specific extension that allows an ordering to be applied across ALL ServletContainerInitializers.protected Resource
getJarFor
(WebAppContext context, jakarta.servlet.ServletContainerInitializer service) protected int
getMaxScanWait
(WebAppContext context) Work out how long we should wait for the async scanning to occur.protected List<jakarta.servlet.ServletContainerInitializer>
Get SCIs that are not excluded from considerationboolean
isFromContainerClassPath
(WebAppContext context, jakarta.servlet.ServletContainerInitializer sci) Test if the ServletContainerInitializer is from the container classpathboolean
isFromExcludedJar
(WebAppContext context, jakarta.servlet.ServletContainerInitializer sci, Resource sciResource) Check to see if the ServletContainerIntializer loaded via the ServiceLoader came from a jar that is excluded by the fragment ordering.boolean
isFromWebInfClasses
(WebAppContext context, Resource sci) Test if the ServletContainerInitializer is from WEB-INF/classesprotected boolean
isUseMultiThreading
(WebAppContext context) Check if we should use multiple threads to scan for annotations or notboolean
matchesExclusionPattern
(AnnotationConfiguration.State state, jakarta.servlet.ServletContainerInitializer sci) Test if the ServletContainerIntializer is excluded by the o.e.j.containerInitializerExclusionPatternvoid
parseContainerPath
(WebAppContext context, AnnotationParser parser) Scan jars on container path.protected void
parseWebInfClasses
(AnnotationConfiguration.State state, AnnotationParser parser) Scan classes in WEB-INF/classes.protected void
parseWebInfLib
(AnnotationConfiguration.State state, AnnotationParser parser) Scan jars in WEB-INF/lib.void
postConfigure
(WebAppContext context) Clear down after configuration.void
preConfigure
(WebAppContext context) Set up for configuration.protected void
scanForAnnotations
(WebAppContext context, AnnotationConfiguration.State state) Perform scanning of classes for discoverable annotations such as WebServlet/WebFilter/WebListenerMethods inherited from class org.eclipse.jetty.ee10.webapp.AbstractConfiguration
abort, deconfigure, destroy, getDependencies, getDependents, getHiddenClasses, getProtectedClasses, isEnabledByDefault
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface org.eclipse.jetty.ee10.webapp.Configuration
getServerClasses, getSystemClasses, isAvailable, replaces
-
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:
-
STATE
- 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:
-
-
Constructor Details
-
AnnotationConfiguration
public AnnotationConfiguration()
-
-
Method Details
-
preConfigure
Description copied from interface:Configuration
Set up for configuration.Typically this step discovers configuration resources. Calls to preConfigure may alter the Configurations configured on the WebAppContext, so long as configurations prior to this configuration are not altered.
- Specified by:
preConfigure
in interfaceConfiguration
- Overrides:
preConfigure
in classAbstractConfiguration
- Parameters:
context
- The context to configure
-
configure
Description copied from interface:Configuration
Configure WebApp.Typically this step applies the discovered configuration resources to either the
WebAppContext
or the associatedMetaData
.- Specified by:
configure
in interfaceConfiguration
- Overrides:
configure
in classAbstractConfiguration
- Parameters:
context
- The context to configure- Throws:
Exception
- if unable to configure
-
postConfigure
Description copied from interface:Configuration
Clear down after configuration.- Specified by:
postConfigure
in interfaceConfiguration
- Overrides:
postConfigure
in classAbstractConfiguration
- Parameters:
context
- The context to configure- Throws:
Exception
- if unable to post configure
-
scanForAnnotations
protected void scanForAnnotations(WebAppContext context, AnnotationConfiguration.State state) throws Exception Perform scanning of classes for discoverable annotations such as WebServlet/WebFilter/WebListener- 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:
-
createServletContainerInitializerAnnotationHandlers
public void createServletContainerInitializerAnnotationHandlers(WebAppContext context, List<jakarta.servlet.ServletContainerInitializer> scis) throws Exception - Throws:
Exception
-
getJarFor
protected Resource getJarFor(WebAppContext context, jakarta.servlet.ServletContainerInitializer service) -
isFromExcludedJar
public boolean isFromExcludedJar(WebAppContext context, jakarta.servlet.ServletContainerInitializer sci, 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(AnnotationConfiguration.State state, jakarta.servlet.ServletContainerInitializer sci) Test if the ServletContainerIntializer is excluded by the o.e.j.containerInitializerExclusionPattern- Parameters:
state
- the state of the Annotation parsingsci
- the ServletContainerIntializer- Returns:
- true if the ServletContainerIntializer is excluded
-
isFromContainerClassPath
public boolean isFromContainerClassPath(WebAppContext context, jakarta.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
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
protected List<jakarta.servlet.ServletContainerInitializer> getNonExcludedInitializers(AnnotationConfiguration.State state) Get SCIs that are not excluded from consideration- Parameters:
state
- the web app annotation parse state- Returns:
- the list of non-excluded servlet container initializers
-
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
-
parseWebInfLib
protected void parseWebInfLib(AnnotationConfiguration.State state, AnnotationParser parser) throws Exception Scan jars in WEB-INF/lib.Only jars selected by MetaInfConfiguration, and that are not excluded by an ordering will be considered.
- Parameters:
state
- the state 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:
state
- the state for the scanparser
- the annotation parser to use
-