<?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="MRUnit">
  <bannerLeft>
    <name>MRUnit</name>
    <href>http://incubator.apache.org/mrunit/</href>
  </bannerLeft>
  <bannerRight>
    <src>http://incubator.apache.org/images/apache-incubator-logo.png</src>
    <href>http://incubator.apache.org/</href>
  </bannerRight>

  <publishDate position="right"/>
  <version position="right"/>

  <body>
    <links position="left">
      <item name="Wiki" href="https://cwiki.apache.org/confluence/display/MRUNIT" />
      <item name="JIRA" href="https://issues.apache.org/jira/browse/MRUNIT" />
      <item name="SVN" href="https://svn.apache.org/repos/asf/incubator/mrunit/" />
    </links>

    <breadcrumbs position="left">
      <item name="Apache" href="http://www.apache.org/" />
      <item name="Apache Incubator" href="http://incubator.apache.org/" />
      <item name="MRUnit" href="http://incubator.apache.org/mrunit/"/>
    </breadcrumbs>

    <menu name="MRUnit">
      <item name="About" href="index.html"/>
      <item name="Download" href="http://www.apache.org/dyn/closer.cgi/incubator/mrunit/"/>
      <item name="Road Map" href="https://issues.apache.org/jira/browse/MRUNIT#selectedTab=com.atlassian.jira.plugin.system.project%3Aroadmap-panel" />
      <item name="Wiki" href="https://cwiki.apache.org/confluence/display/MRUNIT" />
    </menu>

    <menu name="Project Information">
      <item name="Summary" href="project-info.html" />
      <item name="Mailing Lists" href="mail-lists.html" />
      <item name="Issue Tracking" href="issue-tracking.html" />
      <item name="Source" href="source-repository.html" />
      <item name="Team" href="team-list.html" />
      <item name="License" href="license.html" />
      <item name="Dependencies" href="dependencies.html" />
    </menu>

    <menu name="Reports">
      <item name="Summary" href="project-reports.html" />
      <item name="Unit Test Report" href="surefire-report.html" />
      <item name="Javadoc" href="apidocs" />
      <item name="Source Xref" href="xref/index.html" />
      <item name="Test Source Xref" href="xref-test/index.html" />
    </menu>

  </body>
</project>
