Interface Configuration
- All Known Implementing Classes:
AbstractConfiguration,AnnotationConfiguration,AnnotationConfiguration,AntMetaInfConfiguration,AntWebInfConfiguration,AntWebXmlConfiguration,CdiConfiguration,Configuration.Wrapper,EnvConfiguration,FragmentConfiguration,JaasConfiguration,JaspiConfiguration,JavaxWebSocketConfiguration,JettyWebSocketClientConfiguration,JettyWebSocketConfiguration,JettyWebXmlConfiguration,JmxConfiguration,JndiConfiguration,JspConfiguration,MetaInfConfiguration,OSGiMetaInfConfiguration,OSGiWebInfConfiguration,PlusConfiguration,QuickStartConfiguration,QuickStartGeneratorConfiguration,ServletsConfiguration,WebAppConfiguration,WebInfConfiguration,WebXmlConfiguration
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 JavaxWebSocketConfiguration, 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.
-
Nested Class Summary
Nested ClassesModifier and TypeInterfaceDescriptionstatic classstatic interfaceExperimental Wrapper mechanism for WebApp Configuration components. -
Field Summary
Fields -
Method Summary
Modifier and TypeMethodDescriptionbooleanabort(WebAppContext context) voidconfigure(WebAppContext context) Configure WebApp.voiddeconfigure(WebAppContext context) DeConfigure WebApp.voiddestroy(WebAppContext context) Destroy WebApp.default Collection<String>Get known Configuration Dependencies.default Collection<String>Get known Configuration Dependents.default ClassMatcherGet the system classes associated with this Configuration.default ClassMatcherGet the system classes associated with this Configuration.default booleanbooleanvoidpostConfigure(WebAppContext context) Clear down after configuration.voidpreConfigure(WebAppContext context) Set up for configuration.default Class<? extends Configuration>replaces()Get a class that this class replaces/extends.
-
Field Details
-
ATTR
- See Also:
-
-
Method Details
-
isAvailable
default boolean isAvailable()- Returns:
- True if the feature this configuration represents is available and has all its dependencies.
-
replaces
Get a class that this class replaces/extends. If this is added toConfigurationscollection that already contains a configuration of the replaced class or that reports to replace the same class, then it is replaced with this instance.- Returns:
- The class this Configuration replaces/extends or null if it replaces no other configuration
-
getDependencies
Get known Configuration Dependencies.- Returns:
- The names of Configurations that
TopologicalSortmust order before this configuration.
-
getDependents
Get known Configuration Dependents.- Returns:
- The names of Configurations that
TopologicalSortmust order after this configuration.
-
getSystemClasses
Get the system classes associated with this Configuration.- Returns:
- ClassMatcher of system classes.
-
getServerClasses
Get the system classes associated with this Configuration.- Returns:
- ClassMatcher of server classes.
-
preConfigure
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.
- Parameters:
context- The context to configure- Throws:
Exception- if unable to pre configure
-
configure
Configure WebApp.Typically this step applies the discovered configuration resources to either the
WebAppContextor the associatedMetaData.- Parameters:
context- The context to configure- Throws:
Exception- if unable to configure
-
postConfigure
Clear down after configuration.- Parameters:
context- The context to configure- Throws:
Exception- if unable to post configure
-
deconfigure
DeConfigure WebApp. This method is called to undo all configuration done. This is called to allow the context to work correctly over a stop/start cycle- Parameters:
context- The context to configure- Throws:
Exception- if unable to deconfigure
-
destroy
Destroy WebApp. This method is called to destroy a webappcontext. It is typically called when a context is removed from a server handler hierarchy by the deployer.- Parameters:
context- The context to configure- Throws:
Exception- if unable to destroy
-
isEnabledByDefault
boolean isEnabledByDefault()- Returns:
- true if configuration is enabled by default
-
abort
- Returns:
- true if configuration should be aborted
-