logstash-core 6.6.2-java → 6.7.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.
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