<?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://commons.apache.org/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="Commons" href="http://commons.apache.org/"/>
    </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/commons/VFS"/>
    </menu>

    <menu name="Development">
      <item name="Testing"                 href="/testing.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>
