On Sun, Jan 30, 2011 at 5:11 PM, Alex Karasulu <[email protected]> wrote: > On Sun, Jan 30, 2011 at 3:17 AM, Emmanuel Lecharny <[email protected]>wrote: > >> On 1/29/11 10:38 PM, Stefan Seelmann wrote: >> >>> >>> [X] - (c) >>>> interface = AddRequest >>>> simple API exposed implementation = AddRequest*Impl* >>>> not so simple internal use implementation = >>>> AddRequest*Decoder* >>>> We're applying option 'C' right now. I'm torn but think A might suite us >>>> better for the long term, and for any situation. You also know what's an >>>> interface and what's not although the IDE automatically shows you this >>>> stuff >>>> on the package/class browser. >>>> >>> This is my opinion for a low-level API, which 1:1 maps LDAP >>> terminology to the Java API. I think we should additional have a >>> simplified API where the user don't need to deal with request and >>> response objects at all. >>> >>> BTW: We have this discussion again and again ;-) We really need to >>> decide a consistent naming. >>> >> >> I think we already discussed it more than once, and we all agreed on this >> convention. >> >> I'm not sure we want to rehash this again every 2 years :/ >> >> > When there's a push to release a 1.0 of an API, we need to make the API > consistent. I can do this myself but the community way is to have a > discussion. If you do not want to discuss this feel free not to > participate, or say you don't care.
I don't see that anyone said that the API development should not be community driven. In shared and apacheds we currently us a mix of the *Impl* suffix and the *Default/<whatever>* prefix for classes. I only count two interfaces with the *I* prefix, that is probably caused because they were moved from studio to shared. In studio there are many more *I* prefixed interfaces, which was inspired by the Eclipse naming conventions. But afaik we never used *I* prefix in shared or apacheds. Oh, I just searched for *I* prefixed files, and now there are 14 more, why that? $ find shared -name "I[A-Z]*.java" | cut -d "/" -f 9- shared/dsmlv2/IAction.java shared/dsmlv2/IGrammar.java shared/ldap/codec/controls/ppolicy/IPasswordPolicyRequest.java shared/ldap/codec/controls/ppolicy/IPasswordPolicyResponse.java shared/ldap/codec/controls/replication/syncDoneValue/ISyncDoneValue.java shared/ldap/codec/controls/replication/syncInfoValue/ISyncInfoValue.java shared/ldap/codec/controls/replication/syncmodifydn/ISyncModifyDn.java shared/ldap/codec/controls/replication/syncRequestValue/ISyncRequestValue.java shared/ldap/codec/controls/replication/syncStateValue/ISyncStateValue.java shared/ldap/codec/ICodecControl.java shared/ldap/codec/IControlFactory.java shared/ldap/codec/IDecorator.java shared/ldap/codec/IExtendedOpFactory.java shared/ldap/codec/ILdapCodecService.java shared/ldap/codec/ITestCodecControl.java shared/ldap/codec/ITestControl.java Kind Regards, Stefan
