You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@directory.apache.org by Alex Karasulu <ak...@apache.org> on 2011/02/01 17:30:16 UTC
[Shared] Ldap and codec module finalization and controls
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?
Thanks,
Alex
Re: [Shared] Ldap and codec module finalization and controls
Posted by Alex Karasulu <ak...@apache.org>.
On Wed, Feb 2, 2011 at 1:01 AM, Emmanuel Lecharny <el...@apache.org>wrote:
>
>
> On Tue, Feb 1, 2011 at 5:30 PM, Alex Karasulu <ak...@apache.org>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
Re: [Shared] Ldap and codec module finalization and controls
Posted by Emmanuel Lecharny <el...@apache.org>.
On Tue, Feb 1, 2011 at 5:30 PM, Alex Karasulu <ak...@apache.org> 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 ?
>
>
> Thanks,
> Alex
>
>
--
Regards,
Cordialement,
Emmanuel Lécharny
www.iktek.com
Re: [Shared] Ldap and codec module finalization and controls
Posted by Pierre-Arnaud Marcelot <pa...@marcelot.net>.
+1
Sounds very good to me.
Easy to understand and easy to use.
Regards,
Pierre-Arnaud
On 1 févr. 2011, at 17:30, Alex Karasulu 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?
>
>
> Thanks,
> Alex
>