 <?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="Giraph">
  <skin>
    <groupId>org.apache.maven.skins</groupId>
    <artifactId>maven-fluido-skin</artifactId>
    <version>1.3.0</version>
  </skin>

  <custom>
    <fluidoSkin>
      <googleSearch>
        <sitesearch>http://giraph.apache.org</sitesearch>
      </googleSearch>
      <facebookLike />
      <googlePlusOne />
      <topBarEnabled>true</topBarEnabled>
      <sideBarEnabled>false</sideBarEnabled>
      <sourceLineNumbersEnabled>true</sourceLineNumbersEnabled>
    </fluidoSkin>
  </custom>

  
 
  <bannerLeft>
    <src>images/ApacheGiraph.svg</src>
    <href>http://giraph.apache.org/</href>
  </bannerLeft>

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

  <body>
    <breadcrumbs position="left">
      <item name="Apache" href="http://www.apache.org/" />
      <item name="Giraph" href="http://giraph.apache.org/"/>
    </breadcrumbs>
    
    <menu name="Project Information" inherit="top">
      <item name="Team" href="team-list.html" />
      <item name="Mailing Lists" href="mail-lists.html" />
      <item name="Source Repository" href="source-repository.html" />
      <item name="Issue Tracking" href="issue-tracking.html" />
      <item name="Continuous Integration" href="integration.html" />
      <item name="Summary" href="project-summary.html" />
      <item name="License" href="http://www.apache.org/licenses/LICENSE-2.0.html" />
      <item name="Dependencies" href="dependencies.html" />
      <item name="Reports" href="project-reports.html" collapse="true">
        <item name="Surefire Report" href="surefire-report.html" />
        <item name="Checkstyle Results" href="checkstyle-aggregate.html" />
        <item name="JavaDoc" href="apidocs/index.html" />
        <item name="Test JavaDoc" href="testapidocs/index.html" />
      </item>
    </menu>

    <menu name="User Docs" inherit="top">
      <item name="Introduction" href="intro.html"/>
      <item name="Related Literature" href="literature.html"/>
      <item name="Download Releases" href="releases.html"/>
      <item name="Quick Start" href="quick_start.html"/>
      <item name="Building and Testing" href="build.html"/>
      <item name="Options List" href="options.html"/>
      <item name="Blocks Framework" href="blocks.html"/>
      <item name="FAQ" href="faq.html"/>
      <item name="Presentations" href="presentations.html"/>
      <item name="External Community Wiki" href="https://cwiki.apache.org/confluence/display/GIRAPH" />
    </menu> 

    <menu name="Developer Docs" inherit="top">
      <item name="JavaDoc" href="apidocs/index.html" />
      <item name="Test JavaDoc" href="testapidocs/index.html" />
      <item name="Tag List" href="taglist.html" />
      <item name="Cobertura Test Coverage" href="cobertura/index.html" />
      <item name="Jdepend" href="giraph-core/jdepend-report.html" />
      <item name="Source Xref" href="xref/index.html" />
      <item name="Test Source Xref" href="xref-test/index.html" />
  
      <item name="Modules" href="javadoc_modules.html">
        <item name="Aggregators" href="aggregators.html"/>
        <item name="Out-of-core" href="ooc.html"/>
        <item name="Implementation" href="implementation.html"/>
        <item name="Page Rank Example" href="pagerank.html"/>
        <item name="Input/Output in Giraph" href="io.html"/>
        <item name="Hive I/O" href="hive.html"/>
	<item name="Gora I/O" href="gora.html"/>
    	<item name="Rexster I/O" href="rexster.html"/>
      </item>
      <item name="How to generate patches?" href="generating_patches.html" />
      <item name="How to release giraph?" href="releasing_giraph.html" />
      <item name="How to build this site?" href="build_site.html" />
    </menu>
  </body>
</project>
