Alex Karasulu wrote:
Hi all,
I've been looking at the packages in the apacheds project and as you can
imagine many things grew wild out of short term efforts to get things done.
Before we move forward with a 2.0 and even sooner before considering any
kind of use for OSGi we need to clean up this package structure and have
some order. From then on we can take care in how we organize things.
I agree. I think that at some point, we were so focused to get 2.0 out
that we dismissed any reorganization.
I'd like to open a discussion about how best to organize our package
structure. I'll seed it by listing my objectives:
(1) cleanup unused modules and packages
(2) split out interfaces from implementations into their own packages and
modules
I think we also have to check if we really need some of the interfaces
we have, when there is only one implementation...
(3) have a consistent scheme for naming and allocating sub packages under
o.a.d.server.core and o.a.d.server
Our inherent policy was to use o.a.d.server.core.* for packages associated
with the DirectoryService which did not require any network access. It was
for everything needed to store and manage LDAP entries and conduct LDAP
operations on them without having to go over the wire. The o.a.d.server.*
packages minus o.a.d.server.core.* was for anything above this layer that
depended on it and used some kind of networking like the LdapService and the
AuthenticationService (in the protocol-kerberos module).
Over time with most developers working in this project this convention
started to get mixed up. I was wondering if this convention is worth
keeping or something beter can be proposed. If we keep this convention I
will cleanup and make sure everything follows it.
Next I would like to have a consistent naming scheme for the modules. Any
ideas here?
Thanks,
Alex
----------------------------------
I ran the following command to generate a listing of the Maven modules and
their packages:
find . -type d | egrep
'.*src\/main\/java\/org\/apache\/directory\/server\/.*' | grep -v .svn | sed
-e 's/\/src\/main\/java\// /' | sed -e 's/\//\./g' | sed -e 's/\.\.//' |
sort
Here's the list of packages grouped by module:
avl-partition
org.apache.directory.server.core
org.apache.directory.server.core.partition
org.apache.directory.server.core.partition.avl
bootstrap-extract
org.apache.directory.server.schema
org.apache.directory.server.schema.bootstrap
org.apache.directory.server.schema.bootstrap.partition
bootstrap-plugin
org.apache.directory.server.core
org.apache.directory.server.core.bootstrap
org.apache.directory.server.core.bootstrap.plugin
core-api
org.apache.directory.server.core
org.apache.directory.server.core.changelog
org.apache.directory.server.core.event
org.apache.directory.server.core.filtering
org.apache.directory.server.core.interceptor
org.apache.directory.server.core.interceptor.context
org.apache.directory.server.core.invocation
org.apache.directory.server.core.partition
org.apache.directory.server.core.schema
org.apache.directory.server.core
org.apache.directory.server.core.avltree
core-constants
org.apache.directory.server.constants
core-cursor
org.apache.directory.server.core
org.apache.directory.server.core.cursor
core-entry
org.apache.directory.server.core
org.apache.directory.server.core.entry
core-integ
org.apache.directory.server.core
org.apache.directory.server.core.integ
org.apache.directory.server.core.integ.annotations
org.apache.directory.server.core.integ.state
org.apache.directory.server.core
org.apache.directory.server.core.interceptor
org.apache.directory.server.core.interceptor.context
core-jndi
org.apache.directory.server.core
org.apache.directory.server.core.jndi
core
org.apache.directory.server.core
org.apache.directory.server.core.authn
org.apache.directory.server.core.authz
org.apache.directory.server.core.authz.support
org.apache.directory.server.core.changelog
org.apache.directory.server.core.collective
org.apache.directory.server.core.configuration
org.apache.directory.server.core.event
org.apache.directory.server.core.exception
org.apache.directory.server.core.impl
org.apache.directory.server.core.normalization
org.apache.directory.server.core.operational
org.apache.directory.server.core.partition
org.apache.directory.server.core.prefs
org.apache.directory.server.core.referral
org.apache.directory.server.core.schema
org.apache.directory.server.core.security
org.apache.directory.server.core.sp
org.apache.directory.server.core.sp.java
org.apache.directory.server.core.subtree
org.apache.directory.server.core.trigger
core-plugin
org.apache.directory.server.core
org.apache.directory.server.core.tools
org.apache.directory.server.core.tools.schema
core-shared
org.apache.directory.server.core
org.apache.directory.server.schema
org.apache.directory.server.schema.bootstrap
core-splay
org.apache.directory.server.core
org.apache.directory.server.core.splay
core-unit
org.apache.directory.server.core
org.apache.directory.server.core.unit
interceptor-kerberos
org.apache.directory.server.core
org.apache.directory.server.core.kerberos
jdbm-partition
org.apache.directory.server.core
org.apache.directory.server.core.partition
org.apache.directory.server.core.partition.jdbm
kerberos-shared
org.apache.directory.server.kerberos
org.apache.directory.server.kerberos.shared
org.apache.directory.server.kerberos.shared.crypto
org.apache.directory.server.kerberos.shared.crypto.checksum
org.apache.directory.server.kerberos.shared.crypto.encryption
org.apache.directory.server.kerberos.shared.exceptions
org.apache.directory.server.kerberos.shared.io
org.apache.directory.server.kerberos.shared.io.decoder
org.apache.directory.server.kerberos.shared.io.encoder
org.apache.directory.server.kerberos.shared.jaas
org.apache.directory.server.kerberos.shared.keytab
org.apache.directory.server.kerberos.shared.messages
org.apache.directory.server.kerberos.shared.messages.application
org.apache.directory.server.kerberos.shared.messages.components
org.apache.directory.server.kerberos.shared.messages.value
org.apache.directory.server.kerberos.shared.messages.value.flags
org.apache.directory.server.kerberos.shared.messages.value.types
org.apache.directory.server.kerberos.shared.replay
org.apache.directory.server.kerberos.shared.service
org.apache.directory.server.kerberos.shared.store
org.apache.directory.server.kerberos.shared.store.operations
ldif-partition
org.apache.directory.server.core
org.apache.directory.server.core.partition
org.apache.directory.server.core.partition.ldif
oracle-partition
org.apache.directory.server.partition
org.apache.directory.server.partition.impl
org.apache.directory.server.partition.impl.oracle
protocol-changepw
org.apache.directory.server.changepw
org.apache.directory.server.changepw.exceptions
org.apache.directory.server.changepw.io
org.apache.directory.server.changepw.messages
org.apache.directory.server.changepw.protocol
org.apache.directory.server.changepw.service
org.apache.directory.server.changepw.value
protocol-dhcp
org.apache.directory.server.dhcp
org.apache.directory.server.dhcp.io
org.apache.directory.server.dhcp.messages
org.apache.directory.server.dhcp.options
org.apache.directory.server.dhcp.options.dhcp
org.apache.directory.server.dhcp.options.linklayer
org.apache.directory.server.dhcp.options.misc
org.apache.directory.server.dhcp.options.perhost
org.apache.directory.server.dhcp.options.perinterface
org.apache.directory.server.dhcp.options.tcp
org.apache.directory.server.dhcp.options.vendor
org.apache.directory.server.dhcp.protocol
org.apache.directory.server.dhcp.service
org.apache.directory.server.dhcp.store
protocol-dns
org.apache.directory.server.dns
org.apache.directory.server.dns.io
org.apache.directory.server.dns.io.decoder
org.apache.directory.server.dns.io.encoder
org.apache.directory.server.dns.messages
org.apache.directory.server.dns.protocol
org.apache.directory.server.dns.service
org.apache.directory.server.dns.store
org.apache.directory.server.dns.store.jndi
org.apache.directory.server.dns.store.jndi.operations
org.apache.directory.server.dns.util
protocol-kerberos
org.apache.directory.server.kerberos
org.apache.directory.server.kerberos.kdc
org.apache.directory.server.kerberos.kdc.authentication
org.apache.directory.server.kerberos.kdc.ticketgrant
org.apache.directory.server.kerberos.protocol
org.apache.directory.server.kerberos.sam
protocol-ldap
org.apache.directory.server.ldap
org.apache.directory.server.ldap.gui
org.apache.directory.server.ldap.handlers
org.apache.directory.server.ldap.handlers.bind
org.apache.directory.server.ldap.handlers.bind.cramMD5
org.apache.directory.server.ldap.handlers.bind.digestMD5
org.apache.directory.server.ldap.handlers.bind.gssapi
org.apache.directory.server.ldap.handlers.bind.ntlm
org.apache.directory.server.ldap.handlers.bind.plain
org.apache.directory.server.ldap.handlers.controls
org.apache.directory.server.ldap.handlers.extended
org.apache.directory.server.ldap.handlers.ssl
org.apache.directory.server.ldap.handlers.starttls
I think we should add a 'protocol' between 'server' and 'ldap'
protocol-ntp
org.apache.directory.server.ntp
org.apache.directory.server.ntp.io
org.apache.directory.server.ntp.messages
org.apache.directory.server.ntp.protocol
org.apache.directory.server.ntp.service
protocol-shared
org.apache.directory.server.protocol
org.apache.directory.server.protocol.shared
org.apache.directory.server.protocol.shared.catalog
org.apache.directory.server.protocol.shared.store
org.apache.directory.server.protocol.shared.transport
schema-bootstrap
org.apache.directory.server.schema
org.apache.directory.server.schema.bootstrap
schema-extras
org.apache.directory.server.schema
org.apache.directory.server.schema.bootstrap
schema-registries
org.apache.directory.server.schema
org.apache.directory.server.schema.registries
server-integ
org.apache.directory.server.integ
org.apache.directory.server.integ.state
server-jndi
org.apache.directory.server.configuration
server-replication
org.apache.directory.server.replication
org.apache.directory.server.replication.configuration
It will be removed, and renamed to syncrepl. Now, should it be part of
core ?
server-sar
org.apache.directory.server.sar
server-tools
org.apache.directory.server.tools
server-unit
org.apache.directory.server.unit
utils
org.apache.directory.server.utils
xdbm-base
org.apache.directory.server.xdbm
org.apache.directory.server.xdbm.search
xdbm-search
org.apache.directory.server.xdbm
org.apache.directory.server.xdbm.search
org.apache.directory.server.xdbm.search.impl
xdbm-tools
org.apache.directory.server.xdbm
org.apache.directory.server.xdbm.tools
org.apache.directory.server.xdbm.tools.ui
Why is xdbm not part of core ?
--
--
cordialement, regards,
Emmanuel Lécharny
www.iktek.com
directory.apache.org