Merge pull request #507 from akv-platform/update-oracle-jdk-url-calcu… · BuildJet/setup-java@4fb3975 · GitHub
Skip to content

Commit 4fb3975

Browse files
Merge pull request actions#507 from akv-platform/update-oracle-jdk-url-calculation
Update Oracle JDK download URL calculation
2 parents 75c6561 + 33b10b6 commit 4fb3975

3 files changed

Lines changed: 75 additions & 39 deletions

File tree

‎__tests__/distributors/oracle-installer.test.ts‎

Lines changed: 21 additions & 6 deletions

‎dist/setup/index.js‎

Lines changed: 22 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -103092,27 +103092,33 @@ class OracleDistribution extends base_installer_1.JavaBase {
103092103092
}
103093103093
const platform = this.getPlatform();
103094103094
const extension = util_1.getDownloadArchiveExtension();
103095-
let major;
103096-
let fileUrl;
103097-
if (range.includes('.')) {
103098-
major = range.split('.')[0];
103099-
fileUrl = `${ORACLE_DL_BASE}/${major}/archive/jdk-${range}_${platform}-${arch}_bin.${extension}`;
103100-
}
103101-
else {
103102-
major = range;
103103-
fileUrl = `${ORACLE_DL_BASE}/${range}/latest/jdk-${range}_${platform}-${arch}_bin.${extension}`;
103095+
const isOnlyMajorProvided = !range.includes('.');
103096+
const major = isOnlyMajorProvided ? range : range.split('.')[0];
103097+
const possibleUrls = [];
103098+
/**
103099+
* NOTE
103100+
* If only major version was provided we will check it under /latest first
103101+
* in order to retrieve the latest possible version if possible,
103102+
* otherwise we will fall back to /archive where we are guaranteed to
103103+
* find any version if it exists
103104+
*/
103105+
if (isOnlyMajorProvided) {
103106+
possibleUrls.push(`${ORACLE_DL_BASE}/${major}/latest/jdk-${major}_${platform}-${arch}_bin.${extension}`);
103104103107
}
103108+
possibleUrls.push(`${ORACLE_DL_BASE}/${major}/archive/jdk-${range}_${platform}-${arch}_bin.${extension}`);
103105103109
if (parseInt(major) < 17) {
103106103110
throw new Error('Oracle JDK is only supported for JDK 17 and later');
103107103111
}
103108-
const response = yield this.http.head(fileUrl);
103109-
if (response.message.statusCode === http_client_1.HttpCodes.NotFound) {
103110-
throw new Error(`Could not find Oracle JDK for SemVer ${range}`);
103111-
}
103112-
if (response.message.statusCode !== http_client_1.HttpCodes.OK) {
103113-
throw new Error(`Http request for Oracle JDK failed with status code: ${response.message.statusCode}`);
103112+
for (const url of possibleUrls) {
103113+
const response = yield this.http.head(url);
103114+
if (response.message.statusCode === http_client_1.HttpCodes.OK) {
103115+
return { url, version: range };
103116+
}
103117+
if (response.message.statusCode !== http_client_1.HttpCodes.NotFound) {
103118+
throw new Error(`Http request for Oracle JDK failed with status code: ${response.message.statusCode}`);
103119+
}
103114103120
}
103115-
return { url: fileUrl, version: range };
103121+
throw new Error(`Could not find Oracle JDK for SemVer ${range}`);
103116103122
});
103117103123
}
103118103124
getPlatform(platform = process.platform) {

‎src/distributions/oracle/installer.ts‎

Lines changed: 32 additions & 17 deletions

0 commit comments

Comments
 (0)