<?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="Apache James Mime4J">

    <bannerLeft>
        <name>JAMES Mime4J</name>
        <src>images/james-logo.png</src>
        <href>http://james.apache.org/</href>
        <alt>james-logo.png</alt>
    </bannerLeft>

  <body>
    <menu name="Documentation">
      <item name="Overview" href="/index.html"/>
      <item name="Status" href="/status.html"/>
      <item name="Example" href="/samples.html"/>
      <item name="Usage" href="/usage.html"/>
    </menu>
    
    <menu name="Developers Corner">
      <item name="Download" href="/start/download.html" />
      <item name="Build" href="/start/build.html" />
    </menu>
    
    <menu name="References">
      <item name="Javadoc" href="/apidocs/index.html" />
      <item name="Issue Tracker" href="http://issues.apache.org/jira/browse/MIME4J/" />
    </menu>

    <menu name="Related Projects">
    	<item name="httpmime" href="http://hc.apache.org/httpcomponents-client/httpmime/index.html" />
    </menu>
  </body>
</project>
