@@ -13819,7 +13819,136 @@ exports.XMLCBWriter = XMLCBWriter;
13819
13819
/* 193 */,
13820
13820
/* 194 */,
13821
13821
/* 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
+ /***/ }),
13823
13952
/* 197 */
13824
13953
/***/ (function(__unusedmodule, exports, __webpack_require__) {
13825
13954
@@ -56004,6 +56133,7 @@ const installer_2 = __webpack_require__(834);
56004
56133
const installer_3 = __webpack_require__(584);
56005
56134
const installer_4 = __webpack_require__(439);
56006
56135
const installer_5 = __webpack_require__(507);
56136
+ const installer_6 = __webpack_require__(196);
56007
56137
var JavaDistribution;
56008
56138
(function (JavaDistribution) {
56009
56139
JavaDistribution["Adopt"] = "adopt";
@@ -56013,6 +56143,7 @@ var JavaDistribution;
56013
56143
JavaDistribution["Zulu"] = "zulu";
56014
56144
JavaDistribution["Liberica"] = "liberica";
56015
56145
JavaDistribution["JdkFile"] = "jdkfile";
56146
+ JavaDistribution["Microsoft"] = "microsoft";
56016
56147
})(JavaDistribution || (JavaDistribution = {}));
56017
56148
function getJavaDistribution(distributionName, installerOptions, jdkFile) {
56018
56149
switch (distributionName) {
@@ -56029,6 +56160,8 @@ function getJavaDistribution(distributionName, installerOptions, jdkFile) {
56029
56160
return new installer_2.ZuluDistribution(installerOptions);
56030
56161
case JavaDistribution.Liberica:
56031
56162
return new installer_5.LibericaDistributions(installerOptions);
56163
+ case JavaDistribution.Microsoft:
56164
+ return new installer_6.MicrosoftDistributions(installerOptions);
56032
56165
default:
56033
56166
return null;
56034
56167
}
0 commit comments