We're as happy as the Seattle Seahawks after last night's win to announce our second bi-monthly beta release of Immutant - version 0.4.0, hopefully culminating in a 1.0.0 version this fall. As always, view our road map here.
What is Immutant?
What's in this release?
- Auto-reloading of your web app source files when modified with
- We now support
durable topic subscribers.
Simply pass a
- We're smarter about stopping JMS destinations now. Specifically, we'll never stop a durable queue or a topic with durable subscribers if it contains undelivered messages. This guarantees message delivery even across server restarts.
- When you pass messages that are Clojure data structures, we pass their metadata as filterable JMS properties, and reconstitute it upon delivery.
- We introduced a
Daemonprotocol to the
immutant.daemonsnamespace. To avoid a naming conflict, we renamed the
- We added some options to the Leiningen plugin to make it very easy to set virtual host and context path options at the command line when deploying your app.
- We reduced application deployment times by about 40%, and we're not done yet.
The simplest way to install or upgrade to 0.4.0 is via our Leiningen plugin:
$ lein immutant install 0.4.0
Get In Touch
Issues resolved in 0.4.0
- [IMMUTANT-21] - Implement reloading in development mode
- [IMMUTANT-29] - Support durable topic subscribers
- [IMMUTANT-96] - message queue names should not contain '/' character
- [IMMUTANT-101] - Provide easier access to Message properties
- [IMMUTANT-104] - Pass JobExecutionContext to function called by job
- [IMMUTANT-105] - Jobs appear to run concurrently even though they implement StatefulJob
- [IMMUTANT-117] - Deployment takes too long
- [IMMUTANT-118] - Queued messages don't seem to persist across a server restart
- [IMMUTANT-119] - Turn daemons api into a protocol
- [IMMUTANT-120] - Properly apply ~/.lein/profiles.clj to deployed projects
- [IMMUTANT-121] - Add options to lein plugin's deploy task
- [IMMUTANT-123] - Allow apps to deploy with immutant-messaging as an explicit dependency