logstash-core 6.0.1-java → 6.1.0-java
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/gemspec_jars.rb +1 -1
- data/lib/logstash-core/logstash-core.jar +0 -0
- data/lib/logstash-core/logstash-core.rb +14 -2
- data/lib/logstash-core_jars.rb +4 -2
- data/lib/logstash/agent.rb +8 -2
- data/lib/logstash/api/modules/node.rb +11 -5
- data/lib/logstash/api/modules/stats.rb +13 -7
- data/lib/logstash/compiler.rb +6 -10
- data/lib/logstash/compiler/lscl.rb +10 -1
- data/lib/logstash/compiler/lscl/helpers.rb +3 -1
- data/lib/logstash/config/mixin.rb +2 -2
- data/lib/logstash/environment.rb +1 -6
- data/lib/logstash/errors.rb +1 -1
- data/lib/logstash/event.rb +0 -2
- data/lib/logstash/filter_delegator.rb +1 -2
- data/lib/logstash/instrument/metric_type/counter.rb +1 -1
- data/lib/logstash/instrument/metric_type/gauge.rb +1 -1
- data/lib/logstash/instrument/wrapped_write_client.rb +1 -1
- data/lib/logstash/java_filter_delegator.rb +79 -0
- data/lib/logstash/java_pipeline.rb +690 -0
- data/lib/logstash/json.rb +4 -29
- data/lib/logstash/output_delegator.rb +3 -2
- data/lib/logstash/patches/bugfix_jruby_2558.rb +1 -1
- data/lib/logstash/pipeline.rb +32 -89
- data/lib/logstash/pipeline_action/create.rb +8 -2
- data/lib/logstash/pipeline_action/reload.rb +6 -1
- data/lib/logstash/pipeline_reporter.rb +2 -1
- data/lib/logstash/pipeline_settings.rb +1 -0
- data/lib/logstash/plugins/plugin_factory.rb +100 -0
- data/lib/logstash/plugins/registry.rb +18 -7
- data/lib/logstash/queue_factory.rb +3 -1
- data/lib/logstash/runner.rb +13 -56
- data/lib/logstash/settings.rb +2 -2
- data/lib/logstash/timestamp.rb +0 -1
- data/lib/logstash/util.rb +13 -21
- data/lib/logstash/util/java_version.rb +0 -1
- data/lib/logstash/util/settings_helper.rb +79 -0
- data/lib/logstash/util/{environment_variables.rb → substitution_variables.rb} +10 -8
- data/lib/logstash/util/wrapped_acked_queue.rb +17 -108
- data/lib/logstash/util/wrapped_synchronous_queue.rb +38 -178
- data/locales/en.yml +2 -0
- data/spec/conditionals_spec.rb +235 -80
- data/spec/logstash/api/modules/node_spec.rb +11 -0
- data/spec/logstash/compiler/compiler_spec.rb +28 -2
- data/spec/logstash/environment_spec.rb +0 -5
- data/spec/logstash/event_spec.rb +7 -2
- data/spec/logstash/filter_delegator_spec.rb +1 -1
- data/spec/logstash/filters/base_spec.rb +30 -28
- data/spec/logstash/instrument/wrapped_write_client_spec.rb +2 -2
- data/spec/logstash/java_filter_delegator_spec.rb +176 -0
- data/spec/logstash/java_pipeline_spec.rb +933 -0
- data/spec/logstash/json_spec.rb +27 -45
- data/spec/logstash/plugins/registry_spec.rb +7 -0
- data/spec/logstash/queue_factory_spec.rb +5 -2
- data/spec/logstash/settings_spec.rb +1 -1
- data/spec/logstash/util/java_version_spec.rb +1 -3
- data/spec/logstash/util/wrapped_synchronous_queue_spec.rb +27 -24
- data/spec/logstash/webserver_spec.rb +3 -6
- data/spec/support/helpers.rb +5 -0
- data/spec/support/pipeline/pipeline_helpers.rb +97 -0
- data/versions-gem-copy.yml +5 -2
- metadata +14 -5
- data/lib/logstash/patches/rubygems.rb +0 -38
    
        data/spec/logstash/json_spec.rb
    CHANGED
    
    | @@ -33,60 +33,42 @@ describe "LogStash::Json" do | |
| 33 33 | 
             
                ]
         | 
| 34 34 | 
             
              }
         | 
| 35 35 |  | 
| 36 | 
            -
               | 
| 37 | 
            -
             | 
| 38 | 
            -
             | 
| 39 | 
            -
             | 
| 40 | 
            -
             | 
| 41 | 
            -
                 | 
| 42 | 
            -
             | 
| 43 | 
            -
                context "jruby deserialize" do
         | 
| 44 | 
            -
                  it "should respond to load and deserialize object" do
         | 
| 45 | 
            -
                    expect(LogStash::Json.load(json_hash)).to eql(hash)
         | 
| 46 | 
            -
                  end
         | 
| 36 | 
            +
              # Former expectation in this code were removed because of https://github.com/rspec/rspec-mocks/issues/964
         | 
| 37 | 
            +
              # as soon as is fix we can re introduce them if desired, however for now the completeness of the test
         | 
| 38 | 
            +
              # is also not affected as the conversion would not work if the expectation where not meet.
         | 
| 39 | 
            +
              ###
         | 
| 40 | 
            +
              context "jruby deserialize" do
         | 
| 41 | 
            +
                it "should respond to load and deserialize object" do
         | 
| 42 | 
            +
                  expect(LogStash::Json.load(json_hash)).to eql(hash)
         | 
| 47 43 | 
             
                end
         | 
| 44 | 
            +
              end
         | 
| 48 45 |  | 
| 49 | 
            -
             | 
| 50 | 
            -
             | 
| 51 | 
            -
             | 
| 52 | 
            -
             | 
| 53 | 
            -
             | 
| 54 | 
            -
                  it "should call JrJackson::Raw.generate for Hash" do
         | 
| 55 | 
            -
                    expect(LogStash::Json.dump(hash)).to eql(json_hash)
         | 
| 56 | 
            -
                  end
         | 
| 57 | 
            -
             | 
| 58 | 
            -
                  it "should call JrJackson::Raw.generate for Array" do
         | 
| 59 | 
            -
                    expect(LogStash::Json.dump(array)).to eql(json_array)
         | 
| 60 | 
            -
                  end
         | 
| 61 | 
            -
             | 
| 62 | 
            -
                  context "pretty print" do
         | 
| 63 | 
            -
             | 
| 64 | 
            -
                    let(:hash) { { "foo" => "bar", :zoo => 2 } }
         | 
| 46 | 
            +
              context "jruby serialize" do
         | 
| 47 | 
            +
                it "should respond to dump and serialize object" do
         | 
| 48 | 
            +
                  expect(LogStash::Json.dump(string)).to eql(json_string)
         | 
| 49 | 
            +
                end
         | 
| 65 50 |  | 
| 66 | 
            -
             | 
| 67 | 
            -
             | 
| 68 | 
            -
             | 
| 69 | 
            -
                    end
         | 
| 51 | 
            +
                it "should call JrJackson::Raw.generate for Hash" do
         | 
| 52 | 
            +
                  expect(LogStash::Json.dump(hash)).to eql(json_hash)
         | 
| 53 | 
            +
                end
         | 
| 70 54 |  | 
| 71 | 
            -
             | 
| 72 | 
            -
             | 
| 73 | 
            -
                      expect(pprint_json).not_to include("\n")
         | 
| 74 | 
            -
                    end
         | 
| 75 | 
            -
                  end
         | 
| 55 | 
            +
                it "should call JrJackson::Raw.generate for Array" do
         | 
| 56 | 
            +
                  expect(LogStash::Json.dump(array)).to eql(json_array)
         | 
| 76 57 | 
             
                end
         | 
| 77 58 |  | 
| 78 | 
            -
             | 
| 59 | 
            +
                context "pretty print" do
         | 
| 79 60 |  | 
| 80 | 
            -
             | 
| 61 | 
            +
                  let(:hash) { { "foo" => "bar", :zoo => 2 } }
         | 
| 81 62 |  | 
| 82 | 
            -
             | 
| 83 | 
            -
             | 
| 84 | 
            -
             | 
| 85 | 
            -
             | 
| 63 | 
            +
                  it "should serialize with pretty print" do
         | 
| 64 | 
            +
                    pprint_json = LogStash::Json.dump(hash, :pretty => true)
         | 
| 65 | 
            +
                    expect(pprint_json).to include("\n")
         | 
| 66 | 
            +
                  end
         | 
| 86 67 |  | 
| 87 | 
            -
             | 
| 88 | 
            -
             | 
| 89 | 
            -
             | 
| 68 | 
            +
                  it "should by default do no pretty print" do
         | 
| 69 | 
            +
                    pprint_json = LogStash::Json.dump(hash)
         | 
| 70 | 
            +
                    expect(pprint_json).not_to include("\n")
         | 
| 71 | 
            +
                  end
         | 
| 90 72 | 
             
                end
         | 
| 91 73 | 
             
              end
         | 
| 92 74 |  | 
| @@ -61,6 +61,13 @@ describe LogStash::Plugins::Registry do | |
| 61 61 | 
             
                  expect(registry.lookup("filter", "simple_plugin")).to eq(simple_plugin)
         | 
| 62 62 | 
             
                end
         | 
| 63 63 |  | 
| 64 | 
            +
                it "should be possible to remove the plugin" do
         | 
| 65 | 
            +
                  registry.add(:filter, "simple_plugin", simple_plugin)
         | 
| 66 | 
            +
                  expect(registry.lookup("filter", "simple_plugin")).to eq(simple_plugin)
         | 
| 67 | 
            +
                  registry.remove(:filter, "simple_plugin")
         | 
| 68 | 
            +
                  expect { registry.lookup("filter", "simple_plugin") }.to raise_error(LoadError)
         | 
| 69 | 
            +
                end
         | 
| 70 | 
            +
             | 
| 64 71 | 
             
                it "doesn't add multiple time the same plugin" do
         | 
| 65 72 | 
             
                  plugin1 = Class.new
         | 
| 66 73 | 
             
                  plugin2 = Class.new
         | 
| @@ -15,7 +15,9 @@ describe LogStash::QueueFactory do | |
| 15 15 | 
             
                  LogStash::Setting::Numeric.new("queue.checkpoint.acks", 1024),
         | 
| 16 16 | 
             
                  LogStash::Setting::Numeric.new("queue.checkpoint.writes", 1024),
         | 
| 17 17 | 
             
                  LogStash::Setting::Numeric.new("queue.checkpoint.interval", 1000),
         | 
| 18 | 
            -
                  LogStash::Setting::String.new("pipeline.id", pipeline_id)
         | 
| 18 | 
            +
                  LogStash::Setting::String.new("pipeline.id", pipeline_id),
         | 
| 19 | 
            +
                  LogStash::Setting::PositiveInteger.new("pipeline.batch.size", 125),
         | 
| 20 | 
            +
                  LogStash::Setting::PositiveInteger.new("pipeline.workers", LogStash::Config::CpuCoreStrategy.maximum)
         | 
| 19 21 | 
             
                ]
         | 
| 20 22 | 
             
              end
         | 
| 21 23 |  | 
| @@ -72,9 +74,10 @@ describe LogStash::QueueFactory do | |
| 72 74 | 
             
              context "when `queue.type` is `memory`" do
         | 
| 73 75 | 
             
                before do
         | 
| 74 76 | 
             
                  settings.set("queue.type", "memory")
         | 
| 77 | 
            +
                  settings.set("pipeline.batch.size", 1024)
         | 
| 75 78 | 
             
                end
         | 
| 76 79 |  | 
| 77 | 
            -
                it "returns a ` | 
| 80 | 
            +
                it "returns a `WrappedSynchronousQueue`" do
         | 
| 78 81 | 
             
                  queue =  subject.create(settings)
         | 
| 79 82 | 
             
                  expect(queue).to be_kind_of(LogStash::Util::WrappedSynchronousQueue)
         | 
| 80 83 | 
             
                  queue.close
         | 
| @@ -6,9 +6,7 @@ describe "LogStash::Util::JavaVersion" do | |
| 6 6 | 
             
              subject(:mod) { LogStash::Util::JavaVersion }
         | 
| 7 7 |  | 
| 8 8 | 
             
              it "should get the current java version if we're on Java" do
         | 
| 9 | 
            -
                 | 
| 10 | 
            -
                  expect(LogStash::Util::JavaVersion.version).to be_a(String)
         | 
| 11 | 
            -
                end
         | 
| 9 | 
            +
                expect(LogStash::Util::JavaVersion.version).to be_a(String)
         | 
| 12 10 | 
             
              end
         | 
| 13 11 |  | 
| 14 12 | 
             
              it "should mark a bad beta version as bad" do
         | 
| @@ -5,6 +5,8 @@ require "logstash/instrument/collector" | |
| 5 5 |  | 
| 6 6 | 
             
            describe LogStash::Util::WrappedSynchronousQueue do
         | 
| 7 7 |  | 
| 8 | 
            +
              subject {LogStash::Util::WrappedSynchronousQueue.new(5)}
         | 
| 9 | 
            +
             | 
| 8 10 | 
             
              describe "queue clients" do
         | 
| 9 11 | 
             
                context "when requesting a write client" do
         | 
| 10 12 | 
             
                  it "returns a client" do
         | 
| @@ -18,15 +20,9 @@ describe LogStash::Util::WrappedSynchronousQueue do | |
| 18 20 | 
             
                  end
         | 
| 19 21 | 
             
                end
         | 
| 20 22 |  | 
| 21 | 
            -
                class DummyQueue < Array
         | 
| 22 | 
            -
                  def take() shift(); end
         | 
| 23 | 
            -
                  def poll(*) shift(); end
         | 
| 24 | 
            -
                end
         | 
| 25 | 
            -
             | 
| 26 23 | 
             
                describe "WriteClient | ReadClient" do
         | 
| 27 | 
            -
                  let(: | 
| 28 | 
            -
                  let(: | 
| 29 | 
            -
                  let(:read_client)  { LogStash::Util::WrappedSynchronousQueue::ReadClient.new(queue)}
         | 
| 24 | 
            +
                  let(:write_client) { subject.write_client }
         | 
| 25 | 
            +
                  let(:read_client)  { subject.read_client }
         | 
| 30 26 |  | 
| 31 27 | 
             
                  context "when reading from the queue" do
         | 
| 32 28 | 
             
                    let(:collector) { LogStash::Instrument::Collector.new }
         | 
| @@ -64,16 +60,16 @@ describe LogStash::Util::WrappedSynchronousQueue do | |
| 64 60 |  | 
| 65 61 | 
             
                    context "when we have item in the queue" do
         | 
| 66 62 | 
             
                      it "records the `duration_in_millis`" do
         | 
| 67 | 
            -
                        batch =  | 
| 68 | 
            -
                        5.times {|i| batch.push("value-#{i}")}
         | 
| 63 | 
            +
                        batch = []
         | 
| 64 | 
            +
                        5.times {|i| batch.push(LogStash::Event.new({"message" => "value-#{i}"}))}
         | 
| 69 65 | 
             
                        write_client.push_batch(batch)
         | 
| 70 66 |  | 
| 71 67 | 
             
                        read_batch = read_client.read_batch
         | 
| 72 68 | 
             
                        sleep(0.1) # simulate some work for the `duration_in_millis`
         | 
| 73 69 | 
             
                        # TODO: this interaction should be cleaned in an upcoming PR,
         | 
| 74 70 | 
             
                        # This is what the current pipeline does.
         | 
| 75 | 
            -
                        read_client.add_filtered_metrics(read_batch)
         | 
| 76 | 
            -
                        read_client.add_output_metrics(read_batch)
         | 
| 71 | 
            +
                        read_client.add_filtered_metrics(read_batch.filtered_size)
         | 
| 72 | 
            +
                        read_client.add_output_metrics(read_batch.filtered_size)
         | 
| 77 73 | 
             
                        read_client.close_batch(read_batch)
         | 
| 78 74 | 
             
                        store = collector.snapshot_metric.metric_store
         | 
| 79 75 |  | 
| @@ -94,26 +90,33 @@ describe LogStash::Util::WrappedSynchronousQueue do | |
| 94 90 | 
             
                    end
         | 
| 95 91 |  | 
| 96 92 | 
             
                    it "appends batches to the queue" do
         | 
| 97 | 
            -
                      batch =  | 
| 98 | 
            -
                       | 
| 93 | 
            +
                      batch = []
         | 
| 94 | 
            +
                      messages = []
         | 
| 95 | 
            +
                      5.times do |i|
         | 
| 96 | 
            +
                        message = "value-#{i}"
         | 
| 97 | 
            +
                        batch.push(LogStash::Event.new({"message" => message}))
         | 
| 98 | 
            +
                        messages << message
         | 
| 99 | 
            +
                      end
         | 
| 99 100 | 
             
                      write_client.push_batch(batch)
         | 
| 100 101 | 
             
                      read_batch = read_client.read_batch
         | 
| 101 102 | 
             
                      expect(read_batch.size).to eq(5)
         | 
| 102 | 
            -
                       | 
| 103 | 
            -
             | 
| 104 | 
            -
                        expect( | 
| 103 | 
            +
                      read_batch.to_a.each do |data|
         | 
| 104 | 
            +
                        message = data.get("message")
         | 
| 105 | 
            +
                        expect(messages).to include(message)
         | 
| 106 | 
            +
                        messages.delete(message)
         | 
| 105 107 | 
             
                        # read_batch.cancel("value-#{i}") if i > 2     # TODO: disabled for https://github.com/elastic/logstash/issues/6055 - will have to properly refactor
         | 
| 106 | 
            -
                         | 
| 107 | 
            -
             | 
| 108 | 
            -
             | 
| 108 | 
            +
                        if message.match /value-[3-4]/
         | 
| 109 | 
            +
                          data.cancel
         | 
| 110 | 
            +
                          read_batch.merge(LogStash::Event.new({ "message" => message.gsub(/value/, 'generated') }))
         | 
| 111 | 
            +
                        end
         | 
| 109 112 | 
             
                      end
         | 
| 110 113 | 
             
                      # expect(read_batch.cancelled_size).to eq(2) # disabled for https://github.com/elastic/logstash/issues/6055
         | 
| 111 | 
            -
                       | 
| 114 | 
            +
                      received = []
         | 
| 112 115 | 
             
                      read_batch.each do |data|
         | 
| 113 | 
            -
                         | 
| 114 | 
            -
                        expect(data.get("message")).to eq("generated-#{i}") if i > 2
         | 
| 115 | 
            -
                        i += 1
         | 
| 116 | 
            +
                        received << data.get("message")
         | 
| 116 117 | 
             
                      end
         | 
| 118 | 
            +
                      (0..2).each {|i| expect(received).to include("value-#{i}")}
         | 
| 119 | 
            +
                      (3..4).each {|i| expect(received).to include("generated-#{i}")}
         | 
| 117 120 | 
             
                    end
         | 
| 118 121 | 
             
                  end
         | 
| 119 122 | 
             
                end
         | 
| @@ -13,16 +13,12 @@ def block_ports(range) | |
| 13 13 | 
             
              range.each do |port|
         | 
| 14 14 | 
             
                begin
         | 
| 15 15 | 
             
                  server = TCPServer.new("localhost", port)
         | 
| 16 | 
            -
                  Thread.new do
         | 
| 17 | 
            -
                    client = server.accept rescue nil
         | 
| 18 | 
            -
                  end
         | 
| 19 16 | 
             
                  servers << server
         | 
| 20 17 | 
             
                rescue => e
         | 
| 21 18 | 
             
                  # The port can already be taken
         | 
| 22 19 | 
             
                end
         | 
| 23 20 | 
             
              end
         | 
| 24 21 |  | 
| 25 | 
            -
              sleep(1)
         | 
| 26 22 | 
             
              servers
         | 
| 27 23 | 
             
            end
         | 
| 28 24 |  | 
| @@ -78,7 +74,8 @@ describe LogStash::WebServer do | |
| 78 74 | 
             
                  sleep(1)
         | 
| 79 75 |  | 
| 80 76 | 
             
                  # We cannot use stop here, since the code is stuck in an infinite loop
         | 
| 81 | 
            -
                  t.kill | 
| 77 | 
            +
                  t.kill
         | 
| 78 | 
            +
                  t.join
         | 
| 82 79 |  | 
| 83 80 | 
             
                  silence_warnings do
         | 
| 84 81 | 
             
                    STDERR = backup_stderr
         | 
| @@ -107,7 +104,7 @@ describe LogStash::WebServer do | |
| 107 104 | 
             
                    expect(subject.address).to eq("localhost:10006")
         | 
| 108 105 |  | 
| 109 106 | 
             
                    subject.stop
         | 
| 110 | 
            -
                    t. | 
| 107 | 
            +
                    t.join
         | 
| 111 108 | 
             
                  end
         | 
| 112 109 | 
             
                end
         | 
| 113 110 |  | 
    
        data/spec/support/helpers.rb
    CHANGED
    
    | @@ -54,6 +54,11 @@ def mock_pipeline_from_string(config_string, settings = LogStash::SETTINGS, metr | |
| 54 54 | 
             
              LogStash::Pipeline.new(pipeline_config, metric)
         | 
| 55 55 | 
             
            end
         | 
| 56 56 |  | 
| 57 | 
            +
            def mock_java_pipeline_from_string(config_string, settings = LogStash::SETTINGS, metric = nil)
         | 
| 58 | 
            +
              pipeline_config = mock_pipeline_config(settings.get("pipeline.id"), config_string, settings)
         | 
| 59 | 
            +
              LogStash::JavaPipeline.new(pipeline_config, metric)
         | 
| 60 | 
            +
            end
         | 
| 61 | 
            +
             | 
| 57 62 | 
             
            def mock_pipeline_config(pipeline_id, config_string = nil, settings = {})
         | 
| 58 63 | 
             
              config_string = "input { stdin { id => '#{pipeline_id}' }}" if config_string.nil?
         | 
| 59 64 |  | 
| @@ -0,0 +1,97 @@ | |
| 1 | 
            +
            require "logstash/agent"
         | 
| 2 | 
            +
            require "logstash/java_pipeline"
         | 
| 3 | 
            +
            require "logstash/event"
         | 
| 4 | 
            +
            require "stud/try"
         | 
| 5 | 
            +
            require "rspec/expectations"
         | 
| 6 | 
            +
            require "thread"
         | 
| 7 | 
            +
             | 
| 8 | 
            +
            java_import org.logstash.common.SourceWithMetadata
         | 
| 9 | 
            +
             | 
| 10 | 
            +
            module PipelineHelpers
         | 
| 11 | 
            +
             | 
| 12 | 
            +
              class SpecSamplerInput < LogStash::Inputs::Base
         | 
| 13 | 
            +
                config_name "spec_sampler_input"
         | 
| 14 | 
            +
             | 
| 15 | 
            +
                def register
         | 
| 16 | 
            +
                end
         | 
| 17 | 
            +
             | 
| 18 | 
            +
                def run(queue)
         | 
| 19 | 
            +
                  unless @@event.nil?
         | 
| 20 | 
            +
                    queue.push_batch(@@event)
         | 
| 21 | 
            +
                    @@event = nil
         | 
| 22 | 
            +
                  end
         | 
| 23 | 
            +
                end
         | 
| 24 | 
            +
             | 
| 25 | 
            +
                def close
         | 
| 26 | 
            +
                  @@event = nil
         | 
| 27 | 
            +
                end
         | 
| 28 | 
            +
             | 
| 29 | 
            +
                def self.set_event(event)
         | 
| 30 | 
            +
                  @@event = event
         | 
| 31 | 
            +
                end
         | 
| 32 | 
            +
              end
         | 
| 33 | 
            +
             | 
| 34 | 
            +
              class SpecSamplerOutput < LogStash::Outputs::Base
         | 
| 35 | 
            +
                config_name "spec_sampler_output"
         | 
| 36 | 
            +
             | 
| 37 | 
            +
                def register
         | 
| 38 | 
            +
                  @@seen = []
         | 
| 39 | 
            +
                end
         | 
| 40 | 
            +
             | 
| 41 | 
            +
                def multi_receive(events)
         | 
| 42 | 
            +
                  @@seen += events
         | 
| 43 | 
            +
                end
         | 
| 44 | 
            +
             | 
| 45 | 
            +
                def self.seen
         | 
| 46 | 
            +
                  @@seen
         | 
| 47 | 
            +
                end
         | 
| 48 | 
            +
              end
         | 
| 49 | 
            +
             | 
| 50 | 
            +
              def sample_one(sample_event, &block)
         | 
| 51 | 
            +
                name = sample_event.is_a?(String) ? sample_event : LogStash::Json.dump(sample_event)
         | 
| 52 | 
            +
                name = name[0..50] + "..." if name.length > 50
         | 
| 53 | 
            +
             | 
| 54 | 
            +
                before do
         | 
| 55 | 
            +
                  LogStash::PLUGIN_REGISTRY.add(:input, "spec_sampler_input", SpecSamplerInput)
         | 
| 56 | 
            +
                  LogStash::PLUGIN_REGISTRY.add(:output, "spec_sampler_output", SpecSamplerOutput)
         | 
| 57 | 
            +
                end
         | 
| 58 | 
            +
             | 
| 59 | 
            +
                describe "\"#{name}\"" do
         | 
| 60 | 
            +
                  let(:pipeline) do
         | 
| 61 | 
            +
                    settings = ::LogStash::SETTINGS.clone
         | 
| 62 | 
            +
                    settings.set_value("queue.drain", true)
         | 
| 63 | 
            +
                    settings.set_value("pipeline.workers", 1)
         | 
| 64 | 
            +
                    LogStash::JavaPipeline.new(
         | 
| 65 | 
            +
                      LogStash::Config::PipelineConfig.new(
         | 
| 66 | 
            +
                        LogStash::Config::Source::Local, :main,
         | 
| 67 | 
            +
                        SourceWithMetadata.new(
         | 
| 68 | 
            +
                          "config_string", "config_string",
         | 
| 69 | 
            +
                          "input { spec_sampler_input {} }\n" + config + "\noutput { spec_sampler_output {} }"
         | 
| 70 | 
            +
                        ), settings
         | 
| 71 | 
            +
                      )
         | 
| 72 | 
            +
                    )
         | 
| 73 | 
            +
                  end
         | 
| 74 | 
            +
                  let(:event) do
         | 
| 75 | 
            +
                    sample_event = [sample_event] unless sample_event.is_a?(Array)
         | 
| 76 | 
            +
                    next sample_event.collect do |e|
         | 
| 77 | 
            +
                      e = { "message" => e } if e.is_a?(String)
         | 
| 78 | 
            +
                      next LogStash::Event.new(e)
         | 
| 79 | 
            +
                    end
         | 
| 80 | 
            +
                  end
         | 
| 81 | 
            +
             | 
| 82 | 
            +
                  let(:results) do
         | 
| 83 | 
            +
                    SpecSamplerInput.set_event event
         | 
| 84 | 
            +
                    pipeline.run
         | 
| 85 | 
            +
                    SpecSamplerOutput.seen
         | 
| 86 | 
            +
                  end
         | 
| 87 | 
            +
             | 
| 88 | 
            +
                  after do
         | 
| 89 | 
            +
                    pipeline.close
         | 
| 90 | 
            +
                  end
         | 
| 91 | 
            +
             | 
| 92 | 
            +
                  subject {results.length > 1 ? results : results.first}
         | 
| 93 | 
            +
             | 
| 94 | 
            +
                  it("when processed", &block)
         | 
| 95 | 
            +
                end
         | 
| 96 | 
            +
              end
         | 
| 97 | 
            +
            end
         | 
    
        data/versions-gem-copy.yml
    CHANGED
    
    | @@ -1,7 +1,10 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 | 
            -
            logstash: 6.0 | 
| 3 | 
            -
            logstash-core: 6.0 | 
| 2 | 
            +
            logstash: 6.1.0
         | 
| 3 | 
            +
            logstash-core: 6.1.0
         | 
| 4 4 | 
             
            logstash-core-plugin-api: 2.1.16
         | 
| 5 | 
            +
             | 
| 6 | 
            +
            # jruby must reference a *released* version of jruby which can be downloaded from the official download url
         | 
| 7 | 
            +
            # *and* for which jars artifacts are published for compile-time
         | 
| 5 8 | 
             
            jruby:
         | 
| 6 9 | 
             
              version: 9.1.13.0
         | 
| 7 10 | 
             
              sha1: 815bac27d5daa1459a4477d6d80584f007ce6a68
         | 
    
        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.0 | 
| 4 | 
            +
              version: 6.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: 2017-12- | 
| 11 | 
            +
            date: 2017-12-12 00:00:00.000000000 Z
         | 
| 12 12 | 
             
            dependencies:
         | 
| 13 13 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 14 14 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| @@ -417,7 +417,9 @@ files: | |
| 417 417 | 
             
            - lib/logstash/instrument/periodic_pollers.rb
         | 
| 418 418 | 
             
            - lib/logstash/instrument/snapshot.rb
         | 
| 419 419 | 
             
            - lib/logstash/instrument/wrapped_write_client.rb
         | 
| 420 | 
            +
            - lib/logstash/java_filter_delegator.rb
         | 
| 420 421 | 
             
            - lib/logstash/java_integration.rb
         | 
| 422 | 
            +
            - lib/logstash/java_pipeline.rb
         | 
| 421 423 | 
             
            - lib/logstash/json.rb
         | 
| 422 424 | 
             
            - lib/logstash/logging.rb
         | 
| 423 425 | 
             
            - lib/logstash/logging/json.rb
         | 
| @@ -453,7 +455,6 @@ files: | |
| 453 455 | 
             
            - lib/logstash/patches/exception_to_json.rb
         | 
| 454 456 | 
             
            - lib/logstash/patches/profile_require_calls.rb
         | 
| 455 457 | 
             
            - lib/logstash/patches/puma.rb
         | 
| 456 | 
            -
            - lib/logstash/patches/rubygems.rb
         | 
| 457 458 | 
             
            - lib/logstash/patches/stronger_openssl_defaults.rb
         | 
| 458 459 | 
             
            - lib/logstash/pipeline.rb
         | 
| 459 460 | 
             
            - lib/logstash/pipeline_action.rb
         | 
| @@ -465,6 +466,7 @@ files: | |
| 465 466 | 
             
            - lib/logstash/pipeline_settings.rb
         | 
| 466 467 | 
             
            - lib/logstash/plugin.rb
         | 
| 467 468 | 
             
            - lib/logstash/plugins/hooks_registry.rb
         | 
| 469 | 
            +
            - lib/logstash/plugins/plugin_factory.rb
         | 
| 468 470 | 
             
            - lib/logstash/plugins/registry.rb
         | 
| 469 471 | 
             
            - lib/logstash/queue_factory.rb
         | 
| 470 472 | 
             
            - lib/logstash/runner.rb
         | 
| @@ -482,7 +484,6 @@ files: | |
| 482 484 | 
             
            - lib/logstash/util/dead_letter_queue_manager.rb
         | 
| 483 485 | 
             
            - lib/logstash/util/decorators.rb
         | 
| 484 486 | 
             
            - lib/logstash/util/duration_formatter.rb
         | 
| 485 | 
            -
            - lib/logstash/util/environment_variables.rb
         | 
| 486 487 | 
             
            - lib/logstash/util/filetools.rb
         | 
| 487 488 | 
             
            - lib/logstash/util/java_version.rb
         | 
| 488 489 | 
             
            - lib/logstash/util/loggable.rb
         | 
| @@ -492,7 +493,9 @@ files: | |
| 492 493 | 
             
            - lib/logstash/util/prctl.rb
         | 
| 493 494 | 
             
            - lib/logstash/util/retryable.rb
         | 
| 494 495 | 
             
            - lib/logstash/util/safe_uri.rb
         | 
| 496 | 
            +
            - lib/logstash/util/settings_helper.rb
         | 
| 495 497 | 
             
            - lib/logstash/util/socket_peer.rb
         | 
| 498 | 
            +
            - lib/logstash/util/substitution_variables.rb
         | 
| 496 499 | 
             
            - lib/logstash/util/thread_dump.rb
         | 
| 497 500 | 
             
            - lib/logstash/util/time_value.rb
         | 
| 498 501 | 
             
            - lib/logstash/util/unicode_trimmer.rb
         | 
| @@ -551,7 +554,9 @@ files: | |
| 551 554 | 
             
            - spec/logstash/instrument/periodic_poller/load_average_spec.rb
         | 
| 552 555 | 
             
            - spec/logstash/instrument/periodic_poller/os_spec.rb
         | 
| 553 556 | 
             
            - spec/logstash/instrument/wrapped_write_client_spec.rb
         | 
| 557 | 
            +
            - spec/logstash/java_filter_delegator_spec.rb
         | 
| 554 558 | 
             
            - spec/logstash/java_integration_spec.rb
         | 
| 559 | 
            +
            - spec/logstash/java_pipeline_spec.rb
         | 
| 555 560 | 
             
            - spec/logstash/json_spec.rb
         | 
| 556 561 | 
             
            - spec/logstash/legacy_ruby_event_spec.rb
         | 
| 557 562 | 
             
            - spec/logstash/legacy_ruby_timestamp_spec.rb
         | 
| @@ -609,6 +614,7 @@ files: | |
| 609 614 | 
             
            - spec/support/helpers.rb
         | 
| 610 615 | 
             
            - spec/support/matchers.rb
         | 
| 611 616 | 
             
            - spec/support/mocks_classes.rb
         | 
| 617 | 
            +
            - spec/support/pipeline/pipeline_helpers.rb
         | 
| 612 618 | 
             
            - spec/support/shared_contexts.rb
         | 
| 613 619 | 
             
            - spec/support/shared_examples.rb
         | 
| 614 620 | 
             
            - versions-gem-copy.yml
         | 
| @@ -637,7 +643,7 @@ requirements: | |
| 637 643 | 
             
            - jar com.fasterxml.jackson.core:jackson-core, 2.9.1
         | 
| 638 644 | 
             
            - jar com.fasterxml.jackson.core:jackson-databind, 2.9.1
         | 
| 639 645 | 
             
            - jar com.fasterxml.jackson.core:jackson-annotations, 2.9.1
         | 
| 640 | 
            -
            - jar  | 
| 646 | 
            +
            - jar org.codehaus.janino:janino, 3.0.7
         | 
| 641 647 | 
             
            - jar com.fasterxml.jackson.dataformat:jackson-dataformat-cbor, 2.9.1
         | 
| 642 648 | 
             
            rubyforge_project:
         | 
| 643 649 | 
             
            rubygems_version: 2.6.13
         | 
| @@ -693,7 +699,9 @@ test_files: | |
| 693 699 | 
             
            - spec/logstash/instrument/periodic_poller/load_average_spec.rb
         | 
| 694 700 | 
             
            - spec/logstash/instrument/periodic_poller/os_spec.rb
         | 
| 695 701 | 
             
            - spec/logstash/instrument/wrapped_write_client_spec.rb
         | 
| 702 | 
            +
            - spec/logstash/java_filter_delegator_spec.rb
         | 
| 696 703 | 
             
            - spec/logstash/java_integration_spec.rb
         | 
| 704 | 
            +
            - spec/logstash/java_pipeline_spec.rb
         | 
| 697 705 | 
             
            - spec/logstash/json_spec.rb
         | 
| 698 706 | 
             
            - spec/logstash/legacy_ruby_event_spec.rb
         | 
| 699 707 | 
             
            - spec/logstash/legacy_ruby_timestamp_spec.rb
         | 
| @@ -751,5 +759,6 @@ test_files: | |
| 751 759 | 
             
            - spec/support/helpers.rb
         | 
| 752 760 | 
             
            - spec/support/matchers.rb
         | 
| 753 761 | 
             
            - spec/support/mocks_classes.rb
         | 
| 762 | 
            +
            - spec/support/pipeline/pipeline_helpers.rb
         | 
| 754 763 | 
             
            - spec/support/shared_contexts.rb
         | 
| 755 764 | 
             
            - spec/support/shared_examples.rb
         |