logstash-devutils 2.0.0-java → 2.1.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: 9529292d4be6bf7ae845758206433d9fff38a8fdf068d4eee49581a595022563
4
- data.tar.gz: '09bac2f78a40a15e156f893929a0113bb815234f5e24dacd0b806d94a7db7784'
3
+ metadata.gz: 337f5f3afb2fb0f3cdadd3638a51544ae9ef9341d1e0b85c2e04e73d57444b95
4
+ data.tar.gz: e22d45719fec1178d3b8ddf37f74143079f966284d20bd0e62bebb3705ee57ca
5
5
  SHA512:
6
- metadata.gz: 2c1f07ee224a06900492e5421031b1f8e4a15705edf0feb91bfe4279853cb30a3bd248933209e20e16d91e19c65f7b8dd6e29b5a75ee293b80c5e3c5032aa4b9
7
- data.tar.gz: 1b151df23dd77671425a0874a4b0903de5460d10f93a8b521c8019ff4f71965b8ff52089d2978eebe3dfd0b91e1342dac9ecaffbde6a3fa3735a7a938482b81e
6
+ metadata.gz: ca692d8bf918ed22d32a931807fd1c3b1d6803f6ef651c68d450fdcf60740fe171ab1c7e217b4fb53c79d4090f9de45232afd1459529b3f08d96452236b5ef04
7
+ data.tar.gz: 63db7429bda9155d9dc8ccb50aa8b94550ce11c642b4af926277ebaaf7a30fdbfdbb59bddfa4671edb680acfa8f289cd3c1febfa1d194598aa1c180cdadfc55d
@@ -1,3 +1,19 @@
1
+ ## 2.1.0
2
+ - Remove ruby pipeline dependency
3
+
4
+ ## 2.0.4
5
+ - Fix: avoid double registering filters on `sample` spec helper
6
+
7
+ ## 2.0.3
8
+ - Fix: add missing `events` method to QueuedBatchDelegator, which was causing test failures
9
+ after https://github.com/elastic/logstash/pull/11737 was committed.
10
+
11
+ ## 2.0.2
12
+ - Fix: add plain codec as runtime dependency for TestPipeline helper
13
+
14
+ ## 2.0.1
15
+ - Fix: unwrap output and refactor test sink (#82)
16
+
1
17
  ## 2.0.0
2
18
  - Reinvented helpers using Java pipeline, only LS >= 6.x (JRuby >= 9.1) is supported.
3
19
  - [BREAKING] changes:
data/Gemfile CHANGED
@@ -3,4 +3,5 @@ gemspec
3
3
 
4
4
  if Dir.exist?(logstash_path = ENV["LOGSTASH_PATH"])
5
5
  gem 'logstash-core', path: "#{logstash_path}/logstash-core"
6
+ gem 'logstash-core-plugin-api', path: "#{logstash_path}/logstash-core-plugin-api"
6
7
  end
@@ -67,8 +67,7 @@ module LogStashHelper
67
67
  end
68
68
 
69
69
  let(:results) do
70
- pipeline.filters.each(&:register)
71
-
70
+ # Java pipeline (since 6.1) registers filters from start_workers
72
71
  pipeline.run_with(event)
73
72
 
74
73
  # flush makes sure to empty any buffered events in the filter
@@ -88,16 +87,21 @@ module LogStashHelper
88
87
  end
89
88
  end # def sample
90
89
 
90
+ org.logstash.config.ir.compiler.OutputStrategyExt::SimpleAbstractOutputStrategyExt.class_eval do
91
+ field_reader :output # available since LS 6.3
92
+ end
93
+
91
94
  def input(config_string, test_sink: {}, &block); require 'logstash/outputs/test_sink'
92
95
  config_parts = [ config_source(config_string), test_sink_output_source(**test_sink) ]
93
96
 
94
- # TODO unwrapping output from LogStash::OutputDelegator is cumbersome
95
- instances = LogStash::Outputs::TestSink::TRACKER.keys.to_a
96
97
  pipeline = new_pipeline(config_parts)
97
98
 
98
- start_thread = pipeline.start_and_wait
99
+ output_delegator = pipeline.outputs.last # LogStash::OutputDelegator
100
+ fail('test_sink output expected') unless output_delegator.config_name.eql?('test_sink')
101
+ test_sink_output = output_delegator.strategy.to_java.output
102
+ queue = test_sink_output.init_event_store
99
103
 
100
- queue = (LogStash::Outputs::TestSink::TRACKER.keys.to_a - instances).first.event_store
104
+ start_thread = pipeline.start_and_wait
101
105
 
102
106
  # NOTE: we used to pass a Queue here, now its a Java List/Queue collection
103
107
  result = block.call(pipeline, queue)
@@ -29,7 +29,7 @@ if RUBY_VERSION < "2.3"
29
29
  raise LoadError.new("Ruby >= 2.3.0 or later is required. (You are running: " + RUBY_VERSION + ")")
30
30
  end
31
31
 
32
- if level = (ENV["TEST_DEBUG"] || ENV['LOGGER_LEVEL'])
32
+ if level = (ENV['LOG_LEVEL'] || ENV['LOGGER_LEVEL'] || ENV["TEST_DEBUG"])
33
33
  logger, level = level.split('=') # 'logstash.filters.grok=DEBUG'
34
34
  level, logger = logger, nil if level.nil? # only level given e.g. 'DEBUG'
35
35
  level = org.apache.logging.log4j.Level.toLevel(level, org.apache.logging.log4j.Level::WARN)
@@ -22,7 +22,7 @@ class LogStash::Outputs::TestSink < LogStash::Outputs::Base
22
22
 
23
23
  # @override plugin hook
24
24
  def register
25
- TRACKER[self] = Queue.new(@event_poll_timeout.to_f * 1000)
25
+ TRACKER[self] = @_event_store || init_event_store
26
26
  end
27
27
 
28
28
  # @override plugin impl
@@ -32,7 +32,8 @@ class LogStash::Outputs::TestSink < LogStash::Outputs::Base
32
32
 
33
33
  # @override plugin hook
34
34
  def close
35
- TRACKER.delete(self) if release_on_close?
35
+ TRACKER.delete(self)
36
+ @_event_store = false if release_on_close?
36
37
  end
37
38
 
38
39
  def store_events?
@@ -50,7 +51,24 @@ class LogStash::Outputs::TestSink < LogStash::Outputs::Base
50
51
 
51
52
  # @return [Queue] (enumerable) event store
52
53
  def event_store
53
- TRACKER[self] || raise("#{self} not registered; please call plugin.register before use")
54
+ if @_event_store.nil?
55
+ warn("#{self} event store not initialized (call plugin.register to initialize)", caller_locations(2))
56
+ return init_event_store
57
+ elsif @_event_store.eql?(false)
58
+ warn("#{self} closed - event store no longer available (release_on_close => false if you need to retain events)", caller_locations(2))
59
+ return nil
60
+ end
61
+ @_event_store
62
+ end
63
+
64
+ def init_event_store
65
+ @_event_store = Queue.new(@event_poll_timeout.to_f * 1000)
66
+ end
67
+
68
+ private
69
+
70
+ def warn(msg, callstack = nil)
71
+ Kernel.warn("#{msg}#{callstack ? " called from #{callstack.first}" : nil}")
54
72
  end
55
73
 
56
74
  # TODO refactor to java.util.concurrent.ConcurrentLinkedQueue
@@ -1,4 +1,3 @@
1
- require "logstash/pipeline"
2
1
  require "logstash/java_pipeline"
3
2
 
4
3
  module LogStash
@@ -151,6 +150,13 @@ module LogStash
151
150
  @delegate.to_java.filtered_size
152
151
  end
153
152
 
153
+ def events
154
+ @delegate.events.tap do |events|
155
+ # filters out rogue (cancelled) events
156
+ @event_tracker.filtered_events events
157
+ end
158
+ end
159
+
154
160
  # @override void merge(IRubyObject event);
155
161
  def merge(event)
156
162
  @delegate.merge(event)
@@ -4,7 +4,7 @@ Gem::Specification.new do |spec|
4
4
  files = %x{git ls-files}.split("\n")
5
5
 
6
6
  spec.name = "logstash-devutils"
7
- spec.version = "2.0.0"
7
+ spec.version = "2.1.0"
8
8
  spec.license = "Apache-2.0"
9
9
  spec.authors = ["Elastic"]
10
10
  spec.email = "info@elastic.co"
@@ -45,4 +45,5 @@ Gem::Specification.new do |spec|
45
45
  spec.add_runtime_dependency "kramdown", '1.14.0'
46
46
  spec.add_runtime_dependency "stud", " >= 0.0.20"
47
47
  spec.add_runtime_dependency "fivemat"
48
+ spec.add_runtime_dependency "logstash-codec-plain"
48
49
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: logstash-devutils
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.0
4
+ version: 2.1.0
5
5
  platform: java
6
6
  authors:
7
7
  - Elastic
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-02-11 00:00:00.000000000 Z
11
+ date: 2020-12-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  requirement: !ruby/object:Gem::Requirement
@@ -136,6 +136,20 @@ dependencies:
136
136
  - - ">="
137
137
  - !ruby/object:Gem::Version
138
138
  version: '0'
139
+ - !ruby/object:Gem::Dependency
140
+ requirement: !ruby/object:Gem::Requirement
141
+ requirements:
142
+ - - ">="
143
+ - !ruby/object:Gem::Version
144
+ version: '0'
145
+ name: logstash-codec-plain
146
+ prerelease: false
147
+ type: :runtime
148
+ version_requirements: !ruby/object:Gem::Requirement
149
+ requirements:
150
+ - - ">="
151
+ - !ruby/object:Gem::Version
152
+ version: '0'
139
153
  description: logstash-devutils gem is meant to be used as a development dependency
140
154
  from other plugins/gems.
141
155
  email: info@elastic.co