directory-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Alex Karasulu <>
Subject [Shared] Ldap and codec module finalization and controls
Date Tue, 01 Feb 2011 16:30:16 GMT
This thread branched off of the previous status thread Emmanuel posted. This
topic needs it's own thread.


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
      - anything under the sun
      - optional


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)?


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

   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
       - registering one extension registers them all
       - later if need by turned into ldap-ext multi-project, breaking up
extensions into per-extension bundles



View raw message