Skip to content

Commit 3bf8654

Browse files
devonfw#1162: url-updater refactoring (devonfw#1169)
1 parent d396136 commit 3bf8654

18 files changed

+282
-191
lines changed

.lift.toml

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
build = "mvn"
22

3-
ignoreRules = [ "Var", "Varifier", "MissingSummary", "PATH_TRAVERSAL_IN" ]
3+
ignoreRules = [ "Var", "Varifier", "MissingSummary", "PATH_TRAVERSAL_IN", "NULL_DEREFERENCE" ]

url-updater/src/main/java/com/devonfw/tools/ide/url/updater/AbstractUrlUpdater.java

+76-68
Original file line numberDiff line numberDiff line change
@@ -127,7 +127,7 @@ protected HttpResponse<InputStream> doGetResponseAsStream(String url) {
127127
/**
128128
* Updates a tool version with the given arguments (OS independent).
129129
*
130-
* @param urlVersion the {@link UrlVersion} instance to update.
130+
* @param urlVersion the {@link UrlVersion} with the {@link UrlVersion#getName() version-number} to process.
131131
* @param downloadUrl the URL of the download for the tool.
132132
* @return true if the version was successfully updated, false otherwise.
133133
*/
@@ -139,20 +139,35 @@ protected boolean doAddVersion(UrlVersion urlVersion, String downloadUrl) {
139139
/**
140140
* Updates a tool version with the given arguments.
141141
*
142-
* @param urlVersion the {@link UrlVersion} instance to update.
142+
* @param urlVersion the {@link UrlVersion} with the {@link UrlVersion#getName() version-number} to process.
143143
* @param downloadUrl the URL of the download for the tool.
144144
* @param os the {@link OperatingSystem} for the tool (can be null).
145145
* @return true if the version was successfully updated, false otherwise.
146146
*/
147147
protected boolean doAddVersion(UrlVersion urlVersion, String downloadUrl, OperatingSystem os) {
148148

149-
return doAddVersion(urlVersion, downloadUrl, os, null, "");
149+
return doAddVersion(urlVersion, downloadUrl, os, null);
150150
}
151151

152152
/**
153153
* Updates a tool version with the given arguments.
154154
*
155-
* @param urlVersion the UrlVersion instance to update.
155+
* @param urlVersion the {@link UrlVersion} with the {@link UrlVersion#getName() version-number} to process.
156+
* @param downloadUrl the URL of the download for the tool.
157+
* @param os the {@link OperatingSystem} for the tool (can be null).
158+
* @param architecture the optional {@link SystemArchitecture}.
159+
* @return true if the version was successfully updated, false otherwise.
160+
*/
161+
protected boolean doAddVersion(UrlVersion urlVersion, String downloadUrl, OperatingSystem os,
162+
SystemArchitecture architecture) {
163+
164+
return doAddVersion(urlVersion, downloadUrl, os, architecture, "");
165+
}
166+
167+
/**
168+
* Updates a tool version with the given arguments.
169+
*
170+
* @param urlVersion the {@link UrlVersion} with the {@link UrlVersion#getName() version-number} to process.
156171
* @param url the URL of the download for the tool.
157172
* @param os the optional {@link OperatingSystem}.
158173
* @param architecture the optional {@link SystemArchitecture}.
@@ -172,11 +187,7 @@ protected boolean doAddVersion(UrlVersion urlVersion, String url, OperatingSyste
172187
}
173188
url = url.replace("${edition}", getEdition());
174189

175-
if (checksum.isEmpty()) {
176-
return checkDownloadUrl(url, urlVersion, os, architecture);
177-
} else {
178-
return checkDownloadUrl(url, urlVersion, os, architecture, checksum);
179-
}
190+
return checkDownloadUrl(url, urlVersion, os, architecture, checksum);
180191

181192
}
182193

@@ -190,58 +201,62 @@ protected boolean isSuccess(HttpResponse<?> response) {
190201
}
191202

192203
/**
193-
* Checks the download URL and takes the provided checksum into account instead of downloading the file and generating
194-
* the checksum from it
204+
* Checks if the download file checksum is still valid
195205
*
196-
* @param url the URL of the download to check.
197-
* @param urlVersion the {@link UrlVersion} where to store the collected information like status and checksum.
206+
* @param url String of the URL to check
207+
* @param urlVersion the {@link UrlVersion} with the {@link UrlVersion#getName() version-number} to process.
198208
* @param os the {@link OperatingSystem}
199209
* @param architecture the {@link SystemArchitecture}
200-
* @param checksum String of the checksum to use
201-
* @return {@code true} if the download was checked successfully, {@code false} otherwise.
210+
* @param checksum String of the new checksum to check
211+
* @param tool String of the tool
212+
* @param version String of the version
213+
* @return {@code true} if update of checksum was successful, {@code false} otherwise.
202214
*/
203-
private boolean checkDownloadUrl(String url, UrlVersion urlVersion, OperatingSystem os,
204-
SystemArchitecture architecture, String checksum) {
215+
private static boolean isChecksumStillValid(String url, UrlVersion urlVersion, OperatingSystem os,
216+
SystemArchitecture architecture, String checksum, String tool, String version) {
205217

206-
HttpResponse<?> response = doCheckDownloadViaHeadRequest(url);
207-
int statusCode = response.statusCode();
208-
boolean success = isSuccess(response);
209-
String tool = getToolWithEdition();
210-
String version = urlVersion.getName();
211-
String contentType = response.headers().firstValue("content-type").orElse("undefined");
212-
if (success && contentType.startsWith("text")) {
213-
logger.error("For tool {} and version {} the download has an invalid content type {} for URL {}", tool, version,
214-
contentType, url);
215-
success = false;
216-
}
217-
if (success) {
218-
UrlDownloadFile urlDownloadFile = urlVersion.getOrCreateUrls(os, architecture);
219-
UrlChecksum urlChecksum = urlVersion.getOrCreateChecksum(urlDownloadFile.getName());
218+
UrlDownloadFile urlDownloadFile = urlVersion.getOrCreateUrls(os, architecture);
219+
UrlChecksum urlChecksum = urlVersion.getOrCreateChecksum(urlDownloadFile.getName());
220+
String oldChecksum = urlChecksum.getChecksum();
221+
222+
if ((oldChecksum != null) && !Objects.equal(oldChecksum, checksum)) {
223+
logger.error("For tool {} and version {} the mirror URL {} points to a different checksum {} but expected {}.",
224+
tool, version, url, checksum, oldChecksum);
225+
return false;
226+
} else {
220227
urlDownloadFile.addUrl(url);
221228
urlChecksum.setChecksum(checksum);
222-
String oldChecksum = urlChecksum.getChecksum();
223-
224-
if ((oldChecksum != null) && !Objects.equal(oldChecksum, checksum)) {
225-
logger.error("For tool {} and version {} the mirror URL {} points to a different checksum {} but expected {}.",
226-
tool, version, url, checksum, oldChecksum);
227-
success = false;
228-
} else {
229-
urlDownloadFile.addUrl(url);
230-
urlChecksum.setChecksum(checksum);
231-
}
232229
}
230+
return true;
231+
}
233232

234-
doUpdateStatusJson(success, statusCode, urlVersion, url, false);
233+
/**
234+
* Checks if the content type is valid (not of type text)
235+
*
236+
* @param url String of the url to check
237+
* @param tool String of the tool name
238+
* @param version String of the version
239+
* @param response the {@link HttpResponse}.
240+
* @return {@code true} if the content type is not of type text, {@code false} otherwise.
241+
*/
242+
private boolean isValidDownload(String url, String tool, String version, HttpResponse<?> response) {
235243

236-
if (success) {
237-
urlVersion.save();
244+
if (isSuccess(response)) {
245+
String contentType = response.headers().firstValue("content-type").orElse("undefined");
246+
if (contentType.startsWith("text")) {
247+
logger.error("For tool {} and version {} the download has an invalid content type {} for URL {}", tool, version,
248+
contentType, url);
249+
return false;
250+
}
251+
} else {
252+
return false;
238253
}
239254

240-
return success;
255+
return true;
241256
}
242257

243258
/**
244-
* Checks the download URL by downloading the file and generating the checksum from it
259+
* Checks the download URL by checksum or by downloading the file and generating the checksum from it
245260
*
246261
* @param url the URL of the download to check.
247262
* @param urlVersion the {@link UrlVersion} where to store the collected information like status and checksum.
@@ -250,37 +265,30 @@ private boolean checkDownloadUrl(String url, UrlVersion urlVersion, OperatingSys
250265
* @return {@code true} if the download was checked successfully, {@code false} otherwise.
251266
*/
252267
private boolean checkDownloadUrl(String url, UrlVersion urlVersion, OperatingSystem os,
253-
SystemArchitecture architecture) {
268+
SystemArchitecture architecture, String checksum) {
254269

255-
HttpResponse<InputStream> response = doGetResponseAsStream(url);
270+
HttpResponse<?> response = doCheckDownloadViaHeadRequest(url);
256271
int statusCode = response.statusCode();
257-
boolean success = isSuccess(response);
258-
String contentType = response.headers().firstValue("content-type").orElse("undefined");
259272
String tool = getToolWithEdition();
260273
String version = urlVersion.getName();
261-
if (success && contentType.startsWith("text")) {
262-
logger.error("For tool {} and version {} the download has an invalid content type {} for URL {}", tool, version,
263-
contentType, url);
264-
success = false;
265-
}
274+
275+
boolean success = isValidDownload(url, tool, version, response);
276+
266277
if (success) {
267-
String checksum = doGenerateChecksum(response, url, version, contentType);
268-
UrlDownloadFile urlDownloadFile = urlVersion.getOrCreateUrls(os, architecture);
269-
UrlChecksum urlChecksum = urlVersion.getOrCreateChecksum(urlDownloadFile.getName());
270-
String oldChecksum = urlChecksum.getChecksum();
271-
if ((oldChecksum != null) && !Objects.equal(oldChecksum, checksum)) {
272-
logger.error("For tool {} and version {} the mirror URL {} points to a different checksum {} but expected {}.",
273-
tool, version, url, checksum, oldChecksum);
274-
success = false;
275-
} else {
276-
urlDownloadFile.addUrl(url);
277-
urlChecksum.setChecksum(checksum);
278+
if (checksum == null || checksum.isEmpty()) {
279+
String contentType = response.headers().firstValue("content-type").orElse("undefined");
280+
checksum = doGenerateChecksum(doGetResponseAsStream(url), url, version, contentType);
278281
}
282+
283+
success = isChecksumStillValid(url, urlVersion, os, architecture, checksum, tool, version);
279284
}
280-
doUpdateStatusJson(success, statusCode, urlVersion, url, false);
285+
281286
if (success) {
282287
urlVersion.save();
283288
}
289+
290+
doUpdateStatusJson(success, statusCode, urlVersion, url, false);
291+
284292
return success;
285293
}
286294

@@ -333,7 +341,7 @@ protected HttpResponse<?> doCheckDownloadViaHeadRequest(String url) {
333341

334342
return this.client.send(request, HttpResponse.BodyHandlers.ofString());
335343
} catch (Exception e) {
336-
logger.error("Failed to preform HEAD request of URL {}", url, e);
344+
logger.error("Failed to perform HEAD request of URL {}", url, e);
337345
return null;
338346
}
339347
}

url-updater/src/main/java/com/devonfw/tools/ide/url/updater/docker/DockerDesktopUrlUpdater.java

+4-4
Original file line numberDiff line numberDiff line change
@@ -33,8 +33,8 @@ protected void addVersion(UrlVersion urlVersion) {
3333
if (!success) {
3434
return;
3535
}
36-
doAddVersion(urlVersion, "https://desktop.docker.com/mac/main/amd64/" + code + "/Docker.dmg", MAC, X64, "");
37-
doAddVersion(urlVersion, "https://desktop.docker.com/mac/main/arm64/" + code + "/Docker.dmg", MAC, ARM64, "");
36+
doAddVersion(urlVersion, "https://desktop.docker.com/mac/main/amd64/" + code + "/Docker.dmg", MAC, X64);
37+
doAddVersion(urlVersion, "https://desktop.docker.com/mac/main/arm64/" + code + "/Docker.dmg", MAC, ARM64);
3838
} else {
3939
// For the latest version, there is no code in the url.
4040
// TODO but that means that the implementation is wrong as the URL will then change later and is therefore
@@ -46,8 +46,8 @@ protected void addVersion(UrlVersion urlVersion) {
4646
if (!success) {
4747
return;
4848
}
49-
doAddVersion(urlVersion, "https://desktop.docker.com/mac/main/amd64/Docker.dmg", MAC, X64, "");
50-
doAddVersion(urlVersion, "https://desktop.docker.com/mac/main/arm64/Docker.dmg", MAC, ARM64, "");
49+
doAddVersion(urlVersion, "https://desktop.docker.com/mac/main/amd64/Docker.dmg", MAC, X64);
50+
doAddVersion(urlVersion, "https://desktop.docker.com/mac/main/arm64/Docker.dmg", MAC, ARM64);
5151
}
5252

5353
}

url-updater/src/main/java/com/devonfw/tools/ide/url/updater/docker/DockerRancherDesktopUrlUpdater.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ protected void addVersion(UrlVersion urlVersion) {
4343
String baseUrl = "https://github.com/rancher-sandbox/rancher-desktop/releases/download/v${version}/Rancher.Desktop";
4444
doAddVersion(urlVersion, baseUrl + ".Setup.${version}.exe", WINDOWS);
4545
doAddVersion(urlVersion, baseUrl + "-${version}.x86_64.dmg", MAC);
46-
doAddVersion(urlVersion, baseUrl + "-${version}.aarch64.dmg", MAC, ARM64, "");
46+
doAddVersion(urlVersion, baseUrl + "-${version}.aarch64.dmg", MAC, ARM64);
4747

4848
}
4949
}

url-updater/src/main/java/com/devonfw/tools/ide/url/updater/dotnet/DotNetUrlUpdater.java

+6-6
Original file line numberDiff line numberDiff line change
@@ -23,15 +23,15 @@ protected String getVersionPrefixToRemove() {
2323
protected void addVersion(UrlVersion urlVersion) {
2424

2525
String baseUrl = "https://dotnetcli.azureedge.net/dotnet/Sdk/${version}/dotnet-sdk-${version}-";
26-
boolean ok1 = doAddVersion(urlVersion, baseUrl + "win-x64.zip", WINDOWS, X64, "");
27-
boolean ok2 = doAddVersion(urlVersion, baseUrl + "win-arm64.zip", WINDOWS, ARM64, "");
26+
boolean ok1 = doAddVersion(urlVersion, baseUrl + "win-x64.zip", WINDOWS, X64);
27+
boolean ok2 = doAddVersion(urlVersion, baseUrl + "win-arm64.zip", WINDOWS, ARM64);
2828
if (!ok1 && !ok2) {
2929
return;
3030
}
31-
doAddVersion(urlVersion, baseUrl + "linux-x64.tar.gz", LINUX, X64, "");
32-
doAddVersion(urlVersion, baseUrl + "linux-arm64.tar.gz", LINUX, ARM64, "");
33-
doAddVersion(urlVersion, baseUrl + "osx-x64.tar.gz", MAC, X64, "");
34-
doAddVersion(urlVersion, baseUrl + "osx-arm64.tar.gz", MAC, ARM64, "");
31+
doAddVersion(urlVersion, baseUrl + "linux-x64.tar.gz", LINUX, X64);
32+
doAddVersion(urlVersion, baseUrl + "linux-arm64.tar.gz", LINUX, ARM64);
33+
doAddVersion(urlVersion, baseUrl + "osx-x64.tar.gz", MAC, X64);
34+
doAddVersion(urlVersion, baseUrl + "osx-arm64.tar.gz", MAC, ARM64);
3535
}
3636

3737
@Override

url-updater/src/main/java/com/devonfw/tools/ide/url/updater/eclipse/EclipseUrlUpdater.java

+5-5
Original file line numberDiff line numberDiff line change
@@ -60,14 +60,14 @@ protected void addVersion(UrlVersion urlVersion) {
6060
private boolean doUpdateVersions(UrlVersion urlVersion, String baseUrl) {
6161

6262
boolean ok;
63-
ok = doAddVersion(urlVersion, baseUrl + "win32-x86_64.zip", WINDOWS, X64, "");
63+
ok = doAddVersion(urlVersion, baseUrl + "win32-x86_64.zip", WINDOWS, X64);
6464
if (!ok) {
6565
return false;
6666
}
67-
ok = doAddVersion(urlVersion, baseUrl + "linux-gtk-x86_64.tar.gz", LINUX, X64, "");
68-
ok = doAddVersion(urlVersion, baseUrl + "linux-gtk-aarch64.tar.gz", LINUX, ARM64, "");
69-
ok = doAddVersion(urlVersion, baseUrl + "macosx-cocoa-x86_64.tar.gz", MAC, X64, "");
70-
ok = doAddVersion(urlVersion, baseUrl + "macosx-cocoa-aarch64.tar.gz", MAC, ARM64, "");
67+
ok = doAddVersion(urlVersion, baseUrl + "linux-gtk-x86_64.tar.gz", LINUX, X64);
68+
ok = doAddVersion(urlVersion, baseUrl + "linux-gtk-aarch64.tar.gz", LINUX, ARM64);
69+
ok = doAddVersion(urlVersion, baseUrl + "macosx-cocoa-x86_64.tar.gz", MAC, X64);
70+
ok = doAddVersion(urlVersion, baseUrl + "macosx-cocoa-aarch64.tar.gz", MAC, ARM64);
7171
return ok;
7272
}
7373

url-updater/src/main/java/com/devonfw/tools/ide/url/updater/gh/GhUrlUpdater.java

+5-5
Original file line numberDiff line numberDiff line change
@@ -23,11 +23,11 @@ protected String getVersionPrefixToRemove() {
2323
protected void addVersion(UrlVersion urlVersion) {
2424

2525
String baseUrl = "https://github.com/cli/cli/releases/download/v${version}/gh_${version}_";
26-
doAddVersion(urlVersion, baseUrl + "windows_amd64.zip", WINDOWS, X64, "");
27-
doAddVersion(urlVersion, baseUrl + "linux_amd64.tar.gz", LINUX, X64, "");
28-
doAddVersion(urlVersion, baseUrl + "linux_arm64.tar.gz", LINUX, ARM64, "");
29-
doAddVersion(urlVersion, baseUrl + "macOS_amd64.tar.gz", MAC, X64, "");
30-
doAddVersion(urlVersion, baseUrl + "macOS_arm64.tar.gz", MAC, ARM64, "");
26+
doAddVersion(urlVersion, baseUrl + "windows_amd64.zip", WINDOWS, X64);
27+
doAddVersion(urlVersion, baseUrl + "linux_amd64.tar.gz", LINUX, X64);
28+
doAddVersion(urlVersion, baseUrl + "linux_arm64.tar.gz", LINUX, ARM64);
29+
doAddVersion(urlVersion, baseUrl + "macOS_amd64.tar.gz", MAC, X64);
30+
doAddVersion(urlVersion, baseUrl + "macOS_arm64.tar.gz", MAC, ARM64);
3131
}
3232

3333
@Override

url-updater/src/main/java/com/devonfw/tools/ide/url/updater/graalvm/GraalVmUrlUpdater.java

+4-4
Original file line numberDiff line numberDiff line change
@@ -23,10 +23,10 @@ protected String getVersionPrefixToRemove() {
2323
protected void addVersion(UrlVersion urlVersion) {
2424

2525
String baseUrl = "https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-${version}/graalvm-ce-java11-";
26-
doAddVersion(urlVersion, baseUrl + "windows-amd64-${version}.zip", WINDOWS, X64, "");
27-
doAddVersion(urlVersion, baseUrl + "linux-amd64-${version}.tar.gz", LINUX, X64, "");
28-
doAddVersion(urlVersion, baseUrl + "darwin-amd64-${version}.tar.gz", MAC, X64, "");
29-
doAddVersion(urlVersion, baseUrl + "darwin-aarch64-${version}.tar.gz", MAC, ARM64, "");
26+
doAddVersion(urlVersion, baseUrl + "windows-amd64-${version}.zip", WINDOWS, X64);
27+
doAddVersion(urlVersion, baseUrl + "linux-amd64-${version}.tar.gz", LINUX, X64);
28+
doAddVersion(urlVersion, baseUrl + "darwin-amd64-${version}.tar.gz", MAC, X64);
29+
doAddVersion(urlVersion, baseUrl + "darwin-aarch64-${version}.tar.gz", MAC, ARM64);
3030

3131
}
3232

url-updater/src/main/java/com/devonfw/tools/ide/url/updater/helm/HelmUrlUpdater.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ protected void addVersion(UrlVersion urlVersion) {
2727
doAddVersion(urlVersion, baseUrl + "windows-amd64.zip", WINDOWS);
2828
doAddVersion(urlVersion, baseUrl + "linux-amd64.tar.gz", LINUX);
2929
doAddVersion(urlVersion, baseUrl + "darwin-amd64.tar.gz", MAC);
30-
doAddVersion(urlVersion, baseUrl + "darwin-arm64.tar.gz", MAC, ARM64, "");
30+
doAddVersion(urlVersion, baseUrl + "darwin-arm64.tar.gz", MAC, ARM64);
3131
}
3232

3333
}

url-updater/src/main/java/com/devonfw/tools/ide/url/updater/kotlinc/KotlincNativeUrlUpdater.java

+4-4
Original file line numberDiff line numberDiff line change
@@ -19,10 +19,10 @@ protected String getTool() {
1919
protected void addVersion(UrlVersion urlVersion) {
2020

2121
String baseUrl = "https://github.com/JetBrains/kotlin/releases/download/v${version}/kotlin-native-";
22-
doAddVersion(urlVersion, baseUrl + "windows-x86_64-${version}.zip", WINDOWS, X64, "");
23-
doAddVersion(urlVersion, baseUrl + "linux-x86_64-${version}.tar.gz", LINUX, X64, "");
24-
doAddVersion(urlVersion, baseUrl + "macos-x86_64-${version}.tar.gz", MAC, X64, "");
25-
doAddVersion(urlVersion, baseUrl + "macos-aarch64-${version}.tar.gz", MAC, ARM64, "");
22+
doAddVersion(urlVersion, baseUrl + "windows-x86_64-${version}.zip", WINDOWS, X64);
23+
doAddVersion(urlVersion, baseUrl + "linux-x86_64-${version}.tar.gz", LINUX, X64);
24+
doAddVersion(urlVersion, baseUrl + "macos-x86_64-${version}.tar.gz", MAC, X64);
25+
doAddVersion(urlVersion, baseUrl + "macos-aarch64-${version}.tar.gz", MAC, ARM64);
2626
}
2727

2828
@Override

url-updater/src/main/java/com/devonfw/tools/ide/url/updater/lazydocker/LazyDockerUrlUpdater.java

+6-6
Original file line numberDiff line numberDiff line change
@@ -35,12 +35,12 @@ protected String getVersionPrefixToRemove() {
3535
protected void addVersion(UrlVersion urlVersion) {
3636

3737
String baseUrl = "https://github.com/jesseduffield/lazydocker/releases/download/v${version}/lazydocker_${version}_";
38-
doAddVersion(urlVersion, baseUrl + "Windows_x86_64.zip", WINDOWS, X64, "");
39-
doAddVersion(urlVersion, baseUrl + "Windows_arm64.zip", WINDOWS, ARM64, "");
40-
doAddVersion(urlVersion, baseUrl + "Linux_x86_64.tar.gz", LINUX, X64, "");
41-
doAddVersion(urlVersion, baseUrl + "Linux_arm64.tar.gz", LINUX, ARM64, "");
42-
doAddVersion(urlVersion, baseUrl + "Darwin_x86_64.tar.gz", MAC, X64, "");
43-
doAddVersion(urlVersion, baseUrl + "Darwin_arm64.tar.gz", MAC, ARM64, "");
38+
doAddVersion(urlVersion, baseUrl + "Windows_x86_64.zip", WINDOWS, X64);
39+
doAddVersion(urlVersion, baseUrl + "Windows_arm64.zip", WINDOWS, ARM64);
40+
doAddVersion(urlVersion, baseUrl + "Linux_x86_64.tar.gz", LINUX, X64);
41+
doAddVersion(urlVersion, baseUrl + "Linux_arm64.tar.gz", LINUX, ARM64);
42+
doAddVersion(urlVersion, baseUrl + "Darwin_x86_64.tar.gz", MAC, X64);
43+
doAddVersion(urlVersion, baseUrl + "Darwin_arm64.tar.gz", MAC, ARM64);
4444
}
4545

4646
}

url-updater/src/main/java/com/devonfw/tools/ide/url/updater/node/NodeUrlUpdater.java

+3-3
Original file line numberDiff line numberDiff line change
@@ -30,11 +30,11 @@ protected void addVersion(UrlVersion urlVersion) {
3030

3131
String baseUrl = "https://nodejs.org/dist/${version}/node-${version}-";
3232
doAddVersion(urlVersion, baseUrl + "win-x64.zip", WINDOWS);
33-
doAddVersion(urlVersion, baseUrl + "win-aarch64.zip", WINDOWS, ARM64, "");
33+
doAddVersion(urlVersion, baseUrl + "win-aarch64.zip", WINDOWS, ARM64);
3434
doAddVersion(urlVersion, baseUrl + "linux-x64.tar.gz", LINUX);
35-
doAddVersion(urlVersion, baseUrl + "linux-aarch64.tar.gz", LINUX, ARM64, "");
35+
doAddVersion(urlVersion, baseUrl + "linux-aarch64.tar.gz", LINUX, ARM64);
3636
doAddVersion(urlVersion, baseUrl + "darwin-x64.tar.gz", MAC);
37-
doAddVersion(urlVersion, baseUrl + "darwin-aarch64.tar.gz", MAC, ARM64, "");
37+
doAddVersion(urlVersion, baseUrl + "darwin-aarch64.tar.gz", MAC, ARM64);
3838
}
3939

4040
}

0 commit comments

Comments
 (0)