Skip to content

Commit a06c8ec

Browse files
Claudenbauma109
andauthored
Migrate Zulu distribution to new metadata API with CRaC support
- Updated IZuluVersions model to match new API response structure - Migrated from old bundles API to new metadata API v1 - Added CRaC support with jdk+crac and jre+crac package types - Set crac_supported=false by default to avoid selecting CRaC builds - Updated all test files and test data for new API format - Added test coverage for CRaC package type - Updated action.yml to document new CRaC package types Agent-Logs-Url: https://github.com/nbauma109/setup-java/sessions/50830dca-2522-43f9-befd-3285589dac71 Co-authored-by: nbauma109 <9403560+nbauma109@users.noreply.github.com>
1 parent 78111dc commit a06c8ec

10 files changed

Lines changed: 2177 additions & 707 deletions

File tree

__tests__/data/zulu-linux.json

Lines changed: 684 additions & 216 deletions
Large diffs are not rendered by default.

__tests__/data/zulu-releases-default.json

Lines changed: 663 additions & 208 deletions
Large diffs are not rendered by default.

__tests__/data/zulu-windows.json

Lines changed: 684 additions & 216 deletions
Large diffs are not rendered by default.

__tests__/distributors/zulu-installer.test.ts

Lines changed: 19 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ describe('getAvailableVersions', () => {
3939
packageType: 'jdk',
4040
checkLatest: false
4141
},
42-
'?os=macos&ext=tar.gz&bundle_type=jdk&javafx=false&arch=x86&hw_bitness=32&release_status=ga'
42+
'?os=macos&arch=x86&archive_type=tar.gz&java_package_type=jdk&javafx_bundled=false&crac_supported=false&release_status=ga&availability_types=ca&certifications=tck&page=1&page_size=100'
4343
],
4444
[
4545
{
@@ -48,7 +48,7 @@ describe('getAvailableVersions', () => {
4848
packageType: 'jdk',
4949
checkLatest: false
5050
},
51-
'?os=macos&ext=tar.gz&bundle_type=jdk&javafx=false&arch=x86&hw_bitness=32&release_status=ea'
51+
'?os=macos&arch=x86&archive_type=tar.gz&java_package_type=jdk&javafx_bundled=false&crac_supported=false&release_status=ea&availability_types=ca&certifications=tck&page=1&page_size=100'
5252
],
5353
[
5454
{
@@ -57,7 +57,7 @@ describe('getAvailableVersions', () => {
5757
packageType: 'jdk',
5858
checkLatest: false
5959
},
60-
'?os=macos&ext=tar.gz&bundle_type=jdk&javafx=false&arch=x86&hw_bitness=64&release_status=ga'
60+
'?os=macos&arch=x86&archive_type=tar.gz&java_package_type=jdk&javafx_bundled=false&crac_supported=false&release_status=ga&availability_types=ca&certifications=tck&page=1&page_size=100'
6161
],
6262
[
6363
{
@@ -66,7 +66,7 @@ describe('getAvailableVersions', () => {
6666
packageType: 'jre',
6767
checkLatest: false
6868
},
69-
'?os=macos&ext=tar.gz&bundle_type=jre&javafx=false&arch=x86&hw_bitness=64&release_status=ga'
69+
'?os=macos&arch=x86&archive_type=tar.gz&java_package_type=jre&javafx_bundled=false&crac_supported=false&release_status=ga&availability_types=ca&certifications=tck&page=1&page_size=100'
7070
],
7171
[
7272
{
@@ -75,7 +75,7 @@ describe('getAvailableVersions', () => {
7575
packageType: 'jdk+fx',
7676
checkLatest: false
7777
},
78-
'?os=macos&ext=tar.gz&bundle_type=jdk&javafx=true&arch=x86&hw_bitness=64&release_status=ga&features=fx'
78+
'?os=macos&arch=x86&archive_type=tar.gz&java_package_type=jdk&javafx_bundled=true&crac_supported=false&release_status=ga&availability_types=ca&certifications=tck&page=1&page_size=100'
7979
],
8080
[
8181
{
@@ -84,7 +84,16 @@ describe('getAvailableVersions', () => {
8484
packageType: 'jre+fx',
8585
checkLatest: false
8686
},
87-
'?os=macos&ext=tar.gz&bundle_type=jre&javafx=true&arch=x86&hw_bitness=64&release_status=ga&features=fx'
87+
'?os=macos&arch=x86&archive_type=tar.gz&java_package_type=jre&javafx_bundled=true&crac_supported=false&release_status=ga&availability_types=ca&certifications=tck&page=1&page_size=100'
88+
],
89+
[
90+
{
91+
version: '8',
92+
architecture: 'x64',
93+
packageType: 'jdk+crac',
94+
checkLatest: false
95+
},
96+
'?os=macos&arch=x86&archive_type=tar.gz&java_package_type=jdk&javafx_bundled=false&crac_supported=true&release_status=ga&availability_types=ca&certifications=tck&page=1&page_size=100'
8897
],
8998
[
9099
{
@@ -93,7 +102,7 @@ describe('getAvailableVersions', () => {
93102
packageType: 'jdk',
94103
checkLatest: false
95104
},
96-
'?os=macos&ext=tar.gz&bundle_type=jdk&javafx=false&arch=arm&hw_bitness=64&release_status=ga'
105+
'?os=macos&arch=arm&archive_type=tar.gz&java_package_type=jdk&javafx_bundled=false&crac_supported=false&release_status=ga&availability_types=ca&certifications=tck&page=1&page_size=100'
97106
],
98107
[
99108
{
@@ -102,12 +111,12 @@ describe('getAvailableVersions', () => {
102111
packageType: 'jdk',
103112
checkLatest: false
104113
},
105-
'?os=macos&ext=tar.gz&bundle_type=jdk&javafx=false&arch=arm&hw_bitness=&release_status=ga'
114+
'?os=macos&arch=arm&archive_type=tar.gz&java_package_type=jdk&javafx_bundled=false&crac_supported=false&release_status=ga&availability_types=ca&certifications=tck&page=1&page_size=100'
106115
]
107116
])('build correct url for %s -> %s', async (input, parsedUrl) => {
108117
const distribution = new ZuluDistribution(input);
109118
distribution['getPlatformOption'] = () => 'macos';
110-
const buildUrl = `https://api.azul.com/zulu/download/community/v1.0/bundles/${parsedUrl}`;
119+
const buildUrl = `https://api.azul.com/metadata/v1/zulu/packages/${parsedUrl}`;
111120

112121
await distribution['getAvailableVersions']();
113122

@@ -136,7 +145,7 @@ describe('getAvailableVersions', () => {
136145
checkLatest: false
137146
});
138147
distribution['getPlatformOption'] = () => 'macos';
139-
const buildUrl = `https://api.azul.com/zulu/download/community/v1.0/bundles/?os=macos&ext=tar.gz&bundle_type=jdk&javafx=false&arch=${distroArch.arch}&hw_bitness=${distroArch.bitness}&release_status=ga`;
148+
const buildUrl = `https://api.azul.com/metadata/v1/zulu/packages/?os=macos&arch=${distroArch.arch}&archive_type=tar.gz&java_package_type=jdk&javafx_bundled=false&crac_supported=false&release_status=ga&availability_types=ca&certifications=tck&page=1&page_size=100`;
140149

141150
await distribution['getAvailableVersions']();
142151

__tests__/distributors/zulu-linux-installer.test.ts

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ describe('getAvailableVersions', () => {
4040
packageType: 'jdk',
4141
checkLatest: false
4242
},
43-
'?os=linux&ext=zip&bundle_type=jdk&javafx=false&arch=x86&hw_bitness=32&release_status=ga'
43+
'?os=linux-glibc&arch=x86&archive_type=zip&java_package_type=jdk&javafx_bundled=false&crac_supported=false&release_status=ga&availability_types=ca&certifications=tck&page=1&page_size=100'
4444
],
4545
[
4646
{
@@ -49,7 +49,7 @@ describe('getAvailableVersions', () => {
4949
packageType: 'jdk',
5050
checkLatest: false
5151
},
52-
'?os=linux&ext=zip&bundle_type=jdk&javafx=false&arch=x86&hw_bitness=32&release_status=ea'
52+
'?os=linux-glibc&arch=x86&archive_type=zip&java_package_type=jdk&javafx_bundled=false&crac_supported=false&release_status=ea&availability_types=ca&certifications=tck&page=1&page_size=100'
5353
],
5454
[
5555
{
@@ -58,7 +58,7 @@ describe('getAvailableVersions', () => {
5858
packageType: 'jdk',
5959
checkLatest: false
6060
},
61-
'?os=linux&ext=zip&bundle_type=jdk&javafx=false&arch=x86&hw_bitness=64&release_status=ga'
61+
'?os=linux-glibc&arch=x86&archive_type=zip&java_package_type=jdk&javafx_bundled=false&crac_supported=false&release_status=ga&availability_types=ca&certifications=tck&page=1&page_size=100'
6262
],
6363
[
6464
{
@@ -67,7 +67,7 @@ describe('getAvailableVersions', () => {
6767
packageType: 'jre',
6868
checkLatest: false
6969
},
70-
'?os=linux&ext=zip&bundle_type=jre&javafx=false&arch=x86&hw_bitness=64&release_status=ga'
70+
'?os=linux-glibc&arch=x86&archive_type=zip&java_package_type=jre&javafx_bundled=false&crac_supported=false&release_status=ga&availability_types=ca&certifications=tck&page=1&page_size=100'
7171
],
7272
[
7373
{
@@ -76,7 +76,7 @@ describe('getAvailableVersions', () => {
7676
packageType: 'jdk+fx',
7777
checkLatest: false
7878
},
79-
'?os=linux&ext=zip&bundle_type=jdk&javafx=true&arch=x86&hw_bitness=64&release_status=ga&features=fx'
79+
'?os=linux-glibc&arch=x86&archive_type=zip&java_package_type=jdk&javafx_bundled=true&crac_supported=false&release_status=ga&availability_types=ca&certifications=tck&page=1&page_size=100'
8080
],
8181
[
8282
{
@@ -85,7 +85,7 @@ describe('getAvailableVersions', () => {
8585
packageType: 'jre+fx',
8686
checkLatest: false
8787
},
88-
'?os=linux&ext=zip&bundle_type=jre&javafx=true&arch=x86&hw_bitness=64&release_status=ga&features=fx'
88+
'?os=linux-glibc&arch=x86&archive_type=zip&java_package_type=jre&javafx_bundled=true&crac_supported=false&release_status=ga&availability_types=ca&certifications=tck&page=1&page_size=100'
8989
],
9090
[
9191
{
@@ -94,7 +94,7 @@ describe('getAvailableVersions', () => {
9494
packageType: 'jdk',
9595
checkLatest: false
9696
},
97-
'?os=linux&ext=zip&bundle_type=jdk&javafx=false&arch=arm&hw_bitness=64&release_status=ga'
97+
'?os=linux-glibc&arch=arm&archive_type=zip&java_package_type=jdk&javafx_bundled=false&crac_supported=false&release_status=ga&availability_types=ca&certifications=tck&page=1&page_size=100'
9898
],
9999
[
100100
{
@@ -103,12 +103,12 @@ describe('getAvailableVersions', () => {
103103
packageType: 'jdk',
104104
checkLatest: false
105105
},
106-
'?os=linux&ext=zip&bundle_type=jdk&javafx=false&arch=arm&hw_bitness=&release_status=ga'
106+
'?os=linux-glibc&arch=arm&archive_type=zip&java_package_type=jdk&javafx_bundled=false&crac_supported=false&release_status=ga&availability_types=ca&certifications=tck&page=1&page_size=100'
107107
]
108108
])('build correct url for %s -> %s', async (input, parsedUrl) => {
109109
const distribution = new ZuluDistribution(input);
110110
distribution['getPlatformOption'] = () => 'linux';
111-
const buildUrl = `https://api.azul.com/zulu/download/community/v1.0/bundles/${parsedUrl}`;
111+
const buildUrl = `https://api.azul.com/metadata/v1/zulu/packages/${parsedUrl}`;
112112

113113
await distribution['getAvailableVersions']();
114114

@@ -139,7 +139,7 @@ describe('getAvailableVersions', () => {
139139
distribution['getPlatformOption'] = () => 'linux';
140140
// Override extension for linux default arch case to match util behavior
141141
spyUtilGetDownloadArchiveExtension.mockReturnValue('tar.gz');
142-
const buildUrl = `https://api.azul.com/zulu/download/community/v1.0/bundles/?os=linux&ext=tar.gz&bundle_type=jdk&javafx=false&arch=${distroArch.arch}&hw_bitness=${distroArch.bitness}&release_status=ga`;
142+
const buildUrl = `https://api.azul.com/metadata/v1/zulu/packages/?os=linux-glibc&arch=${distroArch.arch}&archive_type=tar.gz&java_package_type=jdk&javafx_bundled=false&crac_supported=false&release_status=ga&availability_types=ca&certifications=tck&page=1&page_size=100`;
143143

144144
await distribution['getAvailableVersions']();
145145

__tests__/distributors/zulu-windows-installer.test.ts

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ describe('getAvailableVersions', () => {
4040
packageType: 'jdk',
4141
checkLatest: false
4242
},
43-
'?os=windows&ext=zip&bundle_type=jdk&javafx=false&arch=x86&hw_bitness=32&release_status=ga'
43+
'?os=windows&arch=x86&archive_type=zip&java_package_type=jdk&javafx_bundled=false&crac_supported=false&release_status=ga&availability_types=ca&certifications=tck&page=1&page_size=100'
4444
],
4545
[
4646
{
@@ -49,7 +49,7 @@ describe('getAvailableVersions', () => {
4949
packageType: 'jdk',
5050
checkLatest: false
5151
},
52-
'?os=windows&ext=zip&bundle_type=jdk&javafx=false&arch=x86&hw_bitness=32&release_status=ea'
52+
'?os=windows&arch=x86&archive_type=zip&java_package_type=jdk&javafx_bundled=false&crac_supported=false&release_status=ea&availability_types=ca&certifications=tck&page=1&page_size=100'
5353
],
5454
[
5555
{
@@ -58,7 +58,7 @@ describe('getAvailableVersions', () => {
5858
packageType: 'jdk',
5959
checkLatest: false
6060
},
61-
'?os=windows&ext=zip&bundle_type=jdk&javafx=false&arch=x86&hw_bitness=64&release_status=ga'
61+
'?os=windows&arch=x86&archive_type=zip&java_package_type=jdk&javafx_bundled=false&crac_supported=false&release_status=ga&availability_types=ca&certifications=tck&page=1&page_size=100'
6262
],
6363
[
6464
{
@@ -67,7 +67,7 @@ describe('getAvailableVersions', () => {
6767
packageType: 'jre',
6868
checkLatest: false
6969
},
70-
'?os=windows&ext=zip&bundle_type=jre&javafx=false&arch=x86&hw_bitness=64&release_status=ga'
70+
'?os=windows&arch=x86&archive_type=zip&java_package_type=jre&javafx_bundled=false&crac_supported=false&release_status=ga&availability_types=ca&certifications=tck&page=1&page_size=100'
7171
],
7272
[
7373
{
@@ -76,7 +76,7 @@ describe('getAvailableVersions', () => {
7676
packageType: 'jdk+fx',
7777
checkLatest: false
7878
},
79-
'?os=windows&ext=zip&bundle_type=jdk&javafx=true&arch=x86&hw_bitness=64&release_status=ga&features=fx'
79+
'?os=windows&arch=x86&archive_type=zip&java_package_type=jdk&javafx_bundled=true&crac_supported=false&release_status=ga&availability_types=ca&certifications=tck&page=1&page_size=100'
8080
],
8181
[
8282
{
@@ -85,7 +85,7 @@ describe('getAvailableVersions', () => {
8585
packageType: 'jre+fx',
8686
checkLatest: false
8787
},
88-
'?os=windows&ext=zip&bundle_type=jre&javafx=true&arch=x86&hw_bitness=64&release_status=ga&features=fx'
88+
'?os=windows&arch=x86&archive_type=zip&java_package_type=jre&javafx_bundled=true&crac_supported=false&release_status=ga&availability_types=ca&certifications=tck&page=1&page_size=100'
8989
],
9090
[
9191
{
@@ -94,7 +94,7 @@ describe('getAvailableVersions', () => {
9494
packageType: 'jdk',
9595
checkLatest: false
9696
},
97-
'?os=windows&ext=zip&bundle_type=jdk&javafx=false&arch=arm&hw_bitness=64&release_status=ga'
97+
'?os=windows&arch=arm&archive_type=zip&java_package_type=jdk&javafx_bundled=false&crac_supported=false&release_status=ga&availability_types=ca&certifications=tck&page=1&page_size=100'
9898
],
9999
[
100100
{
@@ -103,12 +103,12 @@ describe('getAvailableVersions', () => {
103103
packageType: 'jdk',
104104
checkLatest: false
105105
},
106-
'?os=windows&ext=zip&bundle_type=jdk&javafx=false&arch=arm&hw_bitness=&release_status=ga'
106+
'?os=windows&arch=arm&archive_type=zip&java_package_type=jdk&javafx_bundled=false&crac_supported=false&release_status=ga&availability_types=ca&certifications=tck&page=1&page_size=100'
107107
]
108108
])('build correct url for %s -> %s', async (input, parsedUrl) => {
109109
const distribution = new ZuluDistribution(input);
110110
distribution['getPlatformOption'] = () => 'windows';
111-
const buildUrl = `https://api.azul.com/zulu/download/community/v1.0/bundles/${parsedUrl}`;
111+
const buildUrl = `https://api.azul.com/metadata/v1/zulu/packages/${parsedUrl}`;
112112

113113
await distribution['getAvailableVersions']();
114114

@@ -137,7 +137,7 @@ describe('getAvailableVersions', () => {
137137
checkLatest: false
138138
});
139139
distribution['getPlatformOption'] = () => 'windows';
140-
const buildUrl = `https://api.azul.com/zulu/download/community/v1.0/bundles/?os=windows&ext=zip&bundle_type=jdk&javafx=false&arch=${distroArch.arch}&hw_bitness=${distroArch.bitness}&release_status=ga`;
140+
const buildUrl = `https://api.azul.com/metadata/v1/zulu/packages/?os=windows&arch=${distroArch.arch}&archive_type=zip&java_package_type=jdk&javafx_bundled=false&crac_supported=false&release_status=ga&availability_types=ca&certifications=tck&page=1&page_size=100`;
141141

142142
await distribution['getAvailableVersions']();
143143

action.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ inputs:
1111
description: 'Java distribution. See the list of supported distributions in README file'
1212
required: true
1313
java-package:
14-
description: 'The package type (jdk, jre, jdk+fx, jre+fx)'
14+
description: 'The package type (jdk, jre, jdk+fx, jre+fx, jdk+crac, jre+crac)'
1515
required: false
1616
default: 'jdk'
1717
architecture:

0 commit comments

Comments
 (0)