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

    <skin>
        <groupId>org.apache.james</groupId>
        <artifactId>james-skin</artifactId>
        <version>${james-skin.version}</version>
    </skin>

  <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>

    <bannerRight>
        <name>The Apache Software Foundation</name>
        <src>images/logos/asf_logo_small.png</src>
        <href>http://www.apache.org/index.html</href>
    </bannerRight>

  <body>

  <links>
            <item
                    name="Home"
                    href="http://james.apache.org/index.html" />
            <item
                    name="Server"
                    href="http://james.apache.org/server/index.html" />
            <item
                    name="Hupa"
                    href="http://james.apache.org/hupa/index.html" />
            <item
                    name="Protocols"
                    href="http://james.apache.org/protocols/index.html" />
            <item
                    name="Mailets"
                    href="http://james.apache.org/mailet/index.html" />
            <item
                    name="Mailbox"
                    href="http://james.apache.org/mailbox/index.html" />
            <item
                    name="Mime4J"
                    href="http://james.apache.org/mime4j/index.html" />
            <item
                    name="jSieve"
                    href="http://james.apache.org/jsieve/index.html" />
            <item
                    name="jSPF"
                    href="http://james.apache.org/jspf/index.html" />
            <item
                    name="jDKIM"
                    href="http://james.apache.org/jdkim/index.html" />
            <item
                    name="MPT"
                    href="http://james.apache.org/mpt/index.html" />
            <item
                    name="Postage"
                    href="http://james.apache.org/postage/index.html" />
        </links>

    
    <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>

        <menu
                name="About James"
                inherit="bottom">
            <item
                    name="Overview"
                    href="/index.html" />
            <item
                    name="News"
                    href="/newsarchive.html" />
            <item
                    name="Mailing Lists"
                    href="/mail.html" />
            <item
                    name="Contributing"
                    href="/contribute.html" />
            <item
                    name="Guidelines"
                    href="/guidelines.html" />
            <item
                    name="Wiki"
                    href="http://wiki.apache.org/james" />
            <item
                    name="Who We Are"
                    href="/team-list.html" />
            <item
                    name="License"
                    href="/license.html" />
            <item
                    name="Thanks"
                    href="/thanks.html" />
            <item
                    name="Professional support"
                    href="/support.html" />
        </menu>

        <menu
                name="Download"
                inherit="bottom">
            <item
                    name="Releases"
                    href="http://james.apache.org/download.cgi" />
        </menu>




  </body>
</project>
