diff --git a/jetty-documentation/src/main/asciidoc/administration/sessions/chapter.adoc b/jetty-documentation/src/main/asciidoc/administration/sessions/chapter.adoc index 675d0fe9629..cf8e60419dc 100644 --- a/jetty-documentation/src/main/asciidoc/administration/sessions/chapter.adoc +++ b/jetty-documentation/src/main/asciidoc/administration/sessions/chapter.adoc @@ -29,7 +29,6 @@ include::session-configuration-jdbc.adoc[] include::session-configuration-mongodb.adoc[] include::session-configuration-infinispan.adoc[] include::session-configuration-gcloud.adoc[] -include::session-configuration-gcloud-module.adoc[] //include::setting-session-characteristics.adoc[] //include::using-persistent-sessions.adoc[] //include::session-clustering-jdbc.adoc[] diff --git a/jetty-documentation/src/main/asciidoc/administration/startup/screen-list-logging-modules.adoc b/jetty-documentation/src/main/asciidoc/administration/startup/screen-list-logging-modules.adoc new file mode 100644 index 00000000000..aab3bc3d239 --- /dev/null +++ b/jetty-documentation/src/main/asciidoc/administration/startup/screen-list-logging-modules.adoc @@ -0,0 +1,92 @@ +// ======================================================================== +// Copyright (c) 1995-2016 Mort Bay Consulting Pty. Ltd. +// ======================================================================== +// All rights reserved. This program and the accompanying materials +// are made available under the terms of the Eclipse Public License v1.0 +// and Apache License v2.0 which accompanies this distribution. +// +// The Eclipse Public License is available at +// http://www.eclipse.org/legal/epl-v10.html +// +// The Apache License v2.0 is available at +// http://www.opensource.org/licenses/apache2.0.php +// +// You may elect to redistribute this code under either of these licenses. +// ======================================================================== + +[source, screen, subs="{sub-order}"] +.... +[mybase]$ java -jar ../start.jar --list-modules=logging,-internal + +Available Modules: +================== +tags: [logging, -internal] + +Modules for tag 'logging': +-------------------------- + + Module: console-capture + : Redirects JVMs console stderr and stdout to a log file, + : including output from Jetty's default StdErrLog logging. + Tags: logging + LIB: resources/ + XML: etc/console-capture.xml + + Module: logging-jcl [logging] + : Configure jetty logging to use Java Commons Logging (jcl) + : SLF4J is used as the core logging mechanism. + Tags: logging + Depend: jcl-impl, slf4j-jcl + JVM: -Dorg.eclipse.jetty.util.log.class=org.eclipse.jetty.util.log.Slf4jLog + + Module: logging-jetty [logging] + : Configure jetty logging mechanism. + : Provides a ${jetty.base}/resources/jetty-logging.properties. + Tags: logging + Depend: console-capture, resources + + Module: logging-jul [logging] + : Configure jetty logging to use Java Util Logging (jul) + : SLF4J is used as the core logging mechanism. + Tags: logging + Depend: jul-impl, slf4j-jul + JVM: -Dorg.eclipse.jetty.util.log.class=org.eclipse.jetty.util.log.Slf4jLog + + Module: logging-log4j [logging] + : Configure jetty logging to use Log4j Logging + : SLF4J is used as the core logging mechanism. + Tags: logging + Depend: log4j-impl, slf4j-log4j + JVM: -Dorg.eclipse.jetty.util.log.class=org.eclipse.jetty.util.log.Slf4jLog + + Module: logging-log4j2 [logging] + : Configure jetty logging to use log4j version 2 + : SLF4J is used as the core logging mechanism. + Tags: logging + Depend: slf4j-log4j2, log4j2-impl + JVM: -Dorg.eclipse.jetty.util.log.class=org.eclipse.jetty.util.log.Slf4jLog + + Module: logging-logback [logging] + : Configure jetty logging to use Logback Logging. + : SLF4J is used as the core logging mechanism. + Tags: logging + Depend: logback-impl, slf4j-logback + JVM: -Dorg.eclipse.jetty.util.log.class=org.eclipse.jetty.util.log.Slf4jLog + + Module: logging-slf4j [logging] + : Configure jetty logging to use slf4j. + : Any slf4j-impl implementation is used + Tags: logging + Depend: slf4j-api, slf4j-impl + JVM: -Dorg.eclipse.jetty.util.log.class=org.eclipse.jetty.util.log.Slf4jLog + +Modules for tag 'requestlog': +----------------------------- + + Module: logback-access [requestlog] + : Enables logback request log. + Tags: requestlog, logging, logback + Depend: server, logback-core, resources + LIB: lib/logback/logback-access-${logback.version}.jar + XML: etc/jetty-logback-access.xml +.... diff --git a/jetty-documentation/src/main/asciidoc/administration/startup/screen-list-modules.adoc b/jetty-documentation/src/main/asciidoc/administration/startup/screen-list-modules.adoc index c44902bc61d..69c9e264b8e 100644 --- a/jetty-documentation/src/main/asciidoc/administration/startup/screen-list-modules.adoc +++ b/jetty-documentation/src/main/asciidoc/administration/startup/screen-list-modules.adoc @@ -18,361 +18,145 @@ .... [mybase]$ java -jar ../start.jar --list-modules -Jetty All Available Modules: ----------------------------- +Available Modules: +================== +tags: [-internal] - [ ] Module: alpn +Modules for tag '*': +-------------------- + + Module: alpn : Enables the ALPN extension to TLS(SSL) by adding modified classes to : the JVM bootpath. : This modification has a tight dependency on specific recent updates of : Java 1.7 and Java 1.8 (Java versions prior to 1.7u40 are not supported). : The alpn module will use an appropriate alpn-boot jar for your : specific version of Java. - Depend: alpn-impl/alpn-${java.version} - Depend: ssl + Depend: alpn-impl/alpn-${java.version}, ssl LIB: lib/jetty-alpn-client-${jetty.version}.jar LIB: lib/jetty-alpn-server-${jetty.version}.jar XML: etc/jetty-alpn.xml - [ ] Module: annotations + Module: annotations : Enables Annotation scanning for deployed webapplications. Depend: plus LIB: lib/jetty-annotations-${jetty.version}.jar LIB: lib/annotations/*.jar XML: etc/jetty-annotations.xml - [ ] Module: apache-jsp + Module: apache-jsp : Enables use of the apache implementation of JSP LIB: lib/apache-jsp/*.jar - [ ] Module: apache-jstl + Module: apache-jstl : Enables the apache version of JSTL LIB: lib/apache-jstl/*.jar - [ ] Module: cdi + Module: cdi : Experimental CDI/Weld integration - Depend: jsp - Depend: annotations - Depend: plus - Depend: deploy + Depend: jsp, annotations, plus, deploy LIB: lib/cdi/*.jar LIB: lib/cdi-core-${jetty.version}.jar LIB: lib/cdi-servlet-${jetty.version}.jar XML: etc/jetty-cdi.xml - [ ] Module: client + Module: client : Adds the Jetty HTTP client to the server classpath. LIB: lib/jetty-client-${jetty.version}.jar - [ ] Module: continuation + Module: continuation : Enables support for Continuation style asynchronous : Servlets. Now deprecated in favour of Servlet 3.1 : API LIB: lib/jetty-continuation-${jetty.version}.jar - [ ] Module: debug - : Enables the DebugListener to generate additional - : logging regarding detailed request handling events. - : Renames threads to include request URI. - Depend: deploy - XML: etc/jetty-debug.xml - - [ ] Module: debuglog - : Deprecated Debug Log using the DebugHandle. - : Replaced with the debug module. - Depend: server - XML: etc/jetty-debuglog.xml - - [x] Module: deploy + Module: deploy : Enables webapplication deployment from the webapps directory. Depend: webapp LIB: lib/jetty-deploy-${jetty.version}.jar XML: etc/jetty-deploy.xml - Enabled: ${jetty.base}/start.d/deploy.ini - [ ] Module: ext - : Adds all jar files discovered in $JETTY_HOME/lib/ext - : and $JETTY_BASE/lib/ext to the servers classpath. - LIB: lib/ext/**.jar - - [ ] Module: fcgi + Module: fcgi : Adds the FastCGI implementation to the classpath. - Depend: servlet - Depend: client + Depend: servlet, client LIB: lib/jetty-proxy-${jetty.version}.jar LIB: lib/fcgi/*.jar - [ ] Module: gzip - : Enable GzipHandler for dynamic gzip compression - : for the entire server. + Module: flight-recorder Depend: server - XML: etc/jetty-gzip.xml + JVM: -XX:+UnlockCommercialFeatures + JVM: -XX:+FlightRecorder - [ ] Module: hawtio - : Deploys the Hawtio console as a webapplication. - Depend: jmx - Depend: stats - Depend: deploy - XML: etc/hawtio.xml - - [ ] Module: home-base-warning + Module: home-base-warning : Generates a warning that server has been run from $JETTY_HOME : rather than from a $JETTY_BASE. XML: etc/home-base-warning.xml - [x] Module: http - : Enables a HTTP connector on the server. - : By default HTTP/1 is support, but HTTP2C can - : be added to the connector with the http2c module. - Depend: server - XML: etc/jetty-http.xml - Enabled: ${jetty.base}/start.d/http.ini - - [ ] Module: http-forwarded - : Adds a forwarded request customizer to the HTTP Connector - : to process forwarded-for style headers from a proxy. - Depend: http - XML: etc/jetty-http-forwarded.xml - - [ ] Module: http2 - : Enables HTTP2 protocol support on the TLS(SSL) Connector, - : using the ALPN extension to select which protocol to use. - Depend: alpn - Depend: ssl - LIB: lib/http2/*.jar - XML: etc/jetty-http2.xml - - [ ] Module: http2c - : Enables the HTTP2C protocol on the HTTP Connector - : The connector will accept both HTTP/1 and HTTP/2 connections. - Depend: http - LIB: lib/http2/*.jar - XML: etc/jetty-http2c.xml - - [ ] Module: https - : Adds HTTPS protocol support to the TLS(SSL) Connector - Depend: ssl - Optional: http-forwarded - Optional: http2 - XML: etc/jetty-https.xml - - [ ] Module: ipaccess - : Enable the ipaccess handler to apply a white/black list - : control of the remote IP of requests. - Depend: server - XML: etc/jetty-ipaccess.xml - - [ ] Module: jaas + Module: jaas : Enable JAAS for deployed webapplications. Depend: server LIB: lib/jetty-jaas-${jetty.version}.jar XML: etc/jetty-jaas.xml - [ ] Module: jamon - : Deploys the JAMon webapplication - Depend: jmx - Depend: stats - Depend: jsp - Depend: deploy - LIB: lib/jamon/**.jar - XML: etc/jamon.xml - - [ ] Module: jaspi + Module: jaspi : Enable JASPI authentication for deployed webapplications. Depend: security LIB: lib/jetty-jaspi-${jetty.version}.jar LIB: lib/jaspi/*.jar - [ ] Module: jcl - Provides: [jcl, jcl-impl, jcl-api] - : Provides a Java Commons Logging implementation. - : To receive jetty logs the jetty-slf4j and slf4j-jcl must also be enabled. - LIB: lib/jcl/commons-logging-${jcl.version}.jar - - [ ] Module: jcl-slf4j - Provides: [jcl-slf4j, jcl-impl, jcl-api] - : Provides a Java Commons Logging implementation that logs to the SLF4J API. - : Requires another module that provides and SLF4J implementation. - Depend: slf4j-api - LIB: lib/slf4j/jcl-over-slf4j-${slf4j.version}.jar - - [ ] Module: jetty-jul - Provides: [jetty-jul, logging] - : Provides a Jetty Logging implementation that logs to the Java Util Logging API. - : Requires another module that provides a Java Util Logging implementation. - JVM: -Dorg.eclipse.jetty.util.log.class=org.eclipse.jetty.util.log.JavaUtilLog - - [ ] Module: jetty-log4j - : Provides a Jetty Logging implementation that logs to the log4j API. - : Uses the slf4j mechanism as an intermediary - : Requires another module that provides an log4j implementation. - Depend: jetty-slf4j - Depend: slf4j-log4j - - [ ] Module: jetty-log4j2 - : Provides a Jetty Logging implementation that logs to the log4j API. - : Uses the slf4j and log4j v1.2 mechanisms as intermediaries. - : Requires another module that provides an log4j2 implementation. - Depend: slf4j-log4j2 - Depend: jetty-slf4j - - [ ] Module: jetty-logback - : Provides a Jetty Logging implementation that logs to logback. - : Uses the slf4j API as an intermediary - Depend: slf4j-logback - Depend: jetty-slf4j - - [ ] Module: jetty-logging - Provides: [jetty-logging, logging] - : Enables the Jetty Logging implementation and installs a template - : configuration in ${jetty.base} resources/jetty-logging.properties. - Depend: resources - - [ ] Module: jetty-slf4j - Provides: [logging, jetty-slf4j] - : Provides a Jetty Logging implementation that logs to the SLF4J API. - : Requires another module that provides and SLF4J implementation. - Depend: slf4j-api - Depend: slf4j-impl - JVM: -Dorg.eclipse.jetty.util.log.class=org.eclipse.jetty.util.log.Slf4jLog - - [ ] Module: jminix - : Deploys the Jminix JMX Console within the server - Depend: jmx - Depend: stats - Depend: jcl-impl - Depend: jcl-api - LIB: lib/jminix/**.jar - XML: etc/jminix.xml - - [ ] Module: jmx + Module: jmx : Enables JMX instrumentation for server beans and : enables JMX agent. Depend: server LIB: lib/jetty-jmx-${jetty.version}.jar XML: etc/jetty-jmx.xml - [ ] Module: jmx-remote + Module: jmx-remote : Enables remote RMI access to JMX Depend: jmx XML: etc/jetty-jmx-remote.xml - [ ] Module: jndi + Module: jndi : Adds the Jetty JNDI implementation to the classpath. Depend: server LIB: lib/jetty-jndi-${jetty.version}.jar LIB: lib/jndi/*.jar - [ ] Module: jolokia - : Deploys the Jolokia console as a web application. - Depend: jmx - Depend: stats - Depend: deploy - XML: etc/jolokia.xml - - [ ] Module: jsp + Module: jsp : Enables JSP for all webapplications deployed on the server. - Depend: apache-jsp - Depend: servlet - Depend: annotations + Depend: apache-jsp, servlet, annotations - [ ] Module: jstl + Module: jstl : Enables JSTL for all webapplications deployed on the server - Depend: jsp - Depend: apache-jstl + Depend: jsp, apache-jstl - [ ] Module: jvm + Module: jvm : A noop module that creates an ini template useful for : setting JVM arguments (eg -Xmx ) - [ ] Module: log4j - Provides: [log4j-impl, log4j-api, log4j] - : Provides a Log4j v1.2 API and implementation. - : To receive jetty logs enable the jetty-slf4j and slf4j-log4j modules. - Depend: resources - LIB: lib/log4j/log4j-${log4j.version}.jar - - [ ] Module: log4j-log4j2 - Provides: [log4j-log4j2, log4j-impl, log4j-api] - : Provides a Log4j v1.2 implementation that logs to the Log4j v2 API. - : Requires another module that provides and Log4j v2 implementation. - : To receive jetty logs the jetty-slf4j and slf4j-log4j must also be enabled. - Depend: log4j2-api - Depend: log4j2-impl - LIB: lib/log4j/log4j-1.2-api-${log4j2.version}.jar - - [ ] Module: log4j2-api - : Provides the Log4j v2 API - : Requires another module that provides an Log4j v2 implementation. - : To receive jetty logs enable the jetty-slf4j, slf4j-log4j and log4j-log4j2 modules. - LIB: lib/log4j/log4j-api-${log4j2.version}.jar - - [ ] Module: log4j2-core - Provides: [log4j2-core, log4j2-impl] - : Provides a Log4j v2 implementation. - : To receive jetty logs enable the jetty-slf4j, slf4j-log4j and log4j-log4j2 modules. - Depend: log4j2-api - Depend: resources - LIB: lib/log4j/log4j-core-${log4j2.version}.jar - - [ ] Module: log4j2-slf4j - Provides: [log4j2-slf4j, log4j2-impl] - : Provides a Log4j v2 implementation that logs to the SLF4J API. - : Requires another module that provides and SLF4J implementation. - : To receive jetty logs enable the jetty-slf4j module. - Depend: slf4j-api - Depend: log4j2-api - LIB: lib/log4j/log4j-slf4j-to-${log4j2.version}.jar - - [ ] Module: logback-access - Provides: [requestlog, logback-access] - : Enables logback request log. - Depend: server - Depend: logback-core - Depend: resources - LIB: lib/logback/logback-access-${logback.version}.jar - XML: etc/jetty-logback-access.xml - - [ ] Module: logback-core - : Provides the logback core implementation, used by slf4j-logback - : and logback-access - LIB: lib/logback/logback-core-${logback.version}.jar - - [ ] Module: lowresources + Module: lowresources : Enables a low resource monitor on the server : that can take actions if threads and/or connections : cross configured threshholds. Depend: server XML: etc/jetty-lowresources.xml - [ ] Module: monitor - : Enables the Jetty Monitor Module to periodically - : check/publish JMX parameters of the server. - Depend: server - Depend: client - LIB: lib/monitor/jetty-monitor-${jetty.version}.jar - XML: etc/jetty-monitor.xml - - [ ] Module: plus + Module: plus : Enables JNDI and resource injection for webapplications : and other servlet 3.x features not supported in the core : jetty webapps module. - Depend: webapp - Depend: server - Depend: security - Depend: jndi + Depend: webapp, server, security, jndi LIB: lib/jetty-plus-${jetty.version}.jar XML: etc/jetty-plus.xml - [ ] Module: proxy + Module: proxy : Enable the Jetty Proxy, that allows the server to act : as a non-transparent proxy for browsers. - Depend: servlet - Depend: client + Depend: servlet, client LIB: lib/jetty-proxy-${jetty.version}.jar XML: etc/jetty-proxy.xml - [ ] Module: proxy-protocol + Module: proxy-protocol : Enables the Proxy Protocol on the HTTP Connector. : http://www.haproxy.org/download/1.5/doc/proxy-protocol.txt : This allows a proxy operating in TCP mode to @@ -382,68 +166,40 @@ Jetty All Available Modules: Depend: http XML: etc/jetty-proxy-protocol.xml - [ ] Module: proxy-protocol-ssl - : Enables the Proxy Protocol on the TLS(SSL) Connector. - : http://www.haproxy.org/download/1.5/doc/proxy-protocol.txt - : This allows a Proxy operating in TCP mode to transport - : details of the proxied connection to the server. - : Both V1 and V2 versions of the protocol are supported. - Depend: ssl - XML: etc/jetty-proxy-protocol-ssl.xml - - [ ] Module: quickstart + Module: quickstart : Enables the Jetty Quickstart module for rapid : deployment of preconfigured webapplications. - Depend: server - Depend: annotations - Depend: plus + Depend: server, annotations, plus LIB: lib/jetty-quickstart-${jetty.version}.jar - [ ] Module: requestlog - : Enables a NCSA style request log. - Depend: server - XML: etc/jetty-requestlog.xml - - [ ] Module: resources - : Adds the $JETTY_HOME/resources and/or $JETTY_BASE/resources - : directory to the server classpath. Useful for configuration - : property files (eg jetty-logging.properties) - LIB: resources/ - - [ ] Module: rewrite + Module: rewrite : Enables the jetty-rewrite handler. Specific rewrite : rules must be added to either to etc/jetty-rewrite.xml or a custom xml/module Depend: server LIB: lib/jetty-rewrite-${jetty.version}.jar XML: etc/jetty-rewrite.xml - [ ] Module: rewrite-compactpath + Module: rewrite-compactpath : Add a rule to the rewrite module to compact paths so that double slashes : in the path are treated as a single slash. Depend: rewrite XML: etc/rewrite-compactpath.xml - [ ] Module: rewrite-customizer - Provides: [rewrite-customizer, rewrite] + Module: rewrite-customizer [rewrite] : Enables a rewrite Rules container as a request customizer on : the servers default HttpConfiguration instance Depend: server LIB: lib/jetty-rewrite-${jetty.version}.jar XML: etc/jetty-rewrite-customizer.xml - [t] Module: security + Module: security : Adds servlet standard security handling to the classpath. Depend: server LIB: lib/jetty-security-${jetty.version}.jar - Enabled: default provider of security for webapp - Enabled: transitive provider of security for webapp - [x] Module: server + Module: server : Enables the core Jetty server on the classpath. - Optional: jvm - Optional: ext - Optional: resources - Optional: logging + Optional: jvm, ext, resources, logging LIB: lib/servlet-api-3.1.jar LIB: lib/jetty-schemas-3.1.jar LIB: lib/jetty-http-${jetty.version}.jar @@ -452,16 +208,13 @@ Jetty All Available Modules: LIB: lib/jetty-util-${jetty.version}.jar LIB: lib/jetty-io-${jetty.version}.jar XML: etc/jetty.xml - Enabled: ${jetty.base}/start.d/server.ini - [t] Module: servlet + Module: servlet : Enables standard Servlet handling. Depend: server LIB: lib/jetty-servlet-${jetty.version}.jar - Enabled: transitive provider of servlet for webapp - Enabled: default provider of servlet for webapp - [ ] Module: servlets + Module: servlets : Puts a collection of jetty utility servlets and filters : on the server classpath (CGI, CrossOriginFilter, DosFilter, : MultiPartFilter, PushCacheFilter, QoSFilter, etc.) for @@ -469,72 +222,7 @@ Jetty All Available Modules: Depend: servlet LIB: lib/jetty-servlets-${jetty.version}.jar - [ ] Module: session-cache-hash - Provides: [session-cache, session-cache-hash] - : Enable first level session cache in ConcurrentHashMap. - : If not enabled, sessions will use a HashSessionCache by default, so enabling - : via this module is only needed if the configuration properties need to be - : changed. - Depend: sessions - XML: etc/sessions/hash-session-cache.xml - - [ ] Module: session-store-cache - : Enables caching of SessionData in front of a SessionDataStore. - Depend: session-store - Depend: sessions/session-data-cache/${session-data-cache} - XML: etc/sessions/session-data-cache/session-caching-store.xml - - [ ] Module: session-store-file - Provides: [session-store, session-store-file] - : Enables session persistent storage in files. - Depend: sessions - XML: etc/sessions/file/session-store.xml - - [ ] Module: session-store-gcloud - Provides: [session-store-gcloud, session-store] - : Enables GCloudDatastore session management. - Depend: webapp - Depend: sessions - Depend: jcl-impl - Depend: annotations - Depend: jcl-api - LIB: lib/jetty-gcloud-session-manager-${jetty.version}.jar - LIB: lib/gcloud/*.jar - XML: etc/sessions/gcloud/session-store.xml - - [ ] Module: session-store-infinispan - Provides: [session-store, session-store-infinispan] - : Enables session data store in an Infinispan cache - Depend: sessions - Depend: sessions/infinispan/${cache-type} - LIB: lib/jetty-infinispan-${jetty.version}.jar - LIB: lib/infinispan/*.jar - - [ ] Module: session-store-jdbc - Provides: [session-store, session-store-jdbc] - : Enables JDBC peristent/distributed session storage. - Depend: sessions - Depend: sessions/jdbc/${db-connection-type} - XML: etc/sessions/jdbc/session-store.xml - - [ ] Module: session-store-mongo - Provides: [session-store-mongo, session-store] - : Enables NoSql session management with a MongoDB driver. - Depend: sessions - LIB: lib/jetty-nosql-${jetty.version}.jar - LIB: lib/nosql/*.jar - XML: etc/sessions/mongo/session-store.xml - - [ ] Module: sessions - : The session management. By enabling this module, it allows - : session management to be configured via the ini templates - : created or by enabling other session-cache or session-store - : modules. Without this module enabled, the server may still - : use sessions, but their management cannot be configured. - Depend: server - XML: etc/sessions/id-manager.xml - - [ ] Module: setuid + Module: setuid : Enables the unix setUID configuration so that the server : may be started as root to open privileged ports/files before : changing to a restricted user (eg jetty). @@ -542,89 +230,140 @@ Jetty All Available Modules: LIB: lib/setuid/jetty-setuid-java-1.0.3.jar XML: etc/jetty-setuid.xml - [ ] Module: slf4j-api - : Provides SLF4J API. Requires a slf4j implementation (eg slf4j-simple) - : otherwise a noop implementation is used. - LIB: lib/slf4j/slf4j-api-${slf4j.version}.jar - - [ ] Module: slf4j-jcl - Provides: [slf4j-jcl, slf4j-impl] - : Provides a SLF4J implementation that logs to the Java Commons Logging API. - : Requires another module that provides an JCL implementation. - : To receive jetty logs enable the jetty-slf4j module. - Depend: slf4j-api - Depend: jcl-api - LIB: lib/slf4j/slf4j-jcl-${slf4j.version}.jar - - [ ] Module: slf4j-jul - Provides: [slf4j-jul, slf4j-impl] - : Provides a SLF4J implementation that logs to the Java Util Logging API. - : To receive jetty logs enable the jetty-slf4j module. - Depend: slf4j-api - LIB: lib/slf4j/slf4j-jdk14-${slf4j.version}.jar - - [ ] Module: slf4j-log4j - Provides: [slf4j-log4j, slf4j-impl] - : Provides a SLF4J implementation that logs to the Log4j v1.2 API. - : Requires another module that provides a Log4j implementation. - : To receive jetty logs enable the jetty-slf4j module. - Depend: slf4j-api - Depend: log4j-api - LIB: lib/slf4j/slf4j-log4j12-${slf4j.version}.jar - - [ ] Module: slf4j-log4j2 - Provides: [slf4j-log4j2, slf4j-impl] - : Provides a SLF4J implementation that logs to the Log4j v2 API. - : Requires another module that provides a Log4j2 implementation. - : To receive jetty logs enable the jetty-slf4j2 module. - Depend: slf4j-api - Depend: log4j2-api - LIB: lib/log4j/log4j-slf4j-impl-${log4j2.version}.jar - - [ ] Module: slf4j-logback - Provides: [slf4j-logback, slf4j-impl] - : Provides a SLF4J implementation that logs to Logback classic - : To receive jetty logs enable the jetty-slf4j module. - Depend: slf4j-api - Depend: logback-core - Depend: resources - LIB: lib/logback/logback-classic-${logback.version}.jar - - [ ] Module: slf4j-simple - Provides: [slf4j-simple, slf4j-impl] - : Provides SLF4J simple logging implementation. - : To receive jetty logs enable the jetty-slf4j module. - Depend: slf4j-api - LIB: lib/slf4j/slf4j-simple-${slf4j.version}.jar - - [ ] Module: spring + Module: spring : Enable spring configuration processing so all jetty style : xml files can optionally be written as spring beans Depend: server LIB: lib/spring/*.jar - [ ] Module: ssl + Module: webapp + : Adds support for servlet specification webapplication to the server + : classpath. Without this, only Jetty specific handlers may be deployed. + Depend: security, servlet + LIB: lib/jetty-webapp-${jetty.version}.jar + XML: etc/jetty-webapp.xml + + Module: websocket + : Enable websockets for deployed web applications + Depend: annotations + LIB: lib/websocket/*.jar + +Modules for tag '3rdparty': +--------------------------- + + Module: gcloud + : Control GCloud API classpath + Tags: 3rdparty, gcloud + LIB: lib/gcloud/*.jar + + Module: gcloud-datastore + : Enables GCloud Datastore API and implementation + Tags: 3rdparty, gcloud + Depend: jcl-slf4j, gcloud + + Module: hawtio + : Deploys the Hawtio console as a webapplication. + Tags: 3rdparty + Depend: jmx, stats, deploy + XML: etc/hawtio.xml + + Module: jamon + : Deploys the JAMon webapplication + Tags: 3rdparty + Depend: jmx, stats, jsp, deploy + LIB: lib/jamon/**.jar + XML: etc/jamon.xml + + Module: jminix + : Deploys the Jminix JMX Console within the server + Tags: 3rdparty + Depend: jmx, stats, jcl-impl, jcl-api + LIB: lib/jminix/**.jar + XML: etc/jminix.xml + + Module: jolokia + : Deploys the Jolokia console as a web application. + Tags: 3rdparty + Depend: jmx, stats, deploy + XML: etc/jolokia.xml + +Modules for tag 'classpath': +---------------------------- + + Module: ext + : Adds all jar files discovered in $JETTY_HOME/lib/ext + : and $JETTY_BASE/lib/ext to the servers classpath. + Tags: classpath + LIB: lib/ext/**.jar + + Module: resources + : Adds the $JETTY_HOME/resources and/or $JETTY_BASE/resources + : directory to the server classpath. Useful for configuration + : property files (eg jetty-logging.properties) + Tags: classpath + LIB: resources/ + +Modules for tag 'connector': +---------------------------- + + Module: http + : Enables a HTTP connector on the server. + : By default HTTP/1 is support, but HTTP2C can + : be added to the connector with the http2c module. + Tags: connector, http + Depend: server + XML: etc/jetty-http.xml + + Module: http-forwarded + : Adds a forwarded request customizer to the HTTP Connector + : to process forwarded-for style headers from a proxy. + Tags: connector + Depend: http + XML: etc/jetty-http-forwarded.xml + + Module: http2 + : Enables HTTP2 protocol support on the TLS(SSL) Connector, + : using the ALPN extension to select which protocol to use. + Tags: connector, http2, http, ssl + Depend: alpn, ssl + LIB: lib/http2/*.jar + XML: etc/jetty-http2.xml + + Module: http2c + : Enables the HTTP2C protocol on the HTTP Connector + : The connector will accept both HTTP/1 and HTTP/2 connections. + Tags: connector, http2, http + Depend: http + LIB: lib/http2/*.jar + XML: etc/jetty-http2c.xml + + Module: https + : Adds HTTPS protocol support to the TLS(SSL) Connector + Tags: connector, https, http, ssl + Depend: ssl + Optional: http-forwarded, http2 + XML: etc/jetty-https.xml + + Module: proxy-protocol-ssl + : Enables the Proxy Protocol on the TLS(SSL) Connector. + : http://www.haproxy.org/download/1.5/doc/proxy-protocol.txt + : This allows a Proxy operating in TCP mode to transport + : details of the proxied connection to the server. + : Both V1 and V2 versions of the protocol are supported. + Tags: connector, ssl + Depend: ssl + XML: etc/jetty-proxy-protocol-ssl.xml + + Module: ssl : Enables a TLS(SSL) Connector on the server. : This may be used for HTTPS and/or HTTP2 by enabling : the associated support modules. + Tags: connector, ssl Depend: server XML: etc/jetty-ssl.xml XML: etc/jetty-ssl-context.xml - [ ] Module: stats - : Enable detailed statistics collection for the server, - : available via JMX. - Depend: server - XML: etc/jetty-stats.xml - - [ ] Module: stderrout-logging - : Redirects JVMs stderr and stdout to a log file, - : including output from Jetty's default StdErrLog logging. - LIB: lib/logging/**.jar - LIB: resources/ - XML: etc/stderrout-logging.xml - - [ ] Module: unixsocket + Module: unixsocket : Enables a Unix Domain Socket Connector that can receive : requests from a local proxy and/or SSL offloader (eg haproxy) in either : HTTP or TCP mode. Unix Domain Sockets are more efficient than @@ -632,36 +371,40 @@ Jetty All Available Modules: : needless fragmentation and have better dispatch behaviours. : When enabled with corresponding support modules, the connector can : accept HTTP, HTTPS or HTTP2C traffic. + Tags: connector Depend: server LIB: lib/jetty-unixsocket-${jetty.version}.jar LIB: lib/jnr/*.jar XML: etc/jetty-unixsocket.xml - [ ] Module: unixsocket-forwarded + Module: unixsocket-forwarded : Adds a forwarded request customizer to the HTTP configuration used : by the Unix Domain Socket connector, for use when behind a proxy operating : in HTTP mode that adds forwarded-for style HTTP headers. Typically this : is an alternate to the Proxy Protocol used mostly for TCP mode. + Tags: connector Depend: unixsocket-http XML: etc/jetty-unixsocket-forwarded.xml - [ ] Module: unixsocket-http + Module: unixsocket-http : Adds a HTTP protocol support to the Unix Domain Socket connector. : It should be used when a proxy is forwarding either HTTP or decrypted : HTTPS traffic to the connector and may be used with the : unix-socket-http2c modules to upgrade to HTTP/2. + Tags: connector, http Depend: unixsocket XML: etc/jetty-unixsocket-http.xml - [ ] Module: unixsocket-http2c + Module: unixsocket-http2c : Adds a HTTP2C connetion factory to the Unix Domain Socket Connector : It can be used when either the proxy forwards direct : HTTP/2C (unecrypted) or decrypted HTTP/2 traffic. + Tags: connector, http2 Depend: unixsocket-http LIB: lib/http2/*.jar XML: etc/jetty-unixsocket-http2c.xml - [ ] Module: unixsocket-proxy-protocol + Module: unixsocket-proxy-protocol : Enables the proxy protocol on the Unix Domain Socket Connector : http://www.haproxy.org/download/1.5/doc/proxy-protocol.txt : This allows information about the proxied connection to be @@ -670,39 +413,213 @@ Jetty All Available Modules: : SSL properties may be interpreted by the unixsocket-secure : module to indicate secure HTTPS traffic. Typically this : is an alternate to the forwarded module. + Tags: connector Depend: unixsocket XML: etc/jetty-unixsocket-proxy-protocol.xml - [ ] Module: unixsocket-secure + Module: unixsocket-secure : Enable a secure request customizer on the HTTP Configuration : used by the Unix Domain Socket Connector. : This looks for a secure scheme transported either by the : unixsocket-forwarded, unixsocket-proxy-protocol or in a : HTTP2 request. + Tags: connector Depend: unixsocket-http XML: etc/jetty-unixsocket-secure.xml - [x] Module: webapp - : Adds support for servlet specification webapplication to the server - : classpath. Without this, only Jetty specific handlers may be deployed. - Depend: security - Depend: servlet - LIB: lib/jetty-webapp-${jetty.version}.jar - Enabled: ${jetty.base}/start.d/webapp.ini +Modules for tag 'debug': +------------------------ - [ ] Module: websocket - : Enable websockets for deployed web applications - Depend: annotations - LIB: lib/websocket/*.jar + Module: debug + : Enables the DebugListener to generate additional + : logging regarding detailed request handling events. + : Renames threads to include request URI. + Tags: debug + Depend: deploy + XML: etc/jetty-debug.xml -Jetty Selected Module Ordering: -------------------------------- - 0) server ${jetty.base}/start.d/server.ini - 1) security default provider of security for webapp - transitive provider of security for webapp - 2) servlet transitive provider of servlet for webapp - default provider of servlet for webapp - 3) webapp ${jetty.base}/start.d/webapp.ini - 4) deploy ${jetty.base}/start.d/deploy.ini - 5) http ${jetty.base}/start.d/http.ini + Module: debuglog + : Deprecated Debug Log using the DebugHandle. + : Replaced with the debug module. + Tags: debug + Depend: server + XML: etc/jetty-debuglog.xml + +Modules for tag 'handler': +-------------------------- + + Module: gzip + : Enable GzipHandler for dynamic gzip compression + : for the entire server. + Tags: handler + Depend: server + XML: etc/jetty-gzip.xml + + Module: ipaccess + : Enable the ipaccess handler to apply a white/black list + : control of the remote IP of requests. + Tags: handler + Depend: server + XML: etc/jetty-ipaccess.xml + + Module: stats + : Enable detailed statistics collection for the server, + : available via JMX. + Tags: handler + Depend: server + XML: etc/jetty-stats.xml + + Module: threadlimit + Tags: handler + Depend: server + XML: etc/jetty-threadlimit.xml + +Modules for tag 'logging': +-------------------------- + + Module: console-capture + : Redirects JVMs console stderr and stdout to a log file, + : including output from Jetty's default StdErrLog logging. + Tags: logging + LIB: resources/ + XML: etc/console-capture.xml + + Module: logging-jcl [logging] + : Configure jetty logging to use Java Commons Logging (jcl) + : SLF4J is used as the core logging mechanism. + Tags: logging + Depend: jcl-impl, slf4j-jcl + JVM: -Dorg.eclipse.jetty.util.log.class=org.eclipse.jetty.util.log.Slf4jLog + + Module: logging-jetty [logging] + : Configure jetty logging mechanism. + : Provides a ${jetty.base}/resources/jetty-logging.properties. + Tags: logging + Depend: console-capture, resources + + Module: logging-jul [logging] + : Configure jetty logging to use Java Util Logging (jul) + : SLF4J is used as the core logging mechanism. + Tags: logging + Depend: jul-impl, slf4j-jul + JVM: -Dorg.eclipse.jetty.util.log.class=org.eclipse.jetty.util.log.Slf4jLog + + Module: logging-log4j [logging] + : Configure jetty logging to use Log4j Logging + : SLF4J is used as the core logging mechanism. + Tags: logging + Depend: log4j-impl, slf4j-log4j + JVM: -Dorg.eclipse.jetty.util.log.class=org.eclipse.jetty.util.log.Slf4jLog + + Module: logging-log4j2 [logging] + : Configure jetty logging to use log4j version 2 + : SLF4J is used as the core logging mechanism. + Tags: logging + Depend: slf4j-log4j2, log4j2-impl + JVM: -Dorg.eclipse.jetty.util.log.class=org.eclipse.jetty.util.log.Slf4jLog + + Module: logging-logback [logging] + : Configure jetty logging to use Logback Logging. + : SLF4J is used as the core logging mechanism. + Tags: logging + Depend: logback-impl, slf4j-logback + JVM: -Dorg.eclipse.jetty.util.log.class=org.eclipse.jetty.util.log.Slf4jLog + + Module: logging-slf4j [logging] + : Configure jetty logging to use slf4j. + : Any slf4j-impl implementation is used + Tags: logging + Depend: slf4j-api, slf4j-impl + JVM: -Dorg.eclipse.jetty.util.log.class=org.eclipse.jetty.util.log.Slf4jLog + +Modules for tag 'requestlog': +----------------------------- + + Module: logback-access [requestlog] + : Enables logback request log. + Tags: requestlog, logging, logback + Depend: server, logback-core, resources + LIB: lib/logback/logback-access-${logback.version}.jar + XML: etc/jetty-logback-access.xml + + Module: requestlog + : Enables a NCSA style request log. + Tags: requestlog + Depend: server + XML: etc/jetty-requestlog.xml + +Modules for tag 'session': +-------------------------- + + Module: session-cache-hash [session-cache] + : Enable first level session cache in ConcurrentHashMap. + : If not enabled, sessions will use a HashSessionCache by default, so enabling + : via this module is only needed if the configuration properties need to be + : changed. + Tags: session + Depend: sessions + XML: etc/sessions/session-cache-hash.xml + + Module: session-cache-null [session-cache] + : A trivial SessionCache that does not actually cache sessions. + Tags: session + Depend: sessions + XML: etc/sessions/session-cache-null.xml + + Module: session-store-cache + : Enables caching of SessionData in front of a SessionDataStore. + Tags: session + Depend: session-store, sessions/session-data-cache/${session-data-cache} + XML: etc/sessions/session-data-cache/session-caching-store.xml + + Module: session-store-file [session-store] + : Enables session persistent storage in files. + Tags: session + Depend: sessions + XML: etc/sessions/file/session-store.xml + + Module: session-store-gcloud [session-store] + : Enables GCloudDatastore session management. + Tags: session, gcloud + Depend: webapp, sessions, gcloud-datastore, annotations + LIB: lib/jetty-gcloud-session-manager-${jetty.version}.jar + XML: etc/sessions/gcloud/session-store.xml + + Module: session-store-infinispan-embedded [session-store] + : Enables session data store in a local Infinispan cache + Tags: session + Depend: sessions, sessions/infinispan/default + LIB: lib/jetty-infinispan-${jetty.version}.jar + LIB: lib/infinispan/*.jar + + Module: session-store-infinispan-remote [session-store] + : Enables session data store in a remote Infinispan cache + Tags: session + Depend: sessions/infinispan/remote, sessions + LIB: lib/jetty-infinispan-${jetty.version}.jar + LIB: lib/infinispan/*.jar + + Module: session-store-jdbc [session-store] + : Enables JDBC peristent/distributed session storage. + Tags: session + Depend: sessions, sessions/jdbc/${db-connection-type} + XML: etc/sessions/jdbc/session-store.xml + + Module: session-store-mongo [session-store] + : Enables NoSql session management with a MongoDB driver. + Tags: session + Depend: sessions + LIB: lib/jetty-nosql-${jetty.version}.jar + LIB: lib/nosql/*.jar + XML: etc/sessions/mongo/session-store.xml + + Module: sessions + : The session management. By enabling this module, it allows + : session management to be configured via the ini templates + : created or by enabling other session-cache or session-store + : modules. Without this module enabled, the server may still + : use sessions, but their management cannot be configured. + Tags: session + Depend: server + XML: etc/sessions/id-manager.xml .... diff --git a/jetty-documentation/src/main/asciidoc/administration/startup/startup-modules.adoc b/jetty-documentation/src/main/asciidoc/administration/startup/startup-modules.adoc index 654d8e74c01..9f44a117585 100644 --- a/jetty-documentation/src/main/asciidoc/administration/startup/startup-modules.adoc +++ b/jetty-documentation/src/main/asciidoc/administration/startup/startup-modules.adoc @@ -17,47 +17,53 @@ [[startup-modules]] === Managing Startup Modules -Jetty 9.1 a new Module system replacing the previous `start.config` + `OPTIONS` techniques from past Jetty Distributions. - The standard Jetty Distribution ships with several modules defined in `${jetty.home}/modules/`. +These modules allow flexibility for implementations and make configuration a much more plug-and-play set up. What a Jetty Startup Module Defines: A Module Name:: - The name of the module is the keyword used by the `--module=` command line argument to activate/enable modules, and also find dependent modules. - The filename of the module defines its name (eg: server.mod becomes the module named "server"). -List of Dependant Modules:: - All modules can declare that they depend on other modules with the `[depend]` section. - The list of dependencies is used to transitively resolve other modules that are deemed to be required based on the modules that you activate. - The order of modules defined in the graph of active modules is used to determine various execution order for configuration, such as Jetty IoC XML configurations, and to resolve conflicting property declarations. - Of note: there is a special section `[optional]` used to describe structurally dependent modules that are not technically required, but might be of use to your specific configuration. +The name of the module is the keyword used by the `--module=` command line argument to activate/enable modules, and also find dependent modules. +The filename of the module defines its name (eg: server.mod becomes the module named "server"). +List of Dependent Modules:: +All modules can declare that they depend on other modules with the `[depend]` section. +The list of dependencies is used to transitively resolve other modules that are deemed to be required based on the modules that you activate. +The order of modules defined in the graph of active modules is used to determine various execution order for configuration, such as Jetty IoC XML configurations, and to resolve conflicting property declarations. +Of note: there is a special section `[optional]` used to describe structurally dependent modules that are not technically required, but might be of use to your specific configuration. List of Libraries:: - Module can optionally declare that they have libraries that they need to function properly. - The `[lib]` section declares a set of pathnames that follow the link:#base-vs-home-resolution[Jetty Base and Jetty Home path resolution rules]. +Module can optionally declare that they have libraries that they need to function properly. +The `[lib]` section declares a set of pathnames that follow the link:#base-vs-home-resolution[Jetty Base and Jetty Home path resolution rules]. List of Jetty IoC XML Configurations:: - A Module can optionally declare a list of Jetty IoC XML configurations used to wire up the functionality that this module defines. - The `[xml]` section declares a set of pathnames that follow the link:#base-vs-home-resolution[Jetty Base and Jetty Home path resolution rules]. - Ideally, all XML files are parameterized to accept properties to configure the various elements of the standard configuration. - Allowing for a simplified configuration of Jetty for the vast majority of deployments. - The execution order of the Jetty IoC XML configurations is determined by the graph of active module dependencies resolved via the `[depend]` sections. - If the default XML is not sufficient to satisfy your needs, you can override this XML by making your own in the `${jetty.base}/etc/` directory, with the same name. - The resolution steps for Jetty Base and Jetty Home will ensure that your copy from `${jetty.base}` will be picked up over the default one in `${jetty.home}`. +A Module can optionally declare a list of Jetty IoC XML configurations used to wire up the functionality that this module defines. +The `[xml]` section declares a set of pathnames that follow the link:#base-vs-home-resolution[Jetty Base and Jetty Home path resolution rules]. +Ideally, all XML files are parameterized to accept properties to configure the various elements of the standard configuration. +Allowing for a simplified configuration of Jetty for the vast majority of deployments. +The execution order of the Jetty IoC XML configurations is determined by the graph of active module dependencies resolved via the `[depend]` sections. +If the default XML is not sufficient to satisfy your needs, you can override this XML by making your own in the `${jetty.base}/etc/` directory, with the same name. +The resolution steps for Jetty Base and Jetty Home will ensure that your copy from `${jetty.base}` will be picked up over the default one in `${jetty.home}`. +List of Module Tags:: +For ease of sorting, modules can be assigned tags. +When using the `--list-modules` command, modules will be groups by the first tag that exists in this section. +Modules can also be listed specifically by these tags using `--list-modules=` on the command line. +Ini Variables:: +The `[ini]` section is used to add or change server parameters at startup. +The `[ini]` section can also include a the path of a file or several files which should be made available to the server only. +This is helpful when you want to control what jars are available to deployed webapps. Jetty INI Template:: - Each module can optionally declare a startup ini template that is used to insert/append/inject sample configuration elements into the `start.ini` or `start.d/*.ini` files when using the `--add-to-start=` command line argument in `start.jar`. - Commonly used to present some of the parameterized property options from the Jetty IoC XML configuration files also referenced in the same module. - The `[ini-template]` section declares this section of sample configuration. +Each module can optionally declare a startup ini template that is used to insert/append/inject sample configuration elements into the `start.ini` or `start.d/*.ini` files when using the `--add-to-start=` command line argument in `start.jar`. +Commonly used to present some of the parameterized property options from the Jetty IoC XML configuration files also referenced in the same module. +The `[ini-template]` section declares this section of sample configuration. Required Files and Directories:: - If the activation of a module requires some paths to exist, the `[files]` section defines them. - There are 2 modes of operation of the entries in this section. +If the activation of a module requires some paths to exist, the `[files]` section defines them. +There are 2 modes of operation of the entries in this section. Ensure Directory Exists;; - If you add a pathname that ends in `"/"` (slash), such as `"webapps/"`, then that directory will be created if it does not yet exist in `${jetty.base}/` (eg: `"webapps/"` will result in `${jetty.base}/webapps/` being created). +If you add a pathname that ends in `"/"` (slash), such as `"webapps/"`, then that directory will be created if it does not yet exist in `${jetty.base}/` (eg: `"webapps/"` will result in `${jetty.base}/webapps/` being created). Download File;; - There is a special syntax to allow you to download a file into a specific location if it doesn't exist yet: `:`. - Currently, the `` must be a `http://` scheme URL (please link:#bugs[let us know] if you need more schemes supported). - The `` portion follows the link:#base-vs-home-resolution[Jetty Base and Jetty Home path resolution rules]. - Example: `http://repo.corp.com/maven/corp-security-policy-1.0.jar:lib/corp-security-policy.jar` - This will check for the existence of `lib/corp-security-policy.jar`, and if it doesn't exist, it will download the jar file from - `http://repo.corp.com/maven/corp-security-policy-1.0.jar` +There is a special syntax to allow you to download a file into a specific location if it doesn't exist yet: `:`. +Currently, the `` must be a `http://` scheme URL (please link:#bugs[let us know] if you need more schemes supported). +The `` portion follows the link:#base-vs-home-resolution[Jetty Base and Jetty Home path resolution rules]. +Example: `http://repo.corp.com/maven/corp-security-policy-1.0.jar:lib/corp-security-policy.jar` +This will check for the existence of `lib/corp-security-policy.jar`, and if it doesn't exist, it will download the jar file from `http://repo.corp.com/maven/corp-security-policy-1.0.jar` [[enabling-modules]] ==== Enabling Modules @@ -241,11 +247,33 @@ Deleting the ini file associated with module is another option, but may not be p To see which modules are __available__, use the `--list-modules` command line argument. This command will also show you which modules are __enabled__. -Here's an example: +Modules are sorted by the value in the `[tags]` section of the associated `.mod` file. +If there are multiple entries in the `[tags]` section, it sorts by the first tag in the list. + +____ +[NOTE] +By default, the `--list-modules` command line argument shows all modules that do not include `internal` in the `[tags]` section of the associated `.mod` file. +If you would like to see *all* modules, use `--list-modules=*` +____ + +Here's an example of the `--list-modules` command: include::screen-list-modules.adoc[] -Since being introduced in Jetty 9.1 the modules provided in the Jetty distribution has expanded greatly. -Below is a graphical representation of the standard modules and their dependencies. +===== Searching Modules -image:images/modules-9.3-simplified.png[image,width=768] +Since the introduction of the module system, many new modules have been added. +As a result, looking at the module list as a whole can be somewhat overwhelming. +To narrow down which modules you would like to choose from, you can search by values listed under the `[tags]` section. +Note that when you search this way, all modules that include your criteria in it's `[tags]` section, including internal modules, will be shown. +To filter out internal modules when searching a specific module tag, simply add `-internal` to the command line. +For example, if you wanted to look at only the logging modules (excluding the internal implementation modules), you would use `--list-modules=logging,-internal`. + +include::screen-list-logging-modules.adoc[] + +// Since being introduced in Jetty 9.1 the modules provided in the Jetty distribution has expanded greatly. +// Below is a graphical representation of the standard modules and their dependencies. +// +// TODO - Update modules image for 9.4 / 10? +// +// image:images/modules-9.3-simplified.png[image,width=768]