Feature #162

Migrate from JNDI to UnboundId LDAP SdK

Added by Rémy-Christophe Schermesser 7 months ago. Updated about 1 month ago.

Status:New Start:28/12/2009
Priority:Normal Due date:
Assigned to:- % Done:

0%

Category:Core
Target version:Sometime in the future

Description

I have tested the UnboundId LDAP SDK for Java and it is very easy to use, well easier than JNDI (but what is harder to use than JNDI ? :)). And I think we should migrate from JNDI to this API.

Why ? Because the undoundid sdk :
  • is thread safe, and with the server mode for LSC, I think it is very important
  • is easier to use, is more Java 1.5+ compliant and is actively developed (I think JNDI has not changed since Java 1.5 and it was only for adding some generics)
I have looked in the LSC code, and there is a lot of public APIs that uses JNDI objects. So I have thought of two ways to make this migration :

The first solution is a radical one (so I like it very much :))
The second solution will add overhead to the LSC

What do you think ? Do you have more idea ?

History

Updated by Jonathan Clarke 7 months ago

  • Category set to Core

I think it would be best to use pure Java objects throughout LSC code, such as Sets, Lists and Maps. These are well-known structures, offer clean interfaces and various implementations (think Apache Commons), and not specific to any kind of data source, unlike JNDI objects (think db2db sync for example).

Let's define the structures to use, then we can start converting to using them. I had a first go already in BeanComparator.

Sets are useful to represent LDAP attribute values (unordered list, with no duplicates).

Updated by Sébastien Bahloul 2 months ago

  • Target version changed from 1.3.x branch to Sometime in the future

Retargeted

Updated by Sébastien Bahloul about 1 month ago

What do you think using the common Apache DS / OpenDS LDAP API : http://directory.apache.org/api/ ?

Updated by Rémy-Christophe Schermesser about 1 month ago

I would not migrate to the ApacheDS/OpenDS API.
It is too immature for moment. There is no stable version of it !

Also available in: Atom PDF