<?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.
-->
<project>

 <title>LDAP Shared</title>

 <body>

    <links>
      <item name="Directory" href="../../../index.html"/>
      <item name="ApacheDS" href="../../apacheds/index.html"/>
      <item name="LDAP" href="../../ldap.html"/>
      <item name="Naming" href="../../naming/index.html"/>
      <item name="ASN.1" href="../../asn1/index.html"/>
      <item name="Kerberos" href="../../../subprojects/kerberos.html"/>
      <item name="AuthX" href="../../authx/index.html"/>
      <item name="MINA" href="../../network/index.html"/>
      <item name="Protocols" href="../../providers.html"/>
    </links>

    <menu name="LDAP">
      <item name="Overview" href="/index.html"/>
    </menu>
    
    <menu name="Project Information">
      <item name="Wiki" href="http://wiki.apache.org/directory"/>
      <item name="Open Issues" href="http://issues.apache.org/jira/browse/DIRLDAP"/>
      <item name="Source Repositories" href="http://svn.apache.org/viewcvs.cgi/directory/shared/ldap/trunk/?root=Apache-SVN"/>
    </menu>

    <menu name="ApacheCon Europe 2005"> 	 
      <item name="ApacheCon Europe 2005" href="http://www.apachecon.com/"
            img="http://apache.org/images/ac2005eu_135x50.gif" />
    </menu>
 </body>

</project>
