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

public class AnnotationConfiguration extends AbstractConfiguration
Configuration for Annotations
  • Field Details

  • Constructor Details

    • AnnotationConfiguration

      public AnnotationConfiguration()
  • Method Details

    • preConfigure

      public void preConfigure(WebAppContext context)
      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 interface Configuration
      Overrides:
      preConfigure in class AbstractConfiguration
      Parameters:
      context - The context to configure
    • configure

      public void configure(WebAppContext context) throws Exception
      Description copied from interface: Configuration
      Configure WebApp.

      Typically this step applies the discovered configuration resources to either the WebAppContext or the associated MetaData.

      Specified by:
      configure in interface Configuration
      Overrides:
      configure in class AbstractConfiguration
      Parameters:
      context - The context to configure
      Throws:
      Exception - if unable to configure
    • postConfigure

      public void postConfigure(WebAppContext context) throws Exception
      Description copied from interface: Configuration
      Clear down after configuration.
      Specified by:
      postConfigure in interface Configuration
      Overrides:
      postConfigure in class AbstractConfiguration
      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

      protected AnnotationParser createAnnotationParser(int javaPlatform)
      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

      protected boolean isUseMultiThreading(WebAppContext context)
      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

      protected int getMaxScanWait(WebAppContext context)
      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 jars
      sci - the servlet container initializer
      sciResource - 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 parsing
      sci - 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 classpath
      sci - the ServletContainerIntializer
      Returns:
      true if ServletContainerIntializer is from container classpath
    • isFromWebInfClasses

      public boolean isFromWebInfClasses(WebAppContext context, Resource sci)
      Test if the ServletContainerInitializer is from WEB-INF/classes
      Parameters:
      context - the webapp to test
      sci - 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

      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

      public void parseContainerPath(WebAppContext context, AnnotationParser parser)
      Scan jars on container path.
      Parameters:
      context - the context for the scan
      parser - 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 scan
      parser - the annotation parser to use
      Throws:
      Exception - if unable to scan and/or parse
    • parseWebInfClasses

      protected void parseWebInfClasses(AnnotationConfiguration.State state, AnnotationParser parser)
      Scan classes in WEB-INF/classes.
      Parameters:
      state - the state for the scan
      parser - the annotation parser to use