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

devonfw / IDEasy / 7289923495

21 Dec 2023 03:13PM UTC coverage: 47.217% (-0.7%) from 47.873%
7289923495

Pull #160

github

web-flow
Merge fd59fa591 into 1d60d9c17
Pull Request #160: #126: Monitoring for ide-urls

1019 of 2393 branches covered (0.0%)

Branch coverage included in aggregate %.

2714 of 5513 relevant lines covered (49.23%)

2.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/url/updater/UpdateManager.java
1
package com.devonfw.tools.ide.url.updater;
2

3
import java.nio.file.Path;
4
import java.time.Instant;
5
import java.util.Arrays;
6
import java.util.List;
7

8
import org.slf4j.Logger;
9
import org.slf4j.LoggerFactory;
10

11
import com.devonfw.tools.ide.tool.androidstudio.AndroidStudioUrlUpdater;
12
import com.devonfw.tools.ide.tool.aws.AwsUrlUpdater;
13
import com.devonfw.tools.ide.tool.az.AzureUrlUpdater;
14
import com.devonfw.tools.ide.tool.cobigen.CobigenUrlUpdater;
15
import com.devonfw.tools.ide.tool.docker.DockerDesktopUrlUpdater;
16
import com.devonfw.tools.ide.tool.docker.DockerRancherDesktopUrlUpdater;
17
import com.devonfw.tools.ide.tool.dotnet.DotNetUrlUpdater;
18
import com.devonfw.tools.ide.tool.eclipse.EclipseCppUrlUpdater;
19
import com.devonfw.tools.ide.tool.eclipse.EclipseJavaUrlUpdater;
20
import com.devonfw.tools.ide.tool.gcloud.GCloudUrlUpdater;
21
import com.devonfw.tools.ide.tool.gcviewer.GcViewerUrlUpdater;
22
import com.devonfw.tools.ide.tool.gh.GhUrlUpdater;
23
import com.devonfw.tools.ide.tool.graalvm.GraalVmCommunityUpdater;
24
import com.devonfw.tools.ide.tool.graalvm.GraalVmOracleUrlUpdater;
25
import com.devonfw.tools.ide.tool.gradle.GradleUrlUpdater;
26
import com.devonfw.tools.ide.tool.helm.HelmUrlUpdater;
27
import com.devonfw.tools.ide.tool.intellij.IntellijUrlUpdater;
28
import com.devonfw.tools.ide.tool.java.JavaUrlUpdater;
29
import com.devonfw.tools.ide.tool.jenkins.JenkinsUrlUpdater;
30
import com.devonfw.tools.ide.tool.jmc.JmcUrlUpdater;
31
import com.devonfw.tools.ide.tool.kotlinc.KotlincNativeUrlUpdater;
32
import com.devonfw.tools.ide.tool.kotlinc.KotlincUrlUpdater;
33
import com.devonfw.tools.ide.tool.lazydocker.LazyDockerUrlUpdater;
34
import com.devonfw.tools.ide.tool.mvn.MvnUrlUpdater;
35
import com.devonfw.tools.ide.tool.node.NodeUrlUpdater;
36
import com.devonfw.tools.ide.tool.npm.NpmUrlUpdater;
37
import com.devonfw.tools.ide.tool.oc.OcUrlUpdater;
38
import com.devonfw.tools.ide.tool.pip.PipUrlUpdater;
39
import com.devonfw.tools.ide.tool.python.PythonUrlUpdater;
40
import com.devonfw.tools.ide.tool.quarkus.QuarkusUrlUpdater;
41
import com.devonfw.tools.ide.tool.sonar.SonarUrlUpdater;
42
import com.devonfw.tools.ide.tool.terraform.TerraformUrlUpdater;
43
import com.devonfw.tools.ide.tool.tomcat.TomcatUrlUpdater;
44
import com.devonfw.tools.ide.tool.vscode.VsCodeUrlUpdater;
45
import com.devonfw.tools.ide.url.model.folder.UrlRepository;
46

47
/**
48
 * The {@code UpdateManager} class manages the update process for various tools by using a list of
49
 * {@link AbstractUrlUpdater}s to update the {@link UrlRepository}. The list of {@link AbstractUrlUpdater}s contains
50
 * crawlers for different tools and services, To use the UpdateManager, simply create an instance with the path to the
51
 * repository as a parameter and call the {@link #updateAll()} method.
52
 */
53
public class UpdateManager extends AbstractProcessorWithTimeout {
54

55
  private static final Logger logger = LoggerFactory.getLogger(AbstractUrlUpdater.class);
×
56

57
  private final UrlRepository urlRepository;
58

59
  /**private final List<AbstractUrlUpdater> updaters = Arrays.asList(new AndroidStudioUrlUpdater(), new AwsUrlUpdater(),
60
      new AzureUrlUpdater(), new CobigenUrlUpdater(), new DockerDesktopUrlUpdater() , new DotNetUrlUpdater(), new EclipseCppUrlUpdater(),
61
      new EclipseJavaUrlUpdater(), new GCloudUrlUpdater(), new GcViewerUrlUpdater(), new GhUrlUpdater(),
62
      new GraalVmCommunityUpdater(), new GraalVmOracleUrlUpdater(), new GradleUrlUpdater(), new HelmUrlUpdater(), new IntellijUrlUpdater(),
63
      new JavaUrlUpdater(), new JenkinsUrlUpdater(), new JmcUrlUpdater(), new KotlincUrlUpdater(), new KotlincNativeUrlUpdater(),
64
      new LazyDockerUrlUpdater(), new MvnUrlUpdater(), new NodeUrlUpdater(), new NpmUrlUpdater(), new OcUrlUpdater(),
65
      new PipUrlUpdater(), new PythonUrlUpdater(), new QuarkusUrlUpdater(), new DockerRancherDesktopUrlUpdater(),
66
      new SonarUrlUpdater(), new TerraformUrlUpdater(), new TomcatUrlUpdater(), new VsCodeUrlUpdater());*/
67

68
  private final List<AbstractUrlUpdater> updaters = Arrays.asList(new GcViewerUrlUpdater(), new JenkinsUrlUpdater());
×
69

70
  /**
71
   * The constructor.
72
   *
73
   * @param pathToRepository the {@link Path} to the {@code ide-urls} repository to update.
74
   * @param expirationTime for GitHub actions url-update job
75
   */
76
  public UpdateManager(Path pathToRepository, Instant expirationTime) {
×
77

78
    this.urlRepository = UrlRepository.load(pathToRepository);
×
79
    setExpirationTime(expirationTime);
×
80
  }
×
81

82
  /**
83
   * Updates {@code ide-urls} for all tools their editions and all found versions.
84
   */
85
  public void updateAll() {
86

87
    for (AbstractUrlUpdater updater : this.updaters) {
×
88
      if (isTimeoutExpired()) {
×
89
        break;
×
90
      }
91
      try {
92
        updater.setExpirationTime(getExpirationTime());
×
93
        updater.update(this.urlRepository);
×
94
      } catch (Exception e) {
×
95
        logger.error("Failed to update {}", updater.getToolWithEdition(), e);
×
96
      }
×
97
    }
×
98
  }
×
99

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

© 2025 Coveralls, Inc