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]>



Reply via email to