Danny,
1st, thanks for the big reply Paul.
1) First of all you should separate interface and impl of maillets.
Done already.
Err, yes, perhaps I should have done the "sorry if these are already
done" disclamer ;-)
4) James should also dynamically load maillet jars via a service api
(for other Phoenix blocks)
Not sure what this means exactly, but understand the principle
OK, MailServer (interface) is the principle service for James. Smaller
services (more internal) are UserRepository, but image you had one
caleed MailletRepository. Imagine it had addMaillet(File
mailletJarFile) and addMaillet(URL mailletJarFileUrl). Imagine you had
a service/block called JamesStartup that used the MailletRepository
service to add jars, one by one from a conceptual startup dir inside the
SAR file. See DefaultStartup inside EOB.
5) James should mount each mailet jar in a separate classloader (see
Jesktop and EOB). The parent of the classloader should be the system
classloader (which has all the J2SE packages in it plus the those in
phoenix/lib.
I'll look at Jesktop/EOB
:-) EOB is cleaner as it is newer. Jesktop does do the hot-install
thing which is nice. In time I am going to drag comps from EOB into
Jesktop to make a bean aware desktop.
The impl of James is hidden from the maillet.
It's a big task, but you'll be really pleased you did it. You can copy
as much code as you like from Jesktop and EOB
's what I like to hear :-)
:-)
- Paul
--
To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>