<?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/james-logo.png</src>
    <href>http://james.apache.org/jspf/index.html</href>
    <alt>james-logo.png</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>
