<?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="jSieve">
  <bannerLeft>
    <name>JAMES jSieve</name>
    <src>images/james-jsieve-logo.gif</src>
    <href>http://james.apache.org/</href>
  </bannerLeft>

  <bannerRight>
    <name>The Apache Software Foundation</name>
    <src>images/asf-logo-reduced.gif</src>
    <href>http://www.apache.org/index.html</href>
  </bannerRight>

  <skin>
    <groupId>org.apache.james</groupId>
    <artifactId>maven-skin</artifactId>
    <version>1.2</version>
  </skin>

  <body>
    <menu name="jSieve">
      <item name="Main" href="http://james.apache.org/jsieve/main/index.html" />
      <item name="Mailet" href="http://james.apache.org/jsieve/mailet/index.html" />
      <item name="Util" href="http://james.apache.org/jsieve/util/index.html" />
      <item name="Changes" href="http://james.apache.org/jsieve/jira-report.html" />
      <item name="Release Notes" href="http://james.apache.org/jsieve/release-notes.html" />
      <item name="JavaDocs" href="http://james.apache.org/jsieve/apidocs/index.html" />
      <item name="RFC 2234 (ABNF)"
        href="http://www.ietf.org/rfc/rfc2234.txt" />
      <item name="RFC 2244 (ACAP)"
        href="http://www.ietf.org/rfc/rfc2244.txt" />
      <item name="RFC 2298 (MDN)"
        href="http://www.ietf.org/rfc/rfc2298.txt" />
      <item name="RFC 3028 (Sieve)"
        href="http://www.ietf.org/rfc/rfc3028.txt" />
    </menu>

    <menu name="Useful Information">
      <item name="Get Involved"
        href="http://jakarta.apache.org/site/getinvolved.html" />
      <item name="Reference Library"
        href="http://jakarta.apache.org/site/library.html" />
    </menu>

    <menu name="The Apache Software Foundation">
      <item name="FAQ" href="http://apache.org/foundation/faq.html" />
      <item name="Sponsorship"
        href="http://apache.org/foundation/sponsorship.html" />
      <item name="Donations"
        href="http://apache.org/foundation/contributing.html" />
      <item name="Thanks"
        href="http://apache.org/foundation/thanks.html" />
    </menu>
  </body>
</project>
