<?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 8</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) Additional Components"
              href="extras.html"/>
        <item name="28) Mavenized"          href="maven-jars.html"/>
        <item name="29) Security Considerations"
              href="security-howto.html"/>
        <item name="30) Windows Service"    href="windows-service-howto.html"/>
        <item name="31) Windows Authentication"
              href="windows-auth-howto.html"/>
        <item name="32) Tomcat's JDBC Pool"
              href="jdbc-pool.html"/>
        <item name="33) WebSocket"          href="web-socket-howto.html"/>
        <item name="34) Rewrite"            href="rewrite.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 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="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="Functional Specs."     href="funcspecs/index.html"/>
        <item name="Tribes"                href="tribes/introduction.html"/>
    </menu>

    </body>

</project>
