<?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.3.1</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>
