@@ -13819,7 +13819,136 @@ exports.XMLCBWriter = XMLCBWriter;
1381913819/* 193 */,
1382013820/* 194 */,
1382113821/* 195 */,
13822- /* 196 */,
13822+ /* 196 */
13823+ /***/ (function(__unusedmodule, exports, __webpack_require__) {
13824+
13825+ "use strict";
13826+
13827+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
13828+ if (k2 === undefined) k2 = k;
13829+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
13830+ }) : (function(o, m, k, k2) {
13831+ if (k2 === undefined) k2 = k;
13832+ o[k2] = m[k];
13833+ }));
13834+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
13835+ Object.defineProperty(o, "default", { enumerable: true, value: v });
13836+ }) : function(o, v) {
13837+ o["default"] = v;
13838+ });
13839+ var __importStar = (this && this.__importStar) || function (mod) {
13840+ if (mod && mod.__esModule) return mod;
13841+ var result = {};
13842+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
13843+ __setModuleDefault(result, mod);
13844+ return result;
13845+ };
13846+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
13847+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
13848+ return new (P || (P = Promise))(function (resolve, reject) {
13849+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
13850+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
13851+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
13852+ step((generator = generator.apply(thisArg, _arguments || [])).next());
13853+ });
13854+ };
13855+ var __importDefault = (this && this.__importDefault) || function (mod) {
13856+ return (mod && mod.__esModule) ? mod : { "default": mod };
13857+ };
13858+ Object.defineProperty(exports, "__esModule", { value: true });
13859+ exports.MicrosoftDistributions = void 0;
13860+ const base_installer_1 = __webpack_require__(83);
13861+ const semver_1 = __importDefault(__webpack_require__(876));
13862+ const util_1 = __webpack_require__(322);
13863+ const core = __importStar(__webpack_require__(470));
13864+ const tc = __importStar(__webpack_require__(139));
13865+ const fs_1 = __importDefault(__webpack_require__(747));
13866+ const path_1 = __importDefault(__webpack_require__(622));
13867+ class MicrosoftDistributions extends base_installer_1.JavaBase {
13868+ constructor(installerOptions) {
13869+ super('Microsoft', installerOptions);
13870+ }
13871+ downloadTool(javaRelease) {
13872+ return __awaiter(this, void 0, void 0, function* () {
13873+ core.info(`Downloading Java ${javaRelease.version} (${this.distribution}) from ${javaRelease.url} ...`);
13874+ const javaArchivePath = yield tc.downloadTool(javaRelease.url);
13875+ core.info(`Extracting Java archive...`);
13876+ const extension = util_1.getDownloadArchiveExtension();
13877+ const extractedJavaPath = yield util_1.extractJdkFile(javaArchivePath, extension);
13878+ const archiveName = fs_1.default.readdirSync(extractedJavaPath)[0];
13879+ const archivePath = path_1.default.join(extractedJavaPath, archiveName);
13880+ const javaPath = yield tc.cacheDir(archivePath, this.toolcacheFolderName, this.getToolcacheVersionName(javaRelease.version), this.architecture);
13881+ return { version: javaRelease.version, path: javaPath };
13882+ });
13883+ }
13884+ findPackageForDownload(range) {
13885+ return __awaiter(this, void 0, void 0, function* () {
13886+ if (this.architecture !== 'x64' && this.architecture !== 'aarch64') {
13887+ throw new Error(`Unsupported architecture: ${this.architecture}`);
13888+ }
13889+ const availableVersionsRaw = yield this.getAvailableVersions();
13890+ const opts = this.getPlatformOption();
13891+ const availableVersions = availableVersionsRaw.map(item => ({
13892+ url: `https://aka.ms/download-jdk/microsoft-jdk-${item.version.join('.')}-${opts.os}-${this.architecture}.${opts.archive}`,
13893+ version: this.convertVersionToSemver(item)
13894+ }));
13895+ const satisfiedVersion = availableVersions
13896+ .filter(item => util_1.isVersionSatisfies(range, item.version))
13897+ .sort((a, b) => -semver_1.default.compareBuild(a.version, b.version))[0];
13898+ if (!satisfiedVersion) {
13899+ const availableOptions = availableVersions.map(item => item.version).join(', ');
13900+ const availableOptionsMessage = availableOptions
13901+ ? `\nAvailable versions: ${availableOptions}`
13902+ : '';
13903+ throw new Error(`Could not find satisfied version for SemVer ${range}. ${availableOptionsMessage}`);
13904+ }
13905+ return satisfiedVersion;
13906+ });
13907+ }
13908+ getAvailableVersions() {
13909+ return __awaiter(this, void 0, void 0, function* () {
13910+ // TODO get these dynamically!
13911+ // We will need Microsoft to add an endpoint where we can query for versions.
13912+ const jdkVersions = [
13913+ {
13914+ version: [17, 0, 1, 12, 1]
13915+ },
13916+ {
13917+ version: [16, 0, 2, 7, 1]
13918+ }
13919+ ];
13920+ // M1 is only supported for Java 16 & 17
13921+ if (process.platform !== 'darwin' || this.architecture !== 'aarch64') {
13922+ jdkVersions.push({
13923+ version: [11, 0, 13, 8, 1]
13924+ });
13925+ }
13926+ return jdkVersions;
13927+ });
13928+ }
13929+ getPlatformOption(platform = process.platform /* for testing */) {
13930+ switch (platform) {
13931+ case 'darwin':
13932+ return { archive: 'tar.gz', os: 'macos' };
13933+ case 'win32':
13934+ return { archive: 'zip', os: 'windows' };
13935+ case 'linux':
13936+ return { archive: 'tar.gz', os: 'linux' };
13937+ default:
13938+ throw new Error(`Platform '${platform}' is not supported. Supported platforms: 'darwin', 'linux', 'win32'`);
13939+ }
13940+ }
13941+ convertVersionToSemver(version) {
13942+ const major = version.version[0];
13943+ const minor = version.version[1];
13944+ const patch = version.version[2];
13945+ return `${major}.${minor}.${patch}`;
13946+ }
13947+ }
13948+ exports.MicrosoftDistributions = MicrosoftDistributions;
13949+
13950+
13951+ /***/ }),
1382313952/* 197 */
1382413953/***/ (function(__unusedmodule, exports, __webpack_require__) {
1382513954
@@ -56004,6 +56133,7 @@ const installer_2 = __webpack_require__(834);
5600456133const installer_3 = __webpack_require__(584);
5600556134const installer_4 = __webpack_require__(439);
5600656135const installer_5 = __webpack_require__(507);
56136+ const installer_6 = __webpack_require__(196);
5600756137var JavaDistribution;
5600856138(function (JavaDistribution) {
5600956139 JavaDistribution["Adopt"] = "adopt";
@@ -56013,6 +56143,7 @@ var JavaDistribution;
5601356143 JavaDistribution["Zulu"] = "zulu";
5601456144 JavaDistribution["Liberica"] = "liberica";
5601556145 JavaDistribution["JdkFile"] = "jdkfile";
56146+ JavaDistribution["Microsoft"] = "microsoft";
5601656147})(JavaDistribution || (JavaDistribution = {}));
5601756148function getJavaDistribution(distributionName, installerOptions, jdkFile) {
5601856149 switch (distributionName) {
@@ -56029,6 +56160,8 @@ function getJavaDistribution(distributionName, installerOptions, jdkFile) {
5602956160 return new installer_2.ZuluDistribution(installerOptions);
5603056161 case JavaDistribution.Liberica:
5603156162 return new installer_5.LibericaDistributions(installerOptions);
56163+ case JavaDistribution.Microsoft:
56164+ return new installer_6.MicrosoftDistributions(installerOptions);
5603256165 default:
5603356166 return null;
5603456167 }
0 commit comments