logstash-core 6.6.2-java → 6.7.0-java

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 95191e4ff68916c9fd0a8e70d9d6f9b28e056f994649a6ed79dd1bd159e61609
4
- data.tar.gz: 829bef4ca3ef9479cb2dd9805c69888ae3d2b9d12c0356848dc4c1ff95ae2015
3
+ metadata.gz: d66a9d2f5580d1919c066f11a86cd018a03294e15cfa1913e2e1f2f3cda1fb3e
4
+ data.tar.gz: 6618994f401fbacb271f55c39f9774ed54a3ac05098f9e70d174455772ece81b
5
5
  SHA512:
6
- metadata.gz: 5be0a69f8cc2e121f2e08e46e8a0f386fd515524b6b36d3ee610e313f26f591edbfb5b8d0ed6a2590ce4adba1661a58a1776d83210283b80c5ad9f51f6efb490
7
- data.tar.gz: 5504cb46b0a8f331061ce6c8b1af6c3ccc4e6ad0087d359d265656357c9b0ea205e88e7f0bf7f82021bd8efe577ef3c1c60b672e98e46c4ff8efbecdb75b18cb
6
+ metadata.gz: 1f8120ccc57810e81ea82678d66145d71333d519bd0acaffc5956c62854e13f88ac35fa941e86db30c94afae82a5b6e2100521926cf80b7aba74dbef244cb84e
7
+ data.tar.gz: 4bb47679f660649b448a74d942886b0a9994c2527eb183b0f7cab470ac23d49341219e6d404e0f7afba20fceeb94670b230cf3523195235ee1b475614ec83b4a
@@ -39,6 +39,8 @@ class LogStash::Agent
39
39
  @exclusive_lock = Mutex.new
40
40
  @webserver_control_lock = Mutex.new
41
41
 
42
+ @convergence_lock = Mutex.new
43
+
42
44
  # Special bus object for inter-pipelines communications. Used by the `pipeline` input/output
43
45
  @pipeline_bus = org.logstash.plugins.pipeline.PipelineBus.new
44
46
 
@@ -163,12 +165,7 @@ class LogStash::Agent
163
165
  end
164
166
  end
165
167
 
166
- # We Lock any access on the pipelines, since the actions will modify the
167
- # content of it.
168
- converge_result = nil
169
-
170
- pipeline_actions = resolve_actions(results.response)
171
- converge_result = converge_state(pipeline_actions)
168
+ converge_result = resolve_actions_and_converge_state(results.response)
172
169
  update_metrics(converge_result)
173
170
 
174
171
  logger.info(
@@ -187,7 +184,7 @@ class LogStash::Agent
187
184
 
188
185
  # Calculate the Logstash uptime in milliseconds
189
186
  #
190
- # @return [Fixnum] Uptime in milliseconds
187
+ # @return [Integer] Uptime in milliseconds
191
188
  def uptime
192
189
  ((Time.now.to_f - STARTED_AT.to_f) * 1000.0).to_i
193
190
  end
@@ -292,6 +289,15 @@ class LogStash::Agent
292
289
  @running.make_true
293
290
  end
294
291
 
292
+ # @param pipeline_configs [Array<Config::PipelineConfig>]
293
+ # @return [ConvergeResult]
294
+ def resolve_actions_and_converge_state(pipeline_configs)
295
+ @convergence_lock.synchronize do
296
+ pipeline_actions = resolve_actions(pipeline_configs)
297
+ converge_state(pipeline_actions)
298
+ end
299
+ end
300
+
295
301
  # We depends on a series of task derived from the internal state and what
296
302
  # need to be run, theses actions are applied to the current pipelines to converge to
297
303
  # the desired state.
@@ -304,6 +310,7 @@ class LogStash::Agent
304
310
  #
305
311
  def converge_state(pipeline_actions)
306
312
  logger.debug("Converging pipelines state", :actions_count => pipeline_actions.size)
313
+ fail("Illegal access to `LogStash::Agent#converge_state()` without exclusive lock at #{caller[1]}") unless @convergence_lock.owned?
307
314
 
308
315
  converge_result = LogStash::ConvergeResult.new(pipeline_actions.size)
309
316
 
@@ -352,6 +359,7 @@ class LogStash::Agent
352
359
  end
353
360
 
354
361
  def resolve_actions(pipeline_configs)
362
+ fail("Illegal access to `LogStash::Agent#resolve_actions()` without exclusive lock at #{caller[1]}") unless @convergence_lock.owned?
355
363
  @state_resolver.resolve(@pipelines_registry, pipeline_configs)
356
364
  end
357
365
 
@@ -419,8 +427,7 @@ class LogStash::Agent
419
427
  # In this context I could just call shutdown, but I've decided to
420
428
  # use the stop action implementation for that so we have the same code.
421
429
  # This also give us some context into why a shutdown is failing
422
- pipeline_actions = resolve_actions([]) # We stop all the pipeline, so we converge to a empty state
423
- converge_state(pipeline_actions)
430
+ resolve_actions_and_converge_state([]) # We stop all the pipeline, so we converge to a empty state
424
431
  end
425
432
 
426
433
 
@@ -317,10 +317,9 @@ module LogStashCompilerLSCLGrammar; module LogStash; module Compiler; module LSC
317
317
 
318
318
  def precedence(op)
319
319
  # Believe this is right for logstash?
320
- case op
321
- when AND_METHOD
320
+ if op == AND_METHOD
322
321
  2
323
- when OR_METHOD
322
+ elsif op == OR_METHOD
324
323
  1
325
324
  else
326
325
  raise ArgumentError, "Unexpected operator #{op}"
@@ -302,7 +302,7 @@ module LogStash module Instrument
302
302
  #
303
303
  # @param [Concurrent::Map] Map to search for the key
304
304
  # @param [Array] List of path to create
305
- # @param [Fixnum] Which part from the list to create
305
+ # @param [Integer] Which part from the list to create
306
306
  #
307
307
  def fetch_or_store_namespace_recursively(map, namespaces_path, idx = 0)
308
308
  current = namespaces_path[idx]
@@ -26,8 +26,6 @@ module LogStash; class JavaPipeline < JavaBasePipeline
26
26
 
27
27
  @worker_threads = []
28
28
 
29
- @java_inputs_controller = org.logstash.execution.InputsController.new(lir_execution.javaInputs)
30
-
31
29
  @drain_queue = settings.get_value("queue.drain") || settings.get("queue.type") == "memory"
32
30
 
33
31
  @events_filtered = java.util.concurrent.atomic.LongAdder.new
@@ -259,8 +257,13 @@ module LogStash; class JavaPipeline < JavaBasePipeline
259
257
  end
260
258
 
261
259
  def wait_inputs
262
- @input_threads.each(&:join)
263
- @java_inputs_controller.awaitStop
260
+ @input_threads.each do |thread|
261
+ if thread.class == Java::JavaObject
262
+ thread.to_java.join
263
+ else
264
+ thread.join
265
+ end
266
+ end
264
267
  end
265
268
 
266
269
  def start_inputs
@@ -279,11 +282,14 @@ module LogStash; class JavaPipeline < JavaBasePipeline
279
282
 
280
283
  # then after all input plugins are successfully registered, start them
281
284
  inputs.each { |input| start_input(input) }
282
- @java_inputs_controller.startInputs(self)
283
285
  end
284
286
 
285
287
  def start_input(plugin)
286
- @input_threads << Thread.new { inputworker(plugin) }
288
+ if plugin.class == LogStash::JavaInputDelegator
289
+ @input_threads << plugin.start
290
+ else
291
+ @input_threads << Thread.new { inputworker(plugin) }
292
+ end
287
293
  end
288
294
 
289
295
  def inputworker(plugin)
@@ -345,7 +351,6 @@ module LogStash; class JavaPipeline < JavaBasePipeline
345
351
  def stop_inputs
346
352
  @logger.debug("Closing inputs", default_logging_keys)
347
353
  inputs.each(&:do_stop)
348
- @java_inputs_controller.stopInputs
349
354
  @logger.debug("Closed inputs", default_logging_keys)
350
355
  end
351
356
 
@@ -394,7 +399,7 @@ module LogStash; class JavaPipeline < JavaBasePipeline
394
399
  end
395
400
 
396
401
  def plugin_threads_info
397
- input_threads = @input_threads.select {|t| t.alive? }
402
+ input_threads = @input_threads.select {|t| t.class == Thread && t.alive? }
398
403
  worker_threads = @worker_threads.select {|t| t.alive? }
399
404
  (input_threads + worker_threads).map {|t| Util.thread_info(t) }
400
405
  end
@@ -10,7 +10,6 @@ require "resolv"
10
10
 
11
11
  # make sure we abort if a known correct JRuby version is installed
12
12
  # to avoid having an unnecessary legacy patch being applied in the future.
13
- raise("Unnecessary patch on resolv.rb for JRuby version 9.1.16+") if Gem::Version.new(JRUBY_VERSION) >= Gem::Version.new("9.1.16.0")
14
13
 
15
14
  # The code below is copied from JRuby 9.1.16.0 resolv.rb:
16
15
  # https://github.com/jruby/jruby/blob/9.1.16.0/lib/ruby/stdlib/resolv.rb#L775-L784
@@ -18,23 +17,3 @@ raise("Unnecessary patch on resolv.rb for JRuby version 9.1.16+") if Gem::Versio
18
17
  # JRuby is Copyright (c) 2007-2017 The JRuby project, and is released
19
18
  # under a tri EPL/GPL/LGPL license.
20
19
  # Full license available at https://github.com/jruby/jruby/blob/9.1.16.0/COPYING
21
-
22
- class Resolv
23
- class DNS
24
- class Requester
25
- class UnconnectedUDP
26
- def sender(msg, data, host, port=Port)
27
- sock = @socks_hash[host.index(':') ? "::" : "0.0.0.0"]
28
- return nil if !sock
29
- service = [IPAddr.new(host), port]
30
- id = DNS.allocate_request_id(service[0], service[1])
31
- request = msg.encode
32
- request[0,2] = [id].pack('n')
33
- return @senders[[service, id]] =
34
- Sender.new(request, data, sock, host, port)
35
- end
36
- end
37
- end
38
- end
39
- end
40
-
@@ -542,7 +542,7 @@ module LogStash; class Pipeline < BasePipeline
542
542
 
543
543
  # Calculate the uptime in milliseconds
544
544
  #
545
- # @return [Fixnum] Uptime in milliseconds, 0 if the pipeline is not started
545
+ # @return [Integer] Uptime in milliseconds, 0 if the pipeline is not started
546
546
  def uptime
547
547
  return 0 if started_at.nil?
548
548
  ((Time.now.to_f - started_at.to_f) * 1000.0).to_i
@@ -276,6 +276,17 @@ class LogStash::Runner < Clamp::StrictCommand
276
276
  LogStash::PLUGIN_REGISTRY.hooks.register_emitter(self.class, @dispatcher)
277
277
 
278
278
  @settings.validate_all
279
+
280
+ if @settings.registered?("xpack.monitoring.enabled")
281
+ verify_deprecated_setting("xpack.monitoring.elasticsearch.url", "xpack.monitoring.elasticsearch.hosts")
282
+ verify_deprecated_setting("xpack.monitoring.elasticsearch.ssl.ca", "xpack.monitoring.elasticsearch.ssl.certificate_authority")
283
+ end
284
+
285
+ if @settings.registered?("xpack.management.enabled")
286
+ verify_deprecated_setting("xpack.management.elasticsearch.url", "xpack.management.elasticsearch.hosts")
287
+ verify_deprecated_setting("xpack.management.elasticsearch.ssl.ca", "xpack.management.elasticsearch.ssl.certificate_authority")
288
+ end
289
+
279
290
  @dispatcher.fire(:before_bootstrap_checks)
280
291
 
281
292
  return start_shell(setting("interactive"), binding) if setting("interactive")
@@ -501,4 +512,15 @@ class LogStash::Runner < Clamp::StrictCommand
501
512
  @settings.get_value(key)
502
513
  end
503
514
 
515
+ def verify_deprecated_setting(old_setting, new_setting)
516
+ if @settings.set?(old_setting)
517
+ logger.warn("Deprecated setting `#{old_setting}` please use `#{new_setting}`")
518
+ if @settings.set?(new_setting)
519
+ signal_usage_error("Both `#{new_setting}` and the deprecated `#{old_setting}` settings are set, please remove `#{old_setting}`")
520
+ else
521
+ @settings.set_value(new_setting, @settings.get_value(old_setting))
522
+ end
523
+ end
524
+ end
525
+
504
526
  end
@@ -368,7 +368,7 @@ module LogStash
368
368
  case value
369
369
  when ::Range
370
370
  value
371
- when ::Fixnum
371
+ when ::Integer
372
372
  value..value
373
373
  when ::String
374
374
  first, last = value.split(PORT_SEPARATOR)
@@ -481,11 +481,11 @@ module LogStash
481
481
 
482
482
  class Bytes < Coercible
483
483
  def initialize(name, default=nil, strict=true)
484
- super(name, ::Fixnum, default, strict=true) { |value| valid?(value) }
484
+ super(name, ::Integer, default, strict=true) { |value| valid?(value) }
485
485
  end
486
486
 
487
487
  def valid?(value)
488
- value.is_a?(Fixnum) && value >= 0
488
+ value.is_a?(::Integer) && value >= 0
489
489
  end
490
490
 
491
491
  def coerce(value)
@@ -508,11 +508,11 @@ module LogStash
508
508
 
509
509
  class TimeValue < Coercible
510
510
  def initialize(name, default, strict=true, &validator_proc)
511
- super(name, ::Fixnum, default, strict, &validator_proc)
511
+ super(name, ::Integer, default, strict, &validator_proc)
512
512
  end
513
513
 
514
514
  def coerce(value)
515
- return value if value.is_a?(::Fixnum)
515
+ return value if value.is_a?(::Integer)
516
516
  Util::TimeValue.from_value(value).to_nanos
517
517
  end
518
518
  end
data/lib/logstash/util.rb CHANGED
@@ -9,6 +9,8 @@ module LogStash::Util
9
9
 
10
10
  PR_SET_NAME = 15
11
11
  def self.set_thread_name(name)
12
+ previous_name = Java::java.lang.Thread.currentThread.getName() if block_given?
13
+
12
14
  if RUBY_ENGINE == "jruby"
13
15
  # Keep java and ruby thread names in sync.
14
16
  Java::java.lang.Thread.currentThread.setName(name)
@@ -21,6 +23,14 @@ module LogStash::Util
21
23
  # since MRI 1.9, JRuby, and Rubinius use system threads for this.
22
24
  LibC.prctl(PR_SET_NAME, name[0..16], 0, 0, 0)
23
25
  end
26
+
27
+ if block_given?
28
+ begin
29
+ yield
30
+ ensure
31
+ set_thread_name(previous_name)
32
+ end
33
+ end
24
34
  end # def set_thread_name
25
35
 
26
36
  def self.set_thread_plugin(plugin)
@@ -191,7 +201,7 @@ module LogStash::Util
191
201
  o.inject({}) {|h, (k,v)| h[k] = deep_clone(v); h }
192
202
  when Array
193
203
  o.map {|v| deep_clone(v) }
194
- when Fixnum, Symbol, IO, TrueClass, FalseClass, NilClass
204
+ when Integer, Symbol, IO, TrueClass, FalseClass, NilClass
195
205
  o
196
206
  when LogStash::Codecs::Base
197
207
  o.clone
@@ -7,7 +7,7 @@ module LogStash::Util::DurationFormatter
7
7
  # a format that a human can understand. This is currently used by
8
8
  # the API.
9
9
  #
10
- # @param [Fixnum] Duration in milliseconds
10
+ # @param [Integer] Duration in milliseconds
11
11
  # @return [String] Duration in human format
12
12
  def self.human_format(duration)
13
13
  ChronicDuration.output(duration / 1000, CHRONIC_OPTIONS)
@@ -419,6 +419,7 @@ describe LogStash::Config::Mixin do
419
419
  end
420
420
 
421
421
  it "should use the value in the variable" do
422
+ skip("This test fails on Windows, tracked in https://github.com/elastic/logstash/issues/10454")
422
423
  expect(subject.oneString).to(be == "fancy")
423
424
  expect(subject.oneBoolean).to(be_truthy)
424
425
  expect(subject.oneArray).to(be == [ "first array value", "fancy" ])
@@ -141,10 +141,10 @@ describe LogStash::Event do
141
141
  expect(e.get("foo")).to eq(BigDecimal.new(1))
142
142
  end
143
143
 
144
- it "should set RubyBignum" do
144
+ it "should set RubyInteger" do
145
145
  e = LogStash::Event.new()
146
146
  e.set("[foo]", -9223372036854776000)
147
- expect(e.get("foo")).to be_kind_of(Bignum)
147
+ expect(e.get("foo")).to be_kind_of(Integer)
148
148
  expect(e.get("foo")).to eq(-9223372036854776000)
149
149
  end
150
150
 
@@ -309,4 +309,18 @@ describe LogStash::Filters::NOOP do
309
309
  reject { subject }.include?("go")
310
310
  end
311
311
  end
312
+
313
+ describe "when metrics are disabled" do
314
+ describe "An error should not be raised, and the event should be processed" do
315
+ config <<-CONFIG
316
+ filter {
317
+ noop { enable_metric => false }
318
+ }
319
+ CONFIG
320
+
321
+ sample_one("type" => "noop", "tags" => ["go"]) do
322
+ expect(subject.get("tags")).to eq(["go"])
323
+ end
324
+ end
325
+ end
312
326
  end
@@ -82,7 +82,7 @@ describe LogStash::Event do
82
82
  expect(event.get("reference_test")).not_to eq(data)
83
83
  end
84
84
 
85
- it "should not return a Fixnum reference" do
85
+ it "should not return an Integer reference" do
86
86
  data = 1
87
87
  event = LogStash::Event.new({ "reference" => data })
88
88
  LogStash::Util::Decorators.add_fields({"reference_test" => "%{reference}"}, event, "dummy-plugin")
@@ -98,11 +98,12 @@ describe LogStash::Event do
98
98
  expect(subject.sprintf("bonjour")).to eq("bonjour")
99
99
  end
100
100
 
101
- it "should raise error when formatting %{+%s} when @timestamp field is missing" do
101
+ it "should not raise error and should format as empty string when @timestamp field is missing" do
102
102
  str = "hello-%{+%s}"
103
103
  subj = subject.clone
104
104
  subj.remove("[@timestamp]")
105
- expect{ subj.sprintf(str) }.to raise_error(LogStash::Error)
105
+ expect{ subj.sprintf(str) }.not_to raise_error(LogStash::Error)
106
+ expect(subj.sprintf(str)).to eq("hello-")
106
107
  end
107
108
 
108
109
  it "should report a time with %{+format} syntax", :if => RUBY_ENGINE == "jruby" do
@@ -115,11 +116,11 @@ describe LogStash::Event do
115
116
  expect(subject.sprintf("foo %{+YYYY-MM-dd} %{type}")).to eq("foo 2013-01-01 sprintf")
116
117
  end
117
118
 
118
- it "should raise error with %{+format} syntax when @timestamp field is missing", :if => RUBY_ENGINE == "jruby" do
119
+ it "should not raise error with %{+format} syntax when @timestamp field is missing", :if => RUBY_ENGINE == "jruby" do
119
120
  str = "logstash-%{+YYYY}"
120
121
  subj = subject.clone
121
122
  subj.remove("[@timestamp]")
122
- expect{ subj.sprintf(str) }.to raise_error(LogStash::Error)
123
+ expect{ subj.sprintf(str) }.not_to raise_error(LogStash::Error)
123
124
  end
124
125
 
125
126
  it "should report fields with %{field} syntax" do
@@ -47,7 +47,7 @@ describe LogStash::QueueFactory do
47
47
  let(:queue_path) { ::File.join(settings.get("path.queue"), pipeline_id) }
48
48
 
49
49
  after :each do
50
- FileUtils.rmdir(queue_path)
50
+ FileUtils.rm_rf(queue_path)
51
51
  end
52
52
 
53
53
  it "creates a queue directory based on the pipeline id" do
@@ -27,7 +27,7 @@ describe LogStash::Setting::ArrayCoercible do
27
27
 
28
28
  describe "initialization" do
29
29
  subject { described_class }
30
- let(:element_class) { Fixnum }
30
+ let(:element_class) { Integer }
31
31
  context "when given values of incorrect element class" do
32
32
  let(:value) { "test" }
33
33
 
@@ -35,8 +35,8 @@ describe LogStash::Setting::Bytes do
35
35
 
36
36
  before { subject.set(text) }
37
37
 
38
- it "should coerce it to a Fixnum" do
39
- expect(subject.value).to be_a(Fixnum)
38
+ it "should coerce it to an Integer" do
39
+ expect(subject.value).to be_a(::Integer)
40
40
  end
41
41
  end
42
42
 
@@ -5,7 +5,7 @@ require "spec_helper"
5
5
 
6
6
  describe LogStash::Setting::PortRange do
7
7
 
8
- context "When the value is a Fixnum" do
8
+ context "When the value is an Integer" do
9
9
  subject { LogStash::Setting::PortRange.new("mynewtest", 9000) }
10
10
 
11
11
  it "coerces the value in a range" do
@@ -51,7 +51,7 @@ describe TimeValue do
51
51
  a = TimeValue.from_value(32)
52
52
  fail "should not parse"
53
53
  rescue ArgumentError => e
54
- expect(e.message).to eq("value is not a string: 32 [Fixnum]")
54
+ expect(e.message).to eq("value is not a string: 32 [Integer]")
55
55
  end
56
56
  end
57
57
  end
@@ -1,26 +1,26 @@
1
1
  ---
2
- logstash: 6.6.2
3
- logstash-core: 6.6.2
2
+ logstash: 6.7.0
3
+ logstash-core: 6.7.0
4
4
  logstash-core-plugin-api: 2.1.16
5
5
 
6
6
  # jruby must reference a *released* version of jruby which can be downloaded from the official download url
7
7
  # *and* for which jars artifacts are published for compile-time
8
8
  jruby:
9
- version: 9.1.13.0
10
- sha1: 815bac27d5daa1459a4477d6d80584f007ce6a68
9
+ version: 9.2.6.0
10
+ sha1: 3c13ec3966f6cc44966f3978c96325b9e56174f1
11
11
 
12
12
  # jruby-runtime-override, if specified, will override the jruby version installed in vendor/jruby for logstash runtime only,
13
13
  # not for the compile-time jars
14
14
  #
15
15
  #jruby-runtime-override:
16
- # url: http://ci.jruby.org/snapshots/previous/jruby-bin-9.1.13.0-SNAPSHOT.tar.gz
17
- # version: 9.1.13.0-SNAPSHOT
16
+ # url: http://ci.jruby.org/snapshots/previous/jruby-bin-9.2.0.0-SNAPSHOT.tar.gz
17
+ # version: 9.2.0.0-SNAPSHOT
18
18
  # sha1: IGNORE
19
19
 
20
20
  # Note: this file is copied to the root of logstash-core because its gemspec needs it when
21
21
  # bundler evaluates the gemspec via bin/logstash
22
22
  # Ensure Jackson version here is kept in sync with version used by jrjackson gem
23
- jrjackson: 0.4.6
24
- jackson: 2.9.5
23
+ jrjackson: 0.4.7
24
+ jackson: 2.9.8
25
25
 
26
26
  # This is a copy the project level versions.yml into this gem's root and it is created when the gemspec is evaluated.
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: logstash-core
3
3
  version: !ruby/object:Gem::Version
4
- version: 6.6.2
4
+ version: 6.7.0
5
5
  platform: java
6
6
  authors:
7
7
  - Elastic
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-03-06 00:00:00.000000000 Z
11
+ date: 2019-03-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  requirement: !ruby/object:Gem::Requirement
@@ -17,8 +17,8 @@ dependencies:
17
17
  - !ruby/object:Gem::Version
18
18
  version: 0.10.1
19
19
  name: pry
20
- prerelease: false
21
20
  type: :runtime
21
+ prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
@@ -31,8 +31,8 @@ dependencies:
31
31
  - !ruby/object:Gem::Version
32
32
  version: 0.0.19
33
33
  name: stud
34
- prerelease: false
35
34
  type: :runtime
35
+ prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - "~>"
@@ -45,8 +45,8 @@ dependencies:
45
45
  - !ruby/object:Gem::Version
46
46
  version: 0.6.5
47
47
  name: clamp
48
- prerelease: false
49
48
  type: :runtime
49
+ prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - "~>"
@@ -59,8 +59,8 @@ dependencies:
59
59
  - !ruby/object:Gem::Version
60
60
  version: 0.0.4
61
61
  name: filesize
62
- prerelease: false
63
62
  type: :runtime
63
+ prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
66
  - - '='
@@ -73,8 +73,8 @@ dependencies:
73
73
  - !ruby/object:Gem::Version
74
74
  version: 0.8.3
75
75
  name: gems
76
- prerelease: false
77
76
  type: :runtime
77
+ prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
80
  - - "~>"
@@ -90,8 +90,8 @@ dependencies:
90
90
  - !ruby/object:Gem::Version
91
91
  version: 1.0.5
92
92
  name: concurrent-ruby
93
- prerelease: false
94
93
  type: :runtime
94
+ prerelease: false
95
95
  version_requirements: !ruby/object:Gem::Requirement
96
96
  requirements:
97
97
  - - "~>"
@@ -110,8 +110,8 @@ dependencies:
110
110
  - !ruby/object:Gem::Version
111
111
  version: 1.6.11
112
112
  name: rack
113
- prerelease: false
114
113
  type: :runtime
114
+ prerelease: false
115
115
  version_requirements: !ruby/object:Gem::Requirement
116
116
  requirements:
117
117
  - - "~>"
@@ -130,8 +130,8 @@ dependencies:
130
130
  - !ruby/object:Gem::Version
131
131
  version: 1.4.6
132
132
  name: sinatra
133
- prerelease: false
134
133
  type: :runtime
134
+ prerelease: false
135
135
  version_requirements: !ruby/object:Gem::Requirement
136
136
  requirements:
137
137
  - - "~>"
@@ -147,8 +147,8 @@ dependencies:
147
147
  - !ruby/object:Gem::Version
148
148
  version: '2.16'
149
149
  name: puma
150
- prerelease: false
151
150
  type: :runtime
151
+ prerelease: false
152
152
  version_requirements: !ruby/object:Gem::Requirement
153
153
  requirements:
154
154
  - - "~>"
@@ -161,8 +161,8 @@ dependencies:
161
161
  - !ruby/object:Gem::Version
162
162
  version: 0.9.20
163
163
  name: jruby-openssl
164
- prerelease: false
165
164
  type: :runtime
165
+ prerelease: false
166
166
  version_requirements: !ruby/object:Gem::Requirement
167
167
  requirements:
168
168
  - - ">="
@@ -175,8 +175,8 @@ dependencies:
175
175
  - !ruby/object:Gem::Version
176
176
  version: 0.10.6
177
177
  name: chronic_duration
178
- prerelease: false
179
178
  type: :runtime
179
+ prerelease: false
180
180
  version_requirements: !ruby/object:Gem::Requirement
181
181
  requirements:
182
182
  - - '='
@@ -189,8 +189,8 @@ dependencies:
189
189
  - !ruby/object:Gem::Version
190
190
  version: 1.5.0
191
191
  name: treetop
192
- prerelease: false
193
192
  type: :runtime
193
+ prerelease: false
194
194
  version_requirements: !ruby/object:Gem::Requirement
195
195
  requirements:
196
196
  - - "<"
@@ -203,8 +203,8 @@ dependencies:
203
203
  - !ruby/object:Gem::Version
204
204
  version: 0.6.9
205
205
  name: i18n
206
- prerelease: false
207
206
  type: :runtime
207
+ prerelease: false
208
208
  version_requirements: !ruby/object:Gem::Requirement
209
209
  requirements:
210
210
  - - '='
@@ -217,8 +217,8 @@ dependencies:
217
217
  - !ruby/object:Gem::Version
218
218
  version: 0.6.1
219
219
  name: minitar
220
- prerelease: false
221
220
  type: :runtime
221
+ prerelease: false
222
222
  version_requirements: !ruby/object:Gem::Requirement
223
223
  requirements:
224
224
  - - "~>"
@@ -231,8 +231,8 @@ dependencies:
231
231
  - !ruby/object:Gem::Version
232
232
  version: 1.2.1
233
233
  name: rubyzip
234
- prerelease: false
235
234
  type: :runtime
235
+ prerelease: false
236
236
  version_requirements: !ruby/object:Gem::Requirement
237
237
  requirements:
238
238
  - - "~>"
@@ -245,8 +245,8 @@ dependencies:
245
245
  - !ruby/object:Gem::Version
246
246
  version: 0.3.5
247
247
  name: thread_safe
248
- prerelease: false
249
248
  type: :runtime
249
+ prerelease: false
250
250
  version_requirements: !ruby/object:Gem::Requirement
251
251
  requirements:
252
252
  - - "~>"
@@ -257,15 +257,15 @@ dependencies:
257
257
  requirements:
258
258
  - - '='
259
259
  - !ruby/object:Gem::Version
260
- version: 0.4.6
260
+ version: 0.4.7
261
261
  name: jrjackson
262
- prerelease: false
263
262
  type: :runtime
263
+ prerelease: false
264
264
  version_requirements: !ruby/object:Gem::Requirement
265
265
  requirements:
266
266
  - - '='
267
267
  - !ruby/object:Gem::Version
268
- version: 0.4.6
268
+ version: 0.4.7
269
269
  - !ruby/object:Gem::Dependency
270
270
  requirement: !ruby/object:Gem::Requirement
271
271
  requirements:
@@ -276,8 +276,8 @@ dependencies:
276
276
  - !ruby/object:Gem::Version
277
277
  version: 5.0.4
278
278
  name: elasticsearch
279
- prerelease: false
280
279
  type: :runtime
280
+ prerelease: false
281
281
  version_requirements: !ruby/object:Gem::Requirement
282
282
  requirements:
283
283
  - - "~>"
@@ -296,8 +296,8 @@ dependencies:
296
296
  - !ruby/object:Gem::Version
297
297
  version: 1.0.0
298
298
  name: manticore
299
- prerelease: false
300
299
  type: :runtime
300
+ prerelease: false
301
301
  version_requirements: !ruby/object:Gem::Requirement
302
302
  requirements:
303
303
  - - ">="
@@ -608,7 +608,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
608
608
  version: '0'
609
609
  requirements: []
610
610
  rubyforge_project:
611
- rubygems_version: 2.6.13
611
+ rubygems_version: 2.7.6
612
612
  signing_key:
613
613
  specification_version: 4
614
614
  summary: logstash-core - The core components of logstash