A couple comments...
1. in your list below there are at least 2 kinds of "type" info for
the parameters: known types (int) and objects where the main choice is
which class you use to implement an interface (Interceptor). I think
these are sort of qualitatively different but that is not clear from
your notation. As a sub-comment I don't know how you'd specify the
implementation class for a component in DIT but this is probably my
own ignorance.
2. Despite the unpleasantness of getting poked by all the pointy
brackets in xml it does make it pretty easy to express the tree
structure of wired together components in an easy to understand way.
It's much less good at showing non-tree graphs (you have to use some
kind of reference). I think this is pretty useful information that
AFAIK would be completely obscured in a DIT configuration model. On
the other hand this wiring info is mostly useful for advanced users
that need to assemble a custom server; people using a more or less
plain server probably only need to change a few "primitive" parameters.
thanks
david jencks
On Mar 18, 2009, at 11:03 AM, 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.
--
--
cordialement, regards,
Emmanuel Lécharny
www.iktek.com
directory.apache.org