On 2/10/07, Stefano Bagnara <[EMAIL PROTECTED]> wrote:
robert burrell donkin ha scritto:
> On 2/4/07, robert burrell donkin <[EMAIL PROTECTED]> wrote:
>> there seems to be a rough consensus in favour of modularising james.
>> i've pulled together a document about one possible design
>> (http://wiki.apache.org/james/Development/Modularisation). this is
>> just one possible direction but this proposal is only about the first
>> step towards modularization. please start discussions about this
>> design on a separate thread.

On phase 3 you wrote:
"create stage subdirectory which is local only": can you give more
details? I didn't understand what "is local only" means (is this related
to ant-1.7?)

nope: subversion

each module needs a build for that module that is self-contained.
modules are going to have dependencies so we need an area containing
jars for dependent modules. this is what i meant by a staging area.

Can I also ask you what are the modules you plan to split?

E.g:
Build Modules
- Is the "stage directory" something you put here?

nope

efficient multi-module ant means rolling a custom antlib

Deployment Modules
- phoenix-deployment: contains what we currently have in phoenix-bin and
the necessary ant task to build our current binary distribution.
- spring-deployment

yep

Function Modules
- smtpserver
- pop3server
- fetchmail
- remotemanager
- nntpserver
- imapserver
- transport (maybe to be named spoolmanager)
- mailetcontainer: to contain the James.java and some of the
transport/*loader* stuff.

sounds reasonable

(i intend to put the framework in place and let the community split
out functional modules)

Library Modules
- usersrepository
- mailrepository
- mailboxmanager
- dnsserver
- vut
- domain
- management

sounds reasonable

again, the list is something that i'd hope that would emerge

API Module
- mailet-api (candidate to be moved in its own product repository at the
same level of server, jspf, mime4j)

IMHO move into it's own repository

- mailet (maybe to be placed in the mailet-api product, too.. ?!)

unsure

- james-api: contains the "services" packages and maybe something more?

sounds reasonable

Single module containing the core James API
- core: the current content of core+util+context+security

Is this something that matches your proposal or had I misunderstood you?

close enough :-)

Maybe this is too premature (so feel free to ignore/delay if this is far
in your plans): for every function and library module we have "core"
code and avalon component declarations + avalon wrappers to wire
services: do you think the road is to split them in "core"+"avalon"
sub-modules?

not premature at all: in fact, kick-starting a discussion was the intention

I would add a "personal request" to be considered while we move so much
stuff around and we work on build scripts and so on:

1) Adopt SDL for module directory layouts:
http://maven.apache.org/guides/introduction/introduction-to-the-standard-directory-layout.html

2) Organize the lib folder like a legacy maven1 repository (like we did
in jSPF):
- from: lib/#artifactname#[-#artifactversion#].jar
- to: lib/#artifactgroup#/jars/#artifactname#-#artifactversion#.jar

This 2 tasks should not complicate the ant build and give us much more
agility mantaining the poms to build the website: WDYT?

i'm agnostic

opinions?

PS: if I misunderstood you and this is not your plan I don't want to
make you loose too much time explaining me things, so feel free to
simply say "No, just shut up and wait for details when I will provide
new proposals" ;-)

my plan was to kick start the modularization and let everyone help to
work out the details so this fits in nicely :-)

- robert

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to