Hope you don't mind, thought this might help others on the dev list.
On Thu, Feb 3, 2011 at 11:16 PM, Alex Karasulu <[email protected]> wrote: > On Thu, Feb 3, 2011 at 10:52 PM, Emmanuel Lécharny <[email protected]> > wrote: >> On 2/3/11 9:39 PM, Alex Karasulu wrote: >>> >>> On Thu, Feb 3, 2011 at 5:37 PM, Alex Karasulu<[email protected]> >>> wrote: >>>> >>>> Here's what I was going to do last night before my collapse: >>>> Create new packages for extra controls, the 2nd class of optional >>>> controls of which we have the following for replication and ppolicy: >>>> >>>> PasswordPolicy >>>> SyncDoneValue >>>> SyncInfoValue >>>> SyncModifyDn >>>> SyncRequestValue >>>> SyncStateValue >>>> >>>> The package base for all these optional (Class II extensions) will start >>>> off at: >>>> >>>> org.apache.directory.shared.ldap.extras >>>> >>>> As y'all know we have extension (Control and Exteded Op) >>>> sub-interfaces and implementation POJOs these will be here: >>>> >>>> [PUBLIC PACKAGES] >>>> org.apache.directory.shared.ldap.extras.controls >>>> org.apache.directory.shared.ldap.extras.extended >>>> >>>> We will have an ldap-extras bundle that will export these packages. >>>> For now since we do not have so many controls and extended operations >>>> I did not break these apart into different packages. All controls and >>>> extended operations for now will go into these packages. >>>> >>>> The implementations for these extensions >>>> (decorators,grammars,factories etc) will go into these packages but >>>> unlike the one pkg for all pattern we can break it apart into >>>> sub-packages in this implementation area: >>>> >>>> Bases: >>>> [PRIVATE PACKAGES] >>>> org.apache.directory.shared.ldap.extras.controls.impl >>>> org.apache.directory.shared.ldap.extras.extended.impl >>>> >>>> Subpackages: >>>> [PRIVATE PACKAGES] >>>> org.apache.directory.shared.ldap.extras.controls.impl.ppolicy >>>> org.apache.directory.shared.ldap.extras.controls.impl.syncInfoValue >>>> org.apache.directory.shared.ldap.extras.controls.impl.syncDoneValue >>>> org.apache.directory.shared.ldap.extras.controls.impl.syncRequestValue >>>> org.apache.directory.shared.ldap.extras.controls.impl.syncStateValue >>>> org.apache.directory.shared.ldap.extras.controls.impl.syncModifyDn >>> >>> Slight modification in practice here. I used the following for ppolicy >>> and will do the same for the replication controls: >>> >>> org.apache.directory.shared.ldap.extras.controls.ppolicy_impl >> >> hmmm, why this extra _impl ? >> >> Let's take an example : ppolicy >> >> In model, we have a PPolicy interface and a PPolicyImpl implementation. >> >> Where will we store the interface, and where will we find the implementation >> ? >> >> org.apache.directory.shared.ldap.extras.controls/PPolicy.java >> >> and >> >> org.apache.directory.shared.ldap.extras.controls.impl/PPolicyImpl.java >> >> ? > > The _impl areas are not referring to the simple POJO implementations > of interfaces. This package is for the control's codec extension > implementations. In the bundle descriptor we're going to hide this > component's implementation. > > Best, > Alex >
