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

Files changed (46) hide show
  1. checksums.yaml +4 -4
  2. data/lib/jars.rb +7 -0
  3. data/lib/logstash-core/version.rb +1 -1
  4. data/lib/logstash/agent.rb +2 -2
  5. data/lib/logstash/api/rack_app.rb +14 -15
  6. data/lib/logstash/config/config_ast.rb +2 -2
  7. data/lib/logstash/config/file.rb +1 -2
  8. data/lib/logstash/config/mixin.rb +9 -11
  9. data/lib/logstash/environment.rb +2 -1
  10. data/lib/logstash/filters/base.rb +1 -0
  11. data/lib/logstash/inputs/base.rb +1 -0
  12. data/lib/logstash/java_integration.rb +1 -0
  13. data/lib/logstash/logging.rb +1 -89
  14. data/lib/logstash/logging/json.rb +1 -1
  15. data/lib/logstash/logging/logger.rb +72 -0
  16. data/lib/logstash/output_delegator.rb +8 -16
  17. data/lib/logstash/output_delegator_strategies/legacy.rb +2 -1
  18. data/lib/logstash/output_delegator_strategies/shared.rb +1 -0
  19. data/lib/logstash/output_delegator_strategies/single.rb +1 -0
  20. data/lib/logstash/outputs/base.rb +5 -0
  21. data/lib/logstash/patches/clamp.rb +21 -0
  22. data/lib/logstash/pipeline.rb +24 -24
  23. data/lib/logstash/pipeline_reporter.rb +1 -1
  24. data/lib/logstash/plugin.rb +3 -10
  25. data/lib/logstash/plugins/registry.rb +3 -1
  26. data/lib/logstash/runner.rb +47 -74
  27. data/lib/logstash/shutdown_watcher.rb +1 -8
  28. data/lib/logstash/util/decorators.rb +3 -4
  29. data/lib/logstash/util/java_version.rb +0 -5
  30. data/lib/logstash/util/loggable.rb +7 -17
  31. data/lib/logstash/util/safe_uri.rb +2 -0
  32. data/lib/logstash/util/wrapped_synchronous_queue.rb +5 -5
  33. data/lib/logstash/version.rb +1 -1
  34. data/locales/en.yml +19 -8
  35. data/logstash-core.gemspec +4 -3
  36. data/spec/api/lib/rack_app_spec.rb +6 -4
  37. data/spec/logstash/config/loader_spec.rb +3 -1
  38. data/spec/logstash/config/mixin_spec.rb +28 -9
  39. data/spec/logstash/output_delegator_spec.rb +15 -2
  40. data/spec/logstash/outputs/base_spec.rb +0 -1
  41. data/spec/logstash/pipeline_reporter_spec.rb +1 -0
  42. data/spec/logstash/pipeline_spec.rb +14 -2
  43. data/spec/logstash/plugin_spec.rb +7 -6
  44. data/spec/logstash/runner_spec.rb +62 -44
  45. data/spec/logstash/shutdown_watcher_spec.rb +0 -4
  46. metadata +21 -18
@@ -2,6 +2,7 @@
2
2
 
3
3
  module LogStash
4
4
  class ShutdownWatcher
5
+ include LogStash::Util::Loggable
5
6
 
6
7
  CHECK_EVERY = 1 # second
7
8
  REPORT_EVERY = 5 # checks
@@ -25,14 +26,6 @@ module LogStash
25
26
  @unsafe_shutdown
26
27
  end
27
28
 
28
- def self.logger=(logger)
29
- @logger = logger
30
- end
31
-
32
- def self.logger
33
- @logger ||= Cabin::Channel.get(LogStash)
34
- end
35
-
36
29
  def self.start(pipeline, cycle_period=CHECK_EVERY, report_every=REPORT_EVERY, abort_threshold=ABORT_AFTER)
37
30
  controller = self.new(pipeline, cycle_period, report_every, abort_threshold)
38
31
  Thread.new(controller) { |controller| controller.start }
@@ -6,10 +6,9 @@ module LogStash::Util
6
6
 
7
7
  # Decorators provides common manipulation on the event data.
8
8
  module Decorators
9
+ include LogStash::Util::Loggable
9
10
  extend self
10
11
 
11
- @logger = Cabin::Channel.get(LogStash)
12
-
13
12
  # fields is a hash of field => value
14
13
  # where both `field` and `value` can use sprintf syntax.
15
14
  def add_fields(fields,event, pluginname)
@@ -28,7 +27,7 @@ module LogStash::Util
28
27
  else
29
28
  event.set(field, v)
30
29
  end
31
- @logger.debug? and @logger.debug("#{pluginname}: adding value to field", :field => field, :value => value)
30
+ self.logger.debug? and self.logger.debug("#{pluginname}: adding value to field", "field" => field, "value" => value)
32
31
  end
33
32
  end
34
33
  end
@@ -37,7 +36,7 @@ module LogStash::Util
37
36
  def add_tags(tags, event, pluginname)
38
37
  tags.each do |tag|
39
38
  tag = event.sprintf(tag)
40
- @logger.debug? and @logger.debug("#{pluginname}: adding tag", :tag => tag)
39
+ self.logger.debug? and self.logger.debug("#{pluginname}: adding tag", "tag" => tag)
41
40
  # note below that the tags array field needs to be updated then reassigned to the event.
42
41
  # this is important because a construct like event["tags"] << tag will not work
43
42
  # in the current Java event implementation. see https://github.com/elastic/logstash/issues/4140
@@ -1,11 +1,6 @@
1
1
  # encoding: utf-8
2
- require 'cabin'
3
2
 
4
3
  module LogStash::Util::JavaVersion
5
- def self.logger
6
- @logger ||= Cabin::Channel.get(LogStash)
7
- end
8
-
9
4
  # Return the current java version string. Returns nil if this is a non-java platform (e.g. MRI).
10
5
  def self.version
11
6
  return nil unless LogStash::Environment.jruby?
@@ -1,29 +1,19 @@
1
1
  # encoding: utf-8
2
+ require "logstash/logging/logger"
2
3
  require "logstash/namespace"
3
- require "cabin"
4
4
 
5
5
  module LogStash module Util
6
6
  module Loggable
7
- class << self
8
- def logger=(new_logger)
9
- @logger = new_logger
7
+ def self.included(klass)
8
+ def klass.logger
9
+ ruby_name = self.name || self.class.name || self.class.to_s
10
+ log4j_name = ruby_name.gsub('::', '.').downcase
11
+ @logger ||= LogStash::Logging::Logger.new(log4j_name)
10
12
  end
11
13
 
12
14
  def logger
13
- @logger ||= Cabin::Channel.get(LogStash)
15
+ self.class.logger
14
16
  end
15
17
  end
16
-
17
- def self.included(base)
18
- class << base
19
- def logger
20
- Loggable.logger
21
- end
22
- end
23
- end
24
-
25
- def logger
26
- Loggable.logger
27
- end
28
18
  end
29
19
  end; end
@@ -6,6 +6,7 @@ require "logstash/util"
6
6
  # logged, you don't accidentally print the password itself.
7
7
  class LogStash::Util::SafeURI
8
8
  PASS_PLACEHOLDER = "xxxxxx".freeze
9
+ HOSTNAME_PORT_REGEX=/\A(?<hostname>([A-Za-z0-9\.\-]+)|\[[0-9A-Fa-f\:]+\])(:(?<port>\d+))?\Z/
9
10
 
10
11
  extend Forwardable
11
12
 
@@ -17,6 +18,7 @@ class LogStash::Util::SafeURI
17
18
  def initialize(arg)
18
19
  @uri = case arg
19
20
  when String
21
+ arg = "//#{arg}" if HOSTNAME_PORT_REGEX.match(arg)
20
22
  URI.parse(arg)
21
23
  when URI
22
24
  arg
@@ -218,16 +218,16 @@ module LogStash; module Util
218
218
  if event.nil?
219
219
  # queue poll timed out
220
220
  next
221
- elsif event == LogStash::SHUTDOWN
221
+ elsif event.is_a?(LogStash::SignalEvent)
222
222
  # We MUST break here. If a batch consumes two SHUTDOWN events
223
223
  # then another worker may have its SHUTDOWN 'stolen', thus blocking
224
224
  # the pipeline.
225
- @shutdown_signal_received = true
226
- break
227
- elsif event == LogStash::FLUSH
225
+ @shutdown_signal_received = event.shutdown?
226
+
228
227
  # See comment above
229
228
  # We should stop doing work after flush as well.
230
- @flush_signal_received = true
229
+ @flush_signal_received = event.flush?
230
+
231
231
  break
232
232
  else
233
233
  @originals[event] = true
@@ -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 = "5.0.0.alpha6.snapshot1"
14
+ LOGSTASH_VERSION = "5.0.0.alpha6.snapshot2"
@@ -86,10 +86,10 @@ en:
86
86
  runner:
87
87
  short-help: |-
88
88
  usage:
89
- bin/logstash -f CONFIG_PATH [-t] [-r] [--quiet|verbose|debug] [-w COUNT] [-l LOG]
90
- bin/logstash -e CONFIG_STR [-t] [--quiet|verbose|debug] [-w COUNT] [-l LOG]
91
- bin/logstash -i SHELL [--quiet|verbose|debug]
92
- bin/logstash -V [--verbose|debug]
89
+ bin/logstash -f CONFIG_PATH [-t] [-r] [] [-w COUNT] [-l LOG]
90
+ bin/logstash -e CONFIG_STR [-t] [--log.level fatal|error|warn|info|debug|trace] [-w COUNT] [-l LOG]
91
+ bin/logstash -i SHELL [--log.level fatal|error|warn|info|debug|trace]
92
+ bin/logstash -V [--log.level fatal|error|warn|info|debug|trace]
93
93
  bin/logstash --help
94
94
  invalid-configuration: >-
95
95
  The given configuration is invalid. Reason: %{error}
@@ -228,10 +228,12 @@ en:
228
228
  and NAME is the name of the plugin.
229
229
  log_level: |+
230
230
  Set the log level for logstash. Possible values are:
231
- - quiet => :error
232
- - verbose => :info
233
- - debug => :debug
234
- - warn => :warn
231
+ - fatal
232
+ - error
233
+ - warn
234
+ - info
235
+ - debug
236
+ - trace
235
237
  unsafe_shutdown: |+
236
238
  Force logstash to exit during shutdown even
237
239
  if there are still inflight events in memory.
@@ -252,3 +254,12 @@ en:
252
254
  log_format: |+
253
255
  Specify if Logstash should write its own logs in JSON form (one
254
256
  event per line) or in plain text (using Ruby's Object#inspect)
257
+ debug: |+
258
+ Set the log level to debug.
259
+ DEPRECATED: use --log.level=debug instead.
260
+ verbose: |+
261
+ Set the log level to info.
262
+ DEPRECATED: use --log.level=verbose instead.
263
+ quiet: |+
264
+ Set the log level to info.
265
+ DEPRECATED: use --log.level=quiet instead.
@@ -14,12 +14,11 @@ Gem::Specification.new do |gem|
14
14
  gem.files = Dir.glob(["logstash-core.gemspec", "lib/**/*.rb", "spec/**/*.rb", "locales/*", "lib/logstash/api/init.ru"])
15
15
  gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
16
16
  gem.name = "logstash-core"
17
- gem.require_paths = ["lib"]
17
+ gem.require_paths = ["lib", "vendor/jars"]
18
18
  gem.version = LOGSTASH_CORE_VERSION
19
19
 
20
- gem.add_runtime_dependency "logstash-core-event-java", "5.0.0.alpha6.snapshot1"
20
+ gem.add_runtime_dependency "logstash-core-event-java", "5.0.0.alpha6.snapshot2"
21
21
 
22
- gem.add_runtime_dependency "cabin", "~> 0.8.0" #(Apache 2.0 license)
23
22
  gem.add_runtime_dependency "pry", "~> 0.10.1" #(Ruby license)
24
23
  gem.add_runtime_dependency "stud", "~> 0.0.19" #(Apache 2.0 license)
25
24
  gem.add_runtime_dependency "clamp", "~> 0.6.5" #(MIT license) for command line args/flags
@@ -59,4 +58,6 @@ Gem::Specification.new do |gem|
59
58
  # https://github.com/rubinius/rubinius/issues/2632#issuecomment-26954565
60
59
  gem.add_runtime_dependency "racc"
61
60
  end
61
+
62
+ gem.add_runtime_dependency 'jar-dependencies', '~> 0.3.4'
62
63
  end
@@ -6,7 +6,7 @@ describe LogStash::Api::RackApp do
6
6
 
7
7
  class DummyApp
8
8
  class RaisedError < StandardError; end
9
-
9
+
10
10
  def call(env)
11
11
  case env["PATH_INFO"]
12
12
  when "/good-page"
@@ -21,7 +21,7 @@ describe LogStash::Api::RackApp do
21
21
  end
22
22
  end
23
23
 
24
- let(:logger) { Cabin::Channel.get }
24
+ let(:logger) { double("logger") }
25
25
 
26
26
  describe LogStash::Api::RackApp::ApiErrorHandler do
27
27
  let(:app) do
@@ -49,7 +49,7 @@ describe LogStash::Api::RackApp do
49
49
  allow(logger).to receive(:error).with(any_args)
50
50
  get "/raise-error"
51
51
  end
52
-
52
+
53
53
  it "should return a 500 error" do
54
54
  expect(last_response.status).to eql(500)
55
55
  end
@@ -74,13 +74,15 @@ describe LogStash::Api::RackApp do
74
74
  run DummyApp.new
75
75
  end
76
76
  end
77
-
77
+
78
78
  it "should log good requests as info" do
79
+ expect(logger).to receive(:info?).and_return(true)
79
80
  expect(logger).to receive(:info).with(LogStash::Api::RackApp::ApiLogger::LOG_MESSAGE, anything).once
80
81
  get "/good-page"
81
82
  end
82
83
 
83
84
  it "should log 5xx requests as warnings" do
85
+ expect(logger).to receive(:warn?).and_return(true)
84
86
  expect(logger).to receive(:warn).with(LogStash::Api::RackApp::ApiLogger::LOG_MESSAGE, anything).once
85
87
  get "/service-unavailable"
86
88
  end
@@ -3,7 +3,9 @@ require "spec_helper"
3
3
  require "logstash/config/loader"
4
4
 
5
5
  describe LogStash::Config::Loader do
6
- subject { described_class.new(Cabin::Channel.get) }
6
+ let(:logger) { double("logger") }
7
+ subject { described_class.new(logger) }
8
+
7
9
  context "when local" do
8
10
  before { expect(subject).to receive(:local_config).with(path) }
9
11
 
@@ -178,21 +178,15 @@ describe LogStash::Config::Mixin do
178
178
  end
179
179
  end
180
180
 
181
- shared_examples("safe URI") do
181
+ shared_examples("safe URI") do |options|
182
+ options ||= {}
183
+
182
184
  subject { klass.new("uri" => uri_str) }
183
185
 
184
186
  it "should be a SafeURI object" do
185
187
  expect(subject.uri).to(be_a(LogStash::Util::SafeURI))
186
188
  end
187
189
 
188
- it "should make password values hidden with #to_s" do
189
- expect(subject.uri.to_s).to eql(uri_hidden)
190
- end
191
-
192
- it "should make password values hidden with #inspect" do
193
- expect(subject.uri.inspect).to eql(uri_hidden)
194
- end
195
-
196
190
  it "should correctly copy URI types" do
197
191
  clone = subject.class.new(subject.params)
198
192
  expect(clone.uri.to_s).to eql(uri_hidden)
@@ -206,6 +200,18 @@ describe LogStash::Config::Mixin do
206
200
  expect(subject.original_params['uri']).to(be_a(LogStash::Util::SafeURI))
207
201
  end
208
202
 
203
+ if !options[:exclude_password_specs]
204
+ describe "passwords" do
205
+ it "should make password values hidden with #to_s" do
206
+ expect(subject.uri.to_s).to eql(uri_hidden)
207
+ end
208
+
209
+ it "should make password values hidden with #inspect" do
210
+ expect(subject.uri.inspect).to eql(uri_hidden)
211
+ end
212
+ end
213
+ end
214
+
209
215
  context "attributes" do
210
216
  [:scheme, :user, :password, :hostname, :path].each do |attr|
211
217
  it "should make #{attr} available" do
@@ -215,6 +221,19 @@ describe LogStash::Config::Mixin do
215
221
  end
216
222
  end
217
223
 
224
+ context "with a host:port combination" do
225
+ let(:scheme) { nil }
226
+ let(:user) { nil }
227
+ let(:password) { nil }
228
+ let(:hostname) { "myhostname" }
229
+ let(:port) { 1234 }
230
+ let(:path) { "" }
231
+ let(:uri_str) { "#{hostname}:#{port}" }
232
+ let(:uri_hidden) { "//#{hostname}:#{port}" }
233
+
234
+ include_examples("safe URI", :exclude_password_specs => true)
235
+ end
236
+
218
237
  context "with a username / password" do
219
238
  let(:scheme) { "myscheme" }
220
239
  let(:user) { "myuser" }
@@ -6,8 +6,9 @@ describe LogStash::OutputDelegator do
6
6
  let(:logger) { double("logger") }
7
7
  let(:events) { 7.times.map { LogStash::Event.new }}
8
8
  let(:plugin_args) { {"id" => "foo", "arg1" => "val1"} }
9
+ let(:metric) { LogStash::Instrument::NullMetric.new }
9
10
 
10
- subject { described_class.new(logger, out_klass, LogStash::Instrument::NullMetric.new, ::LogStash::OutputDelegatorStrategyRegistry.instance, plugin_args) }
11
+ subject { described_class.new(logger, out_klass, metric, ::LogStash::OutputDelegatorStrategyRegistry.instance, plugin_args) }
11
12
 
12
13
  context "with a plain output plugin" do
13
14
  let(:out_klass) { double("output klass") }
@@ -15,10 +16,13 @@ describe LogStash::OutputDelegator do
15
16
  let(:concurrency) { :single }
16
17
 
17
18
  before(:each) do
19
+ # use the same metric instance
20
+ allow(metric).to receive(:namespace).with(any_args).and_return(metric)
21
+
18
22
  allow(out_klass).to receive(:new).with(any_args).and_return(out_inst)
19
23
  allow(out_klass).to receive(:name).and_return("example")
20
24
  allow(out_klass).to receive(:concurrency).with(any_args).and_return concurrency
21
- allow(out_klass).to receive(:config_name)
25
+ allow(out_klass).to receive(:config_name).and_return("dummy_plugin")
22
26
  allow(out_inst).to receive(:register)
23
27
  allow(out_inst).to receive(:multi_receive)
24
28
  allow(out_inst).to receive(:metric=).with(any_args)
@@ -32,6 +36,11 @@ describe LogStash::OutputDelegator do
32
36
  expect { subject }.not_to raise_error
33
37
  end
34
38
 
39
+ it "should push the name of the plugin to the metric" do
40
+ expect(metric).to receive(:gauge).with(:name, out_klass.config_name)
41
+ described_class.new(logger, out_klass, metric, ::LogStash::OutputDelegatorStrategyRegistry.instance, plugin_args)
42
+ end
43
+
35
44
  context "after having received a batch of events" do
36
45
  before do
37
46
  subject.register
@@ -88,6 +97,10 @@ describe LogStash::OutputDelegator do
88
97
  expect(out_klass).to have_received(:new).with(plugin_args)
89
98
  end
90
99
 
100
+ it "should set the metric on the instance" do
101
+ expect(out_inst).to have_received(:metric=).with(metric)
102
+ end
103
+
91
104
  [[:register], [:do_close], [:multi_receive, [[]] ] ].each do |method, args|
92
105
  context "strategy objects" do
93
106
  before do
@@ -34,7 +34,6 @@ class LogStash::Outputs::NOOPMultiReceiveEncoded < ::LogStash::Outputs::Base
34
34
  end
35
35
  end
36
36
 
37
-
38
37
  describe "LogStash::Outputs::Base#new" do
39
38
  let(:params) { {} }
40
39
  subject(:instance) { klass.new(params.dup) }
@@ -4,6 +4,7 @@ require "logstash/pipeline"
4
4
  require "logstash/pipeline_reporter"
5
5
 
6
6
  class DummyOutput < LogStash::Outputs::Base
7
+
7
8
  config_name "dummyoutput"
8
9
  milestone 2
9
10
 
@@ -80,7 +80,7 @@ class DummySafeFilter < LogStash::Filters::Base
80
80
  end
81
81
 
82
82
  class TestPipeline < LogStash::Pipeline
83
- attr_reader :outputs, :settings, :logger
83
+ attr_reader :outputs, :settings
84
84
  end
85
85
 
86
86
  describe LogStash::Pipeline do
@@ -130,7 +130,7 @@ describe LogStash::Pipeline do
130
130
  let(:logger) { double("pipeline logger").as_null_object }
131
131
 
132
132
  before do
133
- expect(Cabin::Channel).to receive(:get).with(LogStash).and_return(logger).at_least(:once)
133
+ expect(TestPipeline).to receive(:logger).and_return(logger)
134
134
  allow(logger).to receive(:debug?).and_return(true)
135
135
  end
136
136
 
@@ -641,6 +641,18 @@ describe LogStash::Pipeline do
641
641
  plugin_name = dummy_output_id.to_sym
642
642
  expect(collected_metric[:stats][:pipelines][:main][:plugins][:outputs][plugin_name][:events][:out].value).to eq(number_of_events)
643
643
  end
644
+
645
+ it "populates the name of the output plugin" do
646
+ plugin_name = dummy_output_id.to_sym
647
+ expect(collected_metric[:stats][:pipelines][:main][:plugins][:outputs][plugin_name][:name].value).to eq(DummyOutput.config_name)
648
+ end
649
+
650
+ it "populates the name of the filter plugin" do
651
+ [multiline_id, multiline_id_other].map(&:to_sym).each do |id|
652
+ plugin_name = "multiline_#{id}".to_sym
653
+ expect(collected_metric[:stats][:pipelines][:main][:plugins][:filters][plugin_name][:name].value).to eq(LogStash::Filters::Multiline.config_name)
654
+ end
655
+ end
644
656
  end
645
657
  end
646
658
 
@@ -76,7 +76,7 @@ describe LogStash::Plugin do
76
76
  .with(plugin_name)
77
77
  .and_return(double(:version => Gem::Version.new('1.0.0')))
78
78
 
79
- expect_any_instance_of(Cabin::Channel).not_to receive(:info)
79
+ expect_any_instance_of(LogStash::Logging::Logger).not_to receive(:info)
80
80
  subject.validate({})
81
81
  end
82
82
 
@@ -85,7 +85,7 @@ describe LogStash::Plugin do
85
85
  .with(plugin_name)
86
86
  .and_return(double(:version => Gem::Version.new('0.9.1')))
87
87
 
88
- expect_any_instance_of(Cabin::Channel).to receive(:info)
88
+ expect_any_instance_of(LogStash::Logging::Logger).to receive(:info)
89
89
  .with(/Using version 0.9.x/)
90
90
 
91
91
  subject.validate({})
@@ -96,7 +96,7 @@ describe LogStash::Plugin do
96
96
  .with(plugin_name)
97
97
  .and_return(double(:version => Gem::Version.new('0.1.1')))
98
98
 
99
- expect_any_instance_of(Cabin::Channel).to receive(:info)
99
+ expect_any_instance_of(LogStash::Logging::Logger).to receive(:info)
100
100
  .with(/Using version 0.1.x/)
101
101
  subject.validate({})
102
102
  end
@@ -110,7 +110,7 @@ describe LogStash::Plugin do
110
110
  .with(plugin_name)
111
111
  .and_return(double(:version => Gem::Version.new('0.1.1')))
112
112
 
113
- expect_any_instance_of(Cabin::Channel).to receive(:info)
113
+ expect_any_instance_of(LogStash::Logging::Logger).to receive(:info)
114
114
  .once
115
115
  .with(/Using version 0.1.x/)
116
116
 
@@ -119,7 +119,7 @@ describe LogStash::Plugin do
119
119
  end
120
120
 
121
121
  it "warns the user if we can't find a defined version" do
122
- expect_any_instance_of(Cabin::Channel).to receive(:warn)
122
+ expect_any_instance_of(LogStash::Logging::Logger).to receive(:warn)
123
123
  .once
124
124
  .with(/plugin doesn't have a version/)
125
125
 
@@ -128,7 +128,7 @@ describe LogStash::Plugin do
128
128
 
129
129
 
130
130
  it 'logs a warning if the plugin use the milestone option' do
131
- expect_any_instance_of(Cabin::Channel).to receive(:debug)
131
+ expect_any_instance_of(LogStash::Logging::Logger).to receive(:debug)
132
132
  .with(/stromae plugin is using the 'milestone' method/)
133
133
 
134
134
  class LogStash::Filters::Stromae < LogStash::Filters::Base
@@ -278,6 +278,7 @@ describe LogStash::Plugin do
278
278
  [LogStash::Inputs::Base, LogStash::Filters::Base, LogStash::Outputs::Base].each do |base|
279
279
  let(:plugin) do
280
280
  Class.new(base) do
281
+ #include LogStash::Util::Loggable
281
282
  config_name "testing"
282
283
 
283
284
  def register