<?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="jSPF">

  <bannerLeft>
    <name>James jSPF</name>
    <src>images/logos/james-jspf-logo.gif</src>
    <href>http://james.apache.org/jspf/index.html</href>
    <alt>james-jspf-logo.gif</alt>
  </bannerLeft>

  <body>
    
    <menu name="jSPF" inherit="top">
      <item name="Overview" href="/index.html"/>
      <item name="jSPF FAQ" href="/FAQ.html"/>
      <item name="Mailing Lists" href="https://builds.apache.org/hudson/view/G-L/view/James/job/jspf-trunk-site/site/mail-lists.html" />
      <item name="Useful RFCs" href="/rfclist.html"/>
    </menu>

    <!-- Not yet there
    <menu name="Documentation">
      <item name="jSPF" href="documentation.html"/>
      <item name="Design" href="design.html"/>
      <item name="jSPF Javadocs" href="apidocs/index.html" />
    </menu>
    -->

  </body>
</project>
