From d6bba1c4938ea9c9a9d58ba2f209775dd71a8537 Mon Sep 17 00:00:00 2001 From: Jonathan Chang Date: Tue, 2 Feb 2021 18:36:44 +1100 Subject: [PATCH 1/2] java: fix java_home on macOS --- Library/Homebrew/extend/os/language/java.rb | 4 ++++ Library/Homebrew/extend/os/mac/language/java.rb | 10 ++++++++++ Library/Homebrew/language/java.rb | 2 ++ 3 files changed, 16 insertions(+) create mode 100644 Library/Homebrew/extend/os/language/java.rb create mode 100644 Library/Homebrew/extend/os/mac/language/java.rb diff --git a/Library/Homebrew/extend/os/language/java.rb b/Library/Homebrew/extend/os/language/java.rb new file mode 100644 index 0000000000..3c1c0372b3 --- /dev/null +++ b/Library/Homebrew/extend/os/language/java.rb @@ -0,0 +1,4 @@ +# typed: strict +# frozen_string_literal: true + +require "extend/os/mac/language/java" if OS.mac? diff --git a/Library/Homebrew/extend/os/mac/language/java.rb b/Library/Homebrew/extend/os/mac/language/java.rb new file mode 100644 index 0000000000..c7a9a01903 --- /dev/null +++ b/Library/Homebrew/extend/os/mac/language/java.rb @@ -0,0 +1,10 @@ +# typed: true +# frozen_string_literal: true + +module Language + module Java + def self.java_home(version = nil) + find_openjdk_formula(version)&.opt_libexec&.join("openjdk.jdk/Contents/Home") + end + end +end diff --git a/Library/Homebrew/language/java.rb b/Library/Homebrew/language/java.rb index 6b019a6658..bea3b6fd92 100644 --- a/Library/Homebrew/language/java.rb +++ b/Library/Homebrew/language/java.rb @@ -45,3 +45,5 @@ module Language end end end + +require "extend/os/language/java" From 234c1f14b81ebc0685ccad7bff94b457cc078d51 Mon Sep 17 00:00:00 2001 From: Carlo Cabrera <30379873+carlocab@users.noreply.github.com> Date: Tue, 2 Feb 2021 09:29:43 +0000 Subject: [PATCH 2/2] java_spec: fix tests The tests need to match the changes reverted in d6bba1c4938ea9c9a9d58ba2f209775dd71a8537. --- Library/Homebrew/test/language/java_spec.rb | 22 +++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/Library/Homebrew/test/language/java_spec.rb b/Library/Homebrew/test/language/java_spec.rb index bd41accf0f..fb68cd25c4 100644 --- a/Library/Homebrew/test/language/java_spec.rb +++ b/Library/Homebrew/test/language/java_spec.rb @@ -18,12 +18,22 @@ describe Language::Java do end describe "::java_home" do - it "returns valid JAVA_HOME if version is specified" do + it "returns valid JAVA_HOME if version is specified", :needs_macos do + java_home = described_class.java_home("1.8+") + expect(java_home).to eql(f.opt_libexec/"openjdk.jdk/Contents/Home") + end + + it "returns valid JAVA_HOME if version is not specified", :needs_macos do + java_home = described_class.java_home + expect(java_home).to eql(f.opt_libexec/"openjdk.jdk/Contents/Home") + end + + it "returns valid JAVA_HOME if version is specified", :needs_linux do java_home = described_class.java_home("1.8+") expect(java_home).to eql(f.opt_libexec) end - it "returns valid JAVA_HOME if version is not specified" do + it "returns valid JAVA_HOME if version is not specified", :needs_linux do java_home = described_class.java_home expect(java_home).to eql(f.opt_libexec) end @@ -32,24 +42,24 @@ describe Language::Java do describe "::java_home_env" do it "returns java_home path if version specified" do java_home_env = described_class.java_home_env("1.8+") - expect(java_home_env[:JAVA_HOME]).to eql(f.opt_libexec.to_s) + expect(java_home_env[:JAVA_HOME]).to include(f.opt_libexec.to_s) end it "returns java_home path if version is not specified" do java_home_env = described_class.java_home_env - expect(java_home_env[:JAVA_HOME]).to eql(f.opt_libexec.to_s) + expect(java_home_env[:JAVA_HOME]).to include(f.opt_libexec.to_s) end end describe "::overridable_java_home_env" do it "returns java_home path if version specified" do overridable_java_home_env = described_class.overridable_java_home_env("1.8+") - expect(overridable_java_home_env[:JAVA_HOME]).to eql("${JAVA_HOME:-#{f.opt_libexec}}") + expect(overridable_java_home_env[:JAVA_HOME]).to include(f.opt_libexec.to_s) end it "returns java_home path if version is not specified" do overridable_java_home_env = described_class.overridable_java_home_env - expect(overridable_java_home_env[:JAVA_HOME]).to eql("${JAVA_HOME:-#{f.opt_libexec}}") + expect(overridable_java_home_env[:JAVA_HOME]).to include(f.opt_libexec.to_s) end end end