//
//  ========================================================================
//  Copyright (c) 1995-2020 Mort Bay Consulting Pty Ltd and others.
//  ========================================================================
//  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.
//  ========================================================================
//

[[jetty-xml-config]]
=== jetty.xml

`jetty.xml` is the default configuration file for Jetty, typically located at `$JETTY_HOME/etc/jetty.xml`. Usually the `jetty.xml` configures:

* The Server class (or subclass if extended) and global options.
* A ThreadPool (min and max thread).
* Connectors (ports, timeouts, buffer sizes, protocol).
* The handler structure (default handlers and/or a contextHandlerCollections).
* The deployment manager that scans for and deploys webapps and contexts.
* Login services that provide authentication checking.
* A request log.

Not all Jetty features are configured in `jetty.xml`.
There are several optional configuration files that share the same format as `jetty.xml` and, if specified, concatenate to it.
These configuration files are also stored in `$JETTY_HOME/etc/`, and examples of them are in http://github.com/eclipse/jetty.project/jetty-server/src/main/config/etc/[Github Repository].
The selection of which configuration files to use is controlled by `start.jar` and the process of merging configuration is described in xref:jetty-xml-usage[].

[[root-element-jetty-xml]]
==== Root Element

`jetty.xml` configures an instance of the `Jetty org.eclipse.jetty.server.Server.`

[source, xml, subs="{sub-order}"]
----

<?xml version="1.0"?>
<!DOCTYPE Configure PUBLIC "-//Jetty//Configure//EN" "http://www.eclipse.org/jetty/configure_9_3.dtd">

<Configure id="Server" class="org.eclipse.jetty.server.Server">
 ...
</Configure>


----

[[jetty-xml-examples]]
==== Examples

`$JETTY_HOME/etc` contains the default `jetty.xml`, as well as other sample configuration files (`jetty-*.xml`) which can be passed to the server via the command line.

[[jetty-xml-additional-resources]]
==== Additional Resources

* xref:jetty-xml-syntax[] –in-depth reference for Jetty-specific configuration XML syntax.
* xref:jetty-xml-config[] –configuration file for configuring the entire server
