I'd like to share a few discussions I've had these days with Stefan S. and Emmanuel.
I was talking to Stefan on IM on friday and we were wondering how we could improve the LDAP Browser and the Connection plugin.
Stefan would like to get rid of the use of JNDI in Studio because of the problems we have with this API.
He enumerated a number of benefits to using a client "LDAP protocol" oriented connection wrapper instead of the JNDI one:
- Direct access to the LDAP protocol
- Direct access to the result codes (we now must parse the NamingException message)
- Access to the message ID
- Network settings (timeouts, etc.)
- Referral handling (JNDI tries to be clever to manage referrals internally, but we want to manage them manually)
- LdapDN handling is poor in JNDI
- You have to set weird environment variables to make it working properly
- JNDI has no cancel operation, you must use ctx.close() to cancel an operation
We were wondering if the "Codec" classes in Shared would allow us to do such a thing.