directory-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Stefan Seelmann <seelm...@apache.org>
Subject Re: ApacheDS ConfigNG
Date Wed, 18 Mar 2009 20:37:51 GMT
Hi,

if we go the CiDIT way and we need some mapping between LDAP entries and
Java beans we should consider to use DataNucleus.

DataNucleus is an implementation of JDO and JPA standards, Andy
Jefferson already announced it on this list last year. Beside RDBMS it
also supports other data stores like LDAP and XML. I worked on the LDAP
persistence part recently.

A list of mappings that are currently supported for LDAP:
- An object is obviously mapped to an entry
- Primitives, wrappers of primitives, String, Date, Calendar could be
mapped to single-valued attributes
- Arrays and Sets of the above types could be mapped to multi-valued
attributes (no order and no duplicate values are supported atm)
- Relationships between Java objects could be mapped hierarchical, by
using DN references or by using attribute references

Please see [1] for more information.

To go a step further, the same Java beans, mapping configuration and
data access layer could be used to access the configuration over the
wire. For example it could be used for the configuration UI within Studio.

Maybe another advantage - however I'm not sure if possible - could be to
use the DataNucleus XML store to map the current configuration file.

Kind Regards,
Stefan

[1] http://www.datanucleus.org/products/accessplatform_1_1/ldap/mapping.html


Emmanuel Lecharny wrote:
> Ersin ER wrote:
>> Let's continue discussion on next generation configuration mechanism for
>> ApacheDS in this thread.
>>   
> 
> I have listed _all_ the parameters we currently want to manage, in all
> classes :
> 
> DirectoryService
> ----------------
>    accessControlEnabled      : boolean;
>    allowAnonymousAccess      : boolean
>   +changeLog                 : ChangeLog
>    denormalizeOpAttrsEnabled : boolean
>    exitVmOnShutdown          : boolean
>    id                        : String
>   +journal                   : Journal
>    maxPDUSize                : int
>    passordHidden             : boolean
>    replicaId                 : int
>   +systemPartition           : Partition
>    workingDirectory          : File
>   *interceptors List<Interceptor>        :
> org.apache.directory.server.core.interceptor.Interceptor
>   *partitions Set<? extends Partition>   :
> org.apache.directory.server.core.partition.Partition
>   *testEntries List<? extends LdifEntry> :
> org.apache.directory.shared.ldap.ldif.Entry
> 
> 
> ChangeLog
> ---------
>    enabled                : boolean
>    exposeChangeLog        : boolean
>    partitionSuffix        : String
>    revisionsContainerName : String
>    tagsContainerName      : String
>   +changeLogStore         : ChangeLogStore
> 
> 
> ChangeLogStore
> --------------
> No setters...
> 
> 
> Journal
> -------
>    enabled      : boolean
>   +journalStore : JournalStore
> 
> 
> JournalStore
> ------------
>    fileName         : String
>    workingDirectory : String
> 
> 
> Partition : JdbmPartition
> -------------------------
>    cacheSize        : int
>    id               : String
>    optimizerEnabled : boolean
>    suffix           : String
>    syncOnWrite      : boolean
>   *indexedAttributes Set<Index<?,ServerEntry>> indexedAttributes ) ???
>    property( String propertyName, String propertyValue ???
> 
> 
> Index : JdbmIndex
> -----------------
>    attributeId : String
>    cacheSize   : int
>    numDupLimit : int
>    wkDirPath   : File
> 
> 
> Interceptor : AuthenticationInterceptor
> ---------------------------------------
>   *authenticators Set<Authenticator> :
> org.apache.directory.server.core.authn.Authenticator
> 
> 
> Authenticator
> -------------
> No setters...
> 
> 
> Interceptor:JournalInterceptor
> ------------------------------
>    rotation : int
> 
> 
> LdifEntry
> ---------
> No setters...
> 
> 
> LdapService
> -----------
>   +directoryService        : DirectoryService (AbstractProtocolServer)
>    enabled                 : boolean (AbstractProtocolServer)
>   +tcpTransport            : TcpTransport (AbstractProtocolServer)
>   +udpTransport            : UdpTransport (AbstractProtocolServer)
>    catelogBased            : boolean (DirectoryBackedService)
>    searchBaseDn            : String (DirectoryBackedService)
>    allowAnonymousAccess    : boolean
>    certificatePassword     : String
>    confidentialityRequired : boolean
>    enableLdaps             : boolean
>    keystoreFile            : String
>    maxSizeLimit            : int
>    maxTimeLimit            : int
>   +replicationSystem       : ReplicationSystem
>    saslHost                : String
>    saslPrincipal           : String
>    serviceId               : String
>    serviceName             : String
>   *extendedOperationHandlers Collection<ExtendedOperationHandler> :
> org.apache.directory.server.ldap.ExtendedOperationHandler
>   *saslQop Set<String> : java.lang.String
>   *saslRealms( List<String> : java.lang.String
>   *saslMechanismHandlers( Map<String, MechanismHandler> :
> MechanismHandler + mech-name
>   *transportProtocols Set<TransportProtocol> :
> org.apache.directory.server.protocol.shared.TransportProtocol
> 
> 
> ReplicationSystem
> -----------------
>   *replicaPeers Set<ReplicaPeerConfiguration> :
> org.apache.directory.server.ldap.replication.ReplicaPeerConfiguration
> 
> 
> ReplicaPeerConfiguration
> ------------------------
>    setInterval    : long
>    setPassword    : String
>    setPrincipalDN : String
>    setProducer    : String
>    setRefreshOnly : boolean
> 
> 
> ExtendedOperationHandler
> ------------------------
> No setters...
> 
> 
> MechanismHandler : NtlmMechanismHandler
> ---------------------------------------
>   +ntlmProvider     : NtlmProvider
>    ntlmProviderFqcn : String
> 
> 
> NtlmProvider
> ------------
> No setters...
> 
> 
> ChangePasswordServer
> --------------------
>   +directoryService        : DirectoryService (AbstractProtocolServer)
>    enabled                 : boolean (AbstractProtocolServer)
>   +tcpTransport            : TcpTransport (AbstractProtocolServer)
>   +udpTransport            : UdpTransport (AbstractProtocolServer)
>    catelogBased            : boolean (DirectoryBackedService)
>    searchBaseDn            : String (DirectoryBackedService)
>    allowableClockSkew    : long
>    emptyAddressesAllowed : boolean
>    policyCategoryCount   : int
>    policyPasswordLength  : int
>    policyTokenSize       : int
>    primaryRealm          : String
>    servicePrincipal      : String
>   *encryptionTypes EncryptionType[] : EncryptionType
> 
> 
> DnsServer
> ---------
>   +directoryService        : DirectoryService (AbstractProtocolServer)
>    enabled                 : boolean (AbstractProtocolServer)
>   +tcpTransport            : TcpTransport (AbstractProtocolServer)
>   +udpTransport            : UdpTransport (AbstractProtocolServer)
>    catelogBased            : boolean (DirectoryBackedService)
>    searchBaseDn            : String (DirectoryBackedService)
> 
> 
> KdcServer
> ---------
>   +directoryService        : DirectoryService (AbstractProtocolServer)
>    enabled                 : boolean (AbstractProtocolServer)
>   +tcpTransport            : TcpTransport (AbstractProtocolServer)
>   +udpTransport            : UdpTransport (AbstractProtocolServer)
>    catelogBased            : boolean (DirectoryBackedService)
>    searchBaseDn            : String (DirectoryBackedService)
>    allowableClockSkew       : long
>    bodyChecksumVerified     : boolean
>    emptyAddressesAllowed    : boolean
>    forwardableAllowed       : boolean
>    kdcPrincipal             : String
>    maximumRenewableLifetime : long
>    maximumTicketLifetime    : long
>    paEncTimestampRequired   : boolean
>    postdatedAllowed         : boolean
>    primaryRealm             : String
>    proxiableAllowed         : boolean
>    renewableAllowed         : boolean
>   *encryptionTypes( EncryptionType[] : EncryptionType
> 
> 
> NtpServer
> ---------
>   +directoryService        : DirectoryService (AbstractProtocolServer)
>    enabled                 : boolean (AbstractProtocolServer)
>   +tcpTransport            : TcpTransport (AbstractProtocolServer)
>   +udpTransport            : UdpTransport (AbstractProtocolServer)
> 
> 
> TcpTransport
> ------------
>    setAddress   : String (AbstractTransport)
>    setBackLog   : int (AbstractTransport)
>    setNbThreads : int (AbstractTransport)
>    setPort      : int (AbstractTransport)
> 
> 
> UdpTransport
> ------------
>    setAddress   : String (AbstractTransport)
>    setBackLog   : int (AbstractTransport)
>    setNbThreads : int (AbstractTransport)
>    setPort      : int (AbstractTransport)
> 
> 
> ApacheDS
> --------
>    allowAnonymousAccess : boolean
>    ldifDirectory        : File
>    synchPeriodMillis    : long
> 
>> BTW, we already have some notes on CiDIT:
>>
>> http://cwiki.apache.org/DIRxSRVx11/configuration-in-dit-cidit.html
>>   
> This is a good starting point.
> 


Mime
View raw message