<?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 xmlns="http://maven.apache.org/DECORATION/1.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/DECORATION/1.0.0                       http://maven.apache.org/xsd/decoration-1.0.0.xsd">
    <skin>
        <groupId>org.apache.maven.skins</groupId>
        <artifactId>maven-fluido-skin</artifactId>
        <version>1.3.0</version>
    </skin>
    <custom>
        <fluidoSkin>
            <topBarEnabled>true</topBarEnabled>
            <sideBarEnabled>true</sideBarEnabled>
            <googleSearch>
                <sitesearch>${project.url}</sitesearch>
            </googleSearch>
            <gitHub>
                <projectId>apache/maven-archetype</projectId>
                <ribbonOrientation>right</ribbonOrientation>
                <ribbonColor>gray</ribbonColor>
            </gitHub>
        </fluidoSkin>
    </custom>
    <body>
        <breadcrumbs>
            <item name="Maven" href="http://maven.apache.org/index.html"/>
            <item name="Maven Archetype" href="http://maven.apache.org/maven-archetype/index.html"/>
        </breadcrumbs>
        <menu name="Overview">
            <item name="Introduction" href="/index.html"/>
            <item name="Maven Archetype Plugin" href="./archetype-plugin/index.html"/>
            <!-- According to http://jira.codehaus.org/browse/MNGSITE-152 -->
            <item name="License" href="http://www.apache.org/licenses/"/>
            <item name="Download" href="download.html"/>
        </menu>
        <menu ref="modules" inherit="bottom"/>
        <menu ref="reports" inherit="bottom"/>
        <footer>
            <div class="row pull-left">Apache ${project.name}, ${project.name}, Apache, the Apache feather logo, and the Apache ${project.name} project logos are trademarks of The Apache Software Foundation.</div>
            <div class="row pull-left">
                <a href="${project.url}privacy-policy.html">Privacy Policy</a>
            </div>
        </footer>
    </body>
</project>
