directory-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Chris Custine <ccust...@apache.org>
Subject Re: [ApacheDS] Package cleanup
Date Sun, 12 Apr 2009 09:47:50 GMT
I just want to add my 2 cents about the package reorg as it relates to
OSGi.  One of the most important things to accomplish with this reorg would
be to remove split packages where some source files from the same package
name are located in different jar files.  There are many cases of this in
the current source structure and it really causes a lot of issues with
packaging as OSGi bundles.  This is the main reason that I am packaging
everything in one large bundle currently to do the OSGi proof of concept.

Your suggestion about splitting interfaces and impls into their own packages
and modules is also going to help the OSGi work substantially for the same
reason.  This will also make it easier to see how to extend or replace
functionality via custom bundles for protocols, partitions, etc. because the
built in implementations will be separate from the interfaces and will be a
starting point for new extensions.

I think that the split package issue is a major pain that will be great to
have fixed before doing more work on the OSGi stuff.  This alone will be a
great help, and if there is any room at all to consolidate some of the
modules together, this will also make maintaining OSGi bundles much easier
as there will be fewer dependency relationships to maintain.  My overall
wish would be to simplify the packages as much as possible during this
effort.

+1 obviously to Alex's suggestions as well...

Thanks,
Chris
--
Chris Custine
FUSESource :: http://fusesource.com
My Blog :: http://blog.organicelement.com
Apache ServiceMix :: http://servicemix.apache.org
Apache Directory Server :: http://directory.apache.org


On Thu, Apr 9, 2009 at 11:20 AM, Alex Karasulu <akarasulu@apache.org> 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'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
> (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
>
> 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
>
> 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
>
>
> --
> Alex Karasulu
> My Blog :: http://www.jroller.com/akarasulu/
> Apache Directory Server :: http://directory.apache.org
> Apache MINA :: http://mina.apache.org
>
>

Mime
View raw message