From d25d523d2a7f7e4c3446d81740e09e487ad807d0 Mon Sep 17 00:00:00 2001 From: Trygve Laugstøl Date: Thu, 20 Dec 2012 23:18:24 +0100 Subject: o Storing the users that had a commit in the build as a part of the build. --- .../esper/testing/jenkins/JenkinsServerActor.java | 34 +++++++++++++++++----- 1 file changed, 27 insertions(+), 7 deletions(-) (limited to 'src/main/java/io/trygvis/esper/testing/jenkins/JenkinsServerActor.java') 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 authorUrls = new TreeSet<>(); + Map authors = new HashMap<>(); for (JenkinsEntryXml entry : list) { SqlOption o = dao.selectBuildByEntryId(entry.id); @@ -66,6 +68,12 @@ public class JenkinsServerActor implements TransactionalActor { } String result = build.result.some(); + // ----------------------------------------------------------------------- + // Users + // ----------------------------------------------------------------------- + + Set 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 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 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(); -- cgit v1.2.3