New core

jfpoux | 2008-07-05 14:09

A draft of a rewritten version of Jsmtpd has been pushed on the source repository. It's a DRAFT (ie don't use in production environnement yet!).

There are several major differences with the current stable version of Jsmtpd. First one, is that the plugin loader mecanism has been dropped. While it was designed to provide meaningfull and simple config files, it was too restrictive on the features the core could provide. With this new branch, the project is a set of java beans that you can wire using whatever technology you like to eventually get a working smtp server. Spring framework is actually used, but it may change to something lighter.

The second major difference is networking: it's rewritten using a NIO layer (mina is used at the momment, might change to something smaller). So, receiving and sending mail is now done asynchronously, while internal processing like filtering, queuing and so are kept thread-bound. The smtp client and server are dumb string based: not tight to a particular network framework and are simple to test.

In the stable version, Jsmtpd is using a thread-blocking model, designed for fast mail processing in memory whenever possible. In the new branch, because of the networking strategy, concurency is on another scale and can't use the same mecanisms. So, this new core is less memory greedy, but more stressing for storage.

A good part of the integration plugins of Jsmtpd has been ported to this new branch. You can write components as java beans or using groovy scripts. There is also a small fake server to embed in unit tests, so that you can check if your application is currently sending mails.

Navigation

Active forum topics

Recent comments

User login