redstorm 0.6.1 → 0.6.2
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGELOG.md +5 -0
- data/README.md +2 -2
- data/bin/redstorm +3 -3
- data/lib/red_storm.rb +0 -1
- data/lib/red_storm/application.rb +37 -4
- data/lib/red_storm/simple_bolt.rb +6 -1
- data/lib/red_storm/version.rb +1 -1
- data/lib/tasks/red_storm.rake +4 -20
- metadata +2 -2
data/CHANGELOG.md
CHANGED
@@ -52,3 +52,8 @@
|
|
52
52
|
- gem path is always in target/gems for both local and cluster context
|
53
53
|
- temp fix for slf4j dependencies conflict (issue #36)
|
54
54
|
- Storm 0.7.4
|
55
|
+
|
56
|
+
# 0.6.2, 07-10-2012
|
57
|
+
- issue #39, spout on_receive block will not be evaluated if :emit => false
|
58
|
+
- issue #40, bolt fail method missing
|
59
|
+
- integration tests support
|
data/README.md
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
# RedStorm v0.6.
|
1
|
+
# RedStorm v0.6.2 - JRuby on Storm
|
2
2
|
|
3
3
|
[![build status](https://secure.travis-ci.org/colinsurprenant/redstorm.png)](http://travis-ci.org/colinsurprenant/redstorm)
|
4
4
|
|
@@ -58,7 +58,7 @@ $ redstorm local|cluster [--1.8|--1.9] ...
|
|
58
58
|
|
59
59
|
``` ruby
|
60
60
|
source :rubygems
|
61
|
-
gem "redstorm", "~> 0.6.
|
61
|
+
gem "redstorm", "~> 0.6.2"
|
62
62
|
```
|
63
63
|
|
64
64
|
## Usage overview
|
data/bin/redstorm
CHANGED
@@ -5,11 +5,11 @@ require 'rake'
|
|
5
5
|
|
6
6
|
begin
|
7
7
|
# will work from gem, since lib dir is in gem require_paths
|
8
|
-
require 'red_storm'
|
8
|
+
require 'red_storm/application'
|
9
9
|
rescue LoadError
|
10
10
|
# will work within RedStorm dev project
|
11
11
|
$:.unshift './lib'
|
12
|
-
require 'red_storm'
|
12
|
+
require 'red_storm/application'
|
13
13
|
end
|
14
14
|
|
15
|
-
RedStorm::Application.
|
15
|
+
RedStorm::Application.run(ARGV.dup)
|
data/lib/red_storm.rb
CHANGED
@@ -1,10 +1,40 @@
|
|
1
|
+
require 'red_storm/version'
|
2
|
+
require 'red_storm/environment'
|
3
|
+
|
4
|
+
CWD = Dir.pwd
|
5
|
+
TARGET_DIR = "#{CWD}/target"
|
6
|
+
TARGET_LIB_DIR = "#{TARGET_DIR}/lib"
|
7
|
+
TARGET_SRC_DIR = "#{TARGET_DIR}/src"
|
8
|
+
TARGET_GEM_DIR = "#{TARGET_DIR}/gems/gems"
|
9
|
+
TARGET_SPECS_DIR = "#{TARGET_DIR}/gems/specifications"
|
10
|
+
TARGET_CLASSES_DIR = "#{TARGET_DIR}/classes"
|
11
|
+
TARGET_DEPENDENCY_DIR = "#{TARGET_DIR}/dependency"
|
12
|
+
TARGET_DEPENDENCY_UNPACKED_DIR = "#{TARGET_DIR}/dependency-unpacked"
|
13
|
+
TARGET_CLUSTER_JAR = "#{TARGET_DIR}/cluster-topology.jar"
|
14
|
+
|
15
|
+
REDSTORM_JAVA_SRC_DIR = "#{RedStorm::REDSTORM_HOME}/src/main"
|
16
|
+
REDSTORM_LIB_DIR = "#{RedStorm::REDSTORM_HOME}/lib"
|
17
|
+
|
18
|
+
SRC_EXAMPLES = "#{RedStorm::REDSTORM_HOME}/examples"
|
19
|
+
DST_EXAMPLES = "#{CWD}/examples"
|
20
|
+
|
21
|
+
|
1
22
|
module RedStorm
|
2
23
|
|
3
24
|
class Application
|
4
25
|
TASKS_FILE = "#{RedStorm::REDSTORM_HOME}/lib/tasks/red_storm.rake"
|
5
26
|
|
6
|
-
def
|
7
|
-
|
27
|
+
def self.local_storm_command(class_file, ruby_mode = nil)
|
28
|
+
"java -Djruby.compat.version=#{RedStorm.jruby_mode_token(ruby_mode)} -cp \"#{TARGET_CLASSES_DIR}:#{TARGET_DEPENDENCY_DIR}/*\" redstorm.TopologyLauncher local #{class_file}"
|
29
|
+
end
|
30
|
+
|
31
|
+
def self.cluster_storm_command(class_file, ruby_mode = nil)
|
32
|
+
"storm jar #{TARGET_CLUSTER_JAR} -Djruby.compat.version=#{RedStorm.jruby_mode_token(ruby_mode)} redstorm.TopologyLauncher cluster #{class_file}"
|
33
|
+
end
|
34
|
+
|
35
|
+
def self.usage
|
36
|
+
puts("usage: redstorm version")
|
37
|
+
puts(" redstorm install")
|
8
38
|
puts(" redstorm deps")
|
9
39
|
puts(" redstorm build")
|
10
40
|
puts(" redstorm examples")
|
@@ -15,9 +45,12 @@ module RedStorm
|
|
15
45
|
exit(1)
|
16
46
|
end
|
17
47
|
|
18
|
-
def run(args)
|
48
|
+
def self.run(args)
|
19
49
|
if args.size > 0
|
20
|
-
if [
|
50
|
+
if args[0] == "version"
|
51
|
+
puts("RedStorm v#{VERSION}")
|
52
|
+
exit
|
53
|
+
elsif ["install", "examples", "jar", "bundle", "deps", "build"].include?(args[0])
|
21
54
|
load(TASKS_FILE)
|
22
55
|
Rake::Task[args.shift].invoke(args.join(":"))
|
23
56
|
exit
|
@@ -53,10 +53,15 @@ module RedStorm
|
|
53
53
|
@collector.ack(tuple)
|
54
54
|
end
|
55
55
|
|
56
|
+
def fail(tuple)
|
57
|
+
@collector.fail(tuple)
|
58
|
+
end
|
59
|
+
|
56
60
|
# Bolt proxy interface
|
57
61
|
|
58
62
|
def execute(tuple)
|
59
|
-
|
63
|
+
output = instance_exec(tuple, &self.class.on_receive_block)
|
64
|
+
if output && self.class.emit?
|
60
65
|
values_list = !output.is_a?(Array) ? [[output]] : !output.first.is_a?(Array) ? [output] : output
|
61
66
|
values_list.each{|values| self.class.anchor? ? anchored_emit(tuple, *values) : unanchored_emit(*values)}
|
62
67
|
@collector.ack(tuple) if self.class.ack?
|
data/lib/red_storm/version.rb
CHANGED
data/lib/tasks/red_storm.rake
CHANGED
@@ -2,27 +2,11 @@ require 'ant'
|
|
2
2
|
require 'jruby/jrubyc'
|
3
3
|
require 'pompompom'
|
4
4
|
require 'red_storm'
|
5
|
-
|
5
|
+
require 'red_storm/application'
|
6
|
+
|
6
7
|
INSTALL_STORM_VERSION = "0.7.4"
|
7
8
|
INSTALL_JRUBY_VERSION = "1.6.7.2"
|
8
9
|
|
9
|
-
CWD = Dir.pwd
|
10
|
-
TARGET_DIR = "#{CWD}/target"
|
11
|
-
TARGET_LIB_DIR = "#{TARGET_DIR}/lib"
|
12
|
-
TARGET_SRC_DIR = "#{TARGET_DIR}/src"
|
13
|
-
TARGET_GEM_DIR = "#{TARGET_DIR}/gems/gems"
|
14
|
-
TARGET_SPECS_DIR = "#{TARGET_DIR}/gems/specifications"
|
15
|
-
TARGET_CLASSES_DIR = "#{TARGET_DIR}/classes"
|
16
|
-
TARGET_DEPENDENCY_DIR = "#{TARGET_DIR}/dependency"
|
17
|
-
TARGET_DEPENDENCY_UNPACKED_DIR = "#{TARGET_DIR}/dependency-unpacked"
|
18
|
-
TARGET_CLUSTER_JAR = "#{TARGET_DIR}/cluster-topology.jar"
|
19
|
-
|
20
|
-
REDSTORM_JAVA_SRC_DIR = "#{RedStorm::REDSTORM_HOME}/src/main"
|
21
|
-
REDSTORM_LIB_DIR = "#{RedStorm::REDSTORM_HOME}/lib"
|
22
|
-
|
23
|
-
SRC_EXAMPLES = "#{RedStorm::REDSTORM_HOME}/examples"
|
24
|
-
DST_EXAMPLES = "#{CWD}/examples"
|
25
|
-
|
26
10
|
module JavaZip
|
27
11
|
import 'java.util.zip.ZipFile'
|
28
12
|
end
|
@@ -33,13 +17,13 @@ task :launch, :env, :ruby_mode, :class_file do |t, args|
|
|
33
17
|
|
34
18
|
command = case args[:env]
|
35
19
|
when "local"
|
36
|
-
|
20
|
+
RedStorm::Application.local_storm_command(args[:class_file], args[:ruby_mode])
|
37
21
|
when "cluster"
|
38
22
|
unless File.exist?(TARGET_CLUSTER_JAR)
|
39
23
|
puts("cluster jar file #{TARGET_CLUSTER_JAR} not found. Generate it using $redstorm jar DIR1 [DIR2, ...]")
|
40
24
|
exit(1)
|
41
25
|
end
|
42
|
-
|
26
|
+
RedStorm::Application.cluster_storm_command(args[:class_file], args[:ruby_mode])
|
43
27
|
end
|
44
28
|
|
45
29
|
puts("launching #{command}")
|
metadata
CHANGED
@@ -2,14 +2,14 @@
|
|
2
2
|
name: redstorm
|
3
3
|
version: !ruby/object:Gem::Version
|
4
4
|
prerelease:
|
5
|
-
version: 0.6.
|
5
|
+
version: 0.6.2
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- Colin Surprenant
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-07-
|
12
|
+
date: 2012-07-10 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rspec
|