mirror of
https://github.com/elastic/logstash.git
synced 2025-06-28 17:53:28 -04:00
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
57 lines
2.3 KiB
Ruby
57 lines
2.3 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 "jar_dependencies"
|
|
|
|
def require_jar(*args)
|
|
return nil unless Jars.require?
|
|
result = Jars.require_jar(*args)
|
|
if result.is_a? String
|
|
# 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
|