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?
Immutant is an application server for Clojure. It's an integrated platform built on JBoss AS7 that aims to reduce the inherent accidental complexity in real world applications.
What's in this release?
Highlights include:
- Auto-reloading of your web app source files when modified with
the
:reloadoption ofimmutant.web/start. - We now support
durable topic subscribers.
Simply pass a
:client-idto eitherreceiveorlisten. - 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 theimmutant.daemonsnamespace. To avoid a naming conflict, we renamed thestartfunction torun. - 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.
Get It
The simplest way to install or upgrade to 0.4.0 is via our Leiningen plugin:
$ lein immutant install 0.4.0
See our install page for more details. Once you have it installed, take a look at our tutorials.
Get In Touch
If you have any questions, issues, or other feedback about Immutant, you can always find us on #immutant on freenode or our mailing lists.
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

