<?xml version="1.0" encoding="ISO-8859-1"?>
<!--
    $Id$

    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="Struts 1">
    <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 Struts</name>
        <src>http://struts.apache.org/images/struts.gif</src>
        <href>http://struts.apache.org/1.x/index.html</href>
    </bannerRight>
    <body>
        <links>
            <item name="Apache" href="http://www.apache.org/" />
            <item name="Struts" href="http://struts.apache.org/index.html" />
        </links>
        <menu name="Struts 1">
            <item
                    name="Welcome"
                    href="index.html"
                    />
            <item
                    name="Learning"
                    href="learning.html"
                    />
            <item
                    name="Roadmap"
                    href="roadmap.html"
                    />
            <item
                    name="Releases"
                    href="http://struts.apache.org/downloads.html"/>
            <item
                    name="Thanks!"
                    href="http://apache.org/foundation/thanks.html"/>
            <item
                    name="Sponsorship"
                    href="http://apache.org/foundation/sponsorship.html"/>
        </menu>

        <menu name="Documentation">
            <item
                    name="User Guide"
                    href="userGuide/index.html"
                    />
            <item
                    name="FAQs and HOWTOs"
                    href="faqs/index.html"
                    />
            <item
                    name="Release Notes"
                    href="userGuide/release-notes.html"
                    />
            <item
                    name="Javadoc"
                    href="apidocs/index.html"
                    />
            <item
                    name="DTDDoc"
                    href="dtddoc/index.html"
                    />
        </menu>

        <menu name="Support">
            <item
                    name="User Mailing List"
                    href="http://struts.apache.org/mail.html"
                    />
            <item
                    name="Issue Tracker (JIRA)"
                    href="http://issues.apache.org/struts/"
                    />
            <item
                    name="Wiki Pages"
                    href="http://wiki.apache.org/struts/"
                    />
        </menu>

        <menu name="Components">

            <item   name="Struts Apps"
                    href="struts-apps/index.html" />

            <item   name="Struts EL"
                    href="struts-el/index.html" />

            <item   name="Struts Extras"
                    href="struts-extras/index.html" />

            <item   name="Struts Faces"
                    href="struts-faces/index.html" />

            <item   name="Struts Scripting"
                    href="struts-scripting/index.html" />

            <item   name="Struts Taglib"
                    href="struts-taglib/index.html" />

            <item   name="Struts Tiles"
                    href="struts-tiles/index.html" />

        </menu>

        ${reports}
    </body>
</project>
