aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/io/trygvis/esper/testing/jenkins
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/io/trygvis/esper/testing/jenkins')
-rw-r--r--src/main/java/io/trygvis/esper/testing/jenkins/JenkinsBuildDto.java30
-rw-r--r--src/main/java/io/trygvis/esper/testing/jenkins/JenkinsDao.java120
-rw-r--r--src/main/java/io/trygvis/esper/testing/jenkins/JenkinsImporter.java2
-rw-r--r--src/main/java/io/trygvis/esper/testing/jenkins/JenkinsJobDto.java23
-rw-r--r--src/main/java/io/trygvis/esper/testing/jenkins/JenkinsJobXml.java2
-rw-r--r--src/main/java/io/trygvis/esper/testing/jenkins/JenkinsServerDto.java35
6 files changed, 128 insertions, 84 deletions
diff --git a/src/main/java/io/trygvis/esper/testing/jenkins/JenkinsBuildDto.java b/src/main/java/io/trygvis/esper/testing/jenkins/JenkinsBuildDto.java
new file mode 100644
index 0000000..28f597d
--- /dev/null
+++ b/src/main/java/io/trygvis/esper/testing/jenkins/JenkinsBuildDto.java
@@ -0,0 +1,30 @@
+package io.trygvis.esper.testing.jenkins;
+
+import org.joda.time.*;
+
+import java.net.*;
+import java.util.*;
+
+public class JenkinsBuildDto {
+ public final UUID uuid;
+ public final DateTime created_date;
+ public final UUID job;
+ public final String entryId;
+ public final URI url;
+ public final String result;
+ public final int number;
+ public final int duration;
+ public final DateTime timestamp;
+
+ JenkinsBuildDto(UUID uuid, DateTime created_date, UUID job, String entryId, URI url, String result, int number, int duration, DateTime timestamp) {
+ this.uuid = uuid;
+ this.created_date = created_date;
+ this.job = job;
+ this.entryId = entryId;
+ this.url = url;
+ this.result = result;
+ this.number = number;
+ this.duration = duration;
+ this.timestamp = timestamp;
+ }
+}
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 0195900..ab4b515 100644
--- a/src/main/java/io/trygvis/esper/testing/jenkins/JenkinsDao.java
+++ b/src/main/java/io/trygvis/esper/testing/jenkins/JenkinsDao.java
@@ -3,22 +3,19 @@ package io.trygvis.esper.testing.jenkins;
import fj.data.*;
import org.joda.time.*;
-import java.net.URI;
+import java.net.*;
import java.sql.*;
-import java.util.ArrayList;
+import java.util.*;
import java.util.List;
-import java.util.UUID;
-import static fj.data.Option.fromNull;
-import static fj.data.Option.none;
-import static fj.data.Option.some;
-import static java.lang.System.currentTimeMillis;
+import static fj.data.Option.*;
+import static java.lang.System.*;
public class JenkinsDao {
private final Connection c;
- public static final String JENKINS_SERVER = "uuid, created_date, url";
+ public static final String JENKINS_SERVER = "uuid, created_date, url, enabled";
public static final String JENKINS_JOB = "uuid, created_date, server, url, job_type, display_name";
@@ -33,10 +30,11 @@ public class JenkinsDao {
return new JenkinsServerDto(
UUID.fromString(rs.getString(i++)),
new DateTime(rs.getTimestamp(i++).getTime()),
- URI.create(rs.getString(i)));
+ URI.create(rs.getString(i++)),
+ rs.getBoolean(i));
}
- public List<JenkinsServerDto> toServerList(ResultSet rs) throws SQLException {
+ private List<JenkinsServerDto> toServerList(ResultSet rs) throws SQLException {
List<JenkinsServerDto> list = new ArrayList<>();
while (rs.next()) {
list.add(jenkinsServer(rs));
@@ -76,21 +74,37 @@ public class JenkinsDao {
new DateTime(rs.getTimestamp(i).getTime()));
}
- public List<JenkinsServerDto> selectServer(boolean enabledOnly) throws SQLException {
- String where = "WHERE ";
- where += enabledOnly ? "enabled=true" : "";
+ public List<JenkinsServerDto> selectServers(boolean enabledOnly) throws SQLException {
+ String sql = "SELECT " + JENKINS_SERVER + " FROM jenkins_server ";
+
+ if (enabledOnly) {
+ sql += " WHERE enabled=true";
+ }
- try (PreparedStatement s = c.prepareStatement("SELECT " + JENKINS_SERVER + " FROM jenkins_server " + where)) {
+ sql += " ORDER BY url";
+
+ try (PreparedStatement s = c.prepareStatement(sql)) {
return toServerList(s.executeQuery());
}
}
+ public Option<JenkinsServerDto> selectServer(UUID uuid) throws SQLException {
+ try (PreparedStatement s = c.prepareStatement("SELECT " + JENKINS_SERVER + " FROM jenkins_server WHERE uuid=?")) {
+ s.setString(1, uuid.toString());
+ ResultSet rs = s.executeQuery();
+ if (!rs.next()) {
+ return none();
+ }
+ return some(jenkinsServer(rs));
+ }
+ }
+
public Option<JenkinsJobDto> selectJobByUrl(URI url) throws SQLException {
try (PreparedStatement s = c.prepareStatement("SELECT " + JENKINS_JOB + " FROM jenkins_job WHERE url=?")) {
s.setString(1, url.toASCIIString());
ResultSet rs = s.executeQuery();
- if(!rs.next()) {
+ if (!rs.next()) {
return none();
}
@@ -98,6 +112,15 @@ public class JenkinsDao {
}
}
+ public Integer selectJobCountForServer(UUID uuid) throws SQLException {
+ try (PreparedStatement s = c.prepareStatement("SELECT count(1) FROM jenkins_job WHERE server=?")) {
+ s.setString(1, uuid.toString());
+ ResultSet rs = s.executeQuery();
+
+ return rs.getInt(1);
+ }
+ }
+
public UUID insertJob(UUID server, URI url, JenkinsJobXml.JenkinsJobType type, Option<String> displayName) throws SQLException {
try (PreparedStatement s = c.prepareStatement("INSERT INTO jenkins_job(" + JENKINS_JOB + ") VALUES(?, ?, ?, ?, ?, ?)")) {
UUID uuid = UUID.randomUUID();
@@ -147,70 +170,3 @@ public class JenkinsDao {
}
}
}
-
-class JenkinsServerDto {
- public final UUID uuid;
- public final DateTime created_date;
- public final URI url;
-
- JenkinsServerDto(UUID uuid, DateTime created_date, URI url) {
- this.uuid = uuid;
- this.created_date = created_date;
- this.url = url;
- }
-
- @Override
- public boolean equals(Object o) {
- if (this == o) return true;
- if (o == null || getClass() != o.getClass()) return false;
-
- JenkinsServerDto that = (JenkinsServerDto) o;
-
- return uuid.equals(that.uuid);
- }
-
- @Override
- public int hashCode() {
- return uuid.hashCode();
- }
-}
-
-class JenkinsJobDto {
- public final UUID uuid;
- public final DateTime created_date;
- public final UUID server;
- public final URI url;
- public final Option<String> displayName;
-
- JenkinsJobDto(UUID uuid, DateTime created_date, UUID server, URI url, Option<String> displayName) {
- this.uuid = uuid;
- this.created_date = created_date;
- this.server = server;
- this.url = url;
- this.displayName = displayName;
- }
-}
-
-class JenkinsBuildDto {
- public final UUID uuid;
- public final DateTime created_date;
- public final UUID job;
- public final String entryId;
- public final URI url;
- public final String result;
- public final int number;
- public final int duration;
- public final DateTime timestamp;
-
- JenkinsBuildDto(UUID uuid, DateTime created_date, UUID job, String entryId, URI url, String result, int number, int duration, DateTime timestamp) {
- this.uuid = uuid;
- this.created_date = created_date;
- this.job = job;
- this.entryId = entryId;
- this.url = url;
- this.result = result;
- this.number = number;
- this.duration = duration;
- this.timestamp = timestamp;
- }
-}
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 680e593..e30dca7 100644
--- 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(true);
+ newKeys = new JenkinsDao(c).selectServers(true);
}
serverManager.update(newKeys);
diff --git a/src/main/java/io/trygvis/esper/testing/jenkins/JenkinsJobDto.java b/src/main/java/io/trygvis/esper/testing/jenkins/JenkinsJobDto.java
new file mode 100644
index 0000000..8ee731c
--- /dev/null
+++ b/src/main/java/io/trygvis/esper/testing/jenkins/JenkinsJobDto.java
@@ -0,0 +1,23 @@
+package io.trygvis.esper.testing.jenkins;
+
+import fj.data.*;
+import org.joda.time.*;
+
+import java.net.*;
+import java.util.*;
+
+public class JenkinsJobDto {
+ public final UUID uuid;
+ public final DateTime created_date;
+ public final UUID server;
+ public final URI url;
+ public final Option<String> displayName;
+
+ JenkinsJobDto(UUID uuid, DateTime created_date, UUID server, URI url, Option<String> displayName) {
+ this.uuid = uuid;
+ this.created_date = created_date;
+ this.server = server;
+ this.url = url;
+ this.displayName = displayName;
+ }
+}
diff --git a/src/main/java/io/trygvis/esper/testing/jenkins/JenkinsJobXml.java b/src/main/java/io/trygvis/esper/testing/jenkins/JenkinsJobXml.java
index 8cbe049..ca661b8 100644
--- a/src/main/java/io/trygvis/esper/testing/jenkins/JenkinsJobXml.java
+++ b/src/main/java/io/trygvis/esper/testing/jenkins/JenkinsJobXml.java
@@ -14,7 +14,7 @@ import static io.trygvis.esper.testing.Util.childText;
class JenkinsJobXml {
enum JenkinsJobType {
- FREE_STYLE, MAVEN_MODULE_SET, MAVEN_MODULE, MATRIX
+ FREE_STYLE, MAVEN_MODULE_SET, MAVEN_MODULE, MATRIX, MATRIX_CONFIGURATION
}
public final JenkinsJobType type;
diff --git a/src/main/java/io/trygvis/esper/testing/jenkins/JenkinsServerDto.java b/src/main/java/io/trygvis/esper/testing/jenkins/JenkinsServerDto.java
new file mode 100644
index 0000000..225b786
--- /dev/null
+++ b/src/main/java/io/trygvis/esper/testing/jenkins/JenkinsServerDto.java
@@ -0,0 +1,35 @@
+package io.trygvis.esper.testing.jenkins;
+
+import org.joda.time.*;
+
+import java.net.*;
+import java.util.*;
+
+public class JenkinsServerDto {
+ public final UUID uuid;
+ public final DateTime created_date;
+ public final URI url;
+ public final boolean enabled;
+
+ JenkinsServerDto(UUID uuid, DateTime created_date, URI url, boolean enabled) {
+ this.uuid = uuid;
+ this.created_date = created_date;
+ this.url = url;
+ this.enabled = enabled;
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) return true;
+ if (o == null || getClass() != o.getClass()) return false;
+
+ JenkinsServerDto that = (JenkinsServerDto) o;
+
+ return uuid.equals(that.uuid);
+ }
+
+ @Override
+ public int hashCode() {
+ return uuid.hashCode();
+ }
+}