mirror of
https://github.com/elastic/logstash.git
synced 2025-04-25 15:17:52 -04:00
Set of changes to make Logstash compatible to JRuby 9.4. Bundle JRuby 9.4.3.0 - Redefine space token in `LSCL` and `grammar` treetop from `_` which would generated methods in the form `def _0` (deprecated since `2.7`) to `sc`. - `I18n.t` method doesn't accept hash as second argument - `URI.encode` has been replaced with same functionality with `URI::Parser.new.escape` - `YAML.load` needs explicit `fallback: false` to return false when the yaml string is empty (or contains only comments) - JRuby's `JavaClass` has been removed, now it can use `java.lang.Class` directly - explicitly require gem `thwait` to satisfy `require "thwait"` (In `Gemfile.template` and `logstash-core/logstash-core.gemspec`) - fix not args `clone` to be `def clone(*args)` - fix `Enumeration.each_slice` which from `Ruby 3.1` is [chainable](https://rubyreferences.github.io/rubychanges/3.1.html#enumerableeach_cons-and-each_slice-return-a-receiver) and doesn't return `nil`. JRuby fixed in https://github.com/jruby/jruby/issues/7015 - Expanded `Down.download` arguments map ca16bbed3c302006967413eb9d3862f2da81f7ae - Avoid to pass `nil` in the list of couples used in `Hash[ <list of couples> ]` which from Ruby `3.0` generates an `ArgumentError` - Removed space not allowed between method name and parentheses `initialize (` is forbidden. 29b607dcdef98f81a73ad171639fd13aaa65e243 - With [Ruby 2.7 the `Kernel#open`](https://rubyreferences.github.io/rubychanges/2.7.html#network-and-web) doesn't fallback to `URI#open`, fixed test code that used that to verify open port. e5b70de54c5301f51a767da67294092af0cfafdc - Avoid to drop `rdoc/` folder from vendored JRuby else `bin/logstash -i irb` would crash, commit b71f73e9c6edb81a7b7ae1305047e506f61c6e8c Co-authored-by: João Duarte <jsvd@users.noreply.github.com>
46 lines
1.9 KiB
Ruby
46 lines
1.9 KiB
Ruby
# Licensed to Elasticsearch B.V. under one or more contributor
|
|
# license agreements. See the NOTICE file distributed with
|
|
# this work for additional information regarding copyright
|
|
# ownership. Elasticsearch B.V. licenses this file to you under
|
|
# the Apache License, Version 2.0 (the "License"); you may
|
|
# not use this file except in compliance with the License.
|
|
# You may obtain a copy of the License at
|
|
#
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
#
|
|
# Unless required by applicable law or agreed to in writing,
|
|
# software distributed under the License is distributed on an
|
|
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
|
# KIND, either express or implied. See the License for the
|
|
# specific language governing permissions and limitations
|
|
# under the License.
|
|
|
|
require_relative "../framework/fixture"
|
|
require_relative "../framework/settings"
|
|
require_relative "../framework/helpers"
|
|
|
|
describe "CLI >" do
|
|
|
|
before(:all) do
|
|
@fixture = Fixture.new(__FILE__)
|
|
@logstash = @fixture.get_service("logstash")
|
|
end
|
|
|
|
after(:each) { @logstash.teardown }
|
|
|
|
it "shows --help" do
|
|
execute = @logstash.run('--help')
|
|
|
|
expect(execute.exit_code).to eq(0)
|
|
expect(execute.stderr_and_stdout).to include('bin/logstash [OPTIONS]')
|
|
expect(execute.stderr_and_stdout).to include('--pipeline.id ID')
|
|
end
|
|
|
|
it "starts without unexected warnings" do
|
|
execute = @logstash.run
|
|
lines = execute.stderr_and_stdout.split("\n")
|
|
expect(lines.shift).to match(/^(Using system java)|(Using bundled JDK)|(Using LS_JAVA_HOME defined java):/)
|
|
while (up_line = lines.shift).match(/OpenJDK 64-Bit Server VM warning: Option UseConcMarkSweepGC was deprecated|warning: ignoring JAVA_TOOL_OPTIONS|warning: already initialized constant Socket::Constants|.*warning: method redefined; discarding old to_int$|.*warning: method redefined; discarding old to_f$/) do end
|
|
expect(up_line).to match(/^Sending Logstash logs to/)
|
|
end
|
|
end
|