mirror of
https://github.com/elastic/logstash.git
synced 2025-06-28 01:37:28 -04:00
This commit updates the version of jruby used in Logstash to `9.3.4.0`. * Updates the references of `jruby` from `9.2.20.1` to `9.3.4.0` * Updates references/locations of ruby from `2.5.0` to `2.6.0` * Updates java imports including `org.logstash.util` to be quoted * Without quoting the name of the import, the following error is observed in tests: * `java.lang.NoClassDefFoundError: org/logstash/Util (wrong name: org/logstash/util)` * Maybe an instance of https://github.com/jruby/jruby/issues/4861 * Adds a monkey patch to `require` to resolve compatibility issue between latest `jruby` and `polyglot` gem * The addition of https://github.com/jruby/jruby/pull/7145 to disallow circular causes, will throw when `polyglot` is thrown into the mix, and stop logstash from starting and building - any gems that use an exception to determine whether or not to load the native gem, will trigger the code added in that commit. * This commit adds a monkey patch of `require` to rollback the circular cause exception back to the original cause. * Removes the use of the deprecated `JavaClass` * Adds additional `require time` in `generate_build_metadata` * Rewrites a test helper to avoid potentially calling `~>` on `FalseClass` Co-authored-by: Joao Duarte <jsvduarte@gmail.com> Co-authored-by: João Duarte <jsvd@users.noreply.github.com>
19 lines
447 B
Ruby
19 lines
447 B
Ruby
require 'polyglot'
|
|
|
|
|
|
module Kernel
|
|
alias original_require require
|
|
|
|
def require(*a, &b)
|
|
begin
|
|
original_require(*a, &b)
|
|
rescue RuntimeError => e
|
|
# https://github.com/jruby/jruby/pull/7145 introduced an exception check for circular causes, which
|
|
# breaks when the polyglot library is used and LoadErrors are emitted
|
|
if e.message == "circular causes"
|
|
raise e.cause
|
|
end
|
|
raise e
|
|
end
|
|
end
|
|
end
|