Preserve JDK build number from Azul Metadata API

The Azul Metadata API returns java_version as a 3-element array
(e.g. [17,0,7]) and reports the build number separately in
openjdk_build_number. The migration mapped version directly from
java_version, dropping the build and breaking exact-version lookups
like 17.0.7+7 (e2e failure: "No matching version found for SemVer").

Add openjdk_build_number to IZuluVersions and append it to
java_version before converting to semver so resolved versions retain
the build (e.g. 17.0.7+7). Update the zulu test fixtures to mirror the
real API shape (3-element java_version plus openjdk_build_number) so
unit tests exercise the actual response format, and rebuild dist.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This commit is contained in:
Bruno Borges 2026-06-22 14:49:35 -04:00
parent 4c33a67a01
commit 12c069fb55
6 changed files with 227 additions and 213 deletions

View File

@ -6,9 +6,9 @@
"java_version": [
8,
0,
5,
13
5
],
"openjdk_build_number": 13,
"distro_version": [
8,
1,
@ -25,9 +25,9 @@
"java_version": [
8,
0,
11,
12
11
],
"openjdk_build_number": 12,
"distro_version": [
8,
2,
@ -44,9 +44,9 @@
"java_version": [
8,
0,
131,
11
131
],
"openjdk_build_number": 11,
"distro_version": [
8,
21,
@ -63,9 +63,9 @@
"java_version": [
8,
0,
144,
1
144
],
"openjdk_build_number": 1,
"distro_version": [
8,
23,
@ -82,9 +82,9 @@
"java_version": [
8,
0,
152,
16
152
],
"openjdk_build_number": 16,
"distro_version": [
8,
25,
@ -101,9 +101,9 @@
"java_version": [
8,
0,
252,
14
252
],
"openjdk_build_number": 14,
"distro_version": [
8,
46,
@ -120,9 +120,9 @@
"java_version": [
8,
0,
262,
17
262
],
"openjdk_build_number": 17,
"distro_version": [
8,
48,
@ -139,9 +139,9 @@
"java_version": [
8,
0,
262,
19
262
],
"openjdk_build_number": 19,
"distro_version": [
8,
48,
@ -158,9 +158,9 @@
"java_version": [
8,
0,
262,
18
262
],
"openjdk_build_number": 18,
"distro_version": [
8,
48,
@ -177,9 +177,9 @@
"java_version": [
8,
0,
282,
8
282
],
"openjdk_build_number": 8,
"distro_version": [
8,
52,
@ -196,9 +196,9 @@
"java_version": [
9,
0,
0,
0
],
"openjdk_build_number": 0,
"distro_version": [
9,
0,
@ -215,9 +215,9 @@
"java_version": [
9,
0,
1,
0
1
],
"openjdk_build_number": 0,
"distro_version": [
9,
0,
@ -234,9 +234,9 @@
"java_version": [
10,
0,
1,
9
1
],
"openjdk_build_number": 9,
"distro_version": [
10,
2,
@ -253,9 +253,9 @@
"java_version": [
10,
0,
2,
13
2
],
"openjdk_build_number": 13,
"distro_version": [
10,
3,
@ -272,9 +272,9 @@
"java_version": [
11,
0,
1,
13
1
],
"openjdk_build_number": 13,
"distro_version": [
11,
2,
@ -291,9 +291,9 @@
"java_version": [
11,
0,
2,
7
2
],
"openjdk_build_number": 7,
"distro_version": [
11,
29,
@ -310,9 +310,9 @@
"java_version": [
11,
0,
3,
7
3
],
"openjdk_build_number": 7,
"distro_version": [
11,
31,
@ -329,9 +329,9 @@
"java_version": [
11,
0,
5,
10
5
],
"openjdk_build_number": 10,
"distro_version": [
11,
35,
@ -348,9 +348,9 @@
"java_version": [
11,
0,
5,
10
5
],
"openjdk_build_number": 10,
"distro_version": [
11,
35,
@ -367,9 +367,9 @@
"java_version": [
11,
0,
5,
10
5
],
"openjdk_build_number": 10,
"distro_version": [
11,
35,
@ -386,9 +386,9 @@
"java_version": [
11,
0,
10,
9
10
],
"openjdk_build_number": 9,
"distro_version": [
11,
45,
@ -405,9 +405,9 @@
"java_version": [
12,
0,
0,
33
0
],
"openjdk_build_number": 33,
"distro_version": [
12,
1,
@ -424,9 +424,9 @@
"java_version": [
12,
0,
1,
12
1
],
"openjdk_build_number": 12,
"distro_version": [
12,
2,
@ -443,9 +443,9 @@
"java_version": [
12,
0,
2,
3
2
],
"openjdk_build_number": 3,
"distro_version": [
12,
3,
@ -462,9 +462,9 @@
"java_version": [
13,
0,
0,
33
0
],
"openjdk_build_number": 33,
"distro_version": [
13,
27,
@ -481,9 +481,9 @@
"java_version": [
13,
0,
1,
10
1
],
"openjdk_build_number": 10,
"distro_version": [
13,
28,
@ -500,9 +500,9 @@
"java_version": [
13,
0,
2,
6
2
],
"openjdk_build_number": 6,
"distro_version": [
13,
29,
@ -519,9 +519,9 @@
"java_version": [
13,
0,
6,
5
6
],
"openjdk_build_number": 5,
"distro_version": [
13,
37,
@ -538,9 +538,9 @@
"java_version": [
14,
0,
0,
36
0
],
"openjdk_build_number": 36,
"distro_version": [
14,
27,
@ -557,9 +557,9 @@
"java_version": [
14,
0,
1,
8
1
],
"openjdk_build_number": 8,
"distro_version": [
14,
28,
@ -576,9 +576,9 @@
"java_version": [
14,
0,
2,
12
2
],
"openjdk_build_number": 12,
"distro_version": [
14,
29,
@ -595,9 +595,9 @@
"java_version": [
15,
0,
0,
36
0
],
"openjdk_build_number": 36,
"distro_version": [
15,
27,
@ -614,9 +614,9 @@
"java_version": [
15,
0,
1,
8
1
],
"openjdk_build_number": 8,
"distro_version": [
15,
28,
@ -633,9 +633,9 @@
"java_version": [
15,
0,
1,
9
1
],
"openjdk_build_number": 9,
"distro_version": [
15,
28,
@ -652,9 +652,9 @@
"java_version": [
15,
0,
2,
7
2
],
"openjdk_build_number": 7,
"distro_version": [
15,
29,
@ -671,9 +671,9 @@
"java_version": [
21,
0,
2,
6
2
],
"openjdk_build_number": 6,
"distro_version": [
21,
32,

View File

@ -6,9 +6,9 @@
"java_version": [
8,
0,
5,
13
5
],
"openjdk_build_number": 13,
"distro_version": [
8,
1,
@ -25,9 +25,9 @@
"java_version": [
8,
0,
11,
12
11
],
"openjdk_build_number": 12,
"distro_version": [
8,
2,
@ -44,9 +44,9 @@
"java_version": [
8,
0,
131,
11
131
],
"openjdk_build_number": 11,
"distro_version": [
8,
21,
@ -63,9 +63,9 @@
"java_version": [
8,
0,
144,
1
144
],
"openjdk_build_number": 1,
"distro_version": [
8,
23,
@ -82,9 +82,9 @@
"java_version": [
8,
0,
152,
16
152
],
"openjdk_build_number": 16,
"distro_version": [
8,
25,
@ -101,9 +101,9 @@
"java_version": [
8,
0,
252,
14
252
],
"openjdk_build_number": 14,
"distro_version": [
8,
46,
@ -120,9 +120,9 @@
"java_version": [
8,
0,
262,
17
262
],
"openjdk_build_number": 17,
"distro_version": [
8,
48,
@ -139,9 +139,9 @@
"java_version": [
8,
0,
262,
19
262
],
"openjdk_build_number": 19,
"distro_version": [
8,
48,
@ -158,9 +158,9 @@
"java_version": [
8,
0,
262,
18
262
],
"openjdk_build_number": 18,
"distro_version": [
8,
48,
@ -177,9 +177,9 @@
"java_version": [
8,
0,
282,
8
282
],
"openjdk_build_number": 8,
"distro_version": [
8,
52,
@ -196,9 +196,9 @@
"java_version": [
9,
0,
0,
0
],
"openjdk_build_number": 0,
"distro_version": [
9,
0,
@ -215,9 +215,9 @@
"java_version": [
9,
0,
1,
0
1
],
"openjdk_build_number": 0,
"distro_version": [
9,
0,
@ -234,9 +234,9 @@
"java_version": [
10,
0,
1,
9
1
],
"openjdk_build_number": 9,
"distro_version": [
10,
2,
@ -253,9 +253,9 @@
"java_version": [
10,
0,
2,
13
2
],
"openjdk_build_number": 13,
"distro_version": [
10,
3,
@ -272,9 +272,9 @@
"java_version": [
11,
0,
1,
13
1
],
"openjdk_build_number": 13,
"distro_version": [
11,
2,
@ -291,9 +291,9 @@
"java_version": [
11,
0,
2,
7
2
],
"openjdk_build_number": 7,
"distro_version": [
11,
29,
@ -310,9 +310,9 @@
"java_version": [
11,
0,
3,
7
3
],
"openjdk_build_number": 7,
"distro_version": [
11,
31,
@ -329,9 +329,9 @@
"java_version": [
11,
0,
5,
10
5
],
"openjdk_build_number": 10,
"distro_version": [
11,
35,
@ -348,9 +348,9 @@
"java_version": [
11,
0,
5,
10
5
],
"openjdk_build_number": 10,
"distro_version": [
11,
35,
@ -367,9 +367,9 @@
"java_version": [
11,
0,
5,
10
5
],
"openjdk_build_number": 10,
"distro_version": [
11,
35,
@ -386,9 +386,9 @@
"java_version": [
11,
0,
10,
9
10
],
"openjdk_build_number": 9,
"distro_version": [
11,
45,
@ -405,9 +405,9 @@
"java_version": [
12,
0,
0,
33
0
],
"openjdk_build_number": 33,
"distro_version": [
12,
1,
@ -424,9 +424,9 @@
"java_version": [
12,
0,
1,
12
1
],
"openjdk_build_number": 12,
"distro_version": [
12,
2,
@ -443,9 +443,9 @@
"java_version": [
12,
0,
2,
3
2
],
"openjdk_build_number": 3,
"distro_version": [
12,
3,
@ -462,9 +462,9 @@
"java_version": [
13,
0,
0,
33
0
],
"openjdk_build_number": 33,
"distro_version": [
13,
27,
@ -481,9 +481,9 @@
"java_version": [
13,
0,
1,
10
1
],
"openjdk_build_number": 10,
"distro_version": [
13,
28,
@ -500,9 +500,9 @@
"java_version": [
13,
0,
2,
6
2
],
"openjdk_build_number": 6,
"distro_version": [
13,
29,
@ -519,9 +519,9 @@
"java_version": [
13,
0,
6,
5
6
],
"openjdk_build_number": 5,
"distro_version": [
13,
37,
@ -538,9 +538,9 @@
"java_version": [
14,
0,
0,
36
0
],
"openjdk_build_number": 36,
"distro_version": [
14,
27,
@ -557,9 +557,9 @@
"java_version": [
14,
0,
1,
8
1
],
"openjdk_build_number": 8,
"distro_version": [
14,
28,
@ -576,9 +576,9 @@
"java_version": [
14,
0,
2,
12
2
],
"openjdk_build_number": 12,
"distro_version": [
14,
29,
@ -595,9 +595,9 @@
"java_version": [
15,
0,
0,
36
0
],
"openjdk_build_number": 36,
"distro_version": [
15,
27,
@ -614,9 +614,9 @@
"java_version": [
15,
0,
1,
8
1
],
"openjdk_build_number": 8,
"distro_version": [
15,
28,
@ -633,9 +633,9 @@
"java_version": [
15,
0,
1,
9
1
],
"openjdk_build_number": 9,
"distro_version": [
15,
28,
@ -652,9 +652,9 @@
"java_version": [
15,
0,
2,
7
2
],
"openjdk_build_number": 7,
"distro_version": [
15,
29,

View File

@ -6,9 +6,9 @@
"java_version": [
8,
0,
5,
13
5
],
"openjdk_build_number": 13,
"distro_version": [
8,
1,
@ -25,9 +25,9 @@
"java_version": [
8,
0,
11,
12
11
],
"openjdk_build_number": 12,
"distro_version": [
8,
2,
@ -44,9 +44,9 @@
"java_version": [
8,
0,
131,
11
131
],
"openjdk_build_number": 11,
"distro_version": [
8,
21,
@ -63,9 +63,9 @@
"java_version": [
8,
0,
144,
1
144
],
"openjdk_build_number": 1,
"distro_version": [
8,
23,
@ -82,9 +82,9 @@
"java_version": [
8,
0,
152,
16
152
],
"openjdk_build_number": 16,
"distro_version": [
8,
25,
@ -101,9 +101,9 @@
"java_version": [
8,
0,
252,
14
252
],
"openjdk_build_number": 14,
"distro_version": [
8,
46,
@ -120,9 +120,9 @@
"java_version": [
8,
0,
262,
17
262
],
"openjdk_build_number": 17,
"distro_version": [
8,
48,
@ -139,9 +139,9 @@
"java_version": [
8,
0,
262,
19
262
],
"openjdk_build_number": 19,
"distro_version": [
8,
48,
@ -158,9 +158,9 @@
"java_version": [
8,
0,
262,
18
262
],
"openjdk_build_number": 18,
"distro_version": [
8,
48,
@ -177,9 +177,9 @@
"java_version": [
8,
0,
282,
8
282
],
"openjdk_build_number": 8,
"distro_version": [
8,
52,
@ -196,9 +196,9 @@
"java_version": [
9,
0,
0,
0
],
"openjdk_build_number": 0,
"distro_version": [
9,
0,
@ -215,9 +215,9 @@
"java_version": [
9,
0,
1,
0
1
],
"openjdk_build_number": 0,
"distro_version": [
9,
0,
@ -234,9 +234,9 @@
"java_version": [
10,
0,
1,
9
1
],
"openjdk_build_number": 9,
"distro_version": [
10,
2,
@ -253,9 +253,9 @@
"java_version": [
10,
0,
2,
13
2
],
"openjdk_build_number": 13,
"distro_version": [
10,
3,
@ -272,9 +272,9 @@
"java_version": [
11,
0,
1,
13
1
],
"openjdk_build_number": 13,
"distro_version": [
11,
2,
@ -291,9 +291,9 @@
"java_version": [
11,
0,
2,
7
2
],
"openjdk_build_number": 7,
"distro_version": [
11,
29,
@ -310,9 +310,9 @@
"java_version": [
11,
0,
3,
7
3
],
"openjdk_build_number": 7,
"distro_version": [
11,
31,
@ -329,9 +329,9 @@
"java_version": [
11,
0,
5,
10
5
],
"openjdk_build_number": 10,
"distro_version": [
11,
35,
@ -348,9 +348,9 @@
"java_version": [
11,
0,
5,
10
5
],
"openjdk_build_number": 10,
"distro_version": [
11,
35,
@ -367,9 +367,9 @@
"java_version": [
11,
0,
5,
10
5
],
"openjdk_build_number": 10,
"distro_version": [
11,
35,
@ -386,9 +386,9 @@
"java_version": [
11,
0,
10,
9
10
],
"openjdk_build_number": 9,
"distro_version": [
11,
45,
@ -405,9 +405,9 @@
"java_version": [
12,
0,
0,
33
0
],
"openjdk_build_number": 33,
"distro_version": [
12,
1,
@ -424,9 +424,9 @@
"java_version": [
12,
0,
1,
12
1
],
"openjdk_build_number": 12,
"distro_version": [
12,
2,
@ -443,9 +443,9 @@
"java_version": [
12,
0,
2,
3
2
],
"openjdk_build_number": 3,
"distro_version": [
12,
3,
@ -462,9 +462,9 @@
"java_version": [
13,
0,
0,
33
0
],
"openjdk_build_number": 33,
"distro_version": [
13,
27,
@ -481,9 +481,9 @@
"java_version": [
13,
0,
1,
10
1
],
"openjdk_build_number": 10,
"distro_version": [
13,
28,
@ -500,9 +500,9 @@
"java_version": [
13,
0,
2,
6
2
],
"openjdk_build_number": 6,
"distro_version": [
13,
29,
@ -519,9 +519,9 @@
"java_version": [
13,
0,
6,
5
6
],
"openjdk_build_number": 5,
"distro_version": [
13,
37,
@ -538,9 +538,9 @@
"java_version": [
14,
0,
0,
36
0
],
"openjdk_build_number": 36,
"distro_version": [
14,
27,
@ -557,9 +557,9 @@
"java_version": [
14,
0,
1,
8
1
],
"openjdk_build_number": 8,
"distro_version": [
14,
28,
@ -576,9 +576,9 @@
"java_version": [
14,
0,
2,
12
2
],
"openjdk_build_number": 12,
"distro_version": [
14,
29,
@ -595,9 +595,9 @@
"java_version": [
15,
0,
0,
36
0
],
"openjdk_build_number": 36,
"distro_version": [
15,
27,
@ -614,9 +614,9 @@
"java_version": [
15,
0,
1,
8
1
],
"openjdk_build_number": 8,
"distro_version": [
15,
28,
@ -633,9 +633,9 @@
"java_version": [
15,
0,
1,
9
1
],
"openjdk_build_number": 9,
"distro_version": [
15,
28,
@ -652,9 +652,9 @@
"java_version": [
15,
0,
2,
7
2
],
"openjdk_build_number": 7,
"distro_version": [
15,
29,
@ -671,9 +671,9 @@
"java_version": [
17,
0,
10,
7
10
],
"openjdk_build_number": 7,
"distro_version": [
17,
48,

8
dist/setup/index.js vendored
View File

@ -80691,8 +80691,14 @@ class ZuluDistribution extends base_installer_1.JavaBase {
return __awaiter(this, void 0, void 0, function* () {
const availableVersionsRaw = yield this.getAvailableVersions();
const availableVersions = availableVersionsRaw.map(item => {
// The Azul Metadata API reports the JDK build number separately from
// java_version (e.g. java_version=[17,0,7], openjdk_build_number=7).
// Append it so the resulting semver retains the build (e.g. 17.0.7+7).
const javaVersion = item.openjdk_build_number != null
? [...item.java_version, item.openjdk_build_number]
: item.java_version;
return {
version: (0, util_1.convertVersionToSemver)(item.java_version),
version: (0, util_1.convertVersionToSemver)(javaVersion),
url: item.download_url,
zuluVersion: (0, util_1.convertVersionToSemver)(item.distro_version)
};

View File

@ -30,8 +30,15 @@ export class ZuluDistribution extends JavaBase {
): Promise<JavaDownloadRelease> {
const availableVersionsRaw = await this.getAvailableVersions();
const availableVersions = availableVersionsRaw.map(item => {
// The Azul Metadata API reports the JDK build number separately from
// java_version (e.g. java_version=[17,0,7], openjdk_build_number=7).
// Append it so the resulting semver retains the build (e.g. 17.0.7+7).
const javaVersion =
item.openjdk_build_number != null
? [...item.java_version, item.openjdk_build_number]
: item.java_version;
return {
version: convertVersionToSemver(item.java_version),
version: convertVersionToSemver(javaVersion),
url: item.download_url,
zuluVersion: convertVersionToSemver(item.distro_version)
};

View File

@ -6,6 +6,7 @@ export interface IZuluVersions {
download_url: string;
java_version: Array<number>;
distro_version: Array<number>;
openjdk_build_number: number;
latest: boolean;
availability_type: string;
}