Affects Version/s: 3.0.0
Fix Version/s: 3.0-M1
Component/s: Build System, Deployment Modules, DNSServer, Documentation, FetchMail, IMAPServer, James Core, JUnit, Mailet Contributions, MailStore & MailRepository, Matchers/Mailets (bundled), NNTPServer & Repository (removed), POP3Server, Remote Delivery, Remote Manager, SMTPServer, SpoolManager & Processors, UsersStore & UsersRepository
James uses the Phoenix container and the Avalon Framework.
Unfortunately, both are now dead projects. This is now starting to cause maintainability issues. Realistically, James will need to start maintaining a fork or accept that some features will not work correctly in this container. It is also hard to recruit developers willing to learn these obsolete technologies.
Both Avalon and Phoenix take intrusive approaches to IoC. Avalon imposes coupling to a number of lifecycle interfaces. Phoenix requires a proliferation of finely grained internal interfaces.
However, these components have many advantages. They are now well tested and debugged. Users of James (as opposed to developers) seem happy with them.