• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

devonfw / IDEasy / 10164154193

30 Jul 2024 02:20PM UTC coverage: 62.742% (+1.0%) from 61.738%
10164154193

push

github

web-flow
#437: and #458: Refactor JsonUrlUpdaters (#481)

2079 of 3645 branches covered (57.04%)

Branch coverage included in aggregate %.

5504 of 8441 relevant lines covered (65.21%)

2.87 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

72.34
cli/src/main/java/com/devonfw/tools/ide/tool/java/JavaUrlUpdater.java
1
package com.devonfw.tools.ide.tool.java;
2

3
import java.util.Collection;
4

5
import com.devonfw.tools.ide.url.model.folder.UrlVersion;
6
import com.devonfw.tools.ide.url.updater.JsonUrlUpdater;
7

8
/**
9
 * {@link JsonUrlUpdater} for Java.
10
 */
11
public class JavaUrlUpdater extends JsonUrlUpdater<JavaJsonObject, JavaJsonVersion> {
3✔
12

13
  @Override
14
  protected String getTool() {
15

16
    return "java";
2✔
17
  }
18

19
  @Override
20
  protected String mapVersion(String version) {
21

22
    // remove the suffix "-LTS", this is necessary for java version 21+35-LTS
23
    if (version.endsWith("-LTS")) {
4✔
24
      version = version.substring(0, version.length() - 4);
8✔
25
    }
26
    return super.mapVersion(version);
4✔
27
  }
28

29
  @Override
30
  protected void addVersion(UrlVersion urlVersion) {
31

32
    String mirror = getMirror();
3✔
33
    String version = urlVersion.getName();
3✔
34
    int i = 0;
2✔
35
    int length = version.length();
3✔
36
    while (i < length) {
3!
37
      char c = version.charAt(i);
4✔
38
      if (c >= '0' && c <= '9') {
6✔
39
        i++;
1✔
40
      } else {
41
        break;
42
      }
43
    }
1✔
44
    String major = version.substring(0, i);
5✔
45
    String code;
46
    if (version.charAt(0) == '8') {
5!
47
      code = "jdk" + version.replace("b", "-b");
×
48
    } else {
49
      code = "jdk-" + version.replace("_", "%2B");
6✔
50
    }
51

52
    String baseUrl = mirror + major + "-binaries/releases/download/" + code + "/OpenJDK" + major;
6✔
53
    boolean success = doAddVersion(urlVersion, baseUrl + "U-jdk_x64_windows_hotspot_${version}.zip", WINDOWS);
7✔
54
    if (!success) {
2!
55
      mirror = "https://github.com/AdoptOpenJDK/openjdk";
×
56
      baseUrl = mirror + major + "-binaries/releases/download/" + code + "/OpenJDK" + major;
×
57
      success = doAddVersion(urlVersion, baseUrl + "U-jdk_x64_windows_hotspot_${version}.zip", WINDOWS);
×
58
      if (!success) {
×
59
        return;
×
60
      }
61
    }
62
    doAddVersion(urlVersion, baseUrl + "U-jdk_x64_mac_hotspot_${version}.tar.gz", MAC);
7✔
63
    doAddVersion(urlVersion, baseUrl + "U-jdk_x64_linux_hotspot_${version}.tar.gz", LINUX);
7✔
64

65
  }
1✔
66

67
  protected String getMirror() {
68

69
    return "https://github.com/adoptium/temurin";
×
70
  }
71

72
  @Override
73
  protected String doGetVersionUrl() {
74

75
    return "https://api.adoptium.net/v3/info/release_versions?architecture=x64&heap_size=normal&image_type=jdk&jvm_impl=hotspot&page=0&page_size=50&project=jdk&release_type=ga&sort_method=DEFAULT&sort_order=DESC&vendor=eclipse";
×
76
  }
77

78
  @Override
79
  protected Class<JavaJsonObject> getJsonObjectType() {
80

81
    return JavaJsonObject.class;
2✔
82
  }
83

84
  @Override
85
  protected Collection<JavaJsonVersion> getVersionItems(JavaJsonObject jsonObject) {
86

87
    return jsonObject.versions();
3✔
88
  }
89
}
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc