I'm planning a few changes in the main blocks and cleaning the assembly.

Here are a few example:

1) Remove unused dependecy from the current assembly: e.g.
org.apache.james.services.MailStore from
SMTPServer/RemoteManager/POP3Server,
org.apache.james.services.JamesConnectionManager from James,
org.apache.avalon.cornerstone.services.threads.ThreadManager from
JamesSpoolManager.

2) Deprecate/Remove unused methods from common interfaces: e.g. MailServer
provides 4 sendMails methods but only 1 is used from SMTPHandler and
MessageProcessor. The other 3 methods are always accessed via the
MailetContext interface (provided by the same component: James).

3) Remove the inboundSpool concept from the MailStore by promoting the
"inbound" SpoolRepository to a toplevel block that James and
JamesSpoolManager will depend on. 2 advantages: possibility to implement
multiple spoolmanagers with multiple spoolrepositories, limit the
interdependencies of components (the Spoolmanager does not need the full
MailStore but only the inbound spoolrepository).

4) Promote MailetLoader and MatcherLoader to block components: this allow us
to make them easily configurable and allow to limit the knowledge needed by
the SpoolManager (the spoolmanager itself does not need the MailetContext
knowledge). To do that we need to change the Loaders to be Serviceable and
to remove the MailetContext parameter from the load calls.

5) More to come.... 

I would like to know if any committer is against this kind of changes.

The number 3, for example, will need minor config.xml changes (the inbound
spool conf moved outside the spoolmanager conf).

The others will be transparent for users that didn't change the assembly
(MOST users).

I will track every change with a JIRA issue and the consequent svn commit so
you can check my work.

Including internal "API" changes (as for number 2) is a point in favor of
3.0 instead 2.3.0 for the next release.

Stefano


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

Reply via email to