diff options
author | Trygve Laugstøl <trygvis@inamo.no> | 2012-12-08 10:52:00 +0100 |
---|---|---|
committer | Trygve Laugstøl <trygvis@inamo.no> | 2012-12-08 10:52:00 +0100 |
commit | 164ce072f94a0820d6c2256aab8c6ee8d90d8eee (patch) | |
tree | 3c2a5b6ef68625393368d2fba444565b0bd2ed09 /src/main/java/io/trygvis/esper/testing/jenkins | |
parent | 5d56a80555ebe5a419dae3b1b849ffa78449b410 (diff) | |
download | esper-testing-164ce072f94a0820d6c2256aab8c6ee8d90d8eee.tar.gz esper-testing-164ce072f94a0820d6c2256aab8c6ee8d90d8eee.tar.bz2 esper-testing-164ce072f94a0820d6c2256aab8c6ee8d90d8eee.tar.xz esper-testing-164ce072f94a0820d6c2256aab8c6ee8d90d8eee.zip |
o Creating a flag to disable jenkins servers from being polled.
o Using proper logging.
Diffstat (limited to 'src/main/java/io/trygvis/esper/testing/jenkins')
4 files changed, 53 insertions, 44 deletions
diff --git a/src/main/java/io/trygvis/esper/testing/jenkins/JenkinsClient.java b/src/main/java/io/trygvis/esper/testing/jenkins/JenkinsClient.java index 40d7618..ecd8288 100755 --- a/src/main/java/io/trygvis/esper/testing/jenkins/JenkinsClient.java +++ b/src/main/java/io/trygvis/esper/testing/jenkins/JenkinsClient.java @@ -13,6 +13,7 @@ import org.codehaus.httpcache4j.cache.*; import org.jdom2.Document; import org.jdom2.Element; import org.joda.time.DateTime; +import org.slf4j.*; import java.io.*; import java.net.*; @@ -24,6 +25,7 @@ import static io.trygvis.esper.testing.Util.*; import static org.apache.commons.lang.StringUtils.*; public class JenkinsClient { + private static final Logger logger = LoggerFactory.getLogger(JenkinsClient.class); private final XmlHttpClient xmlHttpClient; private final HttpClient<List<JenkinsEntryXml>> jenkinsEntryXmlClient; private final Parser parser; @@ -101,7 +103,7 @@ public class JenkinsClient { case "mavenModuleSet": return some(JenkinsJobXml.parse(uri, JenkinsJobType.MAVEN, root)); default: - System.out.println("Unknown project type: " + name); + logger.warn("Unknown project type: " + name); return Option.none(); } } @@ -124,11 +126,43 @@ public class JenkinsClient { case "freeStyleBuild": return JenkinsBuildXml.parse(root); default: - System.out.println("Unknown build type: " + name); + logger.warn("Unknown build type: " + name); return Option.none(); } } -} + + public static class JenkinsBuildXml { + + public final URI uri; + public final int number; + public final String result; + public final int duration; + public final long timestamp; + + JenkinsBuildXml(URI uri, int number, String result, int duration, long timestamp) { + this.uri = uri; + this.number = number; + this.result = result; + this.duration = duration; + this.timestamp = timestamp; + } + + public static Option<JenkinsBuildXml> parse(Element root) { + + Option<URI> uri = childText(root, "url").bind(Util.parseUri); + Option<Integer> number = childText(root, "number").bind(Util.parseInt); + Option<String> result = childText(root, "result"); + Option<Integer> duration = childText(root, "duration").bind(Util.parseInt); + Option<Long> timestamp = childText(root, "timestamp").bind(Util.parseLong); + + if(uri.isNone() || number.isNone() || result.isNone() || duration.isNone() || timestamp.isNone()) { + logger.warn("Missing required fields."); + return none(); + } + + return some(new JenkinsBuildXml(uri.some(), number.some(), result.some(), duration.some(), timestamp.some())); + } + }} class JenkinsEntryXml { public final String id; @@ -243,35 +277,3 @@ class JenkinsJobXml { } } -class JenkinsBuildXml { - - public final URI uri; - public final int number; - public final String result; - public final int duration; - public final long timestamp; - - JenkinsBuildXml(URI uri, int number, String result, int duration, long timestamp) { - this.uri = uri; - this.number = number; - this.result = result; - this.duration = duration; - this.timestamp = timestamp; - } - - public static Option<JenkinsBuildXml> parse(Element root) { - - Option<URI> uri = childText(root, "url").bind(Util.parseUri); - Option<Integer> number = childText(root, "number").bind(Util.parseInt); - Option<String> result = childText(root, "result"); - Option<Integer> duration = childText(root, "duration").bind(Util.parseInt); - Option<Long> timestamp = childText(root, "timestamp").bind(Util.parseLong); - - if(uri.isNone() || number.isNone() || result.isNone() || duration.isNone() || timestamp.isNone()) { - System.out.println("Missing required fields."); - return none(); - } - - return some(new JenkinsBuildXml(uri.some(), number.some(), result.some(), duration.some(), timestamp.some())); - } -} diff --git a/src/main/java/io/trygvis/esper/testing/jenkins/JenkinsDao.java b/src/main/java/io/trygvis/esper/testing/jenkins/JenkinsDao.java index 05ed567..a063180 100644 --- a/src/main/java/io/trygvis/esper/testing/jenkins/JenkinsDao.java +++ b/src/main/java/io/trygvis/esper/testing/jenkins/JenkinsDao.java @@ -54,8 +54,11 @@ public class JenkinsDao { new DateTime(rs.getTimestamp(i).getTime())); } - public List<JenkinsServerDto> selectServer() throws SQLException { - try (PreparedStatement s = c.prepareStatement("SELECT " + JENKINS_SERVER + " FROM jenkins_server")) { + public List<JenkinsServerDto> selectServer(boolean enabledOnly) throws SQLException { + String where = "WHERE "; + where += enabledOnly ? "enabled=true" : ""; + + try (PreparedStatement s = c.prepareStatement("SELECT " + JENKINS_SERVER + " FROM jenkins_server " + where)) { ResultSet rs = s.executeQuery(); List<JenkinsServerDto> servers = new ArrayList<>(); diff --git a/src/main/java/io/trygvis/esper/testing/jenkins/JenkinsImporter.java b/src/main/java/io/trygvis/esper/testing/jenkins/JenkinsImporter.java index c273d8a..ffe1421 100755 --- a/src/main/java/io/trygvis/esper/testing/jenkins/JenkinsImporter.java +++ b/src/main/java/io/trygvis/esper/testing/jenkins/JenkinsImporter.java @@ -41,7 +41,7 @@ public class JenkinsImporter { java.util.List<JenkinsServerDto> newKeys; try (Connection c = boneCp.getConnection()) { - newKeys = new JenkinsDao(c).selectServer(); + newKeys = new JenkinsDao(c).selectServer(true); } serverManager.update(newKeys); diff --git a/src/main/java/io/trygvis/esper/testing/jenkins/JenkinsServer.java b/src/main/java/io/trygvis/esper/testing/jenkins/JenkinsServer.java index 9d12456..a89288d 100644 --- a/src/main/java/io/trygvis/esper/testing/jenkins/JenkinsServer.java +++ b/src/main/java/io/trygvis/esper/testing/jenkins/JenkinsServer.java @@ -2,13 +2,17 @@ package io.trygvis.esper.testing.jenkins; import fj.data.*; import io.trygvis.esper.testing.object.*; +import org.slf4j.*; import java.net.*; import java.sql.*; -import java.util.*; import java.util.List; +import java.util.*; + +import static io.trygvis.esper.testing.jenkins.JenkinsClient.*; public class JenkinsServer implements TransactionalActor { + private static final Logger logger = LoggerFactory.getLogger(JenkinsServer.class); private final JenkinsClient client; public final URI uri; @@ -27,7 +31,7 @@ public class JenkinsServer implements TransactionalActor { List<JenkinsEntryXml> list = option.some(); - System.out.println("Got " + list.size() + " entries."); + logger.info("Got " + list.size() + " entries."); int i = 0; @@ -35,11 +39,11 @@ public class JenkinsServer implements TransactionalActor { Option<JenkinsBuildDto> o = dao.selectBuildByEntryId(entry.id); if(o.isSome()) { - System.out.println("Old event: " + entry.id); + logger.info("Old event: " + entry.id); continue; } - System.out.println("New event: " + entry.id + ", fetching build info"); + logger.info("New event: " + entry.id + ", fetching build info"); i++; @@ -53,13 +57,13 @@ public class JenkinsServer implements TransactionalActor { UUID uuid = dao.insertBuild(entry.id, build.uri, build.result, build.number, build.duration, build.timestamp); - System.out.println("Build inserted: " + uuid + ", i=" + i); + logger.info("Build inserted: " + uuid + ", i=" + i); // if(i == 1) { // break; // } } - System.out.println("Inserted " + i + " new events."); + logger.info("Inserted " + i + " new events."); } } |