Skip to content

Commit 2295e3d

Browse files
committed
Update Oracle livechecks
Oracle has a publicly documented API for fetching information about Java releases[1], let's use it. [1]: https://docs.oracle.com/en-us/iaas/jms/doc/public-api-oracle-java-releases.html
1 parent de7f78c commit 2295e3d

File tree

4 files changed

+17
-34
lines changed

4 files changed

+17
-34
lines changed

Casks/g/graalvm-jdk.rb

Lines changed: 5 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -12,20 +12,11 @@
1212
homepage "https://www.graalvm.org/"
1313

1414
livecheck do
15-
url "https://www.oracle.com/java/technologies/downloads/"
16-
regex(%r{/otn_software/java/jdk/(\d+(?:\.\d+)*)\+(\d+)/}i)
17-
strategy :page_match do |page, regex|
18-
major = page.scan(%r{href=.*?/technologies/javase-jdk(\d+)-doc-downloads\.html}i)
19-
.max_by { |match| Version.new(match[0]) }
20-
&.first
21-
next if major.blank?
22-
23-
download_page = Homebrew::Livecheck::Strategy.page_content(
24-
"https://www.oracle.com/java/technologies/javase-jdk#{major}-doc-downloads.html",
25-
)
26-
next if (download_page_content = download_page[:content]).blank?
27-
28-
download_page_content.scan(regex).map { |match| "#{match[0]},#{match[1]}" }
15+
url "https://java.oraclecloud.com/currentJavaReleases?sortBy=releaseVersion"
16+
regex(/jdk-(\d+(?:\.\d+)*)(?:-\d+)?\+(\d+)/i)
17+
strategy :json do |json, regex|
18+
match = json["items"][0]["releaseFullVersion"].match(regex)
19+
"#{match[1]},#{match[2]}"
2920
end
3021
end
3122

Casks/g/graalvm-jdk@21.rb

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,10 +12,11 @@
1212
homepage "https://www.graalvm.org/"
1313

1414
livecheck do
15-
url "https://docs.oracle.com/en/graalvm/jdk/21/docs/release-notes/"
16-
regex(/<strong>v?(\d+(?:\.\d+)+)\+(\d+)[ "<]/i)
17-
strategy :page_match do |page, regex|
18-
page.scan(regex).map { |match| "#{match[0]},#{match[1]}" }
15+
url "https://java.oraclecloud.com/currentJavaReleases/#{version.major}"
16+
regex(/jdk-(\d+(?:\.\d+)*)(?:-\d+)?\+(\d+)/i)
17+
strategy :json do |json, regex|
18+
match = json["releaseFullVersion"].match(regex)
19+
"#{match[1]},#{match[2]}"
1920
end
2021
end
2122

Casks/o/oracle-jdk.rb

Lines changed: 3 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -11,20 +11,9 @@
1111
homepage "https://www.oracle.com/java/technologies/downloads/"
1212

1313
livecheck do
14-
url :homepage
15-
regex(/<li>\s*JDK\s*v?(\d+(?:\.\d+)*)/i)
16-
strategy :page_match do |page, regex|
17-
major = page.scan(%r{href=.*?/javase/(\d+)u-relnotes\.html}i)
18-
.max_by { |match| Version.new(match[0]) }
19-
&.first
20-
next if major.blank?
21-
22-
release_page = Homebrew::Livecheck::Strategy.page_content(
23-
"https://www.oracle.com/java/technologies/javase/#{major}u-relnotes.html",
24-
)
25-
next if (release_page_content = release_page[:content]).blank?
26-
27-
release_page_content.scan(regex).map { |match| match[0] }
14+
url "https://java.oraclecloud.com/currentJavaReleases?sortBy=releaseVersion"
15+
strategy :json do |json|
16+
json["items"][0]["releaseVersion"]
2817
end
2918
end
3019

Casks/o/oracle-jdk@21.rb

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,10 @@
1111
homepage "https://www.oracle.com/java/technologies/downloads/"
1212

1313
livecheck do
14-
url "https://www.oracle.com/java/technologies/javase/#{version.major}u-relnotes.html"
15-
regex(/<li>\s*JDK\s*v?(\d+(?:\.\d+)*)/i)
14+
url "https://java.oraclecloud.com/currentJavaReleases/#{version.major}"
15+
strategy :json do |json|
16+
json["releaseVersion"]
17+
end
1618
end
1719

1820
depends_on macos: ">= :mojave"

0 commit comments

Comments
 (0)