guardian/deploy — pull request #32 by sihil (2012-10-17 16:57:09+00:00)
Title: Implement option to use mongodb datastore

The following changes have been implemented in this commit:
* Add support for persisting deploy information to a mongodb instance (see below)
* Refactor the way lifecycle management of singletons in Global is done
* Update errorPage to go to / when you click on the Riff-raff name

Persisting to mongodb has required refactoring a number of areas of magenta-lib and riff-raff
* magenta-lib - No longer hold copy of deploy information in DeployContext - this is now looked up when required
* magenta-lib - Create ThrowableDetail case class and implicit conversion from any Throwable to make storing deployment exceptions in mongo easy - this is now used in the messages sent by the MessageBroker
* magenta-lib - The time attribute previously on the Message trait has been removed and replaced by case class members on the MessageStack and MessageState implementations
* riff-raff - added casbah and salat
* riff-raff - added configuration for mongodb (mongo.uri) - disabled mongodb when not present
* riff-raff - added MongoDatastore to handle storing and retrieving deployment records
* riff-raff - modify DeployController to persist DeployRecord to mongo as well as in memory copy
* riff-raff - modify DeployRecord to no longer attach a deploy context