<?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="Redback Components" >

  <bannerLeft>
    <name>Apache Archiva</name>
    <src>http://archiva.apache.org/images/archiva.png</src>
    <!-- have to add the index.html to get the right location, due to bug in Doxia. Still not correct for subdirectories though -->
    <href>http://archiva.apache.org/index.html</href>
  </bannerLeft>
  <bannerRight>
    <name>Apache Software Foundation</name>
    <src>http://www.apache.org/images/asf_logo_wide.png</src>
    <href>http://www.apache.org/</href>
  </bannerRight>

  <custom>
    <fluidoSkin>
      <topBarEnabled>true</topBarEnabled>
      <sideBarEnabled>false</sideBarEnabled>
      <skipGenerationDate>true</skipGenerationDate>
      <googleSearch>
        <sitesearch>http://archiva.apache.org/redback/components</sitesearch>
      </googleSearch>
    </fluidoSkin>
  </custom>

  <publishDate format="yyyy-MM-dd" position="none" />

  <body>
    <links>
      <item name="Archiva" href="../../index.html"/>
    </links>

    <menu ref="modules" />
    <menu ref="reports" />
    <menu ref="ASF" />
    <breadcrumbs>
      <item name="Archiva" href="../../index.html" />
    </breadcrumbs>
  </body>
</project>
