<?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="FileUpload">
  <bannerLeft>
    <name>Jakarta Commons</name>
    <src>http://jakarta.apache.org/commons/fileupload/images/jakarta-logo-blue.gif</src>
    <href>http://jakarta.apache.org/commons</href>
  </bannerLeft>

  <bannerRight>
    <name>Commons FileUpload</name>
    <src>http://jakarta.apache.org/commons/fileupload/images/logo.png</src>
    <href>http://jakarta.apache.org/commons/fileupload</href>
  </bannerRight>

  <skin>
    <groupId>org.apache.commons</groupId>
    <artifactId>commons-skin</artifactId>
    <version>1.0-SNAPSHOT</version>
  </skin>

  <body>
    <links>
      <item name="Apache" href="http://www.apache.org/"/>
      <item name="Jakarta" href="http://jakarta.apache.org/"/>
      <item name="Commons" href="http://jakarta.apache.org/commons/"/>
      <item name="FileUpload" href="http://jakarta.apache.org/commons/fileupload"/>
    </links>

    <menu name="Commons FileUpload">
      <item name="Overview"                 href="/index.html"/>
      <item name="User guide"               href="/using.html"/>
      <item name="Streaming API"            href="/streaming.html"/>
      <item name="FAQ"                      href="/faq.html"/>
      <item name="Javadoc"                  href="apidocs/index.html"/>
      <item name="Mailing lists"            href="/mail-lists.html"/>
      <item name="Team"                     href="/team-list.html"/>
      <item name="Tasks"                    href="/tasks.html"/>
      <item name="SVN repository"           href="/source-repository.html"/>
    </menu>

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