Interface Configuration

All Known Implementing Classes:
AbstractConfiguration, AnnotationConfiguration, AnnotationConfiguration, AntMetaInfConfiguration, AntWebInfConfiguration, AntWebXmlConfiguration, CdiConfiguration, Configuration.Wrapper, EnvConfiguration, FragmentConfiguration, JaasConfiguration, JakartaWebSocketConfiguration, JaspiConfiguration, JettyWebSocketClientConfiguration, JettyWebSocketConfiguration, JettyWebXmlConfiguration, JmxConfiguration, JndiConfiguration, JspConfiguration, MetaInfConfiguration, OSGiMetaInfConfiguration, OSGiWebInfConfiguration, PlusConfiguration, QuickStartConfiguration, QuickStartGeneratorConfiguration, ServletsConfiguration, WebAppConfiguration, WebInfConfiguration, WebXmlConfiguration

public interface Configuration
A pluggable Configuration for WebAppContexts.

A WebAppContext is configured by the application of one or more Configuration instances. Typically each implemented Configuration is responsible for an aspect of the servlet specification (eg WebXmlConfiguration, FragmentConfiguration, etc.) or feature (eg JakartaWebSocketConfiguration, JmxConfiguration etc.)

Configuration instances are discovered by the Configurations class using either the ServiceLoader mechanism or by an explicit call to Configurations.setKnown(String...). By default, all Configurations that do not return false from isEnabledByDefault() are applied to all WebAppContexts within the JVM. However a Server wide default Configurations collection may also be defined with Configurations.setServerDefault(org.eclipse.jetty.server.Server). Furthermore, each individual Context may have its Configurations list explicitly set and/or amended with WebAppContext.setConfigurations(Configuration[]), WebAppContext.addConfiguration(Configuration...) or WebAppContext.getConfigurations().

Since Jetty-9.4, Configurations are self ordering using the getDependencies() and getDependents() methods for a TopologicalSort initiated by Configurations.sort() when a WebAppContext is started. This means that feature configurations (eg JndiConfiguration, JaasConfiguration} etc.) can be added or removed without concern for ordering.

Also since Jetty-9.4, Configurations are responsible for providing getServerClasses() and getSystemClasses() to configure the WebAppClassLoader for each context.