<?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/logos/james-mime4j-logo.gif</src>
        <href>http://james.apache.org/</href>
        <alt>james-mime4j-logo.gif</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>
