logstash-core 5.6.5-java → 5.6.6-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 +4 -4
 - data/lib/logstash-core/logstash-core.jar +0 -0
 - data/lib/logstash-core_jars.rb +9 -9
 - data/lib/logstash/config/mixin.rb +31 -31
 - data/lib/logstash/dependency_report.rb +131 -0
 - data/lib/logstash/dependency_report_runner.rb +17 -0
 - data/spec/logstash/config/mixin_spec.rb +28 -0
 - data/spec/logstash/timestamp_spec.rb +4 -0
 - data/versions-gem-copy.yml +3 -3
 - metadata +4 -2
 
    
        checksums.yaml
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            ---
         
     | 
| 
       2 
2 
     | 
    
         
             
            SHA1:
         
     | 
| 
       3 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       4 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 3 
     | 
    
         
            +
              metadata.gz: ac3afa459e4fb90932a6222ae0cdb6e1c511c98a
         
     | 
| 
      
 4 
     | 
    
         
            +
              data.tar.gz: 781766e9a85797a32c5dd2277a51de3f5b3b11d6
         
     | 
| 
       5 
5 
     | 
    
         
             
            SHA512:
         
     | 
| 
       6 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       7 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 6 
     | 
    
         
            +
              metadata.gz: 8059e6050e85dcb936a0d66130541be7c1e5942f0f5893089098a93be0062b9d73f4f3268607fbbc8548c3520d8bb363a6aefc6dca72054eebb99f4de11475d0
         
     | 
| 
      
 7 
     | 
    
         
            +
              data.tar.gz: de2b67e382baacbdc8fcd354c27763cf3b01dc8793327f29e0c3c4f70d0d1d224e2eba95057123ca79fb0137a2d0a3ff0d12856e0bbee637f2e0adf45d586887
         
     | 
| 
         Binary file 
     | 
    
        data/lib/logstash-core_jars.rb
    CHANGED
    
    | 
         @@ -14,13 +14,13 @@ rescue LoadError 
     | 
|
| 
       14 
14 
     | 
    
         
             
            end
         
     | 
| 
       15 
15 
     | 
    
         | 
| 
       16 
16 
     | 
    
         
             
            if defined? Jars
         
     | 
| 
       17 
     | 
    
         
            -
              require_jar 
     | 
| 
       18 
     | 
    
         
            -
              require_jar 
     | 
| 
       19 
     | 
    
         
            -
              require_jar 
     | 
| 
       20 
     | 
    
         
            -
              require_jar 
     | 
| 
       21 
     | 
    
         
            -
              require_jar 
     | 
| 
       22 
     | 
    
         
            -
              require_jar 
     | 
| 
       23 
     | 
    
         
            -
              require_jar 
     | 
| 
       24 
     | 
    
         
            -
              require_jar 
     | 
| 
       25 
     | 
    
         
            -
              require_jar 
     | 
| 
      
 17 
     | 
    
         
            +
              require_jar 'org.apache.logging.log4j', 'log4j-core', '2.6.2'
         
     | 
| 
      
 18 
     | 
    
         
            +
              require_jar 'com.fasterxml.jackson.core', 'jackson-databind', '2.9.1'
         
     | 
| 
      
 19 
     | 
    
         
            +
              require_jar 'org.apache.logging.log4j', 'log4j-api', '2.6.2'
         
     | 
| 
      
 20 
     | 
    
         
            +
              require_jar 'org.slf4j', 'slf4j-api', '1.7.21'
         
     | 
| 
      
 21 
     | 
    
         
            +
              require_jar 'com.fasterxml.jackson.core', 'jackson-annotations', '2.9.1'
         
     | 
| 
      
 22 
     | 
    
         
            +
              require_jar 'org.apache.logging.log4j', 'log4j-slf4j-impl', '2.6.2'
         
     | 
| 
      
 23 
     | 
    
         
            +
              require_jar 'com.fasterxml.jackson.module', 'jackson-module-afterburner', '2.9.1'
         
     | 
| 
      
 24 
     | 
    
         
            +
              require_jar 'com.fasterxml.jackson.dataformat', 'jackson-dataformat-cbor', '2.9.1'
         
     | 
| 
      
 25 
     | 
    
         
            +
              require_jar 'com.fasterxml.jackson.core', 'jackson-core', '2.9.1'
         
     | 
| 
       26 
26 
     | 
    
         
             
            end
         
     | 
| 
         @@ -60,30 +60,6 @@ module LogStash::Config::Mixin 
     | 
|
| 
       60 
60 
     | 
    
         
             
                # store the plugin type, turns LogStash::Inputs::Base into 'input'
         
     | 
| 
       61 
61 
     | 
    
         
             
                @plugin_type = self.class.ancestors.find { |a| a.name =~ /::Base$/ }.config_name
         
     | 
| 
       62 
62 
     | 
    
         | 
| 
       63 
     | 
    
         
            -
                # warn about deprecated variable use
         
     | 
| 
       64 
     | 
    
         
            -
                params.each do |name, value|
         
     | 
| 
       65 
     | 
    
         
            -
                  opts = self.class.get_config[name]
         
     | 
| 
       66 
     | 
    
         
            -
                  if opts && opts[:deprecated]
         
     | 
| 
       67 
     | 
    
         
            -
                    extra = opts[:deprecated].is_a?(String) ? opts[:deprecated] : ""
         
     | 
| 
       68 
     | 
    
         
            -
                    extra.gsub!("%PLUGIN%", self.class.config_name)
         
     | 
| 
       69 
     | 
    
         
            -
                    self.logger.warn("You are using a deprecated config setting " +
         
     | 
| 
       70 
     | 
    
         
            -
                                 "#{name.inspect} set in #{self.class.config_name}. " +
         
     | 
| 
       71 
     | 
    
         
            -
                                 "Deprecated settings will continue to work, " +
         
     | 
| 
       72 
     | 
    
         
            -
                                 "but are scheduled for removal from logstash " +
         
     | 
| 
       73 
     | 
    
         
            -
                                 "in the future. #{extra} If you have any questions " +
         
     | 
| 
       74 
     | 
    
         
            -
                                 "about this, please visit the #logstash channel " +
         
     | 
| 
       75 
     | 
    
         
            -
                                 "on freenode irc.", :name => name, :plugin => self)
         
     | 
| 
       76 
     | 
    
         
            -
             
     | 
| 
       77 
     | 
    
         
            -
                  end
         
     | 
| 
       78 
     | 
    
         
            -
                  if opts && opts[:obsolete]
         
     | 
| 
       79 
     | 
    
         
            -
                    extra = opts[:obsolete].is_a?(String) ? opts[:obsolete] : ""
         
     | 
| 
       80 
     | 
    
         
            -
                    extra.gsub!("%PLUGIN%", self.class.config_name)
         
     | 
| 
       81 
     | 
    
         
            -
                    raise LogStash::ConfigurationError,
         
     | 
| 
       82 
     | 
    
         
            -
                      I18n.t("logstash.runner.configuration.obsolete", :name => name,
         
     | 
| 
       83 
     | 
    
         
            -
                             :plugin => self.class.config_name, :extra => extra)
         
     | 
| 
       84 
     | 
    
         
            -
                  end
         
     | 
| 
       85 
     | 
    
         
            -
                end
         
     | 
| 
       86 
     | 
    
         
            -
             
     | 
| 
       87 
63 
     | 
    
         
             
                # Set defaults from 'config :foo, :default => somevalue'
         
     | 
| 
       88 
64 
     | 
    
         
             
                self.class.get_config.each do |name, opts|
         
     | 
| 
       89 
65 
     | 
    
         
             
                  next if params.include?(name.to_s)
         
     | 
| 
         @@ -109,17 +85,46 @@ module LogStash::Config::Mixin 
     | 
|
| 
       109 
85 
     | 
    
         
             
                  params[name.to_s] = deep_replace(value)
         
     | 
| 
       110 
86 
     | 
    
         
             
                end
         
     | 
| 
       111 
87 
     | 
    
         | 
| 
       112 
     | 
    
         
            -
             
     | 
| 
       113 
88 
     | 
    
         
             
                if !self.class.validate(params)
         
     | 
| 
       114 
89 
     | 
    
         
             
                  raise LogStash::ConfigurationError,
         
     | 
| 
       115 
90 
     | 
    
         
             
                    I18n.t("logstash.runner.configuration.invalid_plugin_settings")
         
     | 
| 
       116 
91 
     | 
    
         
             
                end
         
     | 
| 
       117 
92 
     | 
    
         | 
| 
      
 93 
     | 
    
         
            +
                # now that we know the parameters are valid, we can obfuscate the original copy
         
     | 
| 
      
 94 
     | 
    
         
            +
                # of the parameters before storing them as an instance variable
         
     | 
| 
      
 95 
     | 
    
         
            +
                self.class.secure_params!(original_params)
         
     | 
| 
      
 96 
     | 
    
         
            +
                @original_params = original_params
         
     | 
| 
      
 97 
     | 
    
         
            +
             
     | 
| 
      
 98 
     | 
    
         
            +
                # warn about deprecated variable use
         
     | 
| 
      
 99 
     | 
    
         
            +
                original_params.each do |name, value|
         
     | 
| 
      
 100 
     | 
    
         
            +
                  opts = self.class.get_config[name]
         
     | 
| 
      
 101 
     | 
    
         
            +
                  if opts && opts[:deprecated]
         
     | 
| 
      
 102 
     | 
    
         
            +
                    extra = opts[:deprecated].is_a?(String) ? opts[:deprecated] : ""
         
     | 
| 
      
 103 
     | 
    
         
            +
                    extra.gsub!("%PLUGIN%", self.class.config_name)
         
     | 
| 
      
 104 
     | 
    
         
            +
                    self.logger.warn("You are using a deprecated config setting " +
         
     | 
| 
      
 105 
     | 
    
         
            +
                                 "#{name.inspect} set in #{self.class.config_name}. " +
         
     | 
| 
      
 106 
     | 
    
         
            +
                                 "Deprecated settings will continue to work, " +
         
     | 
| 
      
 107 
     | 
    
         
            +
                                 "but are scheduled for removal from logstash " +
         
     | 
| 
      
 108 
     | 
    
         
            +
                                 "in the future. #{extra} If you have any questions " +
         
     | 
| 
      
 109 
     | 
    
         
            +
                                 "about this, please visit the #logstash channel " +
         
     | 
| 
      
 110 
     | 
    
         
            +
                                 "on freenode irc.", :name => name, :plugin => self)
         
     | 
| 
      
 111 
     | 
    
         
            +
             
     | 
| 
      
 112 
     | 
    
         
            +
                  end
         
     | 
| 
      
 113 
     | 
    
         
            +
             
     | 
| 
      
 114 
     | 
    
         
            +
                  if opts && opts[:obsolete]
         
     | 
| 
      
 115 
     | 
    
         
            +
                    extra = opts[:obsolete].is_a?(String) ? opts[:obsolete] : ""
         
     | 
| 
      
 116 
     | 
    
         
            +
                    extra.gsub!("%PLUGIN%", self.class.config_name)
         
     | 
| 
      
 117 
     | 
    
         
            +
                    raise LogStash::ConfigurationError,
         
     | 
| 
      
 118 
     | 
    
         
            +
                      I18n.t("logstash.runner.configuration.obsolete", :name => name,
         
     | 
| 
      
 119 
     | 
    
         
            +
                             :plugin => self.class.config_name, :extra => extra)
         
     | 
| 
      
 120 
     | 
    
         
            +
                  end
         
     | 
| 
      
 121 
     | 
    
         
            +
                end
         
     | 
| 
      
 122 
     | 
    
         
            +
             
     | 
| 
       118 
123 
     | 
    
         
             
                # We remove any config options marked as obsolete,
         
     | 
| 
       119 
124 
     | 
    
         
             
                # no code should be associated to them and their values should not bleed
         
     | 
| 
       120 
125 
     | 
    
         
             
                # to the plugin context.
         
     | 
| 
       121 
126 
     | 
    
         
             
                #
         
     | 
| 
       122 
     | 
    
         
            -
                # This need to be done after fetching the options from the parents  
     | 
| 
      
 127 
     | 
    
         
            +
                # This need to be done after fetching the options from the parents class
         
     | 
| 
       123 
128 
     | 
    
         
             
                params.reject! do |name, value|
         
     | 
| 
       124 
129 
     | 
    
         
             
                  opts = self.class.get_config[name]
         
     | 
| 
       125 
130 
     | 
    
         
             
                  opts.include?(:obsolete)
         
     | 
| 
         @@ -134,11 +139,6 @@ module LogStash::Config::Mixin 
     | 
|
| 
       134 
139 
     | 
    
         
             
                  instance_variable_set("@#{key}", value)
         
     | 
| 
       135 
140 
     | 
    
         
             
                end
         
     | 
| 
       136 
141 
     | 
    
         | 
| 
       137 
     | 
    
         
            -
                # now that we know the parameters are valid, we can obfuscate the original copy
         
     | 
| 
       138 
     | 
    
         
            -
                # of the parameters before storing them as an instance variable
         
     | 
| 
       139 
     | 
    
         
            -
                self.class.secure_params!(original_params)
         
     | 
| 
       140 
     | 
    
         
            -
                @original_params = original_params
         
     | 
| 
       141 
     | 
    
         
            -
             
     | 
| 
       142 
142 
     | 
    
         
             
                @config = params
         
     | 
| 
       143 
143 
     | 
    
         
             
              end # def config_init
         
     | 
| 
       144 
144 
     | 
    
         | 
| 
         @@ -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
         
     | 
| 
         @@ -3,6 +3,34 @@ require "spec_helper" 
     | 
|
| 
       3 
3 
     | 
    
         
             
            require "logstash/config/mixin"
         
     | 
| 
       4 
4 
     | 
    
         | 
| 
       5 
5 
     | 
    
         
             
            describe LogStash::Config::Mixin do
         
     | 
| 
      
 6 
     | 
    
         
            +
              context "when encountering a deprecated option" do
         
     | 
| 
      
 7 
     | 
    
         
            +
                let(:password) { "sekret" }
         
     | 
| 
      
 8 
     | 
    
         
            +
                let(:double_logger) { double("logger").as_null_object }
         
     | 
| 
      
 9 
     | 
    
         
            +
             
     | 
| 
      
 10 
     | 
    
         
            +
                subject do 
         
     | 
| 
      
 11 
     | 
    
         
            +
                  Class.new(LogStash::Filters::Base) do
         
     | 
| 
      
 12 
     | 
    
         
            +
                    include LogStash::Config::Mixin
         
     | 
| 
      
 13 
     | 
    
         
            +
                    config_name "test_deprecated"
         
     | 
| 
      
 14 
     | 
    
         
            +
                    milestone 1
         
     | 
| 
      
 15 
     | 
    
         
            +
                    config :old_opt, :validate => :string, :deprecated => "this is old school"
         
     | 
| 
      
 16 
     | 
    
         
            +
                    config :password, :validate => :password
         
     | 
| 
      
 17 
     | 
    
         
            +
                  end.new({
         
     | 
| 
      
 18 
     | 
    
         
            +
                    "old_opt" => "whut",
         
     | 
| 
      
 19 
     | 
    
         
            +
                    "password" => password
         
     | 
| 
      
 20 
     | 
    
         
            +
                  })
         
     | 
| 
      
 21 
     | 
    
         
            +
                end
         
     | 
| 
      
 22 
     | 
    
         
            +
             
     | 
| 
      
 23 
     | 
    
         
            +
                it "should not log the password" do
         
     | 
| 
      
 24 
     | 
    
         
            +
                  expect(LogStash::Logging::Logger).to receive(:new).with(anything).and_return(double_logger)
         
     | 
| 
      
 25 
     | 
    
         
            +
                  expect(double_logger).to receive(:warn) do |arg1,arg2|
         
     | 
| 
      
 26 
     | 
    
         
            +
                      message = 'You are using a deprecated config setting "old_opt" set in test_deprecated. Deprecated settings will continue to work, but are scheduled for removal from logstash in the future. this is old school If you have any questions about this, please visit the #logstash channel on freenode irc.'
         
     | 
| 
      
 27 
     | 
    
         
            +
                      expect(arg1).to eq(message)
         
     | 
| 
      
 28 
     | 
    
         
            +
                      expect(arg2[:plugin].to_s).to include('"password"=><password>')
         
     | 
| 
      
 29 
     | 
    
         
            +
                    end.once
         
     | 
| 
      
 30 
     | 
    
         
            +
                  subject
         
     | 
| 
      
 31 
     | 
    
         
            +
                end
         
     | 
| 
      
 32 
     | 
    
         
            +
              end
         
     | 
| 
      
 33 
     | 
    
         
            +
             
     | 
| 
       6 
34 
     | 
    
         
             
              context "when validating :bytes successfully" do
         
     | 
| 
       7 
35 
     | 
    
         
             
                subject do
         
     | 
| 
       8 
36 
     | 
    
         
             
                  local_num_bytes = num_bytes # needs to be locally scoped :(
         
     | 
| 
         @@ -30,6 +30,10 @@ describe LogStash::Timestamp do 
     | 
|
| 
       30 
30 
     | 
    
         
             
                  expect{LogStash::Timestamp.new("foobar")}.to raise_error
         
     | 
| 
       31 
31 
     | 
    
         
             
                end
         
     | 
| 
       32 
32 
     | 
    
         | 
| 
      
 33 
     | 
    
         
            +
                it "should copy itself correctly on clone and dup" do
         
     | 
| 
      
 34 
     | 
    
         
            +
                  expect(LogStash::Timestamp.now.clone.to_java).not_to be_nil
         
     | 
| 
      
 35 
     | 
    
         
            +
                  expect(LogStash::Timestamp.now.dup.to_java).not_to be_nil
         
     | 
| 
      
 36 
     | 
    
         
            +
                end
         
     | 
| 
       33 
37 
     | 
    
         
             
              end
         
     | 
| 
       34 
38 
     | 
    
         | 
| 
       35 
39 
     | 
    
         
             
            end
         
     | 
    
        data/versions-gem-copy.yml
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            ---
         
     | 
| 
       2 
     | 
    
         
            -
            logstash: 5.6. 
     | 
| 
       3 
     | 
    
         
            -
            logstash-core: 5.6. 
     | 
| 
       4 
     | 
    
         
            -
            logstash-core-plugin-api: 2.1. 
     | 
| 
      
 2 
     | 
    
         
            +
            logstash: 5.6.6
         
     | 
| 
      
 3 
     | 
    
         
            +
            logstash-core: 5.6.6
         
     | 
| 
      
 4 
     | 
    
         
            +
            logstash-core-plugin-api: 2.1.29
         
     | 
| 
       5 
5 
     | 
    
         | 
| 
       6 
6 
     | 
    
         
             
            # Note: this file is copied to the root of logstash-core because its gemspec needs it when
         
     | 
| 
       7 
7 
     | 
    
         
             
            #       bundler evaluates the gemspec via bin/logstash
         
     | 
    
        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: 5.6. 
     | 
| 
      
 4 
     | 
    
         
            +
              version: 5.6.6
         
     | 
| 
       5 
5 
     | 
    
         
             
            platform: java
         
     | 
| 
       6 
6 
     | 
    
         
             
            authors:
         
     | 
| 
       7 
7 
     | 
    
         
             
            - Elastic
         
     | 
| 
       8 
8 
     | 
    
         
             
            autorequire:
         
     | 
| 
       9 
9 
     | 
    
         
             
            bindir: bin
         
     | 
| 
       10 
10 
     | 
    
         
             
            cert_chain: []
         
     | 
| 
       11 
     | 
    
         
            -
            date:  
     | 
| 
      
 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
         
     | 
| 
         @@ -373,6 +373,8 @@ files: 
     | 
|
| 
       373 
373 
     | 
    
         
             
            - lib/logstash/config/modules_common.rb
         
     | 
| 
       374 
374 
     | 
    
         
             
            - lib/logstash/config/source/modules.rb
         
     | 
| 
       375 
375 
     | 
    
         
             
            - lib/logstash/config/string_escape.rb
         
     | 
| 
      
 376 
     | 
    
         
            +
            - lib/logstash/dependency_report.rb
         
     | 
| 
      
 377 
     | 
    
         
            +
            - lib/logstash/dependency_report_runner.rb
         
     | 
| 
       376 
378 
     | 
    
         
             
            - lib/logstash/elasticsearch_client.rb
         
     | 
| 
       377 
379 
     | 
    
         
             
            - lib/logstash/environment.rb
         
     | 
| 
       378 
380 
     | 
    
         
             
            - lib/logstash/errors.rb
         
     |