Version 1.1, 2010-09-04
This software is distributed under the terms of the FSF Lesser Gnu Public License (version 3, see COPYING.LESSER and COPYING). Since the LGPL is a set of additional permissions on top of the GPL this license is also included in the file 'COPYING'.
Maintainer: Michael Kulovits
Dyson's a simple mail server whose sole aim is to receive mails over the SMTP protocol and to store them persistently as quickly as possible (sic!).
The name "dyson" is inspired by Freeman Dyson and his theory of a Dyson Sphere, i.e. a structure that is meant to completely encompass a star and capture most or all of its energy output. Think of the dyson MTA as a dyson sphere for mailing environments.
$> sbt update ## only one time to update sbt
$> sbt clean compile package jarjar
- java sdk & vm 1.6.0 or higher
- sbt 0.7.4 or higher
- TODO
inside sbt:
$> sbt run
using the standalone jarjar:
$> ./dyson.sh
see the javadocs of com.emarsys.Dyson for further details like cmd-line options and (optional) configuration files.
The emarsys commons library eCommon is a static dependency via /lib/ecommon-DYSON.jar. eCommon will be released under the LGPL on github later this year
Dyson's build system has been migrated from maven (and buildr) to SBT. This transition is not yet done and thus there are a couple of issues:
- The whole build system configuration and plugins (see /project/build/*.scala) is copy pasted from internal emarsys projects. Reusable parts of dyson's build system have to be refactored into a free "emarsys project plugin" project. this is unlikely to happen before the LGPL release of ecommon.
- TestNG test execution is not working via sbt. There is a custom SBT plugin (see /project/build/TestNGTestingProject.scala) which is currently not working. Either fix the SBT TestNG plugin or migrate the test case(s) to ScalaTest.
- Javadoc generation via sbt does not work. scaladoc is insufficient.
- Eclipse integration is very basic. Dyson's got its own version of the SBT plugin Eclipsify which creates Eclipse's .project and .classpath files but for instance lacks the incllacks the inclusion of the JRE libs, etc. etc.
Dyson's RESTlet server's logging is not integrated with dyson's logging concept. The restlet engine logs via java.util.logging. It should be possible to integrate via slf4j's bridge, see http://www.slf4j.org/legacy.html.