norikra 0.1.3-java → 0.1.4-java

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 6d5ba6d34ed7bba46947b8434b0ac32b8cb7ba2d
4
+ data.tar.gz: 2c6a5434cfc175aab9de2f89d3ab10198a75a06f
5
+ SHA512:
6
+ metadata.gz: 48a696a0f5611dc7657c82e1e119a10355da055eadfd4417b0456508a345ce4a18bc8617bd4aa46435cf49c85c7e0863ef42e01747923de89a0695e9ea7a86db
7
+ data.tar.gz: 9b04d5197dd10a38c6d66dd09ae580509f2469c1d6727f774e203e61400796accc5c3de164df2262b0d0521959c49bb80bd8241648e339f234d75881b8994a71
@@ -1 +1 @@
1
- jruby-1.7.4
1
+ jruby-1.7.11
data/README.md CHANGED
@@ -24,35 +24,9 @@ For JRuby installation, you can use `rbenv`, `rvm` and `xbuild`, or install JRub
24
24
  * rbenv: https://github.com/sstephenson/rbenv/
25
25
  * xbuild: https://github.com/tagomoris/xbuild
26
26
 
27
- ### Command line options
27
+ ### Install and launch
28
28
 
29
- To start norikra server in foreground:
30
-
31
- norikra start
32
-
33
- Norikra server doesn't save targets/queries in default.
34
- Specify `--stats STATS_FILE_PATH` option to save these runtime configuration automatically.
35
-
36
- norikra start --stats /path/to/data/norikra.stats.json
37
-
38
- JVM options like `-Xmx` are available:
39
-
40
- norikra start -Xmx2g
41
-
42
- To daemonize:
43
-
44
- norikra start -Xmx2g --daemonize --logdir=/var/log/norikra
45
- norikra start -Xmx2g --daemonize --pidfile /var/run/norikra.pid --logdir=/var/log/norikra
46
- # To stop
47
- norikra stop
48
-
49
- Performance options about threadings:
50
-
51
- norikra start --micro # or --small, --middle, --large
52
-
53
- For other options, see help:
54
-
55
- norikra help start
29
+ See: http://norikra.github.io/
56
30
 
57
31
  ### How to execute norikra server and tests in development
58
32
 
@@ -77,7 +51,12 @@ Execute norikra server with target/query continuation:
77
51
 
78
52
  ## Clients
79
53
 
80
- Use `Norikra::Client` and `norikra-client` cli command. These are available on both of JRuby and CRuby.
54
+ Use `norikra-client` cli command. These are available on both of JRuby and CRuby.
55
+
56
+ https://rubygems.org/gems/norikra-client
57
+ https://rubygems.org/gems/norikra-client-jruby
58
+
59
+ And the client library for application developers are also included in these gems.
81
60
 
82
61
  https://github.com/norikra/norikra-client-ruby
83
62
 
@@ -86,103 +65,12 @@ For other languages:
86
65
 
87
66
  ## Events and Queries
88
67
 
89
- For example, think about event streams related with one web service (ex: 'www'). At first, define `target` with mandantory fields (in other words, minimal fields set for variations of 'www' events).
90
-
91
- norikra-client target open www path:string status:integer referer:string agent:string userid:integer
92
- norikra-client target list
93
-
94
- Supported types are `string`, `boolean`, `integer`, `float` and `hash`, `array`.
95
-
96
- You can register queries when you want.
97
-
98
- # norikra-client query add QUERY_NAME QUERY_EXPRESSION
99
- norikra-client query add www.toppageviews 'SELECT count(*) AS cnt FROM www.win:time_batch(10 sec) WHERE path="/" AND status=200'
100
-
101
- And send events into norikra (multi line events [json-per-line] and LTSV events are also allowed).
102
-
103
- echo '{"path":"/", "status":200, "referer":"", "agent":"MSIE", "userid":3}' | norikra-client event send www
104
- echo '{"path":"/login", "status":301, "referer":"/", "agent":"MSIE", "userid":3}' | norikra-client event send www
105
- echo '{"path":"/content", "status":200, "referer":"/login", "agent":"MSIE", "userid":3}' | norikra-client event send www
106
- echo '{"path":"/page/1", "status":200, "referer":"/content", "agent":"MSIE", "userid":3}' | norikra-client event send www
107
-
108
- Finally, you can get query outputs:
109
-
110
- norikra-client event fetch www.toppageviews
111
- {"time":"2013/05/15 15:10:35","cnt":1}
112
- {"time":"2013/05/15 15:10:45","cnt":0}
113
-
114
- You can just add queries with optional fields:
115
-
116
- norikra-client query add www.search 'SELECT count(*) AS cnt FROM www.win:time_batch(10 sec) WHERE path="/content" AND search_param.length() > 0'
117
-
118
- And send more events:
119
-
120
- echo '{"path":"/", "status":200, "referer":"", "agent":"MSIE", "userid":3}' | norikra-client event send www
121
- echo '{"path":"/", "status":200, "referer":"", "agent":"Firefox", "userid":4}' | norikra-client event send www
122
- echo '{"path":"/content", "status":200, "referer":"/login", "agent":"MSIE", "userid":3}' | norikra-client event send www
123
- echo '{"path":"/content", "status":200, "referer":"/login", "agent":"Firefox", "userid":4, "search_param":"news worldwide"}' | norikra-client event send www
124
-
125
- Query 'www.search' matches the last event automatically.
126
-
127
- ## Performance
128
-
129
- Threads option available with `norikra start`. Simple specifiers for performance with threadings:
130
-
131
- norikra start --micro # or --small, --middle, --large (default: 'micro')
132
-
133
- Norikra server has 3 types of threads:
134
-
135
- * engine: 4 query engine thread types on Esper
136
- * inbound: input data handler for queries
137
- * outbound: output data handler for queries
138
- * router: event handler which decides which query needs that events
139
- * timer: executer for queries with time_batches and other timing events
140
- * rpc: data input/output rpc handler threads on Jetty
141
- * web: web ui request handler threads on Jetty
142
-
143
- In many cases, norikra server handling high rate events needs large number of rpc threads to handle input/output rpc requests. WebUI don't need threads rather than default in almost all of cases.
144
-
145
- Engine threads depends on queries running on norikra, input/output event data rate and target numbers. For more details, see Esper's API Documents: http://esper.codehaus.org/esper-4.10.0/doc/reference/en-US/html/api.html#api-threading
146
-
147
- Norikra's simple specifiers details of threadings are:
148
-
149
- * micro: development and testing
150
- * engine: all processings on single threads
151
- * rpc: 2 threads
152
- * web: 2 threads
153
- * small: low rate events on virtual servers
154
- * engine: inbound 1, outbound 1, route 1, timer 1 threads
155
- * rpc: 2 threads
156
- * web: 2 threads
157
- * middle: high rate events on physical servers
158
- * engine: inbound 4, outbound 2, route 2, timer 2 threads
159
- * rpc: 4 threads
160
- * web: 2 threads
161
- * large: inbound heavy traffic and huge amount of queries
162
- * engine: inbound 6, outbound 6, route 4, timer 4 threads
163
- * rpc: 8 threads
164
- * web: 2 threads
165
-
166
- To specify sizes of each threads, use `--*-threads=NUM` options. For more details, see: `norikra help start`.
167
-
168
- ## User Defined Functions
169
-
170
- UDFs/UDAFs can be loaded as plugin gems over rubygems or as private plugins.
171
- In fact, Norikra's UDFs/UDAFs are Esper's plugin with a JRuby class to indicate plugin metadata.
172
-
173
- For details how to write your own UDF/UDAF for norikra and to release it as gem, see README of `norikra-udf-mock`.
174
- https://github.com/norikra/norikra-udf-mock
175
-
176
- ## Tips
177
-
178
- We need to write this document on http://norikra.github.io
179
-
180
- ### Esper query syntax
181
-
182
- * String concatination operator: `||`
68
+ See: http://norikra.github.io/
183
69
 
184
70
  ## Changes
185
71
 
72
+ * v0.1.3:
73
+ * Fix critical bug about query de-registration
186
74
  * v0.1.2:
187
75
  * Fix CLI start command to detect jruby path collectly (behind rbenv/rvm and others)
188
76
  * v0.1.1:
@@ -18,6 +18,8 @@ module Norikra
18
18
  :desc => 'status file path to load/dump targets, queries and server configurations [none]'
19
19
  option :'suppress-dump-stat', :type => :boolean, :default => false, \
20
20
  :desc => 'specify not to update stat file with updated targets/queries/configurations on runtime [false]'
21
+ option :'dump-stat-interval', :type => :numeric, :default => nil, \
22
+ :desc => 'interval(seconds) of status file dumps on runtime [none (on shutdown only)]'
21
23
 
22
24
  ### Daemonize options
23
25
  option :daemonize, :type => :boolean, :default => false, :aliases => "-d", \
@@ -135,7 +137,7 @@ module Norikra
135
137
 
136
138
  ### stat file
137
139
  conf[:stats] = {
138
- path: options[:stats], suppress: options[:'suppress-dump-stat'],
140
+ path: options[:stats], suppress: options[:'suppress-dump-stat'], interval: options[:'dump-stat-interval'],
139
141
  }
140
142
 
141
143
  ### threads
@@ -230,6 +230,7 @@ module Norikra
230
230
  trace "sendEvent", :data => formed
231
231
  @runtime.sendEvent(formed.to_java, fieldset.event_type_name)
232
232
  end
233
+ target.update!
233
234
  @statistics[:events][:processed] += events.size
234
235
  nil
235
236
  end
@@ -103,6 +103,12 @@ class Norikra::RPC::Handler
103
103
  }
104
104
  end
105
105
 
106
+ def see(query_name)
107
+ logging(:show, :see, [query_name]){
108
+ @engine.output_pool.fetch(query_name)
109
+ }
110
+ end
111
+
106
112
  def sweep(query_group=nil)
107
113
  logging(:show, :sweep){
108
114
  @engine.output_pool.sweep(query_group)
@@ -82,6 +82,7 @@ module Norikra
82
82
 
83
83
  @stats_path = conf[:stats][:path]
84
84
  @stats_suppress_dump = conf[:stats][:suppress]
85
+ @stats_dump_interval = conf[:stats][:interval]
85
86
  @stats = if @stats_path && test(?r, @stats_path)
86
87
  Norikra::Stats.load(@stats_path)
87
88
  else
@@ -147,11 +148,42 @@ module Norikra
147
148
  [:INT, :TERM].each do |s|
148
149
  Signal.trap(s, shutdown_proc)
149
150
  end
150
- #TODO: SIGHUP? SIGUSR1? SIGUSR2? (dumps of query/fields? or other handler?)
151
+
152
+ @dump_stats = false
153
+ @dump_next_time = if @stats_dump_interval
154
+ Time.now + @stats_dump_interval
155
+ else
156
+ nil
157
+ end
158
+ Signal.trap(:USR1, ->{ @dump_stats = true })
159
+
160
+ #TODO: SIGHUP?(dynamic plugin loading?) SIGUSR2?
151
161
 
152
162
  while @running
153
163
  sleep 0.3
164
+
165
+ if @stats && !@stats_suppress_dump
166
+ if @dump_stats || (@dump_next_time && Time.now > @dump_next_time)
167
+ dump_stats
168
+ @dump_stats = false
169
+ @dump_next_time = Time.now + @stats_dump_interval if @dump_next_time
170
+ end
171
+ end
172
+ end
173
+ end
174
+
175
+ def shutdown
176
+ info "Norikra server shutting down."
177
+ @webserver.stop
178
+ @rpcserver.stop
179
+ @engine.stop
180
+ info "Norikra server stopped."
181
+
182
+ if @stats_path && !@stats_suppress_dump
183
+ dump_stats
154
184
  end
185
+
186
+ info "Norikra server shutdown complete."
155
187
  end
156
188
 
157
189
  def load_plugins
@@ -170,33 +202,23 @@ module Norikra
170
202
  end
171
203
  end
172
204
 
173
- def shutdown
174
- info "Norikra server shutting down."
175
- @webserver.stop
176
- @rpcserver.stop
177
- @engine.stop
178
- info "Norikra server stopped."
179
-
180
- if @stats_path && !@stats_suppress_dump
181
- stats = Norikra::Stats.new(
182
- host: @host,
183
- port: @port,
184
- threads: @thread_conf,
185
- log: @log_conf,
186
- targets: @engine.targets.map{|t|
187
- {
188
- :name => t.name,
189
- :fields => @engine.typedef_manager.dump_target(t.name),
190
- :auto_field => t.auto_field
191
- }
192
- },
193
- queries: @engine.queries.map(&:dump)
194
- )
195
- stats.dump(@stats_path)
196
- info "Current status saved", :path => @stats_path
197
- end
198
-
199
- info "Norikra server shutdown complete."
205
+ def dump_stats
206
+ stats = Norikra::Stats.new(
207
+ host: @host,
208
+ port: @port,
209
+ threads: @thread_conf,
210
+ log: @log_conf,
211
+ targets: @engine.targets.map{|t|
212
+ {
213
+ :name => t.name,
214
+ :fields => @engine.typedef_manager.dump_target(t.name),
215
+ :auto_field => t.auto_field
216
+ }
217
+ },
218
+ queries: @engine.queries.map(&:dump)
219
+ )
220
+ stats.dump(@stats_path)
221
+ info "Current status saved", :path => @stats_path
200
222
  end
201
223
  end
202
224
  end
@@ -1,6 +1,6 @@
1
1
  module Norikra
2
2
  class Target
3
- attr_accessor :name, :fields, :auto_field
3
+ attr_accessor :name, :fields, :auto_field, :last_modified
4
4
 
5
5
  def self.valid?(target_name)
6
6
  target_name =~ /^[a-zA-Z]([_a-zA-Z0-9]*[a-zA-Z0-9])?$/
@@ -10,6 +10,7 @@ module Norikra
10
10
  @name = name
11
11
  @fields = fields
12
12
  @auto_field = !!auto_field
13
+ @last_modified = nil
13
14
  end
14
15
 
15
16
  def <=>(other)
@@ -27,5 +28,9 @@ module Norikra
27
28
  def auto_field?
28
29
  @auto_field
29
30
  end
31
+
32
+ def update!
33
+ @last_modified = Time.now
34
+ end
30
35
  end
31
36
  end
@@ -1,3 +1,3 @@
1
1
  module Norikra
2
- VERSION = "0.1.3"
2
+ VERSION = "0.1.4"
3
3
  end
@@ -68,7 +68,14 @@ class Norikra::WebUI::Handler < Sinatra::Base
68
68
  pooled_events = Hash[* queries.map{|q| [q.name, engine.output_pool.pool.fetch(q.name, []).size.to_s]}.flatten]
69
69
 
70
70
  engine_targets = engine.targets.sort
71
- targets = engine_targets.map{|t| {name: t.name, auto_field: t.auto_field, fields: engine.typedef_manager.field_list(t.name) }}
71
+ targets = engine_targets.map{|t|
72
+ {
73
+ name: t.name,
74
+ auto_field: t.auto_field,
75
+ fields: engine.typedef_manager.field_list(t.name),
76
+ modified: t.last_modified.to_s,
77
+ }
78
+ }
72
79
 
73
80
  erb :index, :layout => :base, :locals => {
74
81
  input_data: input_data,
@@ -22,8 +22,8 @@ Gem::Specification.new do |spec|
22
22
  spec.add_runtime_dependency "mizuno", "~> 0.6"
23
23
  spec.add_runtime_dependency "rack"
24
24
  spec.add_runtime_dependency "thor"
25
- spec.add_runtime_dependency "msgpack-rpc-over-http-jruby", ">= 0.0.5"
26
- spec.add_runtime_dependency "norikra-client-jruby", "~> 0.1.0"
25
+ spec.add_runtime_dependency "msgpack-rpc-over-http-jruby", ">= 0.0.6"
26
+ spec.add_runtime_dependency "norikra-client-jruby", ">= 0.1.4"
27
27
  spec.add_runtime_dependency "sinatra"
28
28
  spec.add_runtime_dependency "sinatra-contrib"
29
29
  spec.add_runtime_dependency "erubis"
@@ -45,7 +45,7 @@
45
45
  <li <%= @page == "queries" ? 'class="active"' : '' %>><a href="#targets">Targets</a></li>
46
46
  </ul>
47
47
  <ul class="nav navbar-nav navbar-right">
48
- <li><a href="https://github.com/tagomoris/norikra">Webpage</a></li>
48
+ <li><a href="https://github.com/norikra/norikra">Webpage</a></li>
49
49
  </ul>
50
50
  </div><!--/.nav-collapse -->
51
51
  </div>
@@ -66,7 +66,7 @@
66
66
  <% if queries.size > 0 %>
67
67
  <table class="table">
68
68
  <tr><th>Group</th><th>Query name</th><th>Targets</th><th>Query</th><th style="text-align:right;">Events</th><th></th><th></th></tr>
69
- <% queries.each do |query| %>
69
+ <% queries.each_with_index do |query, index| %>
70
70
  <tr>
71
71
  <td><%= query.group || "(default)" %></td>
72
72
  <td><%= query.name %></td>
@@ -83,12 +83,12 @@
83
83
  <% end %>
84
84
  </td>
85
85
  <td>
86
- <a class="btn btn-danger btn-xs" data-toggle="modal" href="#removeQuery<%= query.name %>">
86
+ <a class="btn btn-danger btn-xs" data-toggle="modal" href="#removeQuery<%= index %>">
87
87
  <span class="glyphicon glyphicon-trash"></span>
88
88
  </a>
89
89
  <div class="modal fade"
90
- id="removeQuery<%= query.name %>"
91
- tabindex="-1" role="dialog" aria-labelledby="removeQueryLabel<%= query.name %>" aria-hidden="true">
90
+ id="removeQuery<%= index %>"
91
+ tabindex="-1" role="dialog" aria-labelledby="removeQueryLabel<%= index %>" aria-hidden="true">
92
92
  <div class="modal-dialog">
93
93
  <div class="modal-content">
94
94
  <div class="modal-header">
@@ -151,7 +151,7 @@
151
151
 
152
152
  <% if targets.size > 0 %>
153
153
  <table class="table">
154
- <tr><th>Target</th><th>Auto field</th><th>Fields</th><th></th></tr>
154
+ <tr><th>Target</th><th>Auto field</th><th>Fields</th><th></th><th>modified</th></tr>
155
155
  <% targets.each do |target| %>
156
156
  <tr>
157
157
  <td><%= target[:name] %></td>
@@ -164,6 +164,7 @@
164
164
  <% end %>
165
165
  </td>
166
166
  <td style="font-size: small; color: #c0c0c0;">TODO: change auto_fields, reserve fields, remove targets</td>
167
+ <td style="text-align: right;"><%= target[:modified] %></td>
167
168
  </tr>
168
169
  <% end %>
169
170
  </table>
metadata CHANGED
@@ -1,15 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: norikra
3
3
  version: !ruby/object:Gem::Version
4
- prerelease:
5
- version: 0.1.3
4
+ version: 0.1.4
6
5
  platform: java
7
6
  authors:
8
7
  - TAGOMORI Satoshi
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2013-12-31 00:00:00.000000000 Z
11
+ date: 2014-03-07 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: mizuno
@@ -18,13 +17,11 @@ dependencies:
18
17
  - - ~>
19
18
  - !ruby/object:Gem::Version
20
19
  version: '0.6'
21
- none: false
22
20
  requirement: !ruby/object:Gem::Requirement
23
21
  requirements:
24
22
  - - ~>
25
23
  - !ruby/object:Gem::Version
26
24
  version: '0.6'
27
- none: false
28
25
  prerelease: false
29
26
  type: :runtime
30
27
  - !ruby/object:Gem::Dependency
@@ -34,13 +31,11 @@ dependencies:
34
31
  - - '>='
35
32
  - !ruby/object:Gem::Version
36
33
  version: '0'
37
- none: false
38
34
  requirement: !ruby/object:Gem::Requirement
39
35
  requirements:
40
36
  - - '>='
41
37
  - !ruby/object:Gem::Version
42
38
  version: '0'
43
- none: false
44
39
  prerelease: false
45
40
  type: :runtime
46
41
  - !ruby/object:Gem::Dependency
@@ -50,13 +45,11 @@ dependencies:
50
45
  - - '>='
51
46
  - !ruby/object:Gem::Version
52
47
  version: '0'
53
- none: false
54
48
  requirement: !ruby/object:Gem::Requirement
55
49
  requirements:
56
50
  - - '>='
57
51
  - !ruby/object:Gem::Version
58
52
  version: '0'
59
- none: false
60
53
  prerelease: false
61
54
  type: :runtime
62
55
  - !ruby/object:Gem::Dependency
@@ -65,30 +58,26 @@ dependencies:
65
58
  requirements:
66
59
  - - '>='
67
60
  - !ruby/object:Gem::Version
68
- version: 0.0.5
69
- none: false
61
+ version: 0.0.6
70
62
  requirement: !ruby/object:Gem::Requirement
71
63
  requirements:
72
64
  - - '>='
73
65
  - !ruby/object:Gem::Version
74
- version: 0.0.5
75
- none: false
66
+ version: 0.0.6
76
67
  prerelease: false
77
68
  type: :runtime
78
69
  - !ruby/object:Gem::Dependency
79
70
  name: norikra-client-jruby
80
71
  version_requirements: !ruby/object:Gem::Requirement
81
72
  requirements:
82
- - - ~>
73
+ - - '>='
83
74
  - !ruby/object:Gem::Version
84
- version: 0.1.0
85
- none: false
75
+ version: 0.1.4
86
76
  requirement: !ruby/object:Gem::Requirement
87
77
  requirements:
88
- - - ~>
78
+ - - '>='
89
79
  - !ruby/object:Gem::Version
90
- version: 0.1.0
91
- none: false
80
+ version: 0.1.4
92
81
  prerelease: false
93
82
  type: :runtime
94
83
  - !ruby/object:Gem::Dependency
@@ -98,13 +87,11 @@ dependencies:
98
87
  - - '>='
99
88
  - !ruby/object:Gem::Version
100
89
  version: '0'
101
- none: false
102
90
  requirement: !ruby/object:Gem::Requirement
103
91
  requirements:
104
92
  - - '>='
105
93
  - !ruby/object:Gem::Version
106
94
  version: '0'
107
- none: false
108
95
  prerelease: false
109
96
  type: :runtime
110
97
  - !ruby/object:Gem::Dependency
@@ -114,13 +101,11 @@ dependencies:
114
101
  - - '>='
115
102
  - !ruby/object:Gem::Version
116
103
  version: '0'
117
- none: false
118
104
  requirement: !ruby/object:Gem::Requirement
119
105
  requirements:
120
106
  - - '>='
121
107
  - !ruby/object:Gem::Version
122
108
  version: '0'
123
- none: false
124
109
  prerelease: false
125
110
  type: :runtime
126
111
  - !ruby/object:Gem::Dependency
@@ -130,13 +115,11 @@ dependencies:
130
115
  - - '>='
131
116
  - !ruby/object:Gem::Version
132
117
  version: '0'
133
- none: false
134
118
  requirement: !ruby/object:Gem::Requirement
135
119
  requirements:
136
120
  - - '>='
137
121
  - !ruby/object:Gem::Version
138
122
  version: '0'
139
- none: false
140
123
  prerelease: false
141
124
  type: :runtime
142
125
  - !ruby/object:Gem::Dependency
@@ -146,13 +129,11 @@ dependencies:
146
129
  - - ~>
147
130
  - !ruby/object:Gem::Version
148
131
  version: '1.3'
149
- none: false
150
132
  requirement: !ruby/object:Gem::Requirement
151
133
  requirements:
152
134
  - - ~>
153
135
  - !ruby/object:Gem::Version
154
136
  version: '1.3'
155
- none: false
156
137
  prerelease: false
157
138
  type: :development
158
139
  - !ruby/object:Gem::Dependency
@@ -162,13 +143,11 @@ dependencies:
162
143
  - - '>='
163
144
  - !ruby/object:Gem::Version
164
145
  version: '0'
165
- none: false
166
146
  requirement: !ruby/object:Gem::Requirement
167
147
  requirements:
168
148
  - - '>='
169
149
  - !ruby/object:Gem::Version
170
150
  version: '0'
171
- none: false
172
151
  prerelease: false
173
152
  type: :development
174
153
  - !ruby/object:Gem::Dependency
@@ -178,13 +157,11 @@ dependencies:
178
157
  - - ~>
179
158
  - !ruby/object:Gem::Version
180
159
  version: '2.0'
181
- none: false
182
160
  requirement: !ruby/object:Gem::Requirement
183
161
  requirements:
184
162
  - - ~>
185
163
  - !ruby/object:Gem::Version
186
164
  version: '2.0'
187
- none: false
188
165
  prerelease: false
189
166
  type: :development
190
167
  - !ruby/object:Gem::Dependency
@@ -194,13 +171,11 @@ dependencies:
194
171
  - - '>='
195
172
  - !ruby/object:Gem::Version
196
173
  version: '0'
197
- none: false
198
174
  requirement: !ruby/object:Gem::Requirement
199
175
  requirements:
200
176
  - - '>='
201
177
  - !ruby/object:Gem::Version
202
178
  version: '0'
203
- none: false
204
179
  prerelease: false
205
180
  type: :development
206
181
  - !ruby/object:Gem::Dependency
@@ -210,13 +185,11 @@ dependencies:
210
185
  - - '>='
211
186
  - !ruby/object:Gem::Version
212
187
  version: '0'
213
- none: false
214
188
  requirement: !ruby/object:Gem::Requirement
215
189
  requirements:
216
190
  - - '>='
217
191
  - !ruby/object:Gem::Version
218
192
  version: '0'
219
- none: false
220
193
  prerelease: false
221
194
  type: :development
222
195
  description: 'CEP: Complex Event Processor with Esper EPL qeury language, messagepack
@@ -361,6 +334,7 @@ files:
361
334
  homepage: http://norikra.github.io/
362
335
  licenses:
363
336
  - GPLv2
337
+ metadata: {}
364
338
  post_install_message:
365
339
  rdoc_options: []
366
340
  require_paths:
@@ -370,25 +344,17 @@ required_ruby_version: !ruby/object:Gem::Requirement
370
344
  requirements:
371
345
  - - '>='
372
346
  - !ruby/object:Gem::Version
373
- segments:
374
- - 0
375
- hash: 2
376
347
  version: '0'
377
- none: false
378
348
  required_rubygems_version: !ruby/object:Gem::Requirement
379
349
  requirements:
380
350
  - - '>='
381
351
  - !ruby/object:Gem::Version
382
- segments:
383
- - 0
384
- hash: 2
385
352
  version: '0'
386
- none: false
387
353
  requirements: []
388
354
  rubyforge_project:
389
- rubygems_version: 1.8.24
355
+ rubygems_version: 2.1.9
390
356
  signing_key:
391
- specification_version: 3
357
+ specification_version: 4
392
358
  summary: CEP engine/server with Esper and JRuby
393
359
  test_files:
394
360
  - spec/field_spec.rb