<!--
  #%L
  Grill
  %%
  Copyright (C) 2014 Inmobi
  %%
  Licensed 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.
  #L%
  -->
<project name="Grill" xmlns="http://maven.apache.org/DECORATION/1.3.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/DECORATION/1.3.0 http://maven.apache.org/xsd/decoration-1.3.0.xsd">

	<publishDate position="right"/>
	<version position="right"/>
	<bannerLeft>
    <name>Grill Analytics Platform for InMobi</name>
		<title>Grill Analytics Platform</title>
		<src>http://inmobi.github.io/grill/grill-logo.png</src>
		<href>http://inmobi.github.io/grill</href>
  </bannerLeft>
	
 <body>
    <menu name="Grill" >
      <item name="Overview" href="index.html" />
      <item name="Getting Started" href="./gettingstarted/quick-start.html" />
      <item name="Install and Run" href="./gettingstarted/install-steps.html" />
      <item name="Pseudo Distributed Setup" href="./gettingstarted/pseudo-distributed-setup.html" />
    </menu>
		<menu name="User Documentation">
      <item name="Grill User Guide" href="./user/index.html" />
      <item name="OLAP data cube" href="./user/olap-cube.html" />
      <item name="REST API" href="./rest.html" />
      <item name="Grill CLI" href="./user/cli.html" />
			<item name="Java Client Library" href="./user/java-client.html"/>
			<item name="JDBC Client" href="./user/jdbc-client.html"/>
			<item name="FAQ" href="./user/faq.html"/>
		</menu>
		<menu name="Developer Documentation">
      <item name="Grill Design" href="./developer/design.html" />
      <item name="Driver Developer Guide" href="./developer/driver.html" />
    </menu>
		<menu name="Admin Documentation">
      <item name="Admin Overview" href="./admin/index.html"/>
      <item name="Deployment" href="./admin/deployment.html"/>
      <item name="Configuration" href="./admin/config-server.html"/>
			<item name="Admin CLI" href="./admin/cli.html" />
    </menu>
    <menu ref="reports"/>
    <breadcrumbs>
      <item name="InMobi" href="https://github.com/InMobi" />
			<item name="Grill" href="https://github.com/InMobi/grill" />
    </breadcrumbs>
  </body>
  <skin>
    <groupId>org.apache.maven.skins</groupId>
    <artifactId>maven-classic-skin</artifactId>
    <version>1.1</version>
  </skin>
  <poweredBy>
    <logo name="inmobi" href="http://www.inmobi.com/"
          img="../images/inmobi-logo.jpg"/>
  </poweredBy>
</project>
