diff options
author | Trygve Laugstøl <trygvis@inamo.no> | 2012-12-20 23:18:24 +0100 |
---|---|---|
committer | Trygve Laugstøl <trygvis@inamo.no> | 2012-12-20 23:18:24 +0100 |
commit | d25d523d2a7f7e4c3446d81740e09e487ad807d0 (patch) | |
tree | 228ecb562647445a08a441e24d74fc02c27e7503 /src/main/java/io/trygvis/esper/testing/jenkins/JenkinsServerActor.java | |
parent | 0cbc9933db10938a1e9c7f330188e40caec9550d (diff) | |
download | esper-testing-d25d523d2a7f7e4c3446d81740e09e487ad807d0.tar.gz esper-testing-d25d523d2a7f7e4c3446d81740e09e487ad807d0.tar.bz2 esper-testing-d25d523d2a7f7e4c3446d81740e09e487ad807d0.tar.xz esper-testing-d25d523d2a7f7e4c3446d81740e09e487ad807d0.zip |
o Storing the users that had a commit in the build as a part of the build.
Diffstat (limited to 'src/main/java/io/trygvis/esper/testing/jenkins/JenkinsServerActor.java')
-rw-r--r-- | src/main/java/io/trygvis/esper/testing/jenkins/JenkinsServerActor.java | 34 |
1 files changed, 27 insertions, 7 deletions
diff --git a/src/main/java/io/trygvis/esper/testing/jenkins/JenkinsServerActor.java b/src/main/java/io/trygvis/esper/testing/jenkins/JenkinsServerActor.java index ad22157..9f2969a 100644 --- a/src/main/java/io/trygvis/esper/testing/jenkins/JenkinsServerActor.java +++ b/src/main/java/io/trygvis/esper/testing/jenkins/JenkinsServerActor.java @@ -7,6 +7,8 @@ import org.slf4j.*; import java.net.*; import java.sql.*; +import java.util.HashMap; +import java.util.HashSet; import java.util.List; import java.util.*; import java.util.Set; @@ -40,7 +42,7 @@ public class JenkinsServerActor implements TransactionalActor { int i = 0; - Set<String> authorUrls = new TreeSet<>(); + Map<String, UUID> authors = new HashMap<>(); for (JenkinsEntryXml entry : list) { SqlOption<JenkinsBuildDto> o = dao.selectBuildByEntryId(entry.id); @@ -66,6 +68,12 @@ public class JenkinsServerActor implements TransactionalActor { } String result = build.result.some(); + // ----------------------------------------------------------------------- + // Users + // ----------------------------------------------------------------------- + + Set<UUID> users = new HashSet<>(); + if(build.changeSet.isSome()) { JenkinsBuildXml.ChangeSetXml changeSetXml = build.changeSet.some(); @@ -76,15 +84,26 @@ public class JenkinsServerActor implements TransactionalActor { String url = item.author.some().absoluteUrl; - boolean newUser = authorUrls.add(url); + UUID uuid = authors.get(url); - if(newUser && dao.selectUser(server.uuid, url).isNone()) { - logger.info("New user: {}", url); - dao.insertUser(server.uuid, url); + if(uuid == null) { + SqlOption<JenkinsUserDto> userO = dao.selectUser(server.uuid, url); + if (userO.isNone()) { + logger.info("New user: {}", url); + uuid = dao.insertUser(server.uuid, url); + } else { + uuid = userO.get().uuid; + } } + + users.add(uuid); } } + // ----------------------------------------------------------------------- + // Job + // ----------------------------------------------------------------------- + URI jobUrl = extrapolateJobUrlFromBuildUrl(build.url.toASCIIString()); Option<JenkinsJobDto> jobDtoOption = dao.selectJobByUrl(jobUrl); @@ -118,9 +137,10 @@ public class JenkinsServerActor implements TransactionalActor { result, build.number, build.duration, - build.timestamp); + build.timestamp, + users.toArray(new UUID[users.size()])); - logger.info("Build inserted: " + uuid + ", item #" + i + "/" + list.size()); + logger.info("Build inserted: {}, #users={} item #{}/{}", uuid, users.size(), i, list.size()); } long end = currentTimeMillis(); |