<?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>
  <!-- TODO: inherited publish, banner, skin -->
  <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>
  <googleAnalyticsAccountId>UA-140879-5</googleAnalyticsAccountId>
  <bannerRight>
    <name>Apache Software Foundation</name>
    <src>https://www.apache.org/images/asf_logo_wide_2016.png</src>
    <href>http://www.apache.org/</href>
  </bannerRight>
  <publishDate format="dd MMM yyyy" position="right" />
  <version position="none" />
  <skin>
    <groupId>org.apache.maven.skins</groupId>
    <artifactId>maven-fluido-skin</artifactId>
    <version>1.6</version>
  </skin>
  <body>
    <menu ref="reports" inherit="bottom"/>
  </body>
</project>
