On Wed, Feb 2, 2011 at 1:01 AM, Emmanuel Lecharny <[email protected]>wrote:
> > > On Tue, Feb 1, 2011 at 5:30 PM, Alex Karasulu <[email protected]>wrote: > >> This thread branched off of the previous status thread Emmanuel posted. >> This topic needs it's own thread. >> >> >> CATEGORIZATION >> ---------------------------- >> >> Before we begin let's consider the different categories of extensions >> (controls & extended operations): >> >> FYI ADP = Apache Directory Project. >> FYI Extensions = Bundles, modules, that extend the codec, like controls >> and extended operations >> >> Class (1) [ADP-PROVIDED] >> - considered part of the standard ldap model >> - must have >> - packaged into API: available out of the box >> - examples: >> * ManageDsaIT >> * PersistentSearch >> * EntryChange >> * Subentries >> * Cascade >> >> Class (2) [ADP-PROVIDED] non-standard, optional and available as a >> single extension bundle >> - not considered part of the standard ldap model >> - may be server specific >> - may be custom non-published spec >> - optional, pluggable on demand >> - examples: >> * CreateCertificate >> * StoredProcedure >> * PassordPolicy >> * Replication >> >> Class (3) [USER-PROVIDED] non-standard, optional and user provided >> bundle[s] >> - anything under the sun >> - optional >> >> >> QUESTION >> ----------------- >> >> How does this overlap into what we will do to restructure the organization >> of the shared-ldap module which will eventually break up into separate Maven >> modules (OSGi bundles)? >> >> >> ANSWERS AND SOLUTIONS >> -------------------------------------------- >> >> Here's one answer with possible configuration: >> >> o shared-ldap-model >> - holds only standard LDAP model types >> - class 1 ADS-PROVIDED extension POJI/POJO pairs in >> oadsl.message.controls and oadsl.message.extended >> >> o shared-ldap-codec >> - holds all the implementation details we want to hide >> - exposes some SPI classes: as little as is needed to write new >> controls and extended operations >> - contains the default codec service implementation >> - contains class 1 ADS-PROVIDED extension implementation objects >> (grammars,containers,factories,decorators) >> >> o shared-ldap-codec-api >> - exposes minimal codec API so it can be used in studio, apacheds, >> and other applications >> - contains codec service interface >> - codec related utilities >> >> o shared-ldap-ext >> - contains all class 2 ADS-PROVIDED extension classes >> in oadsl.extensions.controls & oadsl.extensions.extended >> - exposes extension POJO/POJI and utilities >> - hides extension codec implementations >> (grammars,containers,factories,decorators) >> - registering one extension registers them all >> - later if need by turned into ldap-ext multi-project, breaking up >> extensions into per-extension bundles >> >> >> Thoughts? >> > > Where do you store class 3 elements ? > Class 3 extensions are user provided. They are not produced here. Regards, -- Alex
