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]