Apache Directory client API > Index
Added by Emmanuel Lécharny, last edited by Emmanuel Lécharny on Jul 24, 2009  (view change)

Apache Directory Client API

This is the home of the Apache Directory client API space.

Introduction

When we started to work on replication implementation, we needed a client API in order to communicate using the LDAP protocol with remote LDAP servers. We could have used some existing LDAP API, but as we have already defined a lot of base classes we would have had to convert back and forth, we thought it would be better to build the missing pieces and define our own complete LDAP API.

This is one of the reasons we started this sub-project.

Another reason is that we worked with Sun a few years ago to draw a new version of JNDI, an aborted effort, sadly. We also have been contacted by the OpenLDAP team as they wanted to know if we were ready to maintain jLDAP, as it needed some patches, and as they didn't have enough workforce to do so. Last, not least, OpenDS team is also interested to see if we can avoid duplication of efforts, as they are also defining an LDAP API.

All those events make it interesting to try to find a common way to define a new LDAP API, gathering the interest of the largest developer base possible.

As we have not finished to implement all the needed features, it's easy for us to try to figure which parts can be shared with other projects, and which parts must be configurable. An clear example is the underlying network layer : OpenDS will use Grizzly, when we will use MINA. This should be transparent for developers.

Last, not least, no one can claim to be better than all the other great people out there, and claim to be able to define the best possible API. We at The ASF believe that collaboration within a community is better than working alone. We are pleased to share what we have already done, ready to move forward in better directions if it allows the API to be more reliable, usable and at the end, easier to use for devlopers.

Background

There are a few existing LDAP API around there. Here is a short list and description.

API Version License Description
[Apache Directory Client API|] 0.1 ASL 2.0 The Apache Directory Server CLient API.
jLDAP 2008_03-01-1 OpenLDAP Public License A Novell contribution to the OpenLDAP project
JNDI 1.2 Sun license This is not a pure LDAP API, however it's included in J2SE since Java 5. Probably the API selected by many developers
ldapSDK 4.17 Netscape Public License The Mozilla API, formally the Netscape LDAP API
OpenDS client API N/A CDDL The OpenDS API
UnboundID API 0.9.10 GPLv2 A new API developed by the UnboundID company

(There may be some more we don't know about)

Features

Those pages describe the components of this API :

Base LDAP objects
LDAP operations API
LDAP schema related API
API Extensions

API comparison

TODO : create a matrix