What is Immutant?
What's in this release?
- We finally tackled one of our oldest outstanding
issues - support for
"at-style" jobs. Because we now accept either a hash or a cron spec
schedulefunction, the order of its args changed, so read the at-jobs article for details.
- We cut our distribution size in half and doubled the number of distributions we release. So there are now two Immutant distributions available: slim and full. Both support all the Immutant clojure libraries, but only full includes the JavaEE libraries as well.
- We exposed an
:encodingoption for the Immutant caches and enhanced the caching library for TorqueBox so that Ruby and Clojure applications deployed to a TorqueBox-overlaid Immutant may share Infinispan caches. Expect a blog post demonstrating this soon.
- With this release, Immutant will now honor
:ringoptions in your
project.cljin the absence of an
immutant.initnamespace. So, for example, a Luminus app created using
lein new luminus myappshould deploy to Immutant without any further config.
- One other change worth noting is that we upgraded the version of JBoss AS7 we depend on. Other than bug fixes, the primary motivation was HornetQ's new use of JGroups for clustering. This should facilitate auto-scaling on OpenShift, but there is still some work to do on that front.
We're hoping to begin our beta cycle with our next release. This will mark the coagulation of our API's.
The simplest way to install or upgrade to 0.9.0 is via our Leiningen plugin:
$ lein immutant install 0.9.0
Get In Touch
Issues resolved in 0.9.0
- [IMMUTANT-24] - Add 'at' support to jobs
- [IMMUTANT-112] - Fix release job to retain build/clojars/
- [IMMUTANT-135] - Share caches with TorqueBox apps
- [IMMUTANT-138] - Honor :repl-options when starting nrepl servers
- [IMMUTANT-147] - app may report it is fully deployed before initialization has finished creating web endpoints
- [IMMUTANT-192] - Ability to define client reconnection and session reattachment options to factory
- [IMMUTANT-203] - Non-normal priority messages can result in duplicate sends
- [IMMUTANT-205] - *read-eval* should be false for decoding :edn and :clojure
- [IMMUTANT-206] - Set the HTTP port via system property
- [IMMUTANT-207] - msg/start fails for destinations that were started by another app
- [IMMUTANT-208] - context-paths should be normalized
- [IMMUTANT-209] - update to leiningen-core 2.0.0
- [IMMUTANT-210] - msg/respond should set a :ttl for its messages
- [IMMUTANT-211] - App bootstrap should be in its own module to isolate leiningen-core and its deps
- [IMMUTANT-214] - Intermittent error invoking tests via fntest/nrepl
- [IMMUTANT-215] - :test-paths should be on the effective classpath
- [IMMUTANT-216] - ClojureRuntimeService gets shutdown before a Daemon's stop function is called
- [IMMUTANT-218] - Update to the 7.2 AS line
- [IMMUTANT-220] - we shouldn't be applying the :provided profile by default
- [IMMUTANT-222] - Expose the encoding type used for cached items
- [IMMUTANT-223] - Remote listeners don't ack delivery so messages remain in queue
- [IMMUTANT-224] - Honor :ring options in lieu of any standard Immutant bootstrap options
- [IMMUTANT-225] - Immutant rejects URLS with %2F
- [IMMUTANT-226] - Add :init and :destroy optional callbacks to web/start
- [IMMUTANT-228] - Create two distributions - 'slim' & 'full'
- [IMMUTANT-231] - singleton and non-singleton jobs can't exist in the same application