An Immutant Plugin For Boot Redux

Last year, we released a Boot plugin for building Immutant WAR archives for deploying to the WildFly application server. This initial version was basically a port of the lein-immutant plugin and didn't really behave as a proper Boot plugin should (mainly by writing outside of and ignoring files in the fileset).

This made it difficult to use the plugin for anything other than a vanilla project, so we rewrote the plugin to be a better Boot citizen.

The new plugin provides two tasks: boot.immutant/gird and boot.immutant/test-in-container. The gird task adds the files needed to activate an Immutant application in WildFly to the fileset, allowing you to use standard Boot tasks to assemble the other contents and actually create the war:

(require '[boot.immutant :refer :all])

(deftask build-war []
  (comp
    (uber :as-jars true)
    (aot :all true)
    (gird :init-fn 'my-app.core/init)
    (war)
    (target)))

For more details on the gird task, see the deployment guide.

The test-in-container task will take an Immutant WAR, spin up a WildFly container, deploy the WAR, run your tests, and shut it down. To build on the above example:

(deftask run-tests []
  (comp
    (build-dev-war)
    (test-in-container)))

For more details on the test-in-container task, see the testing guide.

If you're a Boot + Immutant + WildFly user, please see the README for installation instructions, give it a try and let us know if you run in to any issues, either through the usual channels or by filing an issue.

New versions of Leiningen and Boot plugins

This announcement only pertains to those who deploy their applications to WildFly or EAP.

We just released version 2.0.1 of lein-immutant and version 0.4.0 of boot-immutant. Both releases fix an issue where "dev" wars were no longer deployable if they used Immutant 2.1.0.

lein-immutant and boot-immutant are plugins, for Leiningen and Boot respectively, that are required for your application to run on WildFly or EAP. Specifically, they provide tasks for packaging your app as a WAR file and testing it "inside" the container.

If you have any questions, issues, or other feedback, you can always find us on #immutant on freenode or our mailing list or you can file an issue on the appropriate project.

An Immutant Plugin For Boot

Boot is an interesting new build tool for Clojure from Alan Dipert and Micha Niskin (if you're not familiar with it, Alan & Micha gave a great intro at Clojure/West).

To support the (probably enormous) set of Immutant 2.x users that use Boot and deploy to WildFly, we've ported the functionality of our lein-immutant plugin to Boot, and have released the cleverly-named boot-immutant.

boot-immutant provides two tasks: immutant-war and immutant-test, which are analogous to the immutant war and immutant test tasks from lein-immutant, respectively.

We consider the current release (0.3.0) beta quality. If you're in the set of users that would find this plugin useful, give it a try and let us know if you run in to any issues, either through the usual channels or by filing an issue.