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

devonfw / IDEasy / 11292419862

11 Oct 2024 12:34PM UTC coverage: 66.152% (-0.4%) from 66.509%
11292419862

push

github

web-flow
devonfw/ide-urls#17: fix UrlUpdater to auto-remove broken URLs and allow self-repair (#681)

2381 of 3940 branches covered (60.43%)

Branch coverage included in aggregate %.

6193 of 9021 relevant lines covered (68.65%)

3.03 hits per line

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

0.0
cli/src/main/java/com/devonfw/tools/ide/tool/eclipse/EclipseUrlUpdater.java
1
package com.devonfw.tools.ide.tool.eclipse;
2

3
import java.util.regex.Pattern;
4

5
import com.devonfw.tools.ide.url.model.folder.UrlVersion;
6
import com.devonfw.tools.ide.url.updater.WebsiteUrlUpdater;
7
import com.devonfw.tools.ide.version.VersionIdentifier;
8
import com.devonfw.tools.ide.version.VersionPhase;
9
import com.devonfw.tools.ide.version.VersionSegment;
10

11
/**
12
 * Abstract {@link WebsiteUrlUpdater} base-class for eclipse editions.
13
 */
14
public abstract class EclipseUrlUpdater extends WebsiteUrlUpdater {
×
15

16
  private static final String[] MIRRORS = {
×
17
      "https://archive.eclipse.org/technology/epp/downloads",
18
      "https://ftp.osuosl.org/pub/eclipse/technology/epp/downloads" };
19

20
  @Override
21
  protected String getTool() {
22

23
    return "eclipse";
×
24
  }
25

26
  /**
27
   * @return the eclipse edition name. May be different from {@link #getEdition()} allowing a different edition name (e.g. eclipse) for IDEasy.
28
   */
29
  protected String getEclipseEdition() {
30

31
    return getEdition();
×
32
  }
33

34
  @Override
35
  protected void addVersion(UrlVersion urlVersion) {
36

37
    // archive
38
    String releaseType = "R";
×
39
    VersionIdentifier versionIdentifier = urlVersion.getVersionIdentifier();
×
40
    String version = urlVersion.getName();
×
41
    VersionSegment segment = versionIdentifier.getStart();
×
42
    while (segment != null) {
×
43
      if ((segment.getPhase() == VersionPhase.MILESTONE) || (segment.getPhase() == VersionPhase.RELEASE_CANDIDATE)) {
×
44
        // found a non release type (e.g. M1, M2, RC1, ...)
45
        releaseType = segment.getLettersString() + segment.getDigits();
×
46
        version = version.replace(segment.toString(), "");
×
47
        break;
×
48
      }
49
      segment = segment.getNextOrNull();
×
50
    }
51
    String edition = getEclipseEdition();
×
52
    for (String mirror : MIRRORS) {
×
53
      String baseUrl = mirror + "/release/" + version + "/" + releaseType + "/eclipse-" + edition + "-" + version + "-"
×
54
          + releaseType + "-";
55
      doUpdateVersions(urlVersion, baseUrl);
×
56
    }
57
  }
×
58

59
  private boolean doUpdateVersions(UrlVersion urlVersion, String baseUrl) {
60

61
    boolean ok;
62
    ok = doAddVersion(urlVersion, baseUrl + "win32-x86_64.zip", WINDOWS, X64);
×
63
    if (!ok) {
×
64
      return false;
×
65
    }
66
    ok = doAddVersion(urlVersion, baseUrl + "linux-gtk-x86_64.tar.gz", LINUX, X64);
×
67
    ok = doAddVersion(urlVersion, baseUrl + "linux-gtk-aarch64.tar.gz", LINUX, ARM64);
×
68
    ok = doAddVersion(urlVersion, baseUrl + "macosx-cocoa-x86_64.tar.gz", MAC, X64);
×
69
    ok = doAddVersion(urlVersion, baseUrl + "macosx-cocoa-aarch64.tar.gz", MAC, ARM64);
×
70
    return ok;
×
71
  }
72

73
  @Override
74
  protected String getVersionUrl() {
75

76
    return "https://www.eclipse.org/downloads/packages/release";
×
77
  }
78

79
  @Override
80
  protected Pattern getVersionPattern() {
81

82
    return Pattern.compile("\\d{4}-\\d{2}");
×
83
  }
84

85
  @Override
86
  protected String mapVersion(String version) {
87

88
    // TODO remove this hack and get versions from reliable API
89
    return super.mapVersion(version.replace(" ", "-"));
×
90
  }
91

92
}
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