logstash-core 6.1.1-java → 6.1.2-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: 7552e565f3c3c48330156cbbe377242f94224743eb8fbe7570da6d9dcd0a2de0
4
- data.tar.gz: 52ca8909ad7532ae6b835e291925b88637b7da30a857c97f36e28fc089372334
3
+ metadata.gz: b00c8adeb8f8cfd17b847fbbeed77d2367ae24573d495ff2e23f08f02a7a7178
4
+ data.tar.gz: 121f070df4f77d854f6c9839e7adb4cbd8064f32053d24e93ef4c0694242f423
5
5
  SHA512:
6
- metadata.gz: fe8ab5dcfcb6e4a88ccfa4b1b879c509d1f2152cbd27d02973bfe0d94da5d61641d45d4452d827e17e6669608ebd0491bfb98cbd2e5871dc258d333de903c522
7
- data.tar.gz: 5bd7b2485ec5ce44a7cf8e601d8171c498e55c341a1cbf3384fa85f71f68e0df8a9d916a42dfd90e14cdccf5d921e9fd6049a5aa45d7727fde771d1500f3fedc
6
+ metadata.gz: 10a10a11213c8132deb3a3a87b1c1de3e383b642c3b8bca2280d85936010808fcf2d748565bb8bb43f4c67c82a4641d797709c165b606148e723805084069620
7
+ data.tar.gz: a2f39c7e42131ba604af2862a1046d33f1ed80e3284a9fcd54c749c7916c067905217505412c1e42976a4fdb5fca32bd65d8949f8b93920e74ed049b2cf1a771
@@ -15,14 +15,14 @@ rescue LoadError
15
15
  end
16
16
 
17
17
  if defined? Jars
18
- require_jar( 'org.apache.logging.log4j', 'log4j-core', '2.6.2' )
19
- require_jar( 'com.fasterxml.jackson.core', 'jackson-databind', '2.9.1' )
20
- require_jar( 'org.apache.logging.log4j', 'log4j-api', '2.6.2' )
21
- require_jar( 'org.slf4j', 'slf4j-api', '1.7.21' )
22
- require_jar( 'com.fasterxml.jackson.core', 'jackson-annotations', '2.9.1' )
23
- require_jar( 'org.apache.logging.log4j', 'log4j-slf4j-impl', '2.6.2' )
24
- require_jar( 'com.fasterxml.jackson.dataformat', 'jackson-dataformat-cbor', '2.9.1' )
25
- require_jar( 'org.codehaus.janino', 'commons-compiler', '3.0.7' )
26
- require_jar( 'com.fasterxml.jackson.core', 'jackson-core', '2.9.1' )
27
- require_jar( 'org.codehaus.janino', 'janino', '3.0.7' )
18
+ require_jar 'org.apache.logging.log4j', 'log4j-core', '2.6.2'
19
+ require_jar 'com.fasterxml.jackson.core', 'jackson-databind', '2.9.1'
20
+ require_jar 'org.apache.logging.log4j', 'log4j-api', '2.6.2'
21
+ require_jar 'org.slf4j', 'slf4j-api', '1.7.21'
22
+ require_jar 'com.fasterxml.jackson.core', 'jackson-annotations', '2.9.1'
23
+ require_jar 'org.apache.logging.log4j', 'log4j-slf4j-impl', '2.6.2'
24
+ require_jar 'com.fasterxml.jackson.dataformat', 'jackson-dataformat-cbor', '2.9.1'
25
+ require_jar 'org.codehaus.janino', 'commons-compiler', '3.0.7'
26
+ require_jar 'com.fasterxml.jackson.core', 'jackson-core', '2.9.1'
27
+ require_jar 'org.codehaus.janino', 'janino', '3.0.7'
28
28
  end
@@ -262,7 +262,10 @@ module LogStashCompilerLSCLGrammar; module LogStash; module Compiler; module LSC
262
262
  java_f_branch = f_branch && javaify_sexpr(f_branch)
263
263
 
264
264
  if java_t_branch || java_f_branch
265
- jdsl.iIf(condition, java_t_branch || jdsl.noop, java_f_branch || jdsl.noop)
265
+ # We use the condition as the source with metadata because it hashes correctly
266
+ # It's hard to use the 'real' source due to the re-branching from if / elsif into if/else only
267
+ # branches. We should come back and improve this at some point if that makes a difference
268
+ jdsl.iIf(condition.source_with_metadata, condition, java_t_branch || jdsl.noop, java_f_branch || jdsl.noop)
266
269
  else
267
270
  jdsl.noop()
268
271
  end
@@ -297,7 +300,8 @@ module LogStashCompilerLSCLGrammar; module LogStash; module Compiler; module LSC
297
300
 
298
301
  all_elements = [first_element, *rest_elements]
299
302
 
300
- if all_elements.size == 1
303
+
304
+ res = if all_elements.size == 1
301
305
  elem = all_elements.first
302
306
  if elem.is_a?(Selector)
303
307
  eventValue = elem.recursive_select(SelectorElement).first.expr
@@ -310,6 +314,7 @@ module LogStashCompilerLSCLGrammar; module LogStash; module Compiler; module LSC
310
314
  else
311
315
  join_conditions(all_elements)
312
316
  end
317
+ res
313
318
  end
314
319
 
315
320
  def precedence(op)
@@ -339,13 +344,13 @@ module LogStashCompilerLSCLGrammar; module LogStash; module Compiler; module LSC
339
344
 
340
345
  case op
341
346
  when :and
342
- return jdsl.eAnd(left, right);
347
+ return jdsl.eAnd(source_meta, left, right);
343
348
  when :nand
344
- return jdsl.eNand(left, right);
349
+ return jdsl.eNand(source_meta, left, right);
345
350
  when :or
346
- return jdsl.eOr(left, right);
351
+ return jdsl.eOr(source_meta, left, right);
347
352
  when :xor
348
- return jdsl.eXor(left, right);
353
+ return jdsl.eXor(source_meta, left, right);
349
354
  else
350
355
  raise "Unknown op #{jop}"
351
356
  end
@@ -394,7 +399,7 @@ module LogStashCompilerLSCLGrammar; module LogStash; module Compiler; module LSC
394
399
  while elem = stack.pop
395
400
  if elem.is_a?(::Method)
396
401
  right, left = working_stack.pop, working_stack.pop
397
- working_stack << elem.call(left, right)
402
+ working_stack << elem.call(source_meta, left, right)
398
403
  else
399
404
  working_stack << elem
400
405
  end
@@ -472,13 +477,13 @@ module LogStashCompilerLSCLGrammar; module LogStash; module Compiler; module LSC
472
477
  # Handle string rvalues, they just get turned into regexps
473
478
  # Maybe we really shouldn't handle these anymore...
474
479
  if regexp.class == org.logstash.config.ir.expression.ValueExpression
475
- regexp = jdsl.eRegex(regexp.get)
480
+ regexp = jdsl.eRegex(source_meta, regexp.get)
476
481
  end
477
482
 
478
483
  raise "Expected a selector in #{text_value}!" unless selector
479
484
  raise "Expected a regexp in #{text_value}!" unless regexp
480
485
 
481
- operator_method.call(source_meta, selector, regexp);
486
+ operator_method.call(source_meta, selector, regexp)
482
487
  end
483
488
  end
484
489
 
@@ -512,9 +517,9 @@ module LogStashCompilerLSCLGrammar; module LogStash; module Compiler; module LSC
512
517
 
513
518
  def expr
514
519
  if self.text_value == '!~'
515
- jdsl.method(:eRegexNeq)
520
+ jdsl.java_method(:eRegexNeq, [org.logstash.common.SourceWithMetadata, org.logstash.config.ir.expression.Expression, org.logstash.config.ir.expression.ValueExpression])
516
521
  elsif self.text_value == '=~'
517
- jdsl.method(:eRegexEq)
522
+ jdsl.java_method(:eRegexEq, [org.logstash.common.SourceWithMetadata, org.logstash.config.ir.expression.Expression, org.logstash.config.ir.expression.ValueExpression])
518
523
  else
519
524
  raise "Unknown regex operator #{self.text_value}"
520
525
  end
@@ -49,9 +49,10 @@ module LogStashCompilerLSCLGrammar; module LogStash; module Compiler; module LSC
49
49
  org.logstash.config.ir.DSL
50
50
  end
51
51
 
52
- AND_METHOD = jdsl.method(:eAnd)
53
- NAND_METHOD = jdsl.method(:eNand)
54
- OR_METHOD = jdsl.method(:eOr)
55
- XOR_METHOD = jdsl.method(:eXor)
52
+ BOOLEAN_DSL_METHOD_SIGNATURE = [org.logstash.common.SourceWithMetadata, org.logstash.config.ir.expression.Expression, org.logstash.config.ir.expression.Expression]
53
+ AND_METHOD = jdsl.java_method(:eAnd, BOOLEAN_DSL_METHOD_SIGNATURE)
54
+ NAND_METHOD = jdsl.java_method(:eNand, BOOLEAN_DSL_METHOD_SIGNATURE)
55
+ OR_METHOD = jdsl.java_method(:eOr, BOOLEAN_DSL_METHOD_SIGNATURE)
56
+ XOR_METHOD = jdsl.java_method(:eXor, BOOLEAN_DSL_METHOD_SIGNATURE)
56
57
  end
57
58
  end; end; end; end; end
@@ -0,0 +1,131 @@
1
+ # encoding: utf-8
2
+ Thread.abort_on_exception = true
3
+ Encoding.default_external = Encoding::UTF_8
4
+ $DEBUGLIST = (ENV["DEBUG"] || "").split(",")
5
+
6
+ require "clamp"
7
+ require "logstash/namespace"
8
+ require "rubygems"
9
+ require "jars/gemspec_artifacts"
10
+
11
+ class LogStash::DependencyReport < Clamp::Command
12
+ option [ "--csv" ], "OUTPUT_PATH", "The path to write the dependency report in csv format.",
13
+ :required => true, :attribute_name => :output_path
14
+
15
+ def execute
16
+ require "csv"
17
+ CSV.open(output_path, "wb", :headers => [ "name", "version", "url", "license" ], :write_headers => true) do |csv|
18
+ puts "Finding gem dependencies"
19
+ gems.each { |d| csv << d }
20
+ puts "Finding java/jar dependencies"
21
+ jars.each { |d| csv << d }
22
+ end
23
+
24
+ # Copy in COPYING.csv which is a best-effort, hand-maintained file of dependency license information.
25
+ File.open(output_path, "a+") do |file|
26
+ extra = File.join(File.dirname(__FILE__), "..", "..", "..", "COPYING.csv")
27
+ file.write(IO.read(extra))
28
+ end
29
+ nil
30
+ end
31
+
32
+ def gems
33
+ # @mgreau requested `logstash-*` dependencies be removed from this list:
34
+ # https://github.com/elastic/logstash/pull/8837#issuecomment-351859433
35
+ Gem::Specification.reject { |g| g.name =~ /^logstash-/ }.collect do |gem|
36
+ licenses = ("UNKNOWN" if gem.licenses.empty?) || (gem.licenses.map { |l| SPDX.map(l) }.join("|") if !gem.licenses.empty?)
37
+ [gem.name, gem.version.to_s, gem.homepage, licenses]
38
+ end
39
+ end
40
+
41
+ def jars
42
+ jars = []
43
+ # For any gems with jar dependencies,
44
+ # Look at META-INF/MANIFEST.MF for any jars in each gem
45
+ # Note any important details.
46
+ Gem::Specification.select { |g| g.requirements && g.requirements.any? { |r| r =~ /^jar / } }.collect do |gem|
47
+
48
+ # Where is the gem installed
49
+ root = gem.full_gem_path
50
+
51
+ Dir.glob(File.join(root, "**", "*.jar")).collect do |path|
52
+ jar = java.util.jar.JarFile.new(path)
53
+ manifest = jar.getManifest
54
+
55
+ pom_entries = jar.entries.select { |t| t.getName.start_with?("META-INF/maven/") && t.getName.end_with?("/pom.properties") }
56
+
57
+ # Some jar files have multiple maven pom.properties files. It is unclear how to know what is correct?
58
+ # TODO(sissel): Maybe we should use all pom.properties files? None of the pom.properties/pom.xml files have license information, though.
59
+ # TODO(sissel): In some cases, there are META-INF/COPYING and
60
+ # META-INF/NOTICE.txt files? Can we use these somehow? There is no
61
+ # common syntax for parsing these files, though...
62
+ pom_map = if pom_entries.count == 1
63
+ pom_in = jar.getInputStream(pom_entries.first)
64
+ pom_content = pom_in.available.times.collect { pom_in.read }.pack("C*")
65
+ # Split non-comment lines by `key=val` into a map { key => val }
66
+ Hash[pom_content.split(/\r?\n/).grep(/^[^#]/).map { |line| line.split("=", 2) }]
67
+ else
68
+ {}
69
+ end
70
+
71
+ next if manifest.nil?
72
+ # convert manifest attributes to a map w/ keys .to_s
73
+ # without this, the attribute keys will be `Object#inspect` values
74
+ # like #<Java::JavaUtilJar::Attributes::Name0xabcdef0>
75
+ attributes = Hash[manifest.getMainAttributes.map { |k,v| [k.to_s, v] }]
76
+
77
+ begin
78
+ # Prefer the maven/pom groupId when it is available.
79
+ artifact = pom_map.fetch("artifactId", attributes.fetch("Implementation-Title"))
80
+ group = pom_map.fetch("groupId", attributes.fetch("Implementation-Vendor-Id"))
81
+ jars << [
82
+ group + ":" + artifact,
83
+ attributes.fetch("Bundle-Version"),
84
+ attributes.fetch("Bundle-DocURL"),
85
+ SPDX.map(attributes.fetch("Bundle-License")),
86
+ ]
87
+ rescue KeyError => e
88
+ # The jar is missing a required manifest field, it may not have any useful manifest data.
89
+ # Ignore it and move on.
90
+ end
91
+ end
92
+ end
93
+ jars.uniq.sort
94
+ end
95
+
96
+ module SPDX
97
+ # This is a non-exhaustive, best effort list of licenses as they map to SPDX identifiers.
98
+ ALIASES = {
99
+ "Apache-2.0" => [
100
+ "Apache 2",
101
+ "apache-2.0",
102
+ "Apache 2.0",
103
+ "Apache License (2.0)",
104
+ "Apache License 2.0",
105
+ "https://www.apache.org/licenses/LICENSE-2.0.txt",
106
+ "http://www.apache.org/licenses/LICENSE-2.0.txt",
107
+ ],
108
+ "Artistic-2.0" => [
109
+ "Artistic 2.0"
110
+ ],
111
+ "BSD-2-Clause" => [
112
+ "2-clause BSDL",
113
+ "2-clause"
114
+ ],
115
+ "GPL-2.0" => [
116
+ "GPL-2"
117
+ ]
118
+ }
119
+
120
+ # Get a map of name => spdx
121
+ MAP_APACHE2 = Hash[ALIASES.map { |spdx,aliases| aliases.map { |value| [value, spdx] } }[0]]
122
+ MAP_ARTISTIC2 = Hash[ALIASES.map { |spdx,aliases| aliases.map { |value| [value, spdx] } }[1]]
123
+ MAP_BSD = Hash[ALIASES.map { |spdx,aliases| aliases.map { |value| [value, spdx] } }[2]]
124
+ MAP_GPL2 = Hash[ALIASES.map { |spdx,aliases| aliases.map { |value| [value, spdx] } }[3]]
125
+
126
+ module_function
127
+ def map(value)
128
+ MAP_APACHE2[value] || MAP_ARTISTIC2[value] || MAP_BSD[value] || MAP_GPL2[value] || value
129
+ end
130
+ end
131
+ end
@@ -0,0 +1,17 @@
1
+ require_relative "../../../lib/bootstrap/environment"
2
+
3
+ if $0 == __FILE__
4
+ begin
5
+ LogStash::Bundler.setup!({:without => [:build, :development]})
6
+ rescue => Bundler::GemfileNotFound
7
+ $stderr.puts("No Gemfile found. Maybe you need to run `rake artifact:tar`?")
8
+ raise
9
+ end
10
+
11
+ require "logstash/namespace"
12
+ require_relative "../../../lib/bootstrap/patches/jar_dependencies"
13
+ require "logstash/dependency_report"
14
+
15
+ exit_status = LogStash::DependencyReport.run
16
+ exit(exit_status || 0)
17
+ end
@@ -8,6 +8,10 @@ describe LogStash::Compiler do
8
8
  Java::OrgLogstashConfigIr::DSL
9
9
  end
10
10
 
11
+ def rand_meta
12
+ org.logstash.common.SourceWithMetadata.new("test", SecureRandom.uuid, 1, 1, SecureRandom.uuid)
13
+ end
14
+
11
15
  let(:source_protocol) { "test_proto" }
12
16
 
13
17
  let(:settings) { mock_settings({}) }
@@ -173,7 +177,7 @@ describe LogStash::Compiler do
173
177
  let(:plugin_source) { "generator {}" }
174
178
 
175
179
  it "should contain the plugin" do
176
- expect(c_plugin).to ir_eql(j.iPlugin(INPUT, "generator"))
180
+ expect(c_plugin).to ir_eql(j.iPlugin(rand_meta, INPUT, "generator"))
177
181
  end
178
182
  end
179
183
 
@@ -190,7 +194,7 @@ describe LogStash::Compiler do
190
194
  end
191
195
 
192
196
  it "should contain the plugin" do
193
- expect(c_plugin).to ir_eql(j.iPlugin(INPUT, "generator", expected_plugin_args))
197
+ expect(c_plugin).to ir_eql(j.iPlugin(rand_meta, INPUT, "generator", expected_plugin_args))
194
198
  end
195
199
  end
196
200
 
@@ -203,7 +207,7 @@ describe LogStash::Compiler do
203
207
  end
204
208
 
205
209
  it "should contain the plugin" do
206
- expect(c_plugin).to ir_eql(j.iPlugin(INPUT, "generator", expected_plugin_args))
210
+ expect(c_plugin).to ir_eql(j.iPlugin(rand_meta, INPUT, "generator", expected_plugin_args))
207
211
  end
208
212
  end
209
213
 
@@ -216,7 +220,7 @@ describe LogStash::Compiler do
216
220
  end
217
221
 
218
222
  it "should contain the plugin" do
219
- expect(c_plugin).to ir_eql(j.iPlugin(INPUT, "generator", expected_plugin_args))
223
+ expect(c_plugin).to ir_eql(j.iPlugin(rand_meta, INPUT, "generator", expected_plugin_args))
220
224
  end
221
225
  end
222
226
 
@@ -245,7 +249,7 @@ describe LogStash::Compiler do
245
249
  end
246
250
 
247
251
  it "should merge the contents of the individual directives" do
248
- expect(c_plugin).to ir_eql(j.iPlugin(FILTER, "grok", expected_plugin_args))
252
+ expect(c_plugin).to ir_eql(j.iPlugin(rand_meta, FILTER, "grok", expected_plugin_args))
249
253
  end
250
254
 
251
255
  describe "a filter plugin that has nested Hash directives" do
@@ -300,7 +304,7 @@ describe LogStash::Compiler do
300
304
  end
301
305
 
302
306
  it "should produce a nested ::Hash object" do
303
- expect(c_plugin).to ir_eql(j.iPlugin(FILTER, "matryoshka", expected_plugin_args))
307
+ expect(c_plugin).to ir_eql(j.iPlugin(rand_meta, FILTER, "matryoshka", expected_plugin_args))
304
308
  end
305
309
  end
306
310
  end
@@ -313,7 +317,7 @@ describe LogStash::Compiler do
313
317
  let(:source) { "input { generator {} }" }
314
318
 
315
319
  it "should contain the single input" do
316
- expect(input).to ir_eql(j.iPlugin(INPUT, "generator"))
320
+ expect(input).to ir_eql(j.iPlugin(rand_meta, INPUT, "generator"))
317
321
  end
318
322
 
319
323
  it_should_behave_like("component source_with_metadata") do
@@ -326,8 +330,8 @@ describe LogStash::Compiler do
326
330
 
327
331
  it "should contain both inputs" do
328
332
  expect(input).to ir_eql(j.iComposeParallel(
329
- j.iPlugin(INPUT, "generator", {"count" => 1}),
330
- j.iPlugin(INPUT, "generator", {"count" => 2})
333
+ j.iPlugin(rand_meta, INPUT, "generator", {"count" => 1}),
334
+ j.iPlugin(rand_meta, INPUT, "generator", {"count" => 2})
331
335
  ))
332
336
  end
333
337
  end
@@ -351,7 +355,7 @@ describe LogStash::Compiler do
351
355
  let (:compiled_section) { compiled[section] }
352
356
 
353
357
  def splugin(*args)
354
- j.iPlugin(section_name_enum, *args)
358
+ j.iPlugin(rand_meta, section_name_enum, *args)
355
359
  end
356
360
 
357
361
  def compose(*statements)
@@ -635,6 +639,7 @@ describe LogStash::Compiler do
635
639
 
636
640
  it "should compile correctly" do
637
641
  expect(compiled_section).to ir_eql(j.iIf(
642
+ rand_meta,
638
643
  j.eEq(j.eEventValue("[foo]"), j.eEventValue("[bar]")),
639
644
  splugin("grok")
640
645
  )
@@ -647,6 +652,7 @@ describe LogStash::Compiler do
647
652
 
648
653
  it "should compile correctly" do
649
654
  expect(compiled_section).to ir_eql(j.iIf(
655
+ rand_meta,
650
656
  j.eEq(j.eEventValue("[foo]"), j.eEventValue("[bar]")),
651
657
  j.noop,
652
658
  splugin("fplugin"),
@@ -660,6 +666,7 @@ describe LogStash::Compiler do
660
666
 
661
667
  it "should compile correctly" do
662
668
  expect(compiled_section).to ir_eql(j.iIf(
669
+ rand_meta,
663
670
  j.eEq(j.eEventValue("[foo]"), j.eEventValue("[bar]")),
664
671
  j.noop,
665
672
  j.noop
@@ -673,6 +680,7 @@ describe LogStash::Compiler do
673
680
 
674
681
  it "should compile correctly" do
675
682
  expect(compiled_section).to ir_eql(j.iIf(
683
+ rand_meta,
676
684
  j.eEq(j.eEventValue("[foo]"), j.eEventValue("[bar]")),
677
685
  splugin("tplugin"),
678
686
  splugin("fplugin")
@@ -686,9 +694,11 @@ describe LogStash::Compiler do
686
694
 
687
695
  it "should compile correctly" do
688
696
  expect(compiled_section).to ir_eql(j.iIf(
697
+ rand_meta,
689
698
  j.eEq(j.eEventValue("[foo]"), j.eEventValue("[bar]")),
690
699
  splugin("tplugin"),
691
700
  j.iIf(
701
+ rand_meta,
692
702
  j.eEq(j.eEventValue("[bar]"), j.eEventValue("[baz]")),
693
703
  splugin("eifplugin"),
694
704
  splugin("fplugin")
@@ -712,12 +722,15 @@ describe LogStash::Compiler do
712
722
 
713
723
  it "should compile correctly" do
714
724
  expect(compiled_section).to ir_eql(j.iIf(
725
+ rand_meta,
715
726
  j.eEq(j.eEventValue("[foo]"), j.eEventValue("[bar]")),
716
727
  splugin("tplugin"),
717
728
  j.iIf(
729
+ rand_meta,
718
730
  j.eEq(j.eEventValue("[bar]"), j.eEventValue("[baz]")),
719
731
  splugin("eifplugin"),
720
732
  j.iIf(
733
+ rand_meta,
721
734
  j.eEq(j.eEventValue("[baz]"), j.eEventValue("[bot]")),
722
735
  splugin("eeifplugin"),
723
736
  splugin("fplugin")
@@ -744,15 +757,18 @@ describe LogStash::Compiler do
744
757
 
745
758
  it "should compile correctly" do
746
759
  expect(compiled_section).to ir_eql(j.iIf(
760
+ rand_meta,
747
761
  j.eEq(j.eEventValue("[foo]"), j.eEventValue("[bar]")),
748
- j.iIf(j.eEq(j.eEventValue("[bar]"), j.eEventValue("[baz]")),
762
+ j.iIf(rand_meta, j.eEq(j.eEventValue("[bar]"), j.eEventValue("[baz]")),
749
763
  splugin("aplugin"),
750
764
  j.noop
751
765
  ),
752
766
  j.iIf(
767
+ rand_meta,
753
768
  j.eEq(j.eEventValue("[bar]"), j.eEventValue("[baz]")),
754
769
  splugin("bplugin"),
755
770
  j.iIf(
771
+ rand_meta,
756
772
  j.eEq(j.eEventValue("[baz]"), j.eEventValue("[bot]")),
757
773
  splugin("cplugin"),
758
774
  splugin("dplugin")
@@ -773,7 +789,7 @@ describe LogStash::Compiler do
773
789
  let(:source) { "input { } filter { grok {} } output { }" }
774
790
 
775
791
  it "should contain the single filter" do
776
- expect(filter).to ir_eql(j.iPlugin(FILTER, "grok"))
792
+ expect(filter).to ir_eql(j.iPlugin(rand_meta, FILTER, "grok"))
777
793
  end
778
794
 
779
795
  it_should_behave_like("component source_with_metadata") do
@@ -791,7 +807,7 @@ describe LogStash::Compiler do
791
807
  let(:source) { "input { } output { stdout {} }" }
792
808
 
793
809
  it "should contain the single input" do
794
- expect(output).to ir_eql(j.iPlugin(OUTPUT, "stdout"))
810
+ expect(output).to ir_eql(j.iPlugin(rand_meta, OUTPUT, "stdout"))
795
811
  end
796
812
 
797
813
  it_should_behave_like("component source_with_metadata") do
@@ -1,6 +1,6 @@
1
1
  ---
2
- logstash: 6.1.1
3
- logstash-core: 6.1.1
2
+ logstash: 6.1.2
3
+ logstash-core: 6.1.2
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
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.1.1
4
+ version: 6.1.2
5
5
  platform: java
6
6
  authors:
7
7
  - Elastic
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-12-17 00:00:00.000000000 Z
11
+ date: 2018-01-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  requirement: !ruby/object:Gem::Requirement
@@ -387,6 +387,8 @@ files:
387
387
  - lib/logstash/config/source_loader.rb
388
388
  - lib/logstash/config/string_escape.rb
389
389
  - lib/logstash/converge_result.rb
390
+ - lib/logstash/dependency_report.rb
391
+ - lib/logstash/dependency_report_runner.rb
390
392
  - lib/logstash/elasticsearch_client.rb
391
393
  - lib/logstash/environment.rb
392
394
  - lib/logstash/errors.rb