UnboundID LDAP SDK for Java 1.0.0

UnboundID has released version 1.0.0 of the UnboundID LDAP SDK for Java. We have felt for a long time that it was more than stable enough for use in production applications (and in fact it is in use in production applications in several places), but had not yet declared it 1.0 just in case we received any feedback that might have caused us to consider altering some portion of the API in an incompatible way. Although we have gotten several comments and suggestions, and we have added a number of features in response to that feedback, there haven’t been any incompatible changes and we feel very confident that there won’t need to be any such changes in the future (and have an extensive test framework in place to ensure that doesn’t happen). We are therefore bumping the version number to 1.0.0 just in case the pre-1.0 version number caused anyone to shy away from using it.

A complete list of the changes since the 0.9.10 release can be found in the release notes, but some of the most significant changes include:

  • We have added support for the permissive modify control, which may be used to request that the directory server not reject attempts to add an attribute value that already exists or remove an attribute value that does not yet exist.
  • We have added a new LDAPThreadLocalConnectionPool class, which provides an alternate connection pool implementation that uses a separate connection per client thread that attempts to use the connection pool. This eliminates the need to explicitly configure the number of connections to maintain, and also eliminates contention between threads when trying to use the pool.
  • We have added the ability to create a Schema object by reading definitions from one or more LDIF files. It was previously only possible to create a Schema object by reading it from a directory server over LDAP.
  • We have updated the LDIF reader to provide the ability to reject entries that contain duplicate values for the same attribute in the same entry. We have also added the ability to use schema information when reading data from LDIF to help avoid incorrectly classifying values as duplicates (e.g., if two values differ only by capitalization, but are in an attribute type defined with a caseExactMatch equality matching rule).
  • We have updated the validate-ldif tool so that it has the ability to use schema definitions read from files (allowing it to be used in a completely offline manner), and to take advantage of the ability to reject entries with duplicate attribute values (although this can be disabled if desired).

4 thoughts on “UnboundID LDAP SDK for Java 1.0.0

  1. Congrats for the hard work, I’m *really* happy to see things moving in the JAVA/LDAP API world… At last ! Just to know… Do you (and UnboundId) intend to work with the ApacheDS/OpenDS guys around a new standard Java LDAP api ? I see that they intend to present something about that on next Ldap Con: http://www.symas.com/ldapcon2009/papers/poitou1.shtml ? As fas as I remember, you was one of the main instigator of the JCR draft proposition, back in 2007 – well, I understand that time changed a lot since then.All in all, thanks for the good work, I think it will become my next toy 🙂


  2. If you look further at the agenda for LDAPCon, you will see that the very next session is one that I will be giving on our LDAP SDK for Java (<a href="http://www.symas.com/ldapcon2009/papers/ely1.shtml“ rel=”nofollow”>http://www.symas.com/ldapcon2009/papers/ely1.shtml).Although I was the primary initiator of the attempt to propose a JSR for a standard Java API, Sun would not allow me to proceed with that while I was there. If that work is going to go forward (and I have no reason to believe that it will), I have not heard of it and do not have any involvement with it.UnboundID is very committed to the API that we have put together. It is very fast, easy to use, rich in features, and freely available for virtually any use, whether open or proprietary. We will not stop maintaining our API but rather have every intention of continuing to improve it, nor will we make any changes to it which will break compatibility with the existing API or applications that are already using it.We do intend to make additional changes in the very near future that will make it even easier to use in many ways, including improving licensing terms, making it easier to migrate from other Java-based LDAP APIs, and integrating into application frameworks and build processes. If you have any suggestions for improvement, encounter any problems using the API, or have any other comments regarding it then please let us know and we’ll be happy to help.


  3. I just spend really few time with your LDAP SDK, but it seems really well thought, so I will surely used it intensively in a near future 🙂 And yes, if I have any remarks or suggestion, I will enjoy to share them. For the moment, the only things that come to mind is to see how you sdk may integrate with the usual suspects frameworks, like Spring, Google Guice, OSGi, and the like.Oh, yes, I didn’t see any maven repository. It would be really useful for broader adoption to expose a repository, or to make the LDAP SDK available in maven central repos (if the jar are already available in a repos, I miss that, sorry).So, I wish you the best for the future, and again, I’m really happy to see an actually, really available rigth now LDAP SDK for Java !


  4. Some of the things that you requested are actually included in what I alluded to with my statement “integrating into application frameworks and build processes”. I have already committed changes to make the LDAP SDK more OSGi-friendly, and we will provide a POM so that it is easier to use in Maven.I’m really not very familiar with Guice so I’m not sure what changes might be needed to help better use our LDAP SDK with that framework. However, I will look into it.


Comments are closed.