We're pleased to announce the third official release of Immutant - version 0.3.0. This is the first in a series of bi-monthly releases culminating in a 1.0.0 version this fall. 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 incidental complexity that comes along with real world applications.

What's in this release?

As we work to harden Immutant, we've focused less on features and more on robustness and developer experience, which we expect to continue through 1.0.0. Highlights of this release include:

  • Immutant namespaces are now published to clojars and can be referenced and used (to some extent) outside of an Immutant container. This is particularly handy for unit testing.
  • Speaking of testing, we've published the library we use to run our own integration tests so that you can, too. We'll describe how to do this in a future post.
  • XA transactions will work seamlessly with any released version of clojure.java.jdbc
  • Dependencies can be added at runtime, via a connected REPL, without requiring a redeploy or restart. See the docs for more details.
  • Immutant and its associated lein plugin work on Windows platforms.
  • Immutant can now be used in "domain mode", a JBoss AS7 cluster management feature, and your application archives can be efficiently replicated across a cluster with minimal redundant packaging.

Get It

The simplest way to install 0.3.0 is via our Leiningen plugin. 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 find us on #immutant on freenode or our mailing lists.

Issues resolved in 0.3.0

  • [IMMUTANT-16] - get the build working on windows
  • [IMMUTANT-74] - Get domain mode working
  • [IMMUTANT-84] - `lein immutant new` creates an invalid project.clj under lein 2.preview7
  • [IMMUTANT-85] - XA should work for both versions of clojure.java.jdbc
  • [IMMUTANT-86] - Depth of queue impacts performance of receive dramatically
  • [IMMUTANT-88] - daemons, jobs, and message processors should use the deployment's module class loader
  • [IMMUTANT-89] - lein-immutant shouldn't fail to validate checksum if no checksum found
  • [IMMUTANT-90] - Add dependencies at runtime, without requiring redeploy or REPL restart
  • [IMMUTANT-91] - Don't include deps in archive, by default
  • [IMMUTANT-93] - NoClassDefFoundError in server.log when app is undeployed
  • [IMMUTANT-94] - Update the plugin to work on windows
  • [IMMUTANT-97] - Update to leiningen-core 2.0.0-preview10
  • [IMMUTANT-98] - Singleton services and jobs fail to start in a single node cluster
  • [IMMUTANT-99] - Fails to build with maven 3.0.4 due to missing polyglot-module-support dep
  • [IMMUTANT-100] - enhance messaging/publish to publish raw Message
  • [IMMUTANT-102] - Publish fntest as a separate project
  • [IMMUTANT-103] - Figure out how to publish Immutant namespaces as standalone jars
  • [IMMUTANT-107] - All deployments should resolve dependencies by default
  • [IMMUTANT-108] - Don't attempt to re-resolve deps if some are missing
  • [IMMUTANT-110] - Add nrepl.el to the interactive doc chapter