Skip to content

Commit

Permalink
fix jars installer for new maven and pin psych to 5.2.2 (#16919) (#16925
Browse files Browse the repository at this point in the history
)

handle maven output that can carry "garbage" information after the jar's name. this patch deletes that extra information, also pins psych to 5.2.2 until jruby ships with snakeyaml-engine 2.9 and jar-dependencies 0.5.2

Related to: https://github.com/jruby/jruby/issues/8579

(cherry picked from commit 52b7fb0)

Co-authored-by: João Duarte <[email protected]>
  • Loading branch information
github-actions[bot] and jsvd authored Jan 22, 2025
1 parent 3ac7400 commit 7f19931
Show file tree
Hide file tree
Showing 3 changed files with 31 additions and 1 deletion.
1 change: 1 addition & 0 deletions Gemfile.template
Original file line number Diff line number Diff line change
Expand Up @@ -43,3 +43,4 @@ gem "murmurhash3", "= 0.1.6" # Pins until version 0.1.7-java is released
gem "date", "= 3.3.3"
gem "thwait"
gem "bigdecimal", "~> 3.1"
gem "psych", "5.2.2"
3 changes: 3 additions & 0 deletions lib/bootstrap/bundler.rb
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,9 @@
# specific language governing permissions and limitations
# under the License.

# work around https://github.com/jruby/jruby/issues/8579
require_relative './patches/jar_dependencies'

module LogStash
module Bundler
extend self
Expand Down
28 changes: 27 additions & 1 deletion lib/bootstrap/patches/jar_dependencies.rb
Original file line number Diff line number Diff line change
Expand Up @@ -21,11 +21,37 @@ def require_jar(*args)
return nil unless Jars.require?
result = Jars.require_jar(*args)
if result.is_a? String
# JAR_DEBUG=1 will now show theses
# JARS_VERBOSE=true will show these
Jars.debug { "--- jar coordinate #{args[0..-2].join(':')} already loaded with version #{result} - omit version #{args[-1]}" }
Jars.debug { " try to load from #{caller.join("\n\t")}" }
return false
end
Jars.debug { " register #{args.inspect} - #{result == true}" }
result
end

# work around https://github.com/jruby/jruby/issues/8579
# the ruby maven 3.9.3 + maven-libs 3.9.9 gems will output unnecessary text we need to trim down during `load_from_maven`
# remove everything from "--" until the end of the line
# the `[...-5]` is just to remove the color changing characters from the end of the string that exist before "--"
require 'jars/installer'

class ::Jars::Installer
def self.load_from_maven(file)
Jars.debug { "[load_from_maven] called with arguments: #{file.inspect}" }
result = []
::File.read(file).each_line do |line|
if line.match?(/ --/)
Jars.debug { "[load_from_maven] line: #{line.inspect}" }
fixed_line = line.strip.gsub(/ --.+?$/, "")[0...-5]
Jars.debug { "[load_from_maven] fixed_line: #{fixed_line.inspect}" }
dep = ::Jars::Installer::Dependency.new(fixed_line)
else
dep = ::Jars::Installer::Dependency.new(line)
end
result << dep if dep && dep.scope == :runtime
end
Jars.debug { "[load_from_maven] returned: #{result.inspect}" }
result
end
end

0 comments on commit 7f19931

Please sign in to comment.