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?)
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?
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
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.
Library Modules
- usersrepository
- mailrepository
- mailboxmanager
- dnsserver
- vut
- domain
- management
API Module
- mailet-api (candidate to be moved in its own product repository at the
same level of server, jspf, mime4j)
- mailet (maybe to be placed in the mailet-api product, too.. ?!)
- james-api: contains the "services" packages and maybe something more?
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?
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?
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?
Stefano
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" ;-)
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]