<?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.
  -->
<!DOCTYPE org.apache.commons.menus SYSTEM 'http://jakarta.apache.org/commons/build/maven-build.dtd'>
<project name="Commons&#xA0;VFS">
  <title>Commons&#xA0;VFS</title>
  <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/"/>
    </links>

    <menu name="Commons&#xA0;VFS">
      <item name="Overview"                href="/index.html"/>
      <item name="Download and Build"      href="/download.html"/>
      <item name="3rd party plugins"       href="/3rdparty.html"/>
      <item name="Using the API"           href="/api.html"/>
      <item name="API JavaDocs"            href="/apidocs/index.html"/>
      <item name="File Systems"            href="/filesystems.html"/>
      <item name="Ant Tasks"               href="/anttasks.html"/>
      <item name="Wiki"                    href="http://wiki.apache.org/jakarta-commons/VFS"/>
    </menu>

    <menu name="Development">
      <item name="Test Server"             href="/testserver.html"/>
      <item name="Mailing Lists"           href="/mail-lists.html"/>
      <item name="Issue Tracking"          href="/issue-tracking.html"/>
      <item name="Source Repository"       href="/cvs-usage.html"/>
      <item name="To Do List"              href="/todo.html"/>
    </menu>

    &commons;

  </body>
</project>
