diff --git a/src/main/java/com/github/funthomas424242/jenkinsmonitor/config/Configuration.java b/src/main/java/com/github/funthomas424242/jenkinsmonitor/config/Configuration.java index 3e73d22a..cc2eeade 100644 --- a/src/main/java/com/github/funthomas424242/jenkinsmonitor/config/Configuration.java +++ b/src/main/java/com/github/funthomas424242/jenkinsmonitor/config/Configuration.java @@ -110,7 +110,6 @@ public File getConfigurationfile() { } public Jenkinszugangskonfiguration[] getAllJenkinszugangskonfigurationen() { -// loadPropertiesFromFile(configurationFile); final Zugangsdatensammler zugangsdatensammler = new Zugangsdatensammler(); configurationProperties .stringPropertyNames() @@ -121,7 +120,6 @@ public Jenkinszugangskonfiguration[] getAllJenkinszugangskonfigurationen() { } public JobAbfragedaten getAbfragedatenOf(final URL jobUrl) { -// loadPropertiesFromFile(configurationFile); final Jenkinszugangskonfiguration[] alleJenkinsZugaenge = getAllJenkinszugangskonfigurationen(); return Arrays.stream(alleJenkinsZugaenge) .filter(zugang -> jobUrl.toExternalForm().startsWith(zugang.getJenkinsUrl().toExternalForm())) diff --git a/src/main/java/com/github/funthomas424242/jenkinsmonitor/etc/Counter.java b/src/main/java/com/github/funthomas424242/jenkinsmonitor/etc/Counter.java index 0c58b62f..bfd95509 100644 --- a/src/main/java/com/github/funthomas424242/jenkinsmonitor/etc/Counter.java +++ b/src/main/java/com/github/funthomas424242/jenkinsmonitor/etc/Counter.java @@ -24,5 +24,5 @@ public class Counter { // Do not make it static, because wie need instances for lambda expressions - public int value = 0; + public int value = 0; //NOSONAR java:S1104 } diff --git a/src/main/java/com/github/funthomas424242/jenkinsmonitor/gui/ImageGenerator.java b/src/main/java/com/github/funthomas424242/jenkinsmonitor/gui/ImageGenerator.java index 1fcd0803..3628a67a 100644 --- a/src/main/java/com/github/funthomas424242/jenkinsmonitor/gui/ImageGenerator.java +++ b/src/main/java/com/github/funthomas424242/jenkinsmonitor/gui/ImageGenerator.java @@ -35,7 +35,8 @@ import org.slf4j.LoggerFactory; class StartXHolder { - public int startX = 0; + // Dont make static because we need more instances in parallel lambdas + public int startX = 0; //NOSONAR java:S1104 } public class ImageGenerator { diff --git a/src/main/java/com/github/funthomas424242/jenkinsmonitor/jenkins/JenkinsAPI.java b/src/main/java/com/github/funthomas424242/jenkinsmonitor/jenkins/JenkinsAPI.java index 136df1a6..8a0d0ddd 100644 --- a/src/main/java/com/github/funthomas424242/jenkinsmonitor/jenkins/JenkinsAPI.java +++ b/src/main/java/com/github/funthomas424242/jenkinsmonitor/jenkins/JenkinsAPI.java @@ -22,6 +22,8 @@ * #L% */ -public interface JenkinsAPI { - String STATUS_PATH = "/lastBuild/api/json"; +public class JenkinsAPI { + + private JenkinsAPI(){} + public static final String STATUS_PATH = "/lastBuild/api/json"; } diff --git a/src/main/java/com/github/funthomas424242/jenkinsmonitor/jenkins/JenkinsHttpClient.java b/src/main/java/com/github/funthomas424242/jenkinsmonitor/jenkins/JenkinsHttpClient.java index eae61529..db552b37 100644 --- a/src/main/java/com/github/funthomas424242/jenkinsmonitor/jenkins/JenkinsHttpClient.java +++ b/src/main/java/com/github/funthomas424242/jenkinsmonitor/jenkins/JenkinsHttpClient.java @@ -22,11 +22,13 @@ * #L% */ +import java.util.ArrayList; +import java.util.concurrent.ExecutionException; import java.util.concurrent.Executors; import java.util.concurrent.Future; import java.util.concurrent.ThreadPoolExecutor; import java.util.concurrent.TimeUnit; -import java.util.stream.Collectors; +import java.util.concurrent.TimeoutException; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -46,26 +48,32 @@ public void ladeJobsStatus(final AbstractJobBeschreibungen jobAbfrageFuture = executor.submit(jobAbfrage); return new JobAbfrageFutureWrapper(jobAbfrage, jobAbfrageFuture); }) - // TODO optimieren nach https://www.concretepage.com/java/jdk-8/java-8-stream-collect-example#collect - .collect(Collectors.toList()) + // CHECK REFACTORED optimieren nach https://www.concretepage.com/java/jdk-8/java-8-stream-collect-example#collect + //.collect(Collectors.toList()) + .collect(ArrayList::new,ArrayList::add,ArrayList::addAll) .forEach(jobAbfrageFutureWrapper -> { final Future future = jobAbfrageFutureWrapper.getJobAbfrageFuture(); try { - final JobStatusBeschreibung jobStatus = future.get(3, TimeUnit.SECONDS); jobStatusBeschreibungen.put(jobStatus.getPrimaryKey(), jobStatus); - LOG.debug(String.format("JobStatus geladen: %s : %s at %s ", jobStatus.getJobName(), jobStatus.getJobStatus().toString(), jobStatus.getJobUrl().toExternalForm())); - } catch (Exception e) { + LOG.debug("JobStatus geladen: {} : {} at {} ", jobStatus.getJobName(), jobStatus.getJobStatus(), jobStatus.getJobUrl().toExternalForm()); + } catch (InterruptedException | TimeoutException | ExecutionException ex) { + + LOG.warn("Read Future Result goes wrong with exception: \n {}", ex.toString()); + addStatusOTHER(jobStatusBeschreibungen, jobAbfrageFutureWrapper); future.cancel(true); - final JobAbfrage jobAbfrage = jobAbfrageFutureWrapper.getJobAbfrage(); - final JobStatusBeschreibung jobStatusBeschreibung - = new JobStatusBeschreibung("Connection Timeout" + jobAbfrage.getAbfrageUrl().toExternalForm(), JobStatus.OTHER, jobAbfrage.getAbfrageUrl(), jobAbfrage.getJobOrderId()); - jobStatusBeschreibungen.put(jobAbfrage.getPrimaryKey(), jobStatusBeschreibung); - LOG.warn("Read Future Result goes wrong and was canceled"); } }); executor.shutdown(); } + + private static void addStatusOTHER(final AbstractJobBeschreibungen jobStatusBeschreibungen, final JobAbfrageFutureWrapper jobAbfrageFutureWrapper) { + final JobAbfrage jobAbfrage = jobAbfrageFutureWrapper.getJobAbfrage(); + final JobStatusBeschreibung jobStatusBeschreibung + = new JobStatusBeschreibung("Connection Timeout" + jobAbfrage.getAbfrageUrl().toExternalForm(), JobStatus.OTHER, jobAbfrage.getAbfrageUrl(), jobAbfrage.getJobOrderId()); + jobStatusBeschreibungen.put(jobAbfrage.getPrimaryKey(), jobStatusBeschreibung); + + } }