<?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="Bigtop">
  <bannerLeft>
    <name>Bigtop</name>
    <src>http://bigtop.apache.org/images/bigtop-logo.png</src>
    <href>http://bigtop.apache.org/</href>
  </bannerLeft>
  <bannerRight>
    <src>http://www.apache.org/images/asf_logo_wide.png</src>
    <href>http://www.apache.org/</href>
  </bannerRight>

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

  <skin>
    <groupId>org.apache.maven.skins</groupId>
    <artifactId>maven-fluido-skin</artifactId>
    <version>1.3.0</version>
  </skin>

  <custom>
    <fluidoSkin>
      <topBarEnabled>true</topBarEnabled>
      <sideBarEnabled>false</sideBarEnabled>
      <leftColumnClass>span2</leftColumnClass>
      <bodyColumnClass>span10</bodyColumnClass>
      <googleSearch>
        <sitesearch>http://bigtop.apache.org</sitesearch>
      </googleSearch>
    </fluidoSkin>
  </custom>

  <body>
    <breadcrumbs position="left">
      <item name="Apache" href="http://www.apache.org/" />
      <item name="Bigtop" href="http://bigtop.apache.org/"/>
    </breadcrumbs>

    <links position="left">
    </links>

    <menu name="Apache Bigtop">
      <item name="Overview" href="index.html"/>
      <item name="Powered by" href="https://cwiki.apache.org/confluence/display/BIGTOP/Powered+By+Bigtop" />
      <item name="Who We Are" href="team-list.html" />
      <item name="Feedback" href="issue-tracking.html" />
      <item name="User Guide" href="book/apache-bigtop-user-guide/apache-bigtop-user-guide.html" />
    </menu>

    <menu name="Releases">
      <item name="Release Notes" href="release-notes.html"/>
      <item name="0.3.0-incubating" href="http://archive.apache.org/dist/incubator/bigtop/bigtop-0.3.0-incubating/"/>
      <item name="1.0.0" href="http://www.apache.org/dyn/closer.lua/bigtop/bigtop-1.0.0/"/>
    </menu>

    <menu name="Project Information">
      <item name="Wiki" href="https://cwiki.apache.org/confluence/display/BIGTOP" />
      <item name="JIRA" href="https://issues.apache.org/jira/browse/BIGTOP" />
      <item name="GIT (browse)" href="https://git-wip-us.apache.org/repos/asf?p=bigtop.git" />
      <item name="GIT (clone)" href="https://git-wip-us.apache.org/repos/asf/bigtop.git" />
      <item name="Blog" href="http://blogs.apache.org/bigtop/" />
      <item name="Mailing Lists" href="mail-lists.html" />
      <item name="IRC channel" href="irc-channel.html" />
    </menu>

    <menu name="ASF">
      <item name="How Apache Works" href="http://www.apache.org/foundation/how-it-works.html"/>
      <item name="Foundation" href="http://www.apache.org/foundation/"/>
      <item name="Sponsoring Apache" href="http://www.apache.org/foundation/sponsorship.html"/>
      <item name="Thanks" href="http://www.apache.org/foundation/thanks.html"/>
    </menu>
  </body>
</project>
