<?xml version="1.0" encoding="UTF-8"?>
<!--
  Licensed to the Apache Software Foundation (ASF) under one or more
  contributor license agreements.  See the NOTICE file distributed with
  this work for additional information regarding copyright ownership.
  The ASF licenses this file to You under the Apache License, Version 2.0
  (the "License"); you may not use this file except in compliance with
  the License.  You may obtain a copy of the License at

      http://www.apache.org/licenses/LICENSE-2.0

  Unless required by applicable law or agreed to in writing, software
  distributed under the License is distributed on an "AS IS" BASIS,
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  See the License for the specific language governing permissions and
  limitations under the License.
-->
<project name="Apache Tomcat Documentation"
        href="https://tomcat.apache.org/">

    <title>Apache Tomcat 9</title>

    <logo href="/images/tomcat.gif">
      The Apache Tomcat Servlet/JSP Container
    </logo>


    <body>

    <menu name="Links">
        <item name="Docs Home"             href="index.html"/>
        <item name="FAQ"                   href="https://wiki.apache.org/tomcat/FAQ" />
        <item name="User Comments"         href="#comments_section"/>
    </menu>

    <menu name="User Guide">
        <item name="1) Introduction"        href="introduction.html"/>
        <item name="2) Setup"               href="setup.html"/>
        <item name="3) First webapp"        href="appdev/index.html"/>
        <item name="4) Deployer"            href="deployer-howto.html"/>
        <item name="5) Manager"             href="manager-howto.html"/>
        <item name="6) Host Manager"        href="host-manager-howto.html"/>
        <item name="7) Realms and AAA"      href="realm-howto.html"/>
        <item name="8) Security Manager"
              href="security-manager-howto.html"/>
        <item name="9) JNDI Resources"      href="jndi-resources-howto.html"/>
        <item name="10) JDBC DataSources"
              href="jndi-datasource-examples-howto.html"/>
        <item name="11) Classloading"       href="class-loader-howto.html"/>
        <item name="12) JSPs"               href="jasper-howto.html"/>
        <item name="13) SSL/TLS"            href="ssl-howto.html"/>
        <item name="14) SSI"                href="ssi-howto.html"/>
        <item name="15) CGI"                href="cgi-howto.html"/>
        <item name="16) Proxy Support"      href="proxy-howto.html"/>
        <item name="17) MBeans Descriptors"
              href="mbeans-descriptors-howto.html"/>
        <item name="18) Default Servlet"    href="default-servlet.html"/>
        <item name="19) Clustering"         href="cluster-howto.html"/>
        <item name="20) Load Balancer"      href="balancer-howto.html"/>
        <item name="21) Connectors"         href="connectors.html"/>
        <item name="22) Monitoring and Management"
              href="monitoring.html"/>
        <item name="23) Logging"            href="logging.html"/>
        <item name="24) APR/Native"         href="apr.html"/>
        <item name="25) Virtual Hosting"    href="virtual-hosting-howto.html"/>
        <item name="26) Advanced IO"        href="aio.html"/>
        <item name="27) Mavenized"          href="maven-jars.html"/>
        <item name="28) Security Considerations"
              href="security-howto.html"/>
        <item name="29) Windows Service"    href="windows-service-howto.html"/>
        <item name="30) Windows Authentication"
              href="windows-auth-howto.html"/>
        <item name="31) Tomcat's JDBC Pool"
              href="jdbc-pool.html"/>
        <item name="32) WebSocket"          href="web-socket-howto.html"/>
        <item name="33) Rewrite"            href="rewrite.html"/>
        <item name="34) CDI 2 and JAX-RS"   href="cdi.html"/>
        <item name="35) AOT/GraalVM Support"
              href="graal.html"/>
    </menu>

    <menu name="Reference">
        <item name="Release Notes"         href="RELEASE-NOTES.txt"/>
        <item name="Configuration"         href="config/index.html"/>
        <item name="Tomcat Javadocs"       href="api/index.html"/>
        <item name="Servlet 4.0 Javadocs"  href="servletapi/index.html"/>
        <item name="JSP 2.3 Javadocs"      href="jspapi/index.html"/>
        <item name="EL 3.0 Javadocs"       href="elapi/index.html"/>
        <item name="WebSocket 1.1 Javadocs"
              href="websocketapi/index.html"/>
        <item name="JASPIC 1.1 Javadocs"   href="jaspicapi/index.html"/>
        <item name="Common Annotations 1.3 Javadocs"
              href="annotationapi/index.html"/>
        <item name="JK 1.2 Documentation"
              href="https://tomcat.apache.org/connectors-doc/"/>
    </menu>

    <menu name="Apache Tomcat Development">
        <item name="Building"              href="building.html"/>
        <item name="Changelog"             href="changelog.html"/>
        <item name="Status"                href="https://wiki.apache.org/tomcat/TomcatVersions"/>
        <item name="Developers"            href="developers.html"/>
        <item name="Architecture"          href="architecture/index.html" />
        <item name="Tribes"                href="tribes/introduction.html"/>
    </menu>

    </body>

</project>
