diff --git a/Library/Homebrew/compat.rb b/Library/Homebrew/compat.rb index 79806737a5..bc254d9e1c 100644 --- a/Library/Homebrew/compat.rb +++ b/Library/Homebrew/compat.rb @@ -3,5 +3,6 @@ require "compat/extend/nil" require "compat/extend/string" require "compat/formula" +require "compat/language/java" require "compat/language/python" require "compat/os/mac" if OS.mac? diff --git a/Library/Homebrew/compat/language/java.rb b/Library/Homebrew/compat/language/java.rb new file mode 100644 index 0000000000..3ad89ebc74 --- /dev/null +++ b/Library/Homebrew/compat/language/java.rb @@ -0,0 +1,20 @@ +# frozen_string_literal: true + +module Language + module Java + class << self + module Compat + def java_home_cmd(version = nil) + odeprecated "Language::Java::java_home_cmd", "Language::Java::java_home" + + # macOS provides /usr/libexec/java_home, but Linux does not. + return system_java_home_cmd(version) if OS.mac? + + raise NotImplementedError + end + end + + prepend Compat + end + end +end diff --git a/Library/Homebrew/extend/os/mac/language/java.rb b/Library/Homebrew/extend/os/mac/language/java.rb index d750bf6325..b552027a9a 100644 --- a/Library/Homebrew/extend/os/mac/language/java.rb +++ b/Library/Homebrew/extend/os/mac/language/java.rb @@ -2,19 +2,20 @@ module Language module Java - def self.java_home_cmd(version = nil) + def self.system_java_home_cmd(version = nil) version_flag = " --version #{version}" if version "/usr/libexec/java_home#{version_flag}" end + private_class_method :system_java_home_cmd def self.java_home(version = nil) - cmd = Language::Java.java_home_cmd(version) + cmd = system_java_home_cmd(version) Pathname.new Utils.popen_read(cmd).chomp end # @private def self.java_home_shell(version = nil) - "$(#{java_home_cmd(version)})" + "$(#{system_java_home_cmd(version)})" end end end diff --git a/Library/Homebrew/language/java.rb b/Library/Homebrew/language/java.rb index 5311b1f588..612ab32c8d 100644 --- a/Library/Homebrew/language/java.rb +++ b/Library/Homebrew/language/java.rb @@ -2,11 +2,6 @@ module Language module Java - def self.java_home_cmd(_ = nil) - # macOS provides /usr/libexec/java_home, but Linux does not. - raise NotImplementedError - end - def self.java_home(version = nil) req = JavaRequirement.new [*version] raise UnsatisfiedRequirements, req.message unless req.satisfied?