Skip to content
Mike Sukmanowsky edited this page May 13, 2014 · 5 revisions

How do I use a different version of Storm?

Luckily, the Clojure DSL and Java APIs for Storm haven't changed that much from the 0.5.0 release version (though of course, this could change). This allows our Clojure wrapper to define, run and submit topologies between different releases. If you change the version of the Storm JAR via :dependencies in your project.clj file, you'll get support for a different Storm version for free. Here's a sample project.clj file supporting Storm 0.8.2:

(defproject wordcount "0.0.1-SNAPSHOT"
  :source-paths ["topologies"]
  :resource-paths ["_resources"]
  :target-path "_build"
  :min-lein-version "2.0.0"
  :jvm-opts ["-client"]
  :dependencies [     [org.clojure/data.json "0.2.4"]
                      [org.clojure/tools.cli "0.3.1"]
                      [storm "0.8.2"] ; <-------------------------------------
                      [com.parsely/streamparse "0.0.1-SNAPSHOT"]]
  :jar-exclusions     [#"log4j\.properties" #"backtype" #"trident" #"META-INF" #"meta-inf" #"\.yaml"]
  :uberjar-exclusions [#"log4j\.properties" #"backtype" #"trident" #"META-INF" #"meta-inf" #"\.yaml"]
  )

Of course upgrading or downgrading topologies may still require manual steps if you wish to use/stop using newer features that were not available between Storm versions.

Clone this wiki locally