Interface Configuration
- All Known Implementing Classes:
AbstractConfiguration
,AnnotationConfiguration
,AnnotationConfiguration
,CdiConfiguration
,EnvConfiguration
,FragmentConfiguration
,JaasConfiguration
,JakartaWebSocketConfiguration
,JaspiConfiguration
,JettyWebSocketConfiguration
,JettyWebXmlConfiguration
,JmxConfiguration
,JndiConfiguration
,JspConfiguration
,MetaInfConfiguration
,OSGiMetaInfConfiguration
,PlusConfiguration
,QuickStartConfiguration
,QuickStartGeneratorConfiguration
,ServletsConfiguration
,WebAppConfiguration
,WebInfConfiguration
,WebXmlConfiguration
WebAppContext
s.
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 WebAppContext
s 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 EE10 in Jetty-12, Configuration implementations must be stateless/immutable.
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 getHiddenClasses()
and
getProtectedClasses()
to configure the WebAppClassLoader
for each context.
-
Method Summary
Modifier and TypeMethodDescriptionboolean
abort
(WebAppContext context) void
configure
(WebAppContext context) Configure WebApp.void
deconfigure
(WebAppContext context) DeConfigure WebApp.void
destroy
(WebAppContext context) Destroy WebApp.default Collection<String>
Get known Configuration Dependencies.default Collection<String>
Get known Configuration Dependents.default ClassMatcher
Get the server (hidden) classes associated with this Configuration.default ClassMatcher
Get the system (protected) classes associated with this Configuration.default ClassMatcher
Deprecated, for removal: This API element is subject to removal in a future version.default ClassMatcher
Deprecated, for removal: This API element is subject to removal in a future version.usegetProtectedClasses()
insteaddefault boolean
boolean
void
postConfigure
(WebAppContext context) Clear down after configuration.void
preConfigure
(WebAppContext context) Set up for configuration.default Class<? extends Configuration>
replaces()
Get a class that this class replaces/extends.
-
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 toConfigurations
collection 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
TopologicalSort
must order before this configuration.
-
getDependents
Get known Configuration Dependents.- Returns:
- The names of Configurations that
TopologicalSort
must order after this configuration.
-
getProtectedClasses
Get the system (protected) classes associated with this Configuration.- Returns:
- ClassMatcher of system classes.
-
getHiddenClasses
Get the server (hidden) classes associated with this Configuration.- Returns:
- ClassMatcher of server classes.
-
getSystemClasses
Deprecated, for removal: This API element is subject to removal in a future version.usegetProtectedClasses()
instead -
getServerClasses
Deprecated, for removal: This API element is subject to removal in a future version.usegetHiddenClasses()
instead -
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
WebAppContext
or 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
-
getHiddenClasses()
instead