logstash-core 2.3.2.snapshot1-java → 2.3.3-java

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of logstash-core might be problematic. Click here for more details.

checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 08f40d63a5050c35f725297e967e10e8792a2684
4
- data.tar.gz: df1ed68cc47ee6b637715cd815aebe53a6b58005
3
+ metadata.gz: e329ae1370cbd5fd3034dbecef0cd76d619913d0
4
+ data.tar.gz: 54a614916667e6ee1fb5136dc729ab91db8d4620
5
5
  SHA512:
6
- metadata.gz: 00fae3d24a6ec06fe6ad2cc55b22f36b1cb8e53dbe44d5d82857b687702f525e2c461d162bd0c83780a7a9e85a8b68349b20801ce0e95da49c00f63eb821c300
7
- data.tar.gz: d944d3255b3e3f132f086ff21f1598c70aa536cfe923692891a49f08d4a384e92c0cc446932557d47d12f25742fc17a33374932a9ddde2e665bb41d575ab2bb2
6
+ metadata.gz: ae4bb1cec6d0fe5e6cd3b2fd3c2f8ec65a10a0bc897a41d4c2ba55ed65ff68dcf777a5f450d90809135b714f85cd0dbbbac6ee66487446659e738553a5d6da5e
7
+ data.tar.gz: 1fcbd99f63685ab23db03b2da128273f5c007bf98a59a81d799e9a4421065ac8d2932a147f2a222e3ad10dd2e4d79fe08416210f3ef81808d351a4022dad2032
@@ -5,4 +5,4 @@
5
5
  # Note to authors: this should not include dashes because 'gem' barfs if
6
6
  # you include a dash in the version string.
7
7
 
8
- LOGSTASH_CORE_VERSION = "2.3.2.snapshot1"
8
+ LOGSTASH_CORE_VERSION = "2.3.3"
@@ -59,7 +59,7 @@ class LogStash::Agent < Clamp::Command
59
59
  option "--debug", :flag, I18n.t("logstash.agent.flag.debug")
60
60
 
61
61
  option ["--debug-config"], :flag,
62
- I18n.t("logstash.runner.flag.debug_config"),
62
+ I18n.t("logstash.agent.flag.debug_config"),
63
63
  :attribute_name => :debug_config, :default => false
64
64
 
65
65
  option ["-V", "--version"], :flag,
@@ -376,22 +376,6 @@ class LogStash::Agent < Clamp::Command
376
376
  end
377
377
  end
378
378
 
379
- def create_pipeline(settings)
380
- begin
381
- config = fetch_config(settings)
382
- rescue => e
383
- @logger.error("failed to fetch pipeline configuration", :message => e.message)
384
- return
385
- end
386
-
387
- begin
388
- LogStash::Pipeline.new(config, settings)
389
- rescue => e
390
- @logger.error("fetched an invalid config", :config => config, :reason => e.message)
391
- return
392
- end
393
- end
394
-
395
379
  def start_pipelines
396
380
  @pipelines.each { |id, _| start_pipeline(id) }
397
381
  end
@@ -429,6 +413,25 @@ class LogStash::Agent < Clamp::Command
429
413
  start_pipeline(pipeline_id)
430
414
  end
431
415
 
416
+ def create_pipeline(settings, config=nil)
417
+
418
+ if config.nil?
419
+ begin
420
+ config = fetch_config(settings)
421
+ rescue => e
422
+ @logger.error("failed to fetch pipeline configuration", :message => e.message)
423
+ return
424
+ end
425
+ end
426
+
427
+ begin
428
+ LogStash::Pipeline.new(config, settings)
429
+ rescue => e
430
+ @logger.error("fetched an invalid config", :config => config, :reason => e.message)
431
+ return
432
+ end
433
+ end
434
+
432
435
  def clean_state?
433
436
  @pipelines.empty?
434
437
  end
@@ -437,16 +440,21 @@ class LogStash::Agent < Clamp::Command
437
440
  # wrapped in @upgrade_mutex in the parent call `reload_state!`
438
441
  def reload_pipeline!(id)
439
442
  old_pipeline = @pipelines[id]
440
- new_pipeline = create_pipeline(old_pipeline.original_settings)
443
+ new_config = fetch_config(old_pipeline.original_settings)
444
+ if old_pipeline.config_str == new_config
445
+ @logger.debug("no configuration change for pipeline",
446
+ :pipeline => id, :config => new_config)
447
+ return
448
+ end
449
+
450
+ new_pipeline = create_pipeline(old_pipeline.original_settings, new_config)
441
451
  return if new_pipeline.nil?
442
452
 
443
- if old_pipeline.config_str == new_pipeline.config_str
444
- @logger.debug("no configuration change for pipeline",
445
- :pipeline => id, :config => old_pipeline.config_str)
446
- elsif new_pipeline.non_reloadable_plugins.any?
453
+ if new_pipeline.non_reloadable_plugins.any?
447
454
  @logger.error(I18n.t("logstash.agent.non_reloadable_config_reload"),
448
455
  :pipeline_id => id,
449
456
  :plugins => new_pipeline.non_reloadable_plugins.map(&:class))
457
+ return
450
458
  else
451
459
  @logger.log("fetched new config for pipeline. upgrading..",
452
460
  :pipeline => id, :config => new_pipeline.config_str)
@@ -76,6 +76,14 @@ module LogStash; module Config; module AST
76
76
  @defered_conditionals_index = val
77
77
  end
78
78
 
79
+ def self.plugin_instance_index
80
+ @plugin_instance_index
81
+ end
82
+
83
+ def self.plugin_instance_index=(val)
84
+ @plugin_instance_index = val
85
+ end
86
+
79
87
  class Node < Treetop::Runtime::SyntaxNode
80
88
  def text_value_for_comments
81
89
  text_value.gsub(/[\r\n]/, " ")
@@ -86,6 +94,7 @@ module LogStash; module Config; module AST
86
94
  def compile
87
95
  LogStash::Config::AST.defered_conditionals = []
88
96
  LogStash::Config::AST.defered_conditionals_index = 0
97
+ LogStash::Config::AST.plugin_instance_index = 0
89
98
  code = []
90
99
 
91
100
  code << <<-CODE
@@ -94,6 +103,7 @@ module LogStash; module Config; module AST
94
103
  @outputs = []
95
104
  @periodic_flushers = []
96
105
  @shutdown_flushers = []
106
+ @generated_objects = {}
97
107
  CODE
98
108
 
99
109
  sections = recursive_select(LogStash::Config::AST::PluginSection)
@@ -137,7 +147,9 @@ module LogStash; module Config; module AST
137
147
  class PluginSection < Node
138
148
  # Global plugin numbering for the janky instance variable naming we use
139
149
  # like @filter_<name>_1
140
- @@i = 0
150
+ def initialize(*args)
151
+ super(*args)
152
+ end
141
153
 
142
154
  # Generate ruby code to initialize all the plugins.
143
155
  def compile_initializer
@@ -147,31 +159,31 @@ module LogStash; module Config; module AST
147
159
 
148
160
 
149
161
  code << <<-CODE
150
- #{name} = #{plugin.compile_initializer}
151
- @#{plugin.plugin_type}s << #{name}
162
+ @generated_objects[:#{name}] = #{plugin.compile_initializer}
163
+ @#{plugin.plugin_type}s << @generated_objects[:#{name}]
152
164
  CODE
153
165
 
154
166
  # The flush method for this filter.
155
167
  if plugin.plugin_type == "filter"
156
168
 
157
169
  code << <<-CODE
158
- #{name}_flush = lambda do |options, &block|
159
- @logger.debug? && @logger.debug(\"Flushing\", :plugin => #{name})
170
+ @generated_objects[:#{name}_flush] = lambda do |options, &block|
171
+ @logger.debug? && @logger.debug(\"Flushing\", :plugin => @generated_objects[:#{name}])
160
172
 
161
- events = #{name}.flush(options)
173
+ events = @generated_objects[:#{name}].flush(options)
162
174
 
163
175
  return if events.nil? || events.empty?
164
176
 
165
- @logger.debug? && @logger.debug(\"Flushing\", :plugin => #{name}, :events => events)
177
+ @logger.debug? && @logger.debug(\"Flushing\", :plugin => @generated_objects[:#{name}], :events => events)
166
178
 
167
179
  #{plugin.compile_starting_here.gsub(/^/, " ")}
168
180
 
169
181
  events.each{|e| block.call(e)}
170
182
  end
171
183
 
172
- if #{name}.respond_to?(:flush)
173
- @periodic_flushers << #{name}_flush if #{name}.periodic_flush
174
- @shutdown_flushers << #{name}_flush
184
+ if @generated_objects[:#{name}].respond_to?(:flush)
185
+ @periodic_flushers << @generated_objects[:#{name}_flush] if @generated_objects[:#{name}].periodic_flush
186
+ @shutdown_flushers << @generated_objects[:#{name}_flush]
175
187
  end
176
188
  CODE
177
189
 
@@ -192,9 +204,10 @@ module LogStash; module Config; module AST
192
204
 
193
205
  plugins.each do |plugin|
194
206
  # Unique number for every plugin.
195
- @@i += 1
207
+ LogStash::Config::AST.plugin_instance_index += 1
196
208
  # store things as ivars, like @filter_grok_3
197
- var = "@#{plugin.plugin_type}_#{plugin.plugin_name}_#{@@i}"
209
+ var = :"#{plugin.plugin_type}_#{plugin.plugin_name}_#{LogStash::Config::AST.plugin_instance_index}"
210
+ # puts("var=#{var.inspect}")
198
211
  @variables[plugin] = var
199
212
  end
200
213
  return @variables
@@ -236,13 +249,13 @@ module LogStash; module Config; module AST
236
249
  def compile
237
250
  case plugin_type
238
251
  when "input"
239
- return "start_input(#{variable_name})"
252
+ return "start_input(@generated_objects[:#{variable_name}])"
240
253
  when "filter"
241
254
  return <<-CODE
242
- events = #{variable_name}.multi_filter(events)
255
+ events = @generated_objects[:#{variable_name}].multi_filter(events)
243
256
  CODE
244
257
  when "output"
245
- return "targeted_outputs << #{variable_name}\n"
258
+ return "targeted_outputs << @generated_objects[:#{variable_name}]\n"
246
259
  when "codec"
247
260
  settings = attributes.recursive_select(Attribute).collect(&:compile).reject(&:empty?)
248
261
  attributes_code = "LogStash::Util.hash_merge_many(#{settings.map { |c| "{ #{c} }" }.join(", ")})"
@@ -391,7 +404,7 @@ module LogStash; module Config; module AST
391
404
  if type == "filter"
392
405
  i = LogStash::Config::AST.defered_conditionals_index += 1
393
406
  source = <<-CODE
394
- define_singleton_method :cond_func_#{i} do |input_events|
407
+ @generated_objects[:cond_func_#{i}] = lambda do |input_events|
395
408
  result = []
396
409
  input_events.each do |event|
397
410
  events = [event]
@@ -405,7 +418,7 @@ module LogStash; module Config; module AST
405
418
  LogStash::Config::AST.defered_conditionals << source
406
419
 
407
420
  <<-CODE
408
- events = cond_func_#{i}(events)
421
+ events = @generated_objects[:cond_func_#{i}].call(events)
409
422
  CODE
410
423
  else # Output
411
424
  <<-CODE
@@ -55,7 +55,7 @@ module LogStash; module Config; class Loader
55
55
  path = ::File.join(path, "*") if ::File.directory?(path)
56
56
 
57
57
  if Dir.glob(path).length == 0
58
- fail(I18n.t("logstash.runner.configuration.file-not-found", :path => path))
58
+ fail(I18n.t("logstash.agent.configuration.file-not-found", :path => path))
59
59
  end
60
60
 
61
61
  config = ""
@@ -91,7 +91,7 @@ module LogStash; module Config; class Loader
91
91
  begin
92
92
  Net::HTTP.get(uri) + "\n"
93
93
  rescue Exception => e
94
- fail(I18n.t("logstash.runner.configuration.fetch-failed", :path => uri.to_s, :message => e.message))
94
+ fail(I18n.t("logstash.agent.configuration.fetch-failed", :path => uri.to_s, :message => e.message))
95
95
  end
96
96
  end
97
97
  end end end
@@ -11,4 +11,4 @@
11
11
  # eventually this file should be in the root logstash lib fir and dependencies in logstash-core should be
12
12
  # fixed.
13
13
 
14
- LOGSTASH_VERSION = "2.3.2.snapshot1"
14
+ LOGSTASH_VERSION = "2.3.3"
data/locales/en.yml CHANGED
@@ -78,8 +78,7 @@ en:
78
78
  non_reloadable_config_reload: >-
79
79
  Unable to reload configuration because it does not support dynamic reloading
80
80
  non_reloadable_config_register: |-
81
- Logstash was not able to load configuration since it does not support
82
- dynamic reloading and -r or --auto-reload flag was enabled
81
+ Logstash is not able to start since configuration auto reloading was enabled but the configuration contains plugins that don't support it. Quitting...
83
82
  configtest-flag-information: |-
84
83
  You may be interested in the '--configtest' flag which you can
85
84
  use to validate logstash's configuration before you choose
@@ -221,4 +220,8 @@ en:
221
220
  Force logstash to exit during shutdown even
222
221
  if there are still inflight events in memory.
223
222
  By default, logstash will refuse to quit until all
224
- received events have been pushed to the outputs.
223
+ received events have been pushed to the outputs.
224
+ debug_config: |+
225
+ Print the compiled config ruby code out as a debug log (you must also have --debug enabled).
226
+ WARNING: This will include any 'password' options passed to plugin configs as plaintext, and may result
227
+ in plaintext passwords appearing in your logs!
@@ -17,7 +17,7 @@ Gem::Specification.new do |gem|
17
17
  gem.require_paths = ["lib"]
18
18
  gem.version = LOGSTASH_CORE_VERSION
19
19
 
20
- gem.add_runtime_dependency "logstash-core-event", "2.3.2.snapshot1"
20
+ gem.add_runtime_dependency "logstash-core-event", "2.3.3"
21
21
 
22
22
  gem.add_runtime_dependency "cabin", "~> 0.8.0" #(Apache 2.0 license)
23
23
  gem.add_runtime_dependency "pry", "~> 0.10.1" #(Ruby license)
@@ -144,6 +144,49 @@ describe LogStashConfigParser do
144
144
  end
145
145
  end
146
146
 
147
+ context "when using two plugin sections of the same type" do
148
+ let(:pipeline_klass) do
149
+ Class.new do
150
+ def initialize(config)
151
+ grammar = LogStashConfigParser.new
152
+ @config = grammar.parse(config)
153
+ @code = @config.compile
154
+ eval(@code)
155
+ end
156
+ def plugin(*args);end
157
+ end
158
+ end
159
+ context "(filters)" do
160
+ let(:config_string) {
161
+ "input { generator { } }
162
+ filter { filter1 { } }
163
+ filter { filter1 { } }
164
+ output { output1 { } }"
165
+ }
166
+
167
+
168
+ it "should create a pipeline with both sections" do
169
+ generated_objects = pipeline_klass.new(config_string).instance_variable_get("@generated_objects")
170
+ filters = generated_objects.keys.map(&:to_s).select {|obj_name| obj_name.match(/^filter.+?_\d+$/) }
171
+ expect(filters.size).to eq(2)
172
+ end
173
+ end
174
+
175
+ context "(filters)" do
176
+ let(:config_string) {
177
+ "input { generator { } }
178
+ output { output1 { } }
179
+ output { output1 { } }"
180
+ }
181
+
182
+
183
+ it "should create a pipeline with both sections" do
184
+ generated_objects = pipeline_klass.new(config_string).instance_variable_get("@generated_objects")
185
+ outputs = generated_objects.keys.map(&:to_s).select {|obj_name| obj_name.match(/^output.+?_\d+$/) }
186
+ expect(outputs.size).to eq(2)
187
+ end
188
+ end
189
+ end
147
190
  context "when creating two instances of the same configuration" do
148
191
 
149
192
  let(:config_string) {
@@ -169,10 +212,12 @@ describe LogStashConfigParser do
169
212
  end
170
213
 
171
214
  describe "generated conditional functionals" do
172
- it "should be defined at instance level" do
215
+ it "should be created per instance" do
173
216
  instance_1 = pipeline_klass.new(config_string)
174
217
  instance_2 = pipeline_klass.new(config_string)
175
- expect(instance_1.method(:cond_func_1).owner).to_not be(instance_2.method(:cond_func_1).owner)
218
+ generated_method_1 = instance_1.instance_variable_get("@generated_objects")[:cond_func_1]
219
+ generated_method_2 = instance_2.instance_variable_get("@generated_objects")[:cond_func_1]
220
+ expect(generated_method_1).to_not be(generated_method_2)
176
221
  end
177
222
  end
178
223
  end
@@ -452,4 +452,20 @@ describe LogStash::Pipeline do
452
452
  expect(pipeline1.filter_func(LogStash::Event.new)).not_to include(nil)
453
453
  end
454
454
  end
455
+
456
+ context "Pipeline object" do
457
+ before do
458
+ allow(LogStash::Plugin).to receive(:lookup).with("input", "generator").and_return(LogStash::Inputs::Generator)
459
+ allow(LogStash::Plugin).to receive(:lookup).with("codec", "plain").and_return(DummyCodec)
460
+ allow(LogStash::Plugin).to receive(:lookup).with("filter", "dummyfilter").and_return(DummyFilter)
461
+ allow(LogStash::Plugin).to receive(:lookup).with("output", "dummyoutput").and_return(DummyOutput)
462
+ end
463
+
464
+ let(:pipeline1) { LogStash::Pipeline.new("input { generator {} } filter { dummyfilter {} } output { dummyoutput {}}") }
465
+ let(:pipeline2) { LogStash::Pipeline.new("input { generator {} } filter { dummyfilter {} } output { dummyoutput {}}") }
466
+
467
+ it "should not add ivars" do
468
+ expect(pipeline1.instance_variables).to eq(pipeline2.instance_variables)
469
+ end
470
+ end
455
471
  end
@@ -0,0 +1,25 @@
1
+ # encoding: utf-8
2
+ require "spec_helper"
3
+ require "i18n"
4
+
5
+ I18N_T_REGEX = Regexp.new('I18n.t.+?"(.+?)"')
6
+
7
+ describe I18n do
8
+ context "when using en.yml" do
9
+ glob_path = File.join(LogStash::Environment::LOGSTASH_HOME, "logstash-*", "lib", "**", "*.rb")
10
+
11
+ Dir.glob(glob_path).each do |file_name|
12
+
13
+ context "in file \"#{file_name}\"" do
14
+ File.foreach(file_name) do |line|
15
+ next unless (match = line.match(I18N_T_REGEX))
16
+ line = $INPUT_LINE_NUMBER
17
+ key = match[1]
18
+ it "in line #{line} the \"#{key}\" key should exist" do
19
+ expect(I18n.exists?(key)).to be_truthy
20
+ end
21
+ end
22
+ end
23
+ end
24
+ end
25
+ end
metadata CHANGED
@@ -1,21 +1,21 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: logstash-core
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.3.2.snapshot1
4
+ version: 2.3.3
5
5
  platform: java
6
6
  authors:
7
7
  - Elastic
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-04-19 00:00:00.000000000 Z
11
+ date: 2016-06-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  requirement: !ruby/object:Gem::Requirement
15
15
  requirements:
16
16
  - - '='
17
17
  - !ruby/object:Gem::Version
18
- version: 2.3.2.snapshot1
18
+ version: 2.3.3
19
19
  name: logstash-core-event
20
20
  prerelease: false
21
21
  type: :runtime
@@ -23,11 +23,11 @@ dependencies:
23
23
  requirements:
24
24
  - - '='
25
25
  - !ruby/object:Gem::Version
26
- version: 2.3.2.snapshot1
26
+ version: 2.3.3
27
27
  - !ruby/object:Gem::Dependency
28
28
  requirement: !ruby/object:Gem::Requirement
29
29
  requirements:
30
- - - ~>
30
+ - - "~>"
31
31
  - !ruby/object:Gem::Version
32
32
  version: 0.8.0
33
33
  name: cabin
@@ -35,13 +35,13 @@ dependencies:
35
35
  type: :runtime
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - ~>
38
+ - - "~>"
39
39
  - !ruby/object:Gem::Version
40
40
  version: 0.8.0
41
41
  - !ruby/object:Gem::Dependency
42
42
  requirement: !ruby/object:Gem::Requirement
43
43
  requirements:
44
- - - ~>
44
+ - - "~>"
45
45
  - !ruby/object:Gem::Version
46
46
  version: 0.10.1
47
47
  name: pry
@@ -49,13 +49,13 @@ dependencies:
49
49
  type: :runtime
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - ~>
52
+ - - "~>"
53
53
  - !ruby/object:Gem::Version
54
54
  version: 0.10.1
55
55
  - !ruby/object:Gem::Dependency
56
56
  requirement: !ruby/object:Gem::Requirement
57
57
  requirements:
58
- - - ~>
58
+ - - "~>"
59
59
  - !ruby/object:Gem::Version
60
60
  version: 0.0.19
61
61
  name: stud
@@ -63,13 +63,13 @@ dependencies:
63
63
  type: :runtime
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
- - - ~>
66
+ - - "~>"
67
67
  - !ruby/object:Gem::Version
68
68
  version: 0.0.19
69
69
  - !ruby/object:Gem::Dependency
70
70
  requirement: !ruby/object:Gem::Requirement
71
71
  requirements:
72
- - - ~>
72
+ - - "~>"
73
73
  - !ruby/object:Gem::Version
74
74
  version: 0.6.5
75
75
  name: clamp
@@ -77,7 +77,7 @@ dependencies:
77
77
  type: :runtime
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
- - - ~>
80
+ - - "~>"
81
81
  - !ruby/object:Gem::Version
82
82
  version: 0.6.5
83
83
  - !ruby/object:Gem::Dependency
@@ -97,7 +97,7 @@ dependencies:
97
97
  - !ruby/object:Gem::Dependency
98
98
  requirement: !ruby/object:Gem::Requirement
99
99
  requirements:
100
- - - ~>
100
+ - - "~>"
101
101
  - !ruby/object:Gem::Version
102
102
  version: 0.8.3
103
103
  name: gems
@@ -105,7 +105,7 @@ dependencies:
105
105
  type: :runtime
106
106
  version_requirements: !ruby/object:Gem::Requirement
107
107
  requirements:
108
- - - ~>
108
+ - - "~>"
109
109
  - !ruby/object:Gem::Version
110
110
  version: 0.8.3
111
111
  - !ruby/object:Gem::Dependency
@@ -139,7 +139,7 @@ dependencies:
139
139
  - !ruby/object:Gem::Dependency
140
140
  requirement: !ruby/object:Gem::Requirement
141
141
  requirements:
142
- - - <
142
+ - - "<"
143
143
  - !ruby/object:Gem::Version
144
144
  version: 1.5.0
145
145
  name: treetop
@@ -147,7 +147,7 @@ dependencies:
147
147
  type: :runtime
148
148
  version_requirements: !ruby/object:Gem::Requirement
149
149
  requirements:
150
- - - <
150
+ - - "<"
151
151
  - !ruby/object:Gem::Version
152
152
  version: 1.5.0
153
153
  - !ruby/object:Gem::Dependency
@@ -167,7 +167,7 @@ dependencies:
167
167
  - !ruby/object:Gem::Dependency
168
168
  requirement: !ruby/object:Gem::Requirement
169
169
  requirements:
170
- - - ~>
170
+ - - "~>"
171
171
  - !ruby/object:Gem::Version
172
172
  version: 0.5.4
173
173
  name: minitar
@@ -175,13 +175,13 @@ dependencies:
175
175
  type: :runtime
176
176
  version_requirements: !ruby/object:Gem::Requirement
177
177
  requirements:
178
- - - ~>
178
+ - - "~>"
179
179
  - !ruby/object:Gem::Version
180
180
  version: 0.5.4
181
181
  - !ruby/object:Gem::Dependency
182
182
  requirement: !ruby/object:Gem::Requirement
183
183
  requirements:
184
- - - ~>
184
+ - - "~>"
185
185
  - !ruby/object:Gem::Version
186
186
  version: 1.1.7
187
187
  name: rubyzip
@@ -189,13 +189,13 @@ dependencies:
189
189
  type: :runtime
190
190
  version_requirements: !ruby/object:Gem::Requirement
191
191
  requirements:
192
- - - ~>
192
+ - - "~>"
193
193
  - !ruby/object:Gem::Version
194
194
  version: 1.1.7
195
195
  - !ruby/object:Gem::Dependency
196
196
  requirement: !ruby/object:Gem::Requirement
197
197
  requirements:
198
- - - ~>
198
+ - - "~>"
199
199
  - !ruby/object:Gem::Version
200
200
  version: 0.3.5
201
201
  name: thread_safe
@@ -203,13 +203,13 @@ dependencies:
203
203
  type: :runtime
204
204
  version_requirements: !ruby/object:Gem::Requirement
205
205
  requirements:
206
- - - ~>
206
+ - - "~>"
207
207
  - !ruby/object:Gem::Version
208
208
  version: 0.3.5
209
209
  - !ruby/object:Gem::Dependency
210
210
  requirement: !ruby/object:Gem::Requirement
211
211
  requirements:
212
- - - ~>
212
+ - - "~>"
213
213
  - !ruby/object:Gem::Version
214
214
  version: 0.3.7
215
215
  name: jrjackson
@@ -217,7 +217,7 @@ dependencies:
217
217
  type: :runtime
218
218
  version_requirements: !ruby/object:Gem::Requirement
219
219
  requirements:
220
- - - ~>
220
+ - - "~>"
221
221
  - !ruby/object:Gem::Version
222
222
  version: 0.3.7
223
223
  description: The core components of logstash, the scalable log and event management tool
@@ -311,6 +311,7 @@ files:
311
311
  - spec/logstash/util/worker_threads_default_printer_spec.rb
312
312
  - spec/logstash/util/wrapped_synchronous_queue_spec.rb
313
313
  - spec/logstash/util_spec.rb
314
+ - spec/static/i18n_spec.rb
314
315
  homepage: http://www.elastic.co/guide/en/logstash/current/index.html
315
316
  licenses:
316
317
  - Apache License (2.0)
@@ -321,17 +322,17 @@ require_paths:
321
322
  - lib
322
323
  required_ruby_version: !ruby/object:Gem::Requirement
323
324
  requirements:
324
- - - '>='
325
+ - - ">="
325
326
  - !ruby/object:Gem::Version
326
327
  version: '0'
327
328
  required_rubygems_version: !ruby/object:Gem::Requirement
328
329
  requirements:
329
- - - '>'
330
+ - - ">="
330
331
  - !ruby/object:Gem::Version
331
- version: 1.3.1
332
+ version: '0'
332
333
  requirements: []
333
334
  rubyforge_project:
334
- rubygems_version: 2.4.5
335
+ rubygems_version: 2.4.8
335
336
  signing_key:
336
337
  specification_version: 4
337
338
  summary: logstash-core - The core components of logstash
@@ -365,3 +366,4 @@ test_files:
365
366
  - spec/logstash/util/worker_threads_default_printer_spec.rb
366
367
  - spec/logstash/util/wrapped_synchronous_queue_spec.rb
367
368
  - spec/logstash/util_spec.rb
369
+ - spec/static/i18n_spec.rb