Hi Stefan,

On Thu, Sep 9, 2010 at 10:09 PM, Stefan Seelmann <seelmann@apache.org> wrote:
On Thu, Sep 9, 2010 at 5:11 PM, Emmanuel Lecharny <elecharny@gmail.com> wrote:
>  Hi guys,
> it seems that when I did the big modification (merging all the Messages)
> last month, I forgot to uncomment the dsml-parser which is part of shared.
> I had it working by pointing to the ldap-api project, as it now depends on
> it, but that was not enough to be able to build it when uncommented in the
> shared/pom.xml file, as shared does not depend on ldap-api.
> However, in my mind, the next step was to integrate the ldap-api project
> into shared (well, imo, shared <==> ldap API up to a point).
> Here is what I suggest we do :
> - move ldap-client into shared
> - rename shared to ldap-api
> - move all the DIR-SHARED issues to DIRAPI
> - and release ldap-api

I agree and would like to discuss some more steps before releasing the API:
- should we rename the package names o.a.d.shared or keep it?

Sometimes I feel this shared thing grew big fast and started gaining things from everywhere like from the LDAP efforts as well as Kerberos and other aspects. Maybe we need a good review/tally of our package namespace to see which direction is best for us. 
- about the number of modules, should we merge some? Especially the
ldap-schema* modules contain only 10 classes splitted into 3 modules.

Don't think we should worry about the size or contents but rather more about coherence and coupling issues as well as possible snags we can get into with potential Maven Module dependency cycles. 

We really need to review and map out our existing top level project => maven module => package layout as well as a nice dependency map of what exists today to formulate a nice plan as we expand into the future.
- the shared-ldap module contains some packages that are not directly
related to a client API: aci, sp, trigger, subtree.Should we still
keep them in the ldap-api project or move them to a server module?

Yep these are some of the sticking points that I've had in mind as well. We need to think more about this. This is why this is not such a simple thing to do with IDE refactoring we must plan or else we're going to have another mess in the future to clean up yet again. Every time we do this our users will get pissed off at us and perhaps rightfully so.
At last before publishing an API we should decide which classes we
consider as public API and which classes are for internal use only.

Absolutely agree 100% with you on this. API's are not like our internals and we're going to have to have a contract with our users and manage deprecation etc. We need to be thorough and careful.

Kind Regards,

Alex Karasulu
My Blog :: http://www.jroller.com/akarasulu/
Apache Directory Server :: http://directory.apache.org
Apache MINA :: http://mina.apache.org
To set up a meeting with me: http://tungle.me/AlexKarasulu