Hi guys,

as you noticed, some heavy code refactoring is going on in shared. Let me give you some feedback about what is being done, and the reasons for those refactoring.

First of all, the idea is to release a shared/LdapAPI 1.0-M1 asap. It will be LdapAPI from this point, and not anymore shared. This will be a milestone, but it will also be a first step toward the exposed API. When we will come with a 1.0-RC1, the API will have to be frozen. That being said, let's see where we are going to :

- base class renaming. You can see that Alex changed DN to Dn, etc. The rational behind those renamings is that it's consistent with the name scheme we use : caml humps all over the code. We have a DnParser class, and a DN class, which is not consistent. All in all, we discussed those names back in september, and if you really feel that DN is better than Dn, we can revert, but I thik it's not really a technical issue, much more a choice to make. To me, it's not an issue at all.

- API/SPI separation : most of what Alex is doing right now is about hiding implementation from the exposed API. The less classes exposed, the less problem we might have with users using the SPI classes. ALso consider that the API documentation will be more tight.

- OSGi : shared has been completely OSGified, and it's a good thing. We have postponed this task year after year, but we reached a point it was to be done. One of the reason was that refactoring shared without impacting Studio was impossible, because Eclipse dos not allow a project to 'see' shared as a dependent source project, so we had to propagate the changes manually, something we don't want to do anymore. With the OSGi bundles, studio is now directly impacted by shared refactoring without any need to do it by hand. Plus OSGi is the best way to manage dependencies, and for shared, it cost almost nothing to switch to OSGi (well, it took one day). I also do think that after shared refactoring, we have to go for Apacheds.

At the end of the day, the refactoring should be finished soon (maybe one or two more days). It may create new sub-modules, which may be gathered later, not a big deal. Just keep an eye at what is being done, if you disagree, feel free to express your opinion.

One important point is that we are using a c-t-r mode (commit then review) and not a r-t-c, and I think we don't want to switch to a r-t-c at this point of the project :). Committing is not for ever, you can -1 one commit, it's not an insult to the one who did the commit. I repeat, -1 a commit is not an insult. Just be rational, and express your technical vision when you -1 something.

All in all, at first I was quite conservative, but I realized that we probably need some fresh perspective, because we are all so deeply involved that we don't have anymore a 10K feet vision necessary to see what's wrong and what's good. It's a good timing now that the API is stable to review it, shake it and make it better.

Guys, I engage you to look at what Alex is doing when it will be done, and express your opinion then. I think this is one unique opportunity to move away from a local minimum to the next stable state.

Thanks !


--
Regards,
Cordialement,
Emmanuel Lécharny
www.iktek.com

Reply via email to