The UnboundID LDAP SDK for Java provides support for many of the most recent enhancements in the LDAP community. It is still under active development, and additional capabilities and features will continue to be added over time.
The Netscape Directory SDK for Java is generally a good API, but its development has essentially ceased. The most recent release of this API is from 2002 and there is little evidence to suggest that there has been any significant development activity since then.
JNDI has always been a very limited and inconvenient API for performing LDAP communication. There has been little improvement in this API over time, and there is also little evidence to suggest that it will be significantly improved in the future.