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

devonfw / IDEasy / 13716948186

07 Mar 2025 08:42AM UTC coverage: 68.471%. Remained the same
13716948186

push

github

web-flow
#1052: add official eclipse download URL since other configured mirrors are outdated or seem obsolete (#1113)

3043 of 4891 branches covered (62.22%)

Branch coverage included in aggregate %.

7887 of 11072 relevant lines covered (71.23%)

3.1 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://download.eclipse.org/technology/epp/downloads",
18
      "https://archive.eclipse.org/technology/epp/downloads",
19
      "https://ftp.osuosl.org/pub/eclipse/technology/epp/downloads" };
20

21
  @Override
22
  protected String getTool() {
23

24
    return "eclipse";
×
25
  }
26

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

32
    return getEdition();
×
33
  }
34

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

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

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

62
    boolean ok;
63
    ok = doAddVersion(urlVersion, baseUrl + "win32-x86_64.zip", WINDOWS, X64);
×
64
    if (!ok) {
×
65
      return false;
×
66
    }
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);
×
71
    return ok;
×
72
  }
73

74
  @Override
75
  protected String getVersionUrl() {
76

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

80
  @Override
81
  protected Pattern getVersionPattern() {
82

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

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

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

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