Class AnnotationConfiguration

java.lang.Object
org.eclipse.jetty.webapp.AbstractConfiguration
org.eclipse.jetty.annotations.AnnotationConfiguration
All Implemented Interfaces:
org.eclipse.jetty.webapp.Configuration

public class AnnotationConfiguration extends org.eclipse.jetty.webapp.AbstractConfiguration
Configuration for Annotations
  • Field Details

  • Constructor Details

    • AnnotationConfiguration

      public AnnotationConfiguration()
  • Method Details

    • preConfigure

      public void preConfigure(org.eclipse.jetty.webapp.WebAppContext context) throws Exception
      Specified by:
      preConfigure in interface org.eclipse.jetty.webapp.Configuration
      Overrides:
      preConfigure in class org.eclipse.jetty.webapp.AbstractConfiguration
      Throws:
      Exception
    • addDiscoverableAnnotationHandler

      public void addDiscoverableAnnotationHandler(AbstractDiscoverableAnnotationHandler handler)
    • configure

      public void configure(org.eclipse.jetty.webapp.WebAppContext context) throws Exception
      Specified by:
      configure in interface org.eclipse.jetty.webapp.Configuration
      Overrides:
      configure in class org.eclipse.jetty.webapp.AbstractConfiguration
      Throws:
      Exception
    • postConfigure

      public void postConfigure(org.eclipse.jetty.webapp.WebAppContext context) throws Exception
      Specified by:
      postConfigure in interface org.eclipse.jetty.webapp.Configuration
      Overrides:
      postConfigure in class org.eclipse.jetty.webapp.AbstractConfiguration
      Throws:
      Exception
    • scanForAnnotations

      protected void scanForAnnotations(org.eclipse.jetty.webapp.WebAppContext context) 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(org.eclipse.jetty.webapp.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(org.eclipse.jetty.webapp.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:
    • cloneConfigure

      public void cloneConfigure(org.eclipse.jetty.webapp.WebAppContext template, org.eclipse.jetty.webapp.WebAppContext context) throws Exception
      Overrides:
      cloneConfigure in class org.eclipse.jetty.webapp.AbstractConfiguration
      Throws:
      Exception
    • createServletContainerInitializerAnnotationHandlers

      public void createServletContainerInitializerAnnotationHandlers(org.eclipse.jetty.webapp.WebAppContext context, List<javax.servlet.ServletContainerInitializer> scis) throws Exception
      Throws:
      Exception
    • getJarFor

      public org.eclipse.jetty.util.resource.Resource getJarFor(javax.servlet.ServletContainerInitializer service) throws MalformedURLException, IOException
      Throws:
      MalformedURLException
      IOException
    • isFromExcludedJar

      public boolean isFromExcludedJar(org.eclipse.jetty.webapp.WebAppContext context, javax.servlet.ServletContainerInitializer sci, org.eclipse.jetty.util.resource.Resource sciResource) throws Exception
      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
      Throws:
      Exception - if unable to determine exclusion
    • 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(org.eclipse.jetty.webapp.WebAppContext context, javax.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(org.eclipse.jetty.webapp.WebAppContext context, org.eclipse.jetty.util.resource.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

      public List<javax.servlet.ServletContainerInitializer> getNonExcludedInitializers(org.eclipse.jetty.webapp.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(org.eclipse.jetty.webapp.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

      public void parseContainerPath(org.eclipse.jetty.webapp.WebAppContext context, AnnotationParser parser) throws Exception
      Scan jars on container path.
      Parameters:
      context - the context for the scan
      parser - the parser to scan with
      Throws:
      Exception - if unable to scan
    • parseWebInfLib

      public void parseWebInfLib(org.eclipse.jetty.webapp.WebAppContext context, 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:
      context - the context for the scan
      parser - the annotation parser to use
      Throws:
      Exception - if unable to scan and/or parse
    • parseWebInfClasses

      public void parseWebInfClasses(org.eclipse.jetty.webapp.WebAppContext context, AnnotationParser parser) throws Exception
      Scan classes in WEB-INF/classes.
      Parameters:
      context - the context for the scan
      parser - the annotation parser to use
      Throws:
      Exception - if unable to scan and/or parse