diff --git a/lib/red_storm/simple_topology.rb b/lib/red_storm/simple_topology.rb index b4e31af..a228c88 100644 --- a/lib/red_storm/simple_topology.rb +++ b/lib/red_storm/simple_topology.rb @@ -121,7 +121,10 @@ module RedStorm bolt.define_grouping(declarer) end - configurator = Configurator.new + # set the JRuby compatibility mode option for Storm workers, default to current JRuby mode + defaults = {"topology.worker.childopts" => "-Djruby.compat.version=#{RedStorm.jruby_mode_token}"} + + configurator = Configurator.new(defaults) configurator.instance_exec(env, &self.class.configure_block) submitter = (env == :local) ? @cluster = LocalCluster.new : StormSubmitter diff --git a/spec/red_storm/simple_topology_spec.rb b/spec/red_storm/simple_topology_spec.rb index c91fae0..f540179 100644 --- a/spec/red_storm/simple_topology_spec.rb +++ b/spec/red_storm/simple_topology_spec.rb @@ -457,6 +457,7 @@ describe RedStorm::SimpleTopology do Backtype::Config.should_receive(:new).and_return(config) config.should_receive(:setDebug).with(true) config.should_receive(:setMaxTaskParallelism).with(3) + config.should_receive(:put).with("topology.worker.childopts", "-Djruby.compat.version=#{RedStorm.jruby_mode_token}") builder = mock(RedStorm::TopologyBuilder) RedStorm::TopologyBuilder.should_receive(:new).and_return(builder)