<?xml version="1.0" encoding="ISO-8859-1"?>
<!--
/*
 * $Id: site.xml 1081442 2011-03-14 16:21:08Z apetrelli $
 *
 * 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 - Request Microframework">
     <skin>
        <groupId>org.apache.maven.skins</groupId>
        <artifactId>maven-fluido-skin</artifactId>
        <version>1.3.0</version>
     </skin>
     <custom>
        <fluidoSkin>
        <topBarEnabled>true</topBarEnabled>
        <sideBarEnabled>false</sideBarEnabled>
        <searchEnabled>true</searchEnabled>
        <gitHub>
            <projectId>apache/tiles-request</projectId>
            <ribbonOrientation>right</ribbonOrientation>
            <ribbonColor>darkblue</ribbonColor>
        </gitHub>
        </fluidoSkin>
     </custom>
    <bannerLeft>
        <name>Apache Tiles&#8482;</name>
        <src>http://tiles.apache.org/images/logo.png</src>
        <href>http://tiles.apache.org</href>
    </bannerLeft>
    <bannerRight>
        <name>Apache Software Foundation</name>
        <src>https://tiles.apache.org/images/logos/asf_logo_url.svg</src>
        <href>http://www.apache.org</href>
    </bannerRight>
    <body>

        <menu name="Apache Tiles&#8482;">
            <item
                   name="Welcome"
                   href="/index.html"/>
            <item
                    name="Tiles 3.0.x"
                    href="/framework/index.html"/>
            <item
                    name="Autotag 1.0.x"
                    href="/tiles-autotag/index.html"/>
            <item
                    name="Request 1.0.x"
                    href="/tiles-request/index.html"/>
            <item
                   name="Download"
                   href="http://tiles.apache.org/download.html"/>
        </menu>
        <menu name="Reference">
            <item
                    name="Javadoc"
                    href="apidocs/index.html"/>
        </menu>

        <menu name="Developers">
            <item
                    name="Building"
                    href="dev/building.html"/>
            <item
                    name="Snapshots"
                    href="dev/snapshots.html"/>
            <item
                    name="Release Process"
                    href="dev/release.html"/>
        </menu>

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

        <footer>
            <div class="row span12">
                Apache Tiles, Tiles, Apache, the Apache feather logo, and the Apache Tiles
                project logos are trademarks of The Apache Software Foundation.
            </div>
        </footer>
    </body>
</project>
