<?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
  
  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.
-->
<!--
  @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>http://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="http://directory.apache%2eorg/"/>
       <item name="Apache" href="http://www.apache%2eorg/"/>
       <item name="Maven" href="http://maven.apache%2eorg/"/>
    </links>
    <menu ref="reports"/>
  </body>
</project>
