<?xml version="1.0" encoding="ISO-8859-1"?>
<!--
  ~ 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 Maven Plugin">
  <bannerLeft>
    <name>Tomcat</name>
    <src>http://tomcat.apache.org/images/tomcat.gif</src>
    <href>http://tomcat.apache.org/</href>
  </bannerLeft>
  <bannerRight>
    <src>http://www.apache.org/images/asf-logo.gif</src>
    <href>http://www.apache.org</href>
  </bannerRight>
  <skin>
    <groupId>org.apache.maven.skins</groupId>
    <artifactId>maven-fluido-skin</artifactId>
    <version>1.7</version>
  </skin>

  <custom>
    <fluidoSkin>
      <topBarEnabled>true</topBarEnabled>
      <sideBarEnabled>false</sideBarEnabled>
      <topBarContainerStyle>width: auto;</topBarContainerStyle>
      <skipGenerationDate>true</skipGenerationDate>
      <googleSearch>
        <sitesearch>${project.url}</sitesearch>
      </googleSearch>
      <twitter>
        <user>TheApacheTomcat</user>
        <showUser>true</showUser>
        <showFollowers>false</showFollowers>
      </twitter>
    </fluidoSkin>

  </custom>

  <publishDate format="dd MMMM yyyy" position="right" />
  <version position="right" />

  <body>
    <breadcrumbs>
      <item name="Apache" href="http://www.apache.org/" />
      <item name="Apache Tomcat" href="http://tomcat.apache.org/" />
      <item name="Apache Tomcat Maven plugin" href="index.html" />
    </breadcrumbs>

    <menu name="Apache Tomcat Mojo">
      <item name="About"             href="index.html"/>
      <item name="Context Goals"     href="context-goals.html"/>
      <item name="Container Goals"   href="container-goals.html"/>
      <item name="Executable War"    href="executable-war-jar.html"/>
      <item name="Run Mojo"          href="run-mojo-features.html"/>
      <item name="Maven Archetype"   href="archetype.html"/>
      <item name="Developement Test" href="snapshot-test.html"/>
      <item name="How to contribute" href="how-to-contribute.html"/>
      <item name="Changelog"         href="jira-report.html"/>
      <item name="License"           href="http://www.apache.org/licenses/"/>
    </menu>

    <menu ref="modules" inherit="bottom"/>
    <menu ref="reports" inherit="bottom"/>

    <menu name="ASF">
      <item name="How Apache Works" href="http://www.apache.org/foundation/how-it-works.html"/>
      <item name="Foundation" href="http://www.apache.org/foundation/"/>
      <item name="Sponsoring Apache" href="http://www.apache.org/foundation/sponsorship.html"/>
      <item name="Thanks" href="http://www.apache.org/foundation/thanks.html"/>
    </menu>

    <footer>
      <div class="row span16">
        Apache Tomcat, Tomcat, Apache Maven, Maven, Apache, the Apache feather, and the Apache Tomcat project logo are trademarks of the Apache Software Foundation.</div>
    </footer>

  </body>

</project>
