You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@directory.apache.org by bu...@apache.org on 2012/10/02 18:59:58 UTC

svn commit: r833773 - in /websites/staging/directory/trunk/content: ./ api/download/groovy-ldap.zip api/groovy-ldap-download.html api/groovy-ldap-origin.html api/groovy-ldap.html

Author: buildbot
Date: Tue Oct  2 16:59:57 2012
New Revision: 833773

Log:
Staging update by buildbot for directory

Added:
    websites/staging/directory/trunk/content/api/download/groovy-ldap.zip   (with props)
    websites/staging/directory/trunk/content/api/groovy-ldap-download.html
    websites/staging/directory/trunk/content/api/groovy-ldap-origin.html
Modified:
    websites/staging/directory/trunk/content/   (props changed)
    websites/staging/directory/trunk/content/api/groovy-ldap.html

Propchange: websites/staging/directory/trunk/content/
------------------------------------------------------------------------------
--- cms:source-revision (original)
+++ cms:source-revision Tue Oct  2 16:59:57 2012
@@ -1 +1 @@
-1393024
+1393031

Added: websites/staging/directory/trunk/content/api/download/groovy-ldap.zip
==============================================================================
Binary file - no diff available.

Propchange: websites/staging/directory/trunk/content/api/download/groovy-ldap.zip
------------------------------------------------------------------------------
    svn:mime-type = application/zip

Added: websites/staging/directory/trunk/content/api/groovy-ldap-download.html
==============================================================================
--- websites/staging/directory/trunk/content/api/groovy-ldap-download.html (added)
+++ websites/staging/directory/trunk/content/api/groovy-ldap-download.html Tue Oct  2 16:59:57 2012
@@ -0,0 +1,181 @@
+<!DOCTYPE html>
+<!--
+    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.
+-->
+<html>
+	<head>
+		<title>Groovy LDAP Download, Sources &amp; Building &mdash; Apache Directory</title>
+		
+	    <link href="./../css/common.css" rel="stylesheet" type="text/css">
+	    <link href="./../css/brown.css" rel="stylesheet" type="text/css">
+    
+	</head>
+	<body>
+	    <div id="container">
+            <div id="header">
+                <div id="subProjectsNavBar">
+                    <a href="./../">
+                        
+                        Apache Directory Project
+                        
+                    </a>
+                    &nbsp;|&nbsp;
+                    <a href="./../apacheds">
+                        
+                        ApacheDS
+                        
+                    </a>
+                    &nbsp;|&nbsp;
+                    <a href="./../studio">
+                        
+                        Apache Directory Studio
+                        
+                    </a>
+                    &nbsp;|&nbsp;
+                    <a href="./../api">
+                        
+                        <STRONG>Apache LDAP API</STRONG>
+                        
+                    </a>
+                </div><!-- subProjectsNavBar -->
+            </div><!-- header -->
+            <div id="content">
+                <div id="leftColumn">
+                    
+<div id="navigation">
+    
+    <h5>Latest Downloads</h5>
+    <ul>
+	    <li><a href="./../api/downloads.html">Version 1.0.0-M11</a>&nbsp;&nbsp;<IMG src="./../images/new_badge.gif" alt="" style="margin-bottom:-3px;" border="0"></li>
+    </ul>
+    <h5>Getting Started</h5>
+    <ul>
+        <li><a href="./../api/vision.html">Vision</a></li>
+        <li><a href="./../api/java-api.html">Java API</a></li>
+        <li><a href="./../api/groovy-ldap.html">Groovy API</a></li>
+    </ul>
+    <h5>Documentation</h5>
+    <ul>
+	    <li><a href="./../api/five-minutes-tutorial.html">Five minutes tutorial</a></li>
+	    <li><a href="./../api/user-guide.html">User Guide</a></li>
+        <li><a href="./../api/gen-docs/latest/apidocs/">JavaDocs</a></li>
+        <li><a href="./../api/gen-docs/latest/">Generated Reports</a></li>
+        <li><a href="./../api/developer-guide.html">Developer Guide</a></li>
+    </ul>
+    
+    
+    <h5>Community</h5>
+    <ul>
+        <li><a href="./../contribute.html">How to Contribute</a></li>
+        <li><a href="./../team.html">Team</a></li>
+        <li><a href="./../original-project-proposal.html">Original Project Proposal</a></li>
+    </ul>
+    <h5>About Apache</h5>
+    <ul>
+        <li><a href="http://www.apache.org/">Apache</a></li>
+        <li><a href="http://www.apache.org/licenses/">License</a></li>
+        <li><a href="http://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
+        <li><a href="http://www.apache.org/foundation/thanks.html">Thanks</a></li>
+        <li><a href="http://www.apache.org/security/">Security</a></li>
+    </ul>
+    
+</div><!-- navigation -->
+
+                </div><!-- leftColumn -->
+                <div id="rightColumn">
+
+<h1 id="groovy-ldap-download-sources-building">Groovy LDAP Download, Sources &amp; Building</h1>
+<h2 id="download-groovy-ldap">Download Groovy LDAP</h2>
+<p>Here is a ZIP-File which contains the source code and the compiled jar file to be used as a Groovy module.</p>
+<p><strong><a href="download/groovy-ldap.zip">groovy-ldap.zip</a></strong></p>
+<h2 id="implementation">Implementation</h2>
+<p>Currently, the implementation is comprised of some Java classes and two enumerations (search scopes and modification types). The class <em>LDAP</em> is the main entry point for scripts, just as the class <em>LDAPConnection</em> in the Netscape SDK. It provides the operations implemented so far. I have decided to omit methods for connecting and disconnecting explicitly (<em>bind</em>, <em>unbind</em> in LDAP). Instead all methods handle the connection themselves, which makes the Groovy source code shorter. Class <em>DirContextToMapObjectFactory</em> acts under the hood. It transforms a <em>DirContext</em> object from JNDI search results and lookups into a Java map. This trick enables the script writer to use expressions like <em>tori.cn</em> in order to retrieve an attribute value.  There are probably better solutions to accomplish this task.</p>
+<h2 id="source-code">Source code</h2>
+<p>Source code of the proof of concept is currently available for review here :</p>
+<p><a href="http://svn.apache.org/repos/asf/directory/sandbox/szoerner/groovyldap">http://svn.apache.org/repos/asf/directory/sandbox/szoerner/groovyldap</a></p>
+<p>In order to check it out, simply type</p>
+<div class="codehilite"><pre><span class="n">D:</span><span class="o">\</span><span class="n">Apache</span><span class="o">&gt;</span><span class="n">svn</span> <span class="n">co</span> <span class="n">http:</span><span class="sr">//s</span><span class="n">vn</span><span class="o">.</span><span class="n">apache</span><span class="o">.</span><span class="n">org</span><span class="sr">/repos/</span><span class="n">asf</span><span class="sr">/directory/s</span><span class="n">andbox</span><span class="sr">/szoerner/g</span><span class="n">roovyldap</span>
+<span class="n">A</span>    <span class="n">groovyldap</span><span class="o">\</span><span class="n">src</span>
+<span class="n">A</span>    <span class="n">groovyldap</span><span class="o">\</span><span class="n">src</span><span class="o">\</span><span class="n">main</span>
+<span class="n">A</span>    <span class="n">groovyldap</span><span class="o">\</span><span class="n">src</span><span class="o">\</span><span class="n">main</span><span class="o">\</span><span class="n">java</span>
+<span class="n">A</span>    <span class="n">groovyldap</span><span class="o">\</span><span class="n">src</span><span class="o">\</span><span class="n">main</span><span class="o">\</span><span class="n">java</span><span class="o">\</span><span class="n">org</span>
+<span class="n">A</span>    <span class="n">groovyldap</span><span class="o">\</span><span class="n">src</span><span class="o">\</span><span class="n">main</span><span class="o">\</span><span class="n">java</span><span class="o">\</span><span class="n">org</span><span class="o">\</span><span class="n">apache</span>
+<span class="o">...</span>
+<span class="n">Checked</span> <span class="n">out</span> <span class="n">revision</span> <span class="mi">558335</span><span class="o">.</span>
+
+<span class="n">D:</span><span class="o">\</span><span class="n">Apache</span><span class="o">&gt;</span><span class="n">_</span>
+</pre></div>
+
+
+<h2 id="building-the-software">Building the software</h2>
+<h3 id="resolving-the-dependencies">Resolving the dependencies</h3>
+<p>Groovy LDAP needs Java 5 to compile. Besides this, it has only one dependency: Groovy itself. For LDAP communication, JNDI and its LDAP provider are used. These are part of the JDK since ages. </p>
+<p>In order to build the software, Apache ant is used. For dependency resolution we use <a href="http://incubator.apache.org/ivy">Ivy</a>. You need to configure your ant tool to use Ivy. One option is to place the corresponding jar file <em>ivy-1.4.1.jar</em> (or later) in the <em>lib</em> folder of your ant distribution.</p>
+<h3 id="building-with-ant-and-ivy-deprecated">Building with ant and ivy (deprecated)</h3>
+<p>Simply change to the <em>groovyldap</em> directory and type <em>ant</em>.</p>
+<div class="codehilite"><pre><span class="n">D:</span><span class="o">\</span><span class="n">Apache</span><span class="o">&gt;</span><span class="n">cd</span> <span class="n">groovyldap</span>
+<span class="n">D:</span><span class="o">\</span><span class="n">Apache</span><span class="o">\</span><span class="n">groovyldap</span><span class="o">&gt;</span><span class="n">ant</span>
+<span class="n">Buildfile:</span> <span class="n">build</span><span class="o">.</span><span class="n">xml</span>
+
+<span class="n">prepare:</span>
+    <span class="p">[</span><span class="nb">mkdir</span><span class="p">]</span> <span class="n">Created</span> <span class="n">dir:</span> <span class="n">D:</span><span class="o">\</span><span class="n">Apache</span><span class="o">\</span><span class="n">groovyldap</span><span class="o">\</span><span class="n">dist</span>
+    <span class="p">[</span><span class="nb">mkdir</span><span class="p">]</span> <span class="n">Created</span> <span class="n">dir:</span> <span class="n">D:</span><span class="o">\</span><span class="n">Apache</span><span class="o">\</span><span class="n">groovyldap</span><span class="o">\</span><span class="n">dist</span><span class="o">\</span><span class="n">classes</span>
+    <span class="p">[</span><span class="nb">mkdir</span><span class="p">]</span> <span class="n">Created</span> <span class="n">dir:</span> <span class="n">D:</span><span class="o">\</span><span class="n">Apache</span><span class="o">\</span><span class="n">groovyldap</span><span class="o">\</span><span class="n">lib</span>
+
+<span class="n">resolve:</span>
+<span class="p">[</span><span class="n">ivy:retrieve</span><span class="p">]</span> <span class="o">::</span> <span class="n">Ivy</span> <span class="mf">1.4.1</span> <span class="o">-</span> <span class="mi">20061109165313</span> <span class="o">::</span> <span class="n">http:</span><span class="sr">//i</span><span class="n">vy</span><span class="o">.</span><span class="n">jayasoft</span><span class="o">.</span><span class="n">org</span><span class="o">/</span> <span class="o">::</span>
+
+<span class="o">...</span>
+
+<span class="n">jarfile:</span>
+      <span class="p">[</span><span class="n">jar</span><span class="p">]</span> <span class="n">Building</span> <span class="n">jar:</span> <span class="n">D:</span><span class="o">\</span><span class="n">Apache</span><span class="o">\</span><span class="n">groovyldap</span><span class="o">\</span><span class="n">dist</span><span class="o">\</span><span class="n">groovy</span><span class="o">-</span><span class="n">ldap</span><span class="o">.</span><span class="n">jar</span>
+
+<span class="n">BUILD</span> <span class="n">SUCCESSFUL</span>
+<span class="n">Total</span> <span class="nb">time</span><span class="p">:</span> <span class="mi">7</span> <span class="n">seconds</span>
+<span class="n">D:</span><span class="o">\</span><span class="n">Apache</span><span class="o">\</span><span class="n">groovyldap</span><span class="o">&gt;</span><span class="n">_</span>
+</pre></div>
+
+
+<p>Done.</p>
+<p>The jarfile which includes the software, <em>groovy-ldap.jar</em>, is created in the <em>dist</em> directory. Feel free to call <em>ant clean</em> afterwards. </p>
+<h3 id="building-with-maven">Building with Maven</h3>
+<p>We are changing the build process to Maven 2, in order to have the same build tool for all sub projects within Apache Directory. </p>
+<p>Simply change to the <em>groovyldap</em> directory and type <em>mvn install</em>.</p>
+<div class="codehilite"><pre><span class="n">D:</span><span class="o">\</span><span class="n">Apache</span><span class="o">\</span><span class="n">groovyldap</span><span class="o">&gt;</span><span class="n">mvn</span> <span class="n">install</span>
+<span class="p">[</span><span class="n">INFO</span><span class="p">]</span> <span class="n">Scanning</span> <span class="k">for</span> <span class="n">projects</span><span class="o">...</span>
+<span class="p">[</span><span class="n">INFO</span><span class="p">]</span> <span class="o">-----------------------------------------------------------------</span>
+<span class="p">[</span><span class="n">INFO</span><span class="p">]</span> <span class="n">Building</span> <span class="n">Apache</span> <span class="n">Directory</span> <span class="n">Groovy</span> <span class="n">LDAP</span>
+<span class="p">[</span><span class="n">INFO</span><span class="p">]</span>    <span class="n">task</span><span class="o">-</span><span class="n">segment:</span> <span class="p">[</span><span class="n">install</span><span class="p">]</span>
+<span class="p">[</span><span class="n">INFO</span><span class="p">]</span> <span class="o">-----------------------------------------------------------------</span>
+<span class="o">...</span>
+<span class="p">[</span><span class="n">INFO</span><span class="p">]</span> <span class="o">-----------------------------------------------------------------</span>
+<span class="p">[</span><span class="n">INFO</span><span class="p">]</span> <span class="n">BUILD</span> <span class="n">SUCCESSFUL</span>
+<span class="p">[</span><span class="n">INFO</span><span class="p">]</span> <span class="o">-----------------------------------------------------------------</span>
+<span class="p">[</span><span class="n">INFO</span><span class="p">]</span> <span class="n">Total</span> <span class="nb">time</span><span class="p">:</span> <span class="mi">25</span> <span class="n">seconds</span>
+<span class="p">[</span><span class="n">INFO</span><span class="p">]</span> <span class="n">Finished</span> <span class="n">at:</span> <span class="n">Mon</span> <span class="n">Mar</span> <span class="mo">02</span> <span class="mi">22</span><span class="p">:</span><span class="mo">06</span><span class="p">:</span><span class="mi">54</span> <span class="n">CET</span> <span class="mi">2009</span>
+<span class="p">[</span><span class="n">INFO</span><span class="p">]</span> <span class="n">Final</span> <span class="n">Memory:</span> <span class="mi">19</span><span class="n">M</span><span class="o">/</span><span class="mi">38</span><span class="n">M</span>
+<span class="p">[</span><span class="n">INFO</span><span class="p">]</span> <span class="o">-----------------------------------------------------------------</span>
+</pre></div>
+
+                </div><!-- rightColumn -->
+                <div id="endContent"></div>
+            </div><!-- content -->
+            <div id="footer">&copy; 2003-2012, <a href="http://www.apache.org">The Apache Software Foundation</a> - <a href="privacy-policy.html">Privacy Policy</a><br />
+                Apache Directory, ApacheDS, Apache Directory Server, Apache Directory Studio, Apache LDAP API, Apache Triplesec, Triplesec, Apache, the Apache feather logo, and the Apache Directory project logos are trademarks of The Apache Software Foundation.
+            </div>
+        </div><!-- container -->
+    </body>
+</html>
\ No newline at end of file

Added: websites/staging/directory/trunk/content/api/groovy-ldap-origin.html
==============================================================================
--- websites/staging/directory/trunk/content/api/groovy-ldap-origin.html (added)
+++ websites/staging/directory/trunk/content/api/groovy-ldap-origin.html Tue Oct  2 16:59:57 2012
@@ -0,0 +1,114 @@
+<!DOCTYPE html>
+<!--
+    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.
+-->
+<html>
+	<head>
+		<title>Groovy LDAP Origin &mdash; Apache Directory</title>
+		
+	    <link href="./../css/common.css" rel="stylesheet" type="text/css">
+	    <link href="./../css/brown.css" rel="stylesheet" type="text/css">
+    
+	</head>
+	<body>
+	    <div id="container">
+            <div id="header">
+                <div id="subProjectsNavBar">
+                    <a href="./../">
+                        
+                        Apache Directory Project
+                        
+                    </a>
+                    &nbsp;|&nbsp;
+                    <a href="./../apacheds">
+                        
+                        ApacheDS
+                        
+                    </a>
+                    &nbsp;|&nbsp;
+                    <a href="./../studio">
+                        
+                        Apache Directory Studio
+                        
+                    </a>
+                    &nbsp;|&nbsp;
+                    <a href="./../api">
+                        
+                        <STRONG>Apache LDAP API</STRONG>
+                        
+                    </a>
+                </div><!-- subProjectsNavBar -->
+            </div><!-- header -->
+            <div id="content">
+                <div id="leftColumn">
+                    
+<div id="navigation">
+    
+    <h5>Latest Downloads</h5>
+    <ul>
+	    <li><a href="./../api/downloads.html">Version 1.0.0-M11</a>&nbsp;&nbsp;<IMG src="./../images/new_badge.gif" alt="" style="margin-bottom:-3px;" border="0"></li>
+    </ul>
+    <h5>Getting Started</h5>
+    <ul>
+        <li><a href="./../api/vision.html">Vision</a></li>
+        <li><a href="./../api/java-api.html">Java API</a></li>
+        <li><a href="./../api/groovy-ldap.html">Groovy API</a></li>
+    </ul>
+    <h5>Documentation</h5>
+    <ul>
+	    <li><a href="./../api/five-minutes-tutorial.html">Five minutes tutorial</a></li>
+	    <li><a href="./../api/user-guide.html">User Guide</a></li>
+        <li><a href="./../api/gen-docs/latest/apidocs/">JavaDocs</a></li>
+        <li><a href="./../api/gen-docs/latest/">Generated Reports</a></li>
+        <li><a href="./../api/developer-guide.html">Developer Guide</a></li>
+    </ul>
+    
+    
+    <h5>Community</h5>
+    <ul>
+        <li><a href="./../contribute.html">How to Contribute</a></li>
+        <li><a href="./../team.html">Team</a></li>
+        <li><a href="./../original-project-proposal.html">Original Project Proposal</a></li>
+    </ul>
+    <h5>About Apache</h5>
+    <ul>
+        <li><a href="http://www.apache.org/">Apache</a></li>
+        <li><a href="http://www.apache.org/licenses/">License</a></li>
+        <li><a href="http://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
+        <li><a href="http://www.apache.org/foundation/thanks.html">Thanks</a></li>
+        <li><a href="http://www.apache.org/security/">Security</a></li>
+    </ul>
+    
+</div><!-- navigation -->
+
+                </div><!-- leftColumn -->
+                <div id="rightColumn">
+
+<h1 id="groovy-ldap-origin">Groovy LDAP Origin</h1>
+<p>I did some research about accessing LDAP from <a href="http://groovy.codehaus.org">Groovy</a>, in order to create some simple scripts. It is possible to use both JNDI and libraries like Netscape or Novell SDK from Groovy (you can basically use any Java library in Groovy scripts).</p>
+<p>But these approaches have disadvantages. Netscape SDK is plain LDAP, so the scripts look like one familiar to LDAP would expect. But the API is not connected very well to the Collection API, so sometimes it is not easy to use the result from Groovy. And you have a non-standard dependency. JNDI on the other hand is easier to use (exists in every VM), but the scripts look <strong>horrible</strong>, because of the LDAP abstraction JNDI does. For instance you have to type "entry.nameInNamespace" instead of "entry.DN" (Netscape).</p>
+<p>It seems that there does no special solution/library for Groovy and LDAP exist. So I started to create a little prototype. Basically, it is a wrapper which uses JNDI (in order to omit the dependency to a non-standard library) under the hood, but looks like LDAP from the outside (script). Unfortunately, I am not a Groovy expert. </p>
+<p><strong>Stefan Zoerner on Jun 30, 2007</strong></p>
+
+                </div><!-- rightColumn -->
+                <div id="endContent"></div>
+            </div><!-- content -->
+            <div id="footer">&copy; 2003-2012, <a href="http://www.apache.org">The Apache Software Foundation</a> - <a href="privacy-policy.html">Privacy Policy</a><br />
+                Apache Directory, ApacheDS, Apache Directory Server, Apache Directory Studio, Apache LDAP API, Apache Triplesec, Triplesec, Apache, the Apache feather logo, and the Apache Directory project logos are trademarks of The Apache Software Foundation.
+            </div>
+        </div><!-- container -->
+    </body>
+</html>
\ No newline at end of file

Modified: websites/staging/directory/trunk/content/api/groovy-ldap.html
==============================================================================
--- websites/staging/directory/trunk/content/api/groovy-ldap.html (original)
+++ websites/staging/directory/trunk/content/api/groovy-ldap.html Tue Oct  2 16:59:57 2012
@@ -123,10 +123,10 @@
 <h2 id="mission-statement">Mission Statement</h2>
 <p>Create a way to access LDAP from Groovy scripts, which is suitable for people familiar to LDAP. Primary audience are people who plan to write simple scripts against their LDAP servers. This is not about LDAP abstraction. The API should be comparable to the native LDAP library for C, in order to provide an easy start for the primary target group. Nevertheless it should "smell" like other Groovy integration solutions (namely GSQL) do. Especially the use of closures is planned. In order to reduce the number of dependencies, nothing besides Java SE and Groovy itself should be used. JNDI will therefore be used under the hood to communicate with LDAP. </p>
 <ul>
-<li>Why this? Learn more about the origin of this attempt <a href="6. Groovy LDAP Origin">here</a>. </li>
+<li>Why this? Learn more about the origin of this attempt <a href="groovy-ldap-origin.html">here</a>. </li>
 </ul>
 <h2 id="how-it-looks-like-in-groovy">How it looks like in Groovy</h2>
-<p>Here are two example scripts which use Groovy LDAP in order to give you a first impression. Learn more about how to use Groovy LDAP in the <a href="2. Groovy LDAP User Guide">User Guide</a>.</p>
+<p>Here are two example scripts which use Groovy LDAP in order to give you a first impression. Learn more about how to use Groovy LDAP in the <a href="groovy-ldap-user-guide.html">User Guide</a>.</p>
 <h3 id="adding-an-entry">Adding an entry</h3>
 <p>The attribute values of an LDAP entry can be defined with the help of the expressive Map syntax of Groovy ([DIRxSBOX:...)). The following script uses the add operation to create a new entry in the directory:</p>
 <div class="codehilite"><pre><span class="nb">import</span> <span class="n">org</span><span class="o">.</span><span class="n">apache</span><span class="o">.</span><span class="n">directory</span><span class="o">.</span><span class="n">groovyldap</span><span class="o">.</span><span class="n">LDAP</span>
@@ -182,10 +182,10 @@ ldap.eachEntry (filter: &#39;(objectClas
 An interesting alternative to Groovy LDAP is Gldapo (<a href="http://gldapo.codehaus.org/">http://gldapo.codehaus.org/</a>)</p>
 <h2 id="where-to-go-from-here">Where to go from here</h2>
 <ul>
-<li><a href="1. Download Groovy LDAP">Download</a> a binary version including the source code</li>
-<li>Read the <a href="2. Groovy LDAP User Guide">User Guide</a> in order to understand which operations are already implemented, and how to use them</li>
-<li>Learn more about the <a href="3. Groovy LDAP Implementation">implementation</a></li>
-<li>Learn how to <a href="4. Groovy LDAP Building the software">build the software</a> on your own</li>
+<li><a href="groovy-ldap-download.html">Download</a> a binary version including the source code</li>
+<li>Read the <a href="groovy-ldap-user-guide.html">User Guide</a> in order to understand which operations are already implemented, and how to use them</li>
+<li>Learn more about the <a href="groovy-ldap-download.html#implementation">implementation</a></li>
+<li>Learn how to <a href="groovy-ldap-download.html#building-the-software">build the software</a> on your own</li>
 </ul>
 
                 </div><!-- rightColumn -->