<?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 - Tiles Autotags">
    <bannerLeft>
        <name>Apache Software Foundation</name>
        <src>http://www.apache.org/images/asf-logo.gif</src>
        <href>http://www.apache.org</href>
    </bannerLeft>
    <bannerRight>
        <name>Apache Tiles&#8482;</name>
        <src>http://tiles.apache.org/images/logo.png</src>
        <href>http://tiles.apache.org</href>
    </bannerRight>
    <body>

        <links>
            <item name="Apache" href="http://www.apache.org" />
            <item name="Tiles" href="http://tiles.apache.org" />
        </links>


        <menu name="Apache Tiles&#8482;">
            <item
                   name="Tiles Home"
                   href="../index.html"/>
            <item
                   name="Tiles Autotag"
                   href="./index.html"/>
            <item
                   name="Download"
                   href="http://tiles.apache.org/download.html"/>
        </menu>
        <menu name="Reference">
            <item
                    name="Creating an generic tag library"
                    href="./taglib.html"/>
            <item
                    name="Building a tag library"
                    href="./plugin.html"/>
            <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" />

    </body>
</project>
