<?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="http://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="http://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) Realms and AAA"      href="realm-howto.html"/>
        <item name="7) Security Manager"
              href="security-manager-howto.html"/>
        <item name="8) JNDI Resources"      href="jndi-resources-howto.html"/>
        <item name="9) JDBC DataSources"
              href="jndi-datasource-examples-howto.html"/>
        <item name="10) Classloading"       href="class-loader-howto.html"/>
        <item name="11) JSPs"               href="jasper-howto.html"/>
        <item name="12) SSL/TLS"            href="ssl-howto.html"/>
        <item name="13) SSI"                href="ssi-howto.html"/>
        <item name="14) CGI"                href="cgi-howto.html"/>
        <item name="15) Proxy Support"      href="proxy-howto.html"/>
        <item name="16) MBean Descriptor"
              href="mbeans-descriptor-howto.html"/>
        <item name="17) Default Servlet"    href="default-servlet.html"/>
        <item name="18) Clustering"         href="cluster-howto.html"/>
        <item name="19) Load Balancer"      href="balancer-howto.html"/>
        <item name="20) Connectors"         href="connectors.html"/>
        <item name="21) Monitoring and Management"
              href="monitoring.html"/>
        <item name="22) Logging"            href="logging.html"/>
        <item name="23) APR/Native"         href="apr.html"/>
        <item name="24) Virtual Hosting"    href="virtual-hosting-howto.html"/>
        <item name="25) Advanced IO"        href="aio.html"/>
        <item name="26) Additional Components"
              href="extras.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"/>
    </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="http://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="http://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>
