<?xml version="1.0" encoding="ISO-8859-1"?>
<!--
   Copyright 2004 The Apache Software Foundation

   Licensed 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 '../../commons-build/menus/menus.dtd'>
<project name="Commons&#xA0;Functor">
  <title>Commons&#xA0;Functor</title>
  <body>
    <menu name="Commons&#xA0;Functor">
      <item name="Overview" href="/index.html"/>
      <item name="Examples" href="/examples.html"/>
      <item name="Javadoc" href="apidocs/index.html"/>
      <item name="Mailing lists" href="/mail-lists.html"/>
      <item name="Downloads" href="/download.html"/>
    </menu>
    <menu name="Development">
      <item name="Building" href="/building.html"/>
      <item name="Test Coverage" href="/clover/index.html"/>
      <item name="Team" href="/team-list.html"/>
      <item name="Status" href="http://svn.apache.org/viewcvs/*checkout*/jakarta/commons/sandbox/functor/trunk/STATUS.txt"/>
      <item name="SVN" href="http://svn.apache.org/viewcvs/jakarta/commons/sandbox/functor/"/>
    </menu>
    &common-menus;
  </body>
</project>
