norikra 1.0.1-java → 1.0.2-java
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/Changes.md +64 -0
- data/README.md +11 -49
- data/lib/norikra/engine.rb +16 -18
- data/lib/norikra/field.rb +1 -1
- data/lib/norikra/output_pool.rb +12 -0
- data/lib/norikra/version.rb +1 -1
- data/spec/field_spec.rb +7 -0
- data/spec/output_pool_spec.rb +19 -0
- metadata +3 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 484ecce14e3035444d000c902c7172bc66aa0f21
|
|
4
|
+
data.tar.gz: f964401ccd096def82fc7d2b0e980fcb634d05c9
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 968258b7e2456018e8c557d22802514a198dad763529a40f73edf94c39614ebac3879d9469435899bd353a44b2704615ef47b30516d1609e36136a37f148787e
|
|
7
|
+
data.tar.gz: 427efc15c89693c0750147176be8105e7d9bec03a7537fada0e8b612f1e1540274b9ea4d011585a2846e4ebcdfbe61addada81d102070ccf7b524f5f648736ad
|
data/Changes.md
ADDED
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
# Changes
|
|
2
|
+
|
|
3
|
+
Changes of norikra.
|
|
4
|
+
|
|
5
|
+
## v1
|
|
6
|
+
* v1.0.2:
|
|
7
|
+
* Fix bug:
|
|
8
|
+
* to handle encoding of input strings
|
|
9
|
+
* to set encoding of nested output values
|
|
10
|
+
* to handle wrong query groups in error which previously registered
|
|
11
|
+
* v1.0.1:
|
|
12
|
+
* String encoding in norikra is fixed as UTF-8
|
|
13
|
+
* v1.0.0:
|
|
14
|
+
* Update esper version (4.9.0 -> 5.0.0)
|
|
15
|
+
* Support Group By ROLLUP, Grouping Sets and CUBE
|
|
16
|
+
* Support Group By clause in subqueries
|
|
17
|
+
* Support subqueries that select multiple columns to provide input to enumeration methods
|
|
18
|
+
* Support Having clause to have subquery
|
|
19
|
+
* Add loopback query group to connect query output into targets directly
|
|
20
|
+
* RPC:
|
|
21
|
+
* Add JSON RPC API (/api on port 26578)
|
|
22
|
+
* Add API to fetch norikra server logs
|
|
23
|
+
* Add `--stats-secondary` option to store versioned stats files
|
|
24
|
+
* Fix bug:
|
|
25
|
+
* to return `[]` for NULL query output (fixed to `nil`)
|
|
26
|
+
* to handle container value for simple value field (exception -> NULL)
|
|
27
|
+
|
|
28
|
+
## v0.1
|
|
29
|
+
|
|
30
|
+
* v0.1.7:
|
|
31
|
+
* Fix `Pattern` support bug
|
|
32
|
+
* v0.1.6:
|
|
33
|
+
* Fix bug: Wrong escape for java instance method calls
|
|
34
|
+
* v0.1.5:
|
|
35
|
+
* Add RPC port monitoring handler (GET /)
|
|
36
|
+
* Add `Pattern` support
|
|
37
|
+
* Changes for GC/JVM
|
|
38
|
+
* Server starts with default(recommended) JVM options for GC configurations
|
|
39
|
+
* Add option not to use default JVM options
|
|
40
|
+
* Add option to configure JVM to print GC logs
|
|
41
|
+
* Stats file changes
|
|
42
|
+
* Changed to use SIGUSR2 (SIGUSR1 is used by JVM on linux platform)
|
|
43
|
+
* Changed no to contain server process configurations (ports, threads, logs ...)
|
|
44
|
+
* WebUI improvements
|
|
45
|
+
* Add button to close target on WebUI
|
|
46
|
+
* Add link to download stats file
|
|
47
|
+
* Fix bugs
|
|
48
|
+
* Fieldname handlings about names with non-alphabetic chars
|
|
49
|
+
* Query parser bug for some built-in functions (ex: `rate(10)`)
|
|
50
|
+
* Write stats file in more safe way
|
|
51
|
+
* WebUI: Incorrect memory bar
|
|
52
|
+
* v0.1.4:
|
|
53
|
+
* Stat dump option on runtime per specified intervals (`--dump-stat-interval`)
|
|
54
|
+
* Stat dump on demand by SIGUSR1
|
|
55
|
+
* `norikra-client event see` command (and API call) to get query results, but not remove it
|
|
56
|
+
* Last modified time for each target on WebUI
|
|
57
|
+
* v0.1.3:
|
|
58
|
+
* Fix critical bug about query de-registration
|
|
59
|
+
* v0.1.2:
|
|
60
|
+
* Fix CLI start command to detect jruby path collectly (behind rbenv/rvm and others)
|
|
61
|
+
* v0.1.1:
|
|
62
|
+
* Fix types more explicitly for users ('int/long' -> 'integer', 'float/double' -> 'float')
|
|
63
|
+
* v0.1.0:
|
|
64
|
+
* First release for production
|
data/README.md
CHANGED
|
@@ -70,55 +70,17 @@ See: http://norikra.github.io/
|
|
|
70
70
|
|
|
71
71
|
## Changes
|
|
72
72
|
|
|
73
|
-
* v1.0
|
|
74
|
-
*
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
*
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
* Fix bug:
|
|
85
|
-
* to return `[]` for NULL query output (fixed to `nil`)
|
|
86
|
-
* to handle container value for simple value field (exception -> NULL)
|
|
87
|
-
* v0.1.7:
|
|
88
|
-
* Fix `Pattern` support bug
|
|
89
|
-
* v0.1.6:
|
|
90
|
-
* Fix bug: Wrong escape for java instance method calls
|
|
91
|
-
* v0.1.5:
|
|
92
|
-
* Add RPC port monitoring handler (GET /)
|
|
93
|
-
* Add `Pattern` support
|
|
94
|
-
* Changes for GC/JVM
|
|
95
|
-
* Server starts with default(recommended) JVM options for GC configurations
|
|
96
|
-
* Add option not to use default JVM options
|
|
97
|
-
* Add option to configure JVM to print GC logs
|
|
98
|
-
* Stats file changes
|
|
99
|
-
* Changed to use SIGUSR2 (SIGUSR1 is used by JVM on linux platform)
|
|
100
|
-
* Changed no to contain server process configurations (ports, threads, logs ...)
|
|
101
|
-
* WebUI improvements
|
|
102
|
-
* Add button to close target on WebUI
|
|
103
|
-
* Add link to download stats file
|
|
104
|
-
* Fix bugs
|
|
105
|
-
* Fieldname handlings about names with non-alphabetic chars
|
|
106
|
-
* Query parser bug for some built-in functions (ex: `rate(10)`)
|
|
107
|
-
* Write stats file in more safe way
|
|
108
|
-
* WebUI: Incorrect memory bar
|
|
109
|
-
* v0.1.4:
|
|
110
|
-
* Stat dump option on runtime per specified intervals (`--dump-stat-interval`)
|
|
111
|
-
* Stat dump on demand by SIGUSR1
|
|
112
|
-
* `norikra-client event see` command (and API call) to get query results, but not remove it
|
|
113
|
-
* Last modified time for each target on WebUI
|
|
114
|
-
* v0.1.3:
|
|
115
|
-
* Fix critical bug about query de-registration
|
|
116
|
-
* v0.1.2:
|
|
117
|
-
* Fix CLI start command to detect jruby path collectly (behind rbenv/rvm and others)
|
|
118
|
-
* v0.1.1:
|
|
119
|
-
* Fix types more explicitly for users ('int/long' -> 'integer', 'float/double' -> 'float')
|
|
120
|
-
* v0.1.0:
|
|
121
|
-
* First release for production
|
|
73
|
+
* v1.0
|
|
74
|
+
* Esper-5.0 bundle
|
|
75
|
+
* Pattern support
|
|
76
|
+
* Nested object support
|
|
77
|
+
* Built-in default JVM options
|
|
78
|
+
* JSON APIs
|
|
79
|
+
* Many more features
|
|
80
|
+
* v0.1
|
|
81
|
+
* First release for production usage
|
|
82
|
+
|
|
83
|
+
See Changes.md for details.
|
|
122
84
|
|
|
123
85
|
## Copyright
|
|
124
86
|
|
data/lib/norikra/engine.rb
CHANGED
|
@@ -249,25 +249,22 @@ module Norikra
|
|
|
249
249
|
@events_statistics = events_statistics
|
|
250
250
|
end
|
|
251
251
|
|
|
252
|
-
def type_convert(
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
converted[unescaped_key] = event[key]
|
|
268
|
-
end
|
|
252
|
+
def type_convert(value)
|
|
253
|
+
if value.respond_to?(:getUnderlying)
|
|
254
|
+
value = value.getUnderlying
|
|
255
|
+
end
|
|
256
|
+
|
|
257
|
+
trace "converting", :value => value
|
|
258
|
+
|
|
259
|
+
if value.respond_to?(:to_a)
|
|
260
|
+
value.to_a.map{|v| type_convert(v) }
|
|
261
|
+
elsif value.respond_to?(:to_hash)
|
|
262
|
+
Hash[ value.to_hash.map{|k,v| [ Norikra::Field.unescape_name(k), type_convert(v)] } ]
|
|
263
|
+
elsif value.respond_to?(:force_encoding)
|
|
264
|
+
value.force_encoding('UTF-8')
|
|
265
|
+
else
|
|
266
|
+
value
|
|
269
267
|
end
|
|
270
|
-
converted
|
|
271
268
|
end
|
|
272
269
|
|
|
273
270
|
def update(new_events, old_events)
|
|
@@ -508,6 +505,7 @@ module Norikra
|
|
|
508
505
|
epl = administrator.getStatement(query.statement_name)
|
|
509
506
|
return unless epl
|
|
510
507
|
|
|
508
|
+
@output_pool.remove(query.name, query.group)
|
|
511
509
|
epl.stop unless epl.isStopped
|
|
512
510
|
epl.destroy unless epl.isDestroyed
|
|
513
511
|
end
|
data/lib/norikra/field.rb
CHANGED
|
@@ -178,7 +178,7 @@ module Norikra
|
|
|
178
178
|
return nil if value.nil? || value.is_a?(Hash) || value.is_a?(Array)
|
|
179
179
|
|
|
180
180
|
case @type
|
|
181
|
-
when 'string' then value.to_s
|
|
181
|
+
when 'string' then value.to_s.force_encoding('UTF-8')
|
|
182
182
|
when 'boolean'
|
|
183
183
|
if value.is_a?(TrueClass) || value.is_a?(FalseClass)
|
|
184
184
|
value
|
data/lib/norikra/output_pool.rb
CHANGED
|
@@ -14,6 +14,18 @@ module Norikra
|
|
|
14
14
|
@pool.keys
|
|
15
15
|
end
|
|
16
16
|
|
|
17
|
+
def remove(query_name, query_group)
|
|
18
|
+
@mutex.synchronize do
|
|
19
|
+
group = @groups[query_group]
|
|
20
|
+
if group
|
|
21
|
+
group.delete(query_name)
|
|
22
|
+
end
|
|
23
|
+
@groups.delete(query_name)
|
|
24
|
+
@pool.delete(query_name)
|
|
25
|
+
end
|
|
26
|
+
nil
|
|
27
|
+
end
|
|
28
|
+
|
|
17
29
|
def push(query_name, query_group, events) # events must be [time(int), event_record]
|
|
18
30
|
# called with blank events for window leavings (and/or other situations)
|
|
19
31
|
return if events.size < 1
|
data/lib/norikra/version.rb
CHANGED
data/spec/field_spec.rb
CHANGED
|
@@ -150,6 +150,13 @@ describe Norikra::Field do
|
|
|
150
150
|
expect(f.format({})).to be_nil
|
|
151
151
|
expect(f.format([])).to be_nil
|
|
152
152
|
end
|
|
153
|
+
|
|
154
|
+
it 'changes encoding of string values as UTF-8 forcely' do
|
|
155
|
+
f = Norikra::Field.new('x', 'string')
|
|
156
|
+
val = '乗鞍'
|
|
157
|
+
val.force_encoding('ASCII-8BIT')
|
|
158
|
+
expect(f.format(val).encoding.to_s).to eql("UTF-8")
|
|
159
|
+
end
|
|
153
160
|
end
|
|
154
161
|
end
|
|
155
162
|
|
data/spec/output_pool_spec.rb
CHANGED
|
@@ -45,6 +45,25 @@ describe Norikra::OutputPool do
|
|
|
45
45
|
end
|
|
46
46
|
|
|
47
47
|
context 'with events in pool' do
|
|
48
|
+
describe '#remove' do
|
|
49
|
+
it 'remove query from pool, and from group-query mapping' do
|
|
50
|
+
pool = Norikra::OutputPool.new
|
|
51
|
+
t = Time.now.to_i
|
|
52
|
+
pool.push('TestTable query1', 'group1', [[t,{'count'=>1}],[t,{'count'=>2}],[t,{'count'=>3}]])
|
|
53
|
+
pool.push('TestTable query2', 'group2', [[t,{'count'=>4}]])
|
|
54
|
+
|
|
55
|
+
pool.pop('TestTable query1')
|
|
56
|
+
pool.remove('TestTable query1', 'group1')
|
|
57
|
+
|
|
58
|
+
pool.push('TestTable query1', 'group3', [[t,{'count'=>1}],[t,{'count'=>2}],[t,{'count'=>3}]])
|
|
59
|
+
|
|
60
|
+
r1 = pool.sweep('group1') #=> {}
|
|
61
|
+
r3 = pool.sweep('group3')
|
|
62
|
+
expect(r1['TestTable query1']).to be_nil
|
|
63
|
+
expect(r3['TestTable query1'].size).to eql(3)
|
|
64
|
+
end
|
|
65
|
+
end
|
|
66
|
+
|
|
48
67
|
describe '#pop' do
|
|
49
68
|
it 'returns all events of specified query in pool' do
|
|
50
69
|
pool = Norikra::OutputPool.new
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: norikra
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.0.
|
|
4
|
+
version: 1.0.2
|
|
5
5
|
platform: java
|
|
6
6
|
authors:
|
|
7
7
|
- TAGOMORI Satoshi
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2014-05-
|
|
11
|
+
date: 2014-05-29 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: mizuno
|
|
@@ -204,6 +204,7 @@ files:
|
|
|
204
204
|
- .gitignore
|
|
205
205
|
- .ruby-version
|
|
206
206
|
- .travis.yml
|
|
207
|
+
- Changes.md
|
|
207
208
|
- Gemfile
|
|
208
209
|
- LICENSE
|
|
209
210
|
- README.md
|