<?xml version="1.0" encoding="UTF-8"?>
<!--
  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
  
  https://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.
-->
<!--
  @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
-->
<project name="${project.name}">
  <bannerLeft>
    <src>images/server-icon_128x128.png</src>
    <href>https://directory.apache.org/</href>
    <name>${project.name}</name>
  </bannerLeft>
  <skin>
    <groupId>org.apache.directory.skins</groupId>
    <artifactId>directory-skin</artifactId>
    <version>${skin.version}</version>
  </skin>
  <publishDate position="navigation-bottom" format="dd-MM-yyyy HH:mm"/>
  <version position="right"/>
  <body>
    <links>
       <!--
         Need to encode a part of the url due to Issue
         http://jira.codehaus.org/browse/MSITE-159
         and as of https://bugzilla.mozilla.org/show_bug.cgi?id=43659
         this workaround doesn't works in FF 3.x ...
        -->
       <item name="Apache Directory" href="https://directory.apache%2eorg/"/>
       <item name="Apache" href="https://www.apache%2eorg/"/>
       <item name="Maven" href="https://maven.apache%2eorg/"/>
    </links>
    <menu ref="reports"/>
  </body>
</project>
