Нужен сервер на Java или работать с LDAP надо из Java? Если второе, то протокол вроде как должен позволять работать с любым сервером, и вопрос теряет смысл. Ещё непонятно, почему дважды упоминается OpenLDAP.
OpenLDAP написан на C и потому сразу отпадает. Если бы один из оставшихся был не на Java, то выбрать было бы легко методом исключения, но это не так. Выбирать между OpenDS и ApacheDS я не могу, потому что работал только с OpenLDAP :)