logstash-core 5.0.0.alpha6.snapshot5-java → 5.0.0-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.

Potentially problematic release.


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

Files changed (48) hide show
  1. checksums.yaml +4 -4
  2. data/lib/jars.rb +1 -1
  3. data/lib/logstash-core/version.rb +1 -1
  4. data/lib/logstash/agent.rb +45 -11
  5. data/lib/logstash/api/app_helpers.rb +43 -7
  6. data/lib/logstash/api/commands/stats.rb +2 -1
  7. data/lib/logstash/api/errors.rb +28 -0
  8. data/lib/logstash/api/modules/base.rb +9 -7
  9. data/lib/logstash/api/modules/logging.rb +52 -0
  10. data/lib/logstash/api/modules/node.rb +13 -9
  11. data/lib/logstash/api/modules/root.rb +0 -2
  12. data/lib/logstash/api/modules/stats.rb +0 -2
  13. data/lib/logstash/api/rack_app.rb +5 -3
  14. data/lib/logstash/environment.rb +4 -5
  15. data/lib/logstash/instrument/collector.rb +4 -0
  16. data/lib/logstash/instrument/metric_store.rb +27 -2
  17. data/lib/logstash/logging/logger.rb +15 -4
  18. data/lib/logstash/patches/puma.rb +44 -0
  19. data/lib/logstash/pipeline.rb +8 -15
  20. data/lib/logstash/runner.rb +31 -17
  21. data/lib/logstash/settings.rb +34 -9
  22. data/lib/logstash/util/wrapped_synchronous_queue.rb +26 -9
  23. data/lib/logstash/version.rb +1 -1
  24. data/lib/logstash/webserver.rb +13 -2
  25. data/locales/en.yml +7 -2
  26. data/logstash-core.gemspec +1 -1
  27. data/spec/api/lib/api/logging_spec.rb +41 -0
  28. data/spec/api/lib/api/node_plugins_spec.rb +4 -3
  29. data/spec/api/lib/api/node_spec.rb +2 -0
  30. data/spec/api/lib/api/node_stats_spec.rb +2 -0
  31. data/spec/api/lib/api/plugins_spec.rb +3 -1
  32. data/spec/api/lib/api/root_spec.rb +3 -0
  33. data/spec/api/lib/errors_spec.rb +27 -0
  34. data/spec/api/lib/rack_app_spec.rb +4 -4
  35. data/spec/logstash/agent_spec.rb +112 -26
  36. data/spec/logstash/instrument/metric_store_spec.rb +37 -0
  37. data/spec/logstash/pipeline_spec.rb +54 -0
  38. data/spec/logstash/runner_spec.rb +2 -1
  39. data/spec/logstash/setting_spec.rb +23 -1
  40. data/spec/logstash/settings/string_spec.rb +1 -1
  41. data/spec/logstash/settings_spec.rb +27 -0
  42. data/spec/logstash/util/wrapped_synchronous_queue_spec.rb +49 -11
  43. data/spec/logstash/webserver_spec.rb +76 -18
  44. data/spec/support/helpers.rb +8 -0
  45. data/spec/support/mocks_classes.rb +22 -0
  46. data/spec/support/shared_examples.rb +10 -0
  47. data/vendor/jars/org/logstash/logstash-core/{5.0.0-alpha6/logstash-core-5.0.0-alpha6.jar → 5.0.0/logstash-core-5.0.0.jar} +0 -0
  48. metadata +16 -7
@@ -100,6 +100,60 @@ describe LogStash::Pipeline do
100
100
  pipeline_settings_obj.reset
101
101
  end
102
102
 
103
+
104
+ describe "event cancellation" do
105
+ # test harness for https://github.com/elastic/logstash/issues/6055
106
+
107
+ let(:output) { DummyOutputWithEventsArray.new }
108
+
109
+ before do
110
+ allow(LogStash::Plugin).to receive(:lookup).with("input", "generator").and_return(LogStash::Inputs::Generator)
111
+ allow(LogStash::Plugin).to receive(:lookup).with("output", "dummyoutputwitheventsarray").and_return(DummyOutputWithEventsArray)
112
+ allow(LogStash::Plugin).to receive(:lookup).with("filter", "drop").and_call_original
113
+ allow(LogStash::Plugin).to receive(:lookup).with("filter", "mutate").and_call_original
114
+ allow(LogStash::Plugin).to receive(:lookup).with("codec", "plain").and_call_original
115
+ allow(DummyOutputWithEventsArray).to receive(:new).with(any_args).and_return(output)
116
+ end
117
+
118
+ let(:config) do
119
+ <<-CONFIG
120
+ input {
121
+ generator {
122
+ lines => ["1", "2", "END"]
123
+ count => 1
124
+ }
125
+ }
126
+ filter {
127
+ if [message] == "1" {
128
+ drop {}
129
+ }
130
+ mutate { add_tag => ["notdropped"] }
131
+ }
132
+ output { dummyoutputwitheventsarray {} }
133
+ CONFIG
134
+ end
135
+
136
+ it "should not propage cancelled events from filter to output" do
137
+ abort_on_exception_state = Thread.abort_on_exception
138
+ Thread.abort_on_exception = true
139
+
140
+ pipeline = LogStash::Pipeline.new(config, pipeline_settings_obj)
141
+ Thread.new { pipeline.run }
142
+ sleep 0.1 while !pipeline.ready?
143
+ wait(3).for do
144
+ # give us a bit of time to flush the events
145
+ # puts("*****" + output.events.map{|e| e.message}.to_s)
146
+ output.events.map{|e| e.get("message")}.include?("END")
147
+ end.to be_truthy
148
+ expect(output.events.size).to eq(2)
149
+ expect(output.events[0].get("tags")).to eq(["notdropped"])
150
+ expect(output.events[1].get("tags")).to eq(["notdropped"])
151
+ pipeline.shutdown
152
+
153
+ Thread.abort_on_exception = abort_on_exception_state
154
+ end
155
+ end
156
+
103
157
  describe "defaulting the pipeline workers based on thread safety" do
104
158
  before(:each) do
105
159
  allow(LogStash::Plugin).to receive(:lookup).with("input", "dummyinput").and_return(DummyInput)
@@ -21,6 +21,7 @@ describe LogStash::Runner do
21
21
  allow(LogStash::Runner).to receive(:logger).and_return(logger)
22
22
  allow(logger).to receive(:debug?).and_return(true)
23
23
  allow(logger).to receive(:subscribe).with(any_args)
24
+ allow(logger).to receive(:debug) {}
24
25
  allow(logger).to receive(:log) {}
25
26
  allow(logger).to receive(:info) {}
26
27
  allow(logger).to receive(:fatal) {}
@@ -279,7 +280,7 @@ describe LogStash::Runner do
279
280
  it "should set log level to warn" do
280
281
  args = ["--version"]
281
282
  subject.run("bin/logstash", args)
282
- expect(logger.level).to eq(:warn)
283
+ expect(logger.level).to eq(:info)
283
284
  end
284
285
  end
285
286
  context "when setting to debug" do
@@ -63,6 +63,7 @@ describe LogStash::Setting do
63
63
  end
64
64
  end
65
65
  end
66
+
66
67
  describe "#set" do
67
68
  subject { described_class.new("number", Numeric, 1) }
68
69
  it "should change the value of a setting" do
@@ -77,12 +78,33 @@ describe LogStash::Setting do
77
78
  expect(subject.set?).to eq(true)
78
79
  end
79
80
  end
80
-
81
81
  context "when the argument's class does not match @klass" do
82
82
  it "should throw an exception" do
83
83
  expect { subject.set("not a number") }.to raise_error
84
84
  end
85
85
  end
86
+ context "when strict=false" do
87
+ let(:strict) { false }
88
+ subject { described_class.new("number", Numeric, 1, strict) }
89
+ before do
90
+ expect(subject).not_to receive(:validate)
91
+ end
92
+
93
+ it "should not call #validate" do
94
+ subject.set(123)
95
+ end
96
+ end
97
+ context "when strict=true" do
98
+ let(:strict) { true }
99
+ subject { described_class.new("number", Numeric, 1, strict) }
100
+ before do
101
+ expect(subject).to receive(:validate)
102
+ end
103
+
104
+ it "should call #validate" do
105
+ subject.set(123)
106
+ end
107
+ end
86
108
  end
87
109
 
88
110
  describe "#reset" do
@@ -4,7 +4,7 @@ require "logstash/settings"
4
4
 
5
5
  describe LogStash::Setting::String do
6
6
  let(:possible_values) { ["a", "b", "c"] }
7
- subject { described_class.new("mytext", nil, false, possible_values) }
7
+ subject { described_class.new("mytext", possible_values.first, true, possible_values) }
8
8
  describe "#set" do
9
9
  context "when a value is given outside of possible_values" do
10
10
  it "should raise an ArgumentError" do
@@ -59,4 +59,31 @@ describe LogStash::Settings do
59
59
  expect(subset.get("num.2")).to eq(1000)
60
60
  end
61
61
  end
62
+
63
+ describe "#validate_all" do
64
+ subject { described_class.new }
65
+ let(:numeric_setting_name) { "example" }
66
+ let(:numeric_setting) { LogStash::Setting.new(numeric_setting_name, Numeric, 1, false) }
67
+
68
+ before do
69
+ subject.register(numeric_setting)
70
+ subject.set_value(numeric_setting_name, value)
71
+ end
72
+
73
+ context "when any setting is invalid" do
74
+ let(:value) { "some string" }
75
+
76
+ it "should fail" do
77
+ expect { subject.validate_all }.to raise_error
78
+ end
79
+ end
80
+
81
+ context "when all settings are valid" do
82
+ let(:value) { 123 }
83
+
84
+ it "should succeed" do
85
+ expect { subject.validate_all }.not_to raise_error
86
+ end
87
+ end
88
+ end
62
89
  end
@@ -1,6 +1,7 @@
1
1
  # encoding: utf-8
2
2
  require "spec_helper"
3
3
  require "logstash/util/wrapped_synchronous_queue"
4
+ require "logstash/instrument/collector"
4
5
 
5
6
  describe LogStash::Util::WrappedSynchronousQueue do
6
7
  context "#offer" do
@@ -45,11 +46,47 @@ describe LogStash::Util::WrappedSynchronousQueue do
45
46
  end
46
47
 
47
48
  describe "WriteClient | ReadClient" do
48
- context "when writing to the queue" do
49
- let(:queue) { DummyQueue.new }
50
- let(:write_client) { LogStash::Util::WrappedSynchronousQueue::WriteClient.new(queue)}
51
- let(:read_client) { LogStash::Util::WrappedSynchronousQueue::ReadClient.new(queue)}
49
+ let(:queue) { DummyQueue.new }
50
+ let(:write_client) { LogStash::Util::WrappedSynchronousQueue::WriteClient.new(queue)}
51
+ let(:read_client) { LogStash::Util::WrappedSynchronousQueue::ReadClient.new(queue)}
52
+
53
+ context "when reading from the queue" do
54
+ let(:collector) { LogStash::Instrument::Collector.new }
55
+
56
+ before do
57
+ read_client.set_events_metric(LogStash::Instrument::Metric.new(collector).namespace(:events))
58
+ read_client.set_pipeline_metric(LogStash::Instrument::Metric.new(collector).namespace(:pipeline))
59
+ end
60
+
61
+ context "when the queue is empty" do
62
+ it "doesnt record the `duration_in_millis`" do
63
+ batch = read_client.take_batch
64
+ read_client.close_batch(batch)
65
+ store = collector.snapshot_metric.metric_store
66
+ expect(store.size).to eq(0)
67
+ end
68
+ end
52
69
 
70
+ context "when we have item in the queue" do
71
+ it "records the `duration_in_millis`" do
72
+ batch = write_client.get_new_batch
73
+ 5.times {|i| batch.push("value-#{i}")}
74
+ write_client.push_batch(batch)
75
+ read_batch = read_client.take_batch
76
+ sleep(0.1) # simulate some work?
77
+ read_client.close_batch(batch)
78
+ store = collector.snapshot_metric.metric_store
79
+
80
+ expect(store.size).to eq(4)
81
+ expect(store.get_shallow(:events, :in).value).to eq(5)
82
+ expect(store.get_shallow(:events, :duration_in_millis).value).to be > 0
83
+ expect(store.get_shallow(:pipeline, :in).value).to eq(5)
84
+ expect(store.get_shallow(:pipeline, :duration_in_millis).value).to be > 0
85
+ end
86
+ end
87
+ end
88
+
89
+ context "when writing to the queue" do
53
90
  before :each do
54
91
  read_client.set_events_metric(LogStash::Instrument::NullMetric.new)
55
92
  read_client.set_pipeline_metric(LogStash::Instrument::NullMetric.new)
@@ -57,22 +94,23 @@ describe LogStash::Util::WrappedSynchronousQueue do
57
94
 
58
95
  it "appends batches to the queue" do
59
96
  batch = write_client.get_new_batch
60
- 5.times {|i| batch.push("value-#{i}")}
97
+ 5.times {|i| batch.push(LogStash::Event.new({"message" => "value-#{i}"}))}
61
98
  write_client.push_batch(batch)
62
99
  read_batch = read_client.take_batch
63
100
  expect(read_batch.size).to eq(5)
64
101
  i = 0
65
102
  read_batch.each do |data|
66
- expect(data).to eq("value-#{i}")
67
- read_batch.cancel("value-#{i}") if i > 2
68
- read_batch.merge("generated-#{i}") if i > 2
103
+ expect(data.get("message")).to eq("value-#{i}")
104
+ # read_batch.cancel("value-#{i}") if i > 2 # TODO: disabled for https://github.com/elastic/logstash/issues/6055 - will have to properly refactor
105
+ data.cancel if i > 2
106
+ read_batch.merge(LogStash::Event.new({"message" => "generated-#{i}"})) if i > 2
69
107
  i += 1
70
108
  end
71
- expect(read_batch.cancelled_size).to eq(2)
109
+ # expect(read_batch.cancelled_size).to eq(2) # disabled for https://github.com/elastic/logstash/issues/6055
72
110
  i = 0
73
111
  read_batch.each do |data|
74
- expect(data).to eq("value-#{i}") if i < 3
75
- expect(data).to eq("generated-#{i}") if i > 2
112
+ expect(data.get("message")).to eq("value-#{i}") if i < 3
113
+ expect(data.get("message")).to eq("generated-#{i}") if i > 2
76
114
  i += 1
77
115
  end
78
116
  end
@@ -1,6 +1,7 @@
1
1
  # encoding: utf-8
2
2
  # require "logstash/json"
3
3
  require "logstash/webserver"
4
+ require_relative "../support/helpers"
4
5
  require "socket"
5
6
  require "spec_helper"
6
7
  require "open-uri"
@@ -9,11 +10,15 @@ def block_ports(range)
9
10
  servers = []
10
11
 
11
12
  range.each do |port|
12
- server = TCPServer.new("localhost", port)
13
- Thread.new do
14
- client = server.accept rescue nil
13
+ begin
14
+ server = TCPServer.new("localhost", port)
15
+ Thread.new do
16
+ client = server.accept rescue nil
17
+ end
18
+ servers << server
19
+ rescue => e
20
+ # The port can already be taken
15
21
  end
16
- servers << server
17
22
  end
18
23
 
19
24
  sleep(1)
@@ -36,29 +41,56 @@ describe LogStash::WebServer do
36
41
  Thread.abort_on_exception = @abort
37
42
  end
38
43
 
39
- let(:logger) { double("logger") }
44
+ let(:logger) { LogStash::Logging::Logger.new("testing") }
40
45
  let(:agent) { double("agent") }
41
46
  let(:webserver) { double("webserver") }
42
47
 
43
48
  before :each do
44
- [:info, :warn, :error, :fatal, :debug].each do |level|
45
- allow(logger).to receive(level)
46
- end
47
- [:info?, :warn?, :error?, :fatal?, :debug?].each do |level|
48
- allow(logger).to receive(level)
49
- end
50
-
51
49
  allow(webserver).to receive(:address).and_return("127.0.0.1")
52
50
  allow(agent).to receive(:webserver).and_return(webserver)
53
51
  end
54
52
 
55
- context "when the port is already in use and a range is provided" do
56
- subject { LogStash::WebServer.new(logger,
57
- agent,
58
- { :http_host => "localhost", :http_ports => port_range
59
- })}
53
+ subject { LogStash::WebServer.new(logger,
54
+ agent,
55
+ { :http_host => "localhost", :http_ports => port_range })}
56
+
57
+ let(:port_range) { 10000..10010 }
58
+
59
+ context "when an exception occur in the server thread" do
60
+ let(:spy_output) { spy("stderr").as_null_object }
61
+
62
+ it "should not log to STDERR" do
63
+ backup_stderr = STDERR
64
+ backup_stdout = STDOUT
65
+
66
+ # We are redefining constants, so lets silence the warning
67
+ silence_warnings do
68
+ STDOUT = STDERR = spy_output
69
+ end
70
+
71
+ expect(spy_output).not_to receive(:puts).with(any_args)
72
+ expect(spy_output).not_to receive(:write).with(any_args)
73
+
74
+ # This trigger an infinite loop in the reactor
75
+ expect(IO).to receive(:select).and_raise(IOError).at_least(:once)
76
+
77
+ t = Thread.new do
78
+ subject.run
79
+ end
80
+
81
+ sleep(1)
82
+
83
+ # We cannot use stop here, since the code is stuck in an infinite loop
84
+ t.kill rescue nil
60
85
 
61
- let(:port_range) { 10000..10010 }
86
+ silence_warnings do
87
+ STDERR = backup_stderr
88
+ STDOUT = backup_stdout
89
+ end
90
+ end
91
+ end
92
+
93
+ context "when the port is already in use and a range is provided" do
62
94
  after(:each) { free_ports(@servers) }
63
95
 
64
96
  context "when we have available ports" do
@@ -93,3 +125,29 @@ describe LogStash::WebServer do
93
125
  end
94
126
  end
95
127
  end
128
+
129
+ describe LogStash::IOWrappedLogger do
130
+ let(:logger) { spy("logger") }
131
+ let(:message) { "foobar" }
132
+
133
+ subject { described_class.new(logger) }
134
+
135
+ it "responds to puts" do
136
+ subject.puts(message)
137
+ expect(logger).to have_received(:debug).with(message)
138
+ end
139
+
140
+ it "responds to write" do
141
+ subject.write(message)
142
+ expect(logger).to have_received(:debug).with(message)
143
+ end
144
+
145
+ it "reponds to <<" do
146
+ subject << message
147
+ expect(logger).to have_received(:debug).with(message)
148
+ end
149
+
150
+ it "responds to sync=(v)" do
151
+ expect{ subject.sync = true }.not_to raise_error
152
+ end
153
+ end
@@ -0,0 +1,8 @@
1
+ # encoding: utf-8
2
+ def silence_warnings
3
+ warn_level = $VERBOSE
4
+ $VERBOSE = nil
5
+ yield
6
+ ensure
7
+ $VERBOSE = warn_level
8
+ end
@@ -25,3 +25,25 @@ class DummyOutput < LogStash::Outputs::Base
25
25
  @num_closes = 1
26
26
  end
27
27
  end
28
+
29
+ class DummyOutputWithEventsArray < LogStash::Outputs::Base
30
+ config_name "dummyoutput2"
31
+ milestone 2
32
+
33
+ attr_reader :events
34
+
35
+ def initialize(params={})
36
+ super
37
+ @events = []
38
+ end
39
+
40
+ def register
41
+ end
42
+
43
+ def receive(event)
44
+ @events << event
45
+ end
46
+
47
+ def close
48
+ end
49
+ end
@@ -95,4 +95,14 @@ shared_examples "metrics commons operations" do
95
95
  end
96
96
  end
97
97
 
98
+ shared_examples "not found" do
99
+ it "should return a 404 to unknown request" do
100
+ do_request { get "/i_want_to_believe-#{Time.now.to_i}" }
101
+ expect(last_response.content_type).to eq("application/json")
102
+ expect(last_response).not_to be_ok
103
+ expect(last_response.status).to eq(404)
104
+ expect(LogStash::Json.load(last_response.body)).to include("status" => 404)
105
+ expect(LogStash::Json.load(last_response.body)["path"]).not_to be_nil
106
+ end
107
+ end
98
108
 
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: 5.0.0.alpha6.snapshot5
4
+ version: 5.0.0
5
5
  platform: java
6
6
  authors:
7
7
  - Elastic
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-08-26 00:00:00.000000000 Z
11
+ date: 2016-10-26 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: 5.0.0.alpha6.snapshot5
18
+ version: 5.0.0
19
19
  name: logstash-core-event-java
20
20
  prerelease: false
21
21
  type: :runtime
@@ -23,7 +23,7 @@ dependencies:
23
23
  requirements:
24
24
  - - '='
25
25
  - !ruby/object:Gem::Version
26
- version: 5.0.0.alpha6.snapshot5
26
+ version: 5.0.0
27
27
  - !ruby/object:Gem::Dependency
28
28
  requirement: !ruby/object:Gem::Requirement
29
29
  requirements:
@@ -303,7 +303,9 @@ files:
303
303
  - lib/logstash/api/commands/stats.rb
304
304
  - lib/logstash/api/commands/system/basicinfo_command.rb
305
305
  - lib/logstash/api/commands/system/plugins_command.rb
306
+ - lib/logstash/api/errors.rb
306
307
  - lib/logstash/api/modules/base.rb
308
+ - lib/logstash/api/modules/logging.rb
307
309
  - lib/logstash/api/modules/node.rb
308
310
  - lib/logstash/api/modules/node_stats.rb
309
311
  - lib/logstash/api/modules/plugins.rb
@@ -361,6 +363,7 @@ files:
361
363
  - lib/logstash/patches/cabin.rb
362
364
  - lib/logstash/patches/clamp.rb
363
365
  - lib/logstash/patches/profile_require_calls.rb
366
+ - lib/logstash/patches/puma.rb
364
367
  - lib/logstash/patches/rubygems.rb
365
368
  - lib/logstash/patches/stronger_openssl_defaults.rb
366
369
  - lib/logstash/pipeline.rb
@@ -393,6 +396,7 @@ files:
393
396
  - lib/logstash/webserver.rb
394
397
  - locales/en.yml
395
398
  - logstash-core.gemspec
399
+ - spec/api/lib/api/logging_spec.rb
396
400
  - spec/api/lib/api/node_plugins_spec.rb
397
401
  - spec/api/lib/api/node_spec.rb
398
402
  - spec/api/lib/api/node_stats_spec.rb
@@ -400,6 +404,7 @@ files:
400
404
  - spec/api/lib/api/root_spec.rb
401
405
  - spec/api/lib/api/support/resource_dsl_methods.rb
402
406
  - spec/api/lib/commands/stats.rb
407
+ - spec/api/lib/errors_spec.rb
403
408
  - spec/api/lib/rack_app_spec.rb
404
409
  - spec/api/spec_helper.rb
405
410
  - spec/conditionals_spec.rb
@@ -450,6 +455,7 @@ files:
450
455
  - spec/logstash/util_spec.rb
451
456
  - spec/logstash/webserver_spec.rb
452
457
  - spec/static/i18n_spec.rb
458
+ - spec/support/helpers.rb
453
459
  - spec/support/matchers.rb
454
460
  - spec/support/mocks_classes.rb
455
461
  - spec/support/shared_examples.rb
@@ -458,7 +464,7 @@ files:
458
464
  - vendor/jars/org/apache/logging/log4j/log4j-1.2-api/2.6.2/log4j-1.2-api-2.6.2.jar
459
465
  - vendor/jars/org/apache/logging/log4j/log4j-api/2.6.2/log4j-api-2.6.2.jar
460
466
  - vendor/jars/org/apache/logging/log4j/log4j-core/2.6.2/log4j-core-2.6.2.jar
461
- - vendor/jars/org/logstash/logstash-core/5.0.0-alpha6/logstash-core-5.0.0-alpha6.jar
467
+ - vendor/jars/org/logstash/logstash-core/5.0.0/logstash-core-5.0.0.jar
462
468
  homepage: http://www.elastic.co/guide/en/logstash/current/index.html
463
469
  licenses:
464
470
  - Apache License (2.0)
@@ -475,9 +481,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
475
481
  version: '0'
476
482
  required_rubygems_version: !ruby/object:Gem::Requirement
477
483
  requirements:
478
- - - ">"
484
+ - - ">="
479
485
  - !ruby/object:Gem::Version
480
- version: 1.3.1
486
+ version: '0'
481
487
  requirements: []
482
488
  rubyforge_project:
483
489
  rubygems_version: 2.4.8
@@ -485,6 +491,7 @@ signing_key:
485
491
  specification_version: 4
486
492
  summary: logstash-core - The core components of logstash
487
493
  test_files:
494
+ - spec/api/lib/api/logging_spec.rb
488
495
  - spec/api/lib/api/node_plugins_spec.rb
489
496
  - spec/api/lib/api/node_spec.rb
490
497
  - spec/api/lib/api/node_stats_spec.rb
@@ -492,6 +499,7 @@ test_files:
492
499
  - spec/api/lib/api/root_spec.rb
493
500
  - spec/api/lib/api/support/resource_dsl_methods.rb
494
501
  - spec/api/lib/commands/stats.rb
502
+ - spec/api/lib/errors_spec.rb
495
503
  - spec/api/lib/rack_app_spec.rb
496
504
  - spec/api/spec_helper.rb
497
505
  - spec/conditionals_spec.rb
@@ -542,6 +550,7 @@ test_files:
542
550
  - spec/logstash/util_spec.rb
543
551
  - spec/logstash/webserver_spec.rb
544
552
  - spec/static/i18n_spec.rb
553
+ - spec/support/helpers.rb
545
554
  - spec/support/matchers.rb
546
555
  - spec/support/mocks_classes.rb
547
556
  - spec/support/shared_examples.rb