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 c1fab898..8fdea18b 100644 --- a/src/main/java/com/github/funthomas424242/jenkinsmonitor/config/Configuration.java +++ b/src/main/java/com/github/funthomas424242/jenkinsmonitor/config/Configuration.java @@ -83,16 +83,16 @@ public long getPollPeriodInSecond() { return Long.parseLong(propValue); } -// public String getAllAbfragedaten() { -// loadPropertiesFromFile(configurationFile); -// configurationProperties -// .stringPropertyNames() -// .stream() -// .filter( (key)->key.startsWith("jenkinsauth")) -// .forEach(key -> { -// }); -// return null; -// } + public String getAllAbfragedaten() { + loadPropertiesFromFile(configurationFile); + configurationProperties + .stringPropertyNames() + .stream() + .filter( (key)->key.startsWith("jenkinsauth")) + .forEach(key -> { + }); + return null; + } protected JenkinsZugangsdaten getAbfragedatenOf(final URL jobUrl){ return new JenkinsZugangsdaten(jobUrl,"admin","geheim"); diff --git a/src/main/java/com/github/funthomas424242/jenkinsmonitor/config/Zugangsdatensammler.java b/src/main/java/com/github/funthomas424242/jenkinsmonitor/config/Zugangsdatensammler.java new file mode 100644 index 00000000..4e82496a --- /dev/null +++ b/src/main/java/com/github/funthomas424242/jenkinsmonitor/config/Zugangsdatensammler.java @@ -0,0 +1,78 @@ +package com.github.funthomas424242.jenkinsmonitor.config; + +import com.github.funthomas424242.jenkinsmonitor.jenkins.JenkinsZugangsdaten; + +import java.net.URL; +import java.util.Arrays; +import java.util.HashMap; + + +public class Zugangsdatensammler { + + protected class Zugang { + public URL jenkinsJobURL; + public String userName; + public String password; + } + + + protected final HashMap zugaenge; + + public Zugangsdatensammler() { + zugaenge = new HashMap<>(); + } + + public void addZugangsdatumJenkinsJobUrl(String jenkinsId, URL jenkinsJobUrl) { + checkAllParameterUntilFirstNotNull(jenkinsId, jenkinsJobUrl); + final Zugang zugang = getOrCreateZugang(jenkinsId); + zugang.jenkinsJobURL = jenkinsJobUrl; + } + + public void addZugangsdatumJenkinsUserName(String jenkinsId, String userName) { + checkAllParameterUntilFirstNotNull(jenkinsId, userName); + final Zugang zugang = getOrCreateZugang(jenkinsId); + zugang.userName = userName; + } + + + public void addZugangsdatumJenkinsPassword(String jenkinsId, String password) { + checkAllParameterUntilFirstNotNull(jenkinsId, password); + final Zugang zugang = getOrCreateZugang(jenkinsId); + zugang.userName = password; + } + + public JenkinsZugangsdaten[] getJenkinsZugangsdaten() { + return zugaenge + .values() + .stream() + .map((zugang) -> { + return new JenkinsZugangsdaten(zugang.jenkinsJobURL, zugang.userName, zugang.password); + }) + .toArray(JenkinsZugangsdaten[]::new); + } + + protected void checkAllParameterUntilFirstNotNull(Object... parameter) { + Arrays.stream(parameter) + .filter((part) -> { + if (part == null) { + throw new IllegalArgumentException("jenkinsID und zugangstyp sind erforderlich"); + } else { + return false; + } + }); + } + + protected Zugang getOrCreateZugang(String jenkinsId) { + final Zugang zugang; + if (zugaenge.containsKey(jenkinsId)) { + zugang = zugaenge.get(jenkinsId); + } else { + zugang = new Zugang(); + zugaenge.put(jenkinsId, zugang); + } + return zugang; + } + + + +}