<?xml version="1.0" encoding="UTF-8"?>

<project>
  <bannerLeft>
    <src>images/apache-directory-logo.png</src>
    <href>http://directory.apache.org/</href>
  </bannerLeft>
  <bannerRight>
    <name>ApacheDS</name>
  </bannerRight>
  <body>
    <links>
       <item name="ApacheDS" href="http://directory.apache.org/subprojects/apacheds/index.html"/>
       <item name="Naming" href="http://directory.apache.org/subprojects/naming/index.html"/>
       <item name="MINA (Network Layer)" href="http://directory.apache.org/subprojects/mina/index.html"/>
       <item name="Directory" href="http://directory.apache.org/index.html"/>
    </links>
    <menu name="Apache Directory Server">
      <item name="Overview" href="/index.html"/>
      <item name="Features" href="/features.html"/>
      <item name="Roadmap" href="/roadmap.html"/>
      <item name="Documentation" collapse="false">
        <item name="User's Guide" href="/docs/users/index.html" collapse="true">
          <item name="Building" href="/docs/users/building.html"/>
          <item name="Authentication" href="/docs/users/authentication.html"/>
          <item name="Authorization" href="/docs/users/authorization.html"/>
          <item name="Subentries" href="/docs/users/subentries.html"/>
          <item name="Collective Attributes" href="/docs/users/collective.html"/>
          <item name="Configuration" href="/docs/users/configuration.html"/>
          <item name="Partitions" href="/docs/users/partitions.html"/>
          <item name="Maven Plugin" href="/docs/users/plugin.html"/>
        </item>
        <item name="Developer's Guide" href="/docs/developers/index.html" collapse="true">
          <item name="Architecture" href="/docs/developers/architecture.html"/>
          <item name="Components" href="/docs/developers/components.html"/>
          <item name="Networking" href="/docs/developers/networking.html"/>
          <item name="Protocol" href="/docs/developers/protocol.html"/>
          <item name="Backend Subsystem" href="/docs/developers/backend.html"/>
        </item>
        <item name="API Docs" href="/docs/api/index.html"/>
      </item>
      <item name="ApacheDS Modules" href="/modules.html"/>
      <item name="Releases" href="/releases.html"/>
      <item name="Downloads" href="http://www.apache.org/dyn/closer.cgi/directory/apacheds/"/>
    </menu>
    
    <!-- <menu name="Project Information">
      <item name="Combined Javadocs" href="/apidocs/index.html"/>
      <item name="Wiki" href="http://wiki.apache.org/directory"/>
      <item name="Open Issues" href="http://issues.apache.org/jira/browse/DIREVE"/>
      <item name="Source Repositories" href="http://svn.apache.org/viewcvs.cgi/directory/apacheds/trunk/?root=Apache-SVN"/>
      <item name="Mailing Lists" href="/mailing-lists.html"/>
      <item name="License" href="/license.html"/>
      <item name="Notices" href="/notices.html"/>
    </menu> -->
    
    <!-- Commented out, still useful as a placeholder for the next event 
    <menu name="ApacheCon US 2005"> 	 
      <item name="ApacheCon US 2005" href="http://www.apachecon.com/"
            img="http://apache.org/images/ac2005us_blue_125x125.jpg" />
    </menu>
     -->
    ${reports}
 </body>

</project>
