From c8c863ce36f57954369a0b4a15e6c5e720f03f87 Mon Sep 17 00:00:00 2001 From: Trygve Laugstøl Date: Sat, 22 Dec 2012 00:31:00 +0100 Subject: o Moving stuff to utils package. --- .../io/trygvis/esper/testing/core/BuildDto.java | 21 ------- .../io/trygvis/esper/testing/core/CoreDao.java | 73 ---------------------- .../esper/testing/core/JenkinsBuildPoller.java | 53 ---------------- .../io/trygvis/esper/testing/core/PersonDto.java | 15 ----- .../io/trygvis/esper/testing/core/TablePoller.java | 6 +- .../io/trygvis/esper/testing/core/db/BuildDto.java | 21 +++++++ .../io/trygvis/esper/testing/core/db/CoreDao.java | 73 ++++++++++++++++++++++ .../trygvis/esper/testing/core/db/PersonDto.java | 15 +++++ .../testing/core/jenkins/JenkinsBuildPoller.java | 55 ++++++++++++++++ 9 files changed, 167 insertions(+), 165 deletions(-) delete mode 100644 src/main/java/io/trygvis/esper/testing/core/BuildDto.java delete mode 100644 src/main/java/io/trygvis/esper/testing/core/CoreDao.java delete mode 100644 src/main/java/io/trygvis/esper/testing/core/JenkinsBuildPoller.java delete mode 100644 src/main/java/io/trygvis/esper/testing/core/PersonDto.java create mode 100644 src/main/java/io/trygvis/esper/testing/core/db/BuildDto.java create mode 100644 src/main/java/io/trygvis/esper/testing/core/db/CoreDao.java create mode 100644 src/main/java/io/trygvis/esper/testing/core/db/PersonDto.java create mode 100644 src/main/java/io/trygvis/esper/testing/core/jenkins/JenkinsBuildPoller.java (limited to 'src/main/java/io/trygvis/esper/testing/core') diff --git a/src/main/java/io/trygvis/esper/testing/core/BuildDto.java b/src/main/java/io/trygvis/esper/testing/core/BuildDto.java deleted file mode 100644 index 37de1b3..0000000 --- a/src/main/java/io/trygvis/esper/testing/core/BuildDto.java +++ /dev/null @@ -1,21 +0,0 @@ -package io.trygvis.esper.testing.core; - -import io.trygvis.esper.testing.*; -import org.joda.time.*; - -import java.util.*; - -class BuildDto extends AbstractEntity { - public final DateTime timestamp; - public final boolean success; - public final UUID referenceUuid; - public final String referenceType; - - BuildDto(UUID uuid, DateTime createdDate, DateTime timestamp, boolean success, UUID referenceUuid, String referenceType) { - super(uuid, createdDate); - this.timestamp = timestamp; - this.success = success; - this.referenceUuid = referenceUuid; - this.referenceType = referenceType; - } -} diff --git a/src/main/java/io/trygvis/esper/testing/core/CoreDao.java b/src/main/java/io/trygvis/esper/testing/core/CoreDao.java deleted file mode 100644 index a010dad..0000000 --- a/src/main/java/io/trygvis/esper/testing/core/CoreDao.java +++ /dev/null @@ -1,73 +0,0 @@ -package io.trygvis.esper.testing.core; - -import io.trygvis.esper.testing.*; -import io.trygvis.esper.testing.sql.*; -import org.joda.time.*; - -import java.sql.*; -import java.util.*; - -import static io.trygvis.esper.testing.sql.SqlOption.*; -import static java.lang.System.*; - -public class CoreDao { - private final Connection c; - - public static final String PERSON = "uuid, created_date, name"; - - public static final SqlF person = new SqlF() { - public PersonDto apply(ResultSet rs) throws SQLException { - int i = 1; - return new PersonDto( - UUID.fromString(rs.getString(i++)), - new DateTime(rs.getTimestamp(i++).getTime()), - rs.getString(i)); - } - }; - - public static final String BUILD = "uuid, created_date, timestamp, success, reference_type, reference_uuid"; - - public CoreDao(Connection c) { - this.c = c; - } - - public SqlOption selectPerson(String id) throws SQLException { - try (PreparedStatement s = c.prepareStatement("SELECT " + PERSON + " FROM person WHERE id=?")) { - int i = 1; - s.setString(i, id); - return fromRs(s.executeQuery()).map(person); - } - } - - public SqlOption selectPersonByJenkinsUuid(UUID jenkinsUser) throws SQLException { - try (PreparedStatement s = c.prepareStatement("SELECT " + PERSON + " FROM person WHERE uuid=(SELECT person FROM person_jenkins_user WHERE jenkins_user=?)")) { - int i = 1; - s.setString(i, jenkinsUser.toString()); - return fromRs(s.executeQuery()).map(person); - } - } - - public UUID insertBuild(DateTime timestamp, boolean success, EntityRef ref) throws SQLException { - try (PreparedStatement s = c.prepareStatement("INSERT INTO build(" + BUILD + ") VALUES(?, ?, ?, ?, ?, ?)")) { - UUID uuid = UUID.randomUUID(); - int i = 1; - s.setString(i++, uuid.toString()); - s.setTimestamp(i++, new Timestamp(currentTimeMillis())); - s.setTimestamp(i++, new Timestamp(timestamp.getMillis())); - s.setBoolean(i++, success); - s.setString(i++, ref.type); - s.setString(i, ref.uuid.toString()); - s.executeUpdate(); - return uuid; - } - } - - public void insertBuildParticipant(UUID build, UUID person) throws SQLException { - try (PreparedStatement s = c.prepareStatement("INSERT INTO build_participant(build, person) VALUES(?, ?)")) { - int i = 1; - s.setString(i++, build.toString()); - s.setString(i, person.toString()); - s.executeUpdate(); - } - } -} diff --git a/src/main/java/io/trygvis/esper/testing/core/JenkinsBuildPoller.java b/src/main/java/io/trygvis/esper/testing/core/JenkinsBuildPoller.java deleted file mode 100644 index cb9157c..0000000 --- a/src/main/java/io/trygvis/esper/testing/core/JenkinsBuildPoller.java +++ /dev/null @@ -1,53 +0,0 @@ -package io.trygvis.esper.testing.core; - -import com.jolbox.bonecp.*; -import io.trygvis.esper.testing.*; -import io.trygvis.esper.testing.jenkins.*; -import io.trygvis.esper.testing.sql.*; -import org.slf4j.*; - -import java.sql.*; -import java.util.*; - -import static fj.data.Option.some; -import static io.trygvis.esper.testing.Config.*; -import static io.trygvis.esper.testing.EntityRef.jenkinsRef; - -public class JenkinsBuildPoller implements TablePoller.NewRowCallback { - Logger logger = LoggerFactory.getLogger(getClass()); - - public static void main(String[] args) throws Exception { - String pollerName = "jenkins_build"; - String tableName = "jenkins_build"; - String columnNames = JenkinsDao.JENKINS_BUILD; - SqlF f = JenkinsDao.jenkinsBuild; - TablePoller.NewRowCallback callback = new JenkinsBuildPoller(); - - Config config = loadFromDisk(); - - BoneCPDataSource dataSource = config.createBoneCp(); - - new TablePoller<>(pollerName, tableName, columnNames, some("array_length(users, 1) > 0"), f, callback).work(dataSource); - } - - public void process(Connection c, JenkinsBuildDto jenkinsBuild) throws SQLException { - Daos daos = new Daos(c); - CoreDao coreDao = daos.coreDao; - - UUID uuid = coreDao.insertBuild(jenkinsBuild.timestamp, "SUCCESS".equals(jenkinsBuild.result), jenkinsRef(jenkinsBuild.uuid)); - logger.info("Created build uuid={}", uuid); - - for (UUID user : jenkinsBuild.users) { - SqlOption personO = coreDao.selectPersonByJenkinsUuid(user); - - // This happens if no one has claimed the user id. - if(personO.isNone()) { - continue; - } - - UUID person = personO.get().uuid; - logger.info("Created build participant, person={}", person); - coreDao.insertBuildParticipant(uuid, person); - } - } -} diff --git a/src/main/java/io/trygvis/esper/testing/core/PersonDto.java b/src/main/java/io/trygvis/esper/testing/core/PersonDto.java deleted file mode 100644 index 33355a3..0000000 --- a/src/main/java/io/trygvis/esper/testing/core/PersonDto.java +++ /dev/null @@ -1,15 +0,0 @@ -package io.trygvis.esper.testing.core; - -import io.trygvis.esper.testing.*; -import org.joda.time.*; - -import java.util.*; - -public class PersonDto extends AbstractEntity { - public final String name; - - public PersonDto(UUID uuid, DateTime createdDate, String name) { - super(uuid, createdDate); - this.name = name; - } -} diff --git a/src/main/java/io/trygvis/esper/testing/core/TablePoller.java b/src/main/java/io/trygvis/esper/testing/core/TablePoller.java index c21b5ae..062f5e7 100644 --- a/src/main/java/io/trygvis/esper/testing/core/TablePoller.java +++ b/src/main/java/io/trygvis/esper/testing/core/TablePoller.java @@ -1,14 +1,14 @@ package io.trygvis.esper.testing.core; import fj.data.*; -import io.trygvis.esper.testing.sql.*; +import io.trygvis.esper.testing.util.sql.*; import org.slf4j.*; import javax.sql.*; import java.sql.*; -import static io.trygvis.esper.testing.sql.ResultSetF.*; -import static io.trygvis.esper.testing.sql.SqlOption.*; +import static io.trygvis.esper.testing.util.sql.ResultSetF.*; +import static io.trygvis.esper.testing.util.sql.SqlOption.*; import static java.lang.System.*; public class TablePoller { diff --git a/src/main/java/io/trygvis/esper/testing/core/db/BuildDto.java b/src/main/java/io/trygvis/esper/testing/core/db/BuildDto.java new file mode 100644 index 0000000..5cc6b0a --- /dev/null +++ b/src/main/java/io/trygvis/esper/testing/core/db/BuildDto.java @@ -0,0 +1,21 @@ +package io.trygvis.esper.testing.core.db; + +import io.trygvis.esper.testing.*; +import org.joda.time.*; + +import java.util.*; + +class BuildDto extends AbstractEntity { + public final DateTime timestamp; + public final boolean success; + public final UUID referenceUuid; + public final String referenceType; + + BuildDto(UUID uuid, DateTime createdDate, DateTime timestamp, boolean success, UUID referenceUuid, String referenceType) { + super(uuid, createdDate); + this.timestamp = timestamp; + this.success = success; + this.referenceUuid = referenceUuid; + this.referenceType = referenceType; + } +} diff --git a/src/main/java/io/trygvis/esper/testing/core/db/CoreDao.java b/src/main/java/io/trygvis/esper/testing/core/db/CoreDao.java new file mode 100644 index 0000000..5eab2c9 --- /dev/null +++ b/src/main/java/io/trygvis/esper/testing/core/db/CoreDao.java @@ -0,0 +1,73 @@ +package io.trygvis.esper.testing.core.db; + +import io.trygvis.esper.testing.*; +import io.trygvis.esper.testing.util.sql.*; +import org.joda.time.*; + +import java.sql.*; +import java.util.*; + +import static io.trygvis.esper.testing.util.sql.SqlOption.*; +import static java.lang.System.*; + +public class CoreDao { + private final Connection c; + + public static final String PERSON = "uuid, created_date, name"; + + public static final SqlF person = new SqlF() { + public PersonDto apply(ResultSet rs) throws SQLException { + int i = 1; + return new PersonDto( + UUID.fromString(rs.getString(i++)), + new DateTime(rs.getTimestamp(i++).getTime()), + rs.getString(i)); + } + }; + + public static final String BUILD = "uuid, created_date, timestamp, success, reference_type, reference_uuid"; + + public CoreDao(Connection c) { + this.c = c; + } + + public SqlOption selectPerson(String id) throws SQLException { + try (PreparedStatement s = c.prepareStatement("SELECT " + PERSON + " FROM person WHERE id=?")) { + int i = 1; + s.setString(i, id); + return fromRs(s.executeQuery()).map(person); + } + } + + public SqlOption selectPersonByJenkinsUuid(UUID jenkinsUser) throws SQLException { + try (PreparedStatement s = c.prepareStatement("SELECT " + PERSON + " FROM person WHERE uuid=(SELECT person FROM person_jenkins_user WHERE jenkins_user=?)")) { + int i = 1; + s.setString(i, jenkinsUser.toString()); + return fromRs(s.executeQuery()).map(person); + } + } + + public UUID insertBuild(DateTime timestamp, boolean success, EntityRef ref) throws SQLException { + try (PreparedStatement s = c.prepareStatement("INSERT INTO build(" + BUILD + ") VALUES(?, ?, ?, ?, ?, ?)")) { + UUID uuid = UUID.randomUUID(); + int i = 1; + s.setString(i++, uuid.toString()); + s.setTimestamp(i++, new Timestamp(currentTimeMillis())); + s.setTimestamp(i++, new Timestamp(timestamp.getMillis())); + s.setBoolean(i++, success); + s.setString(i++, ref.type); + s.setString(i, ref.uuid.toString()); + s.executeUpdate(); + return uuid; + } + } + + public void insertBuildParticipant(UUID build, UUID person) throws SQLException { + try (PreparedStatement s = c.prepareStatement("INSERT INTO build_participant(build, person) VALUES(?, ?)")) { + int i = 1; + s.setString(i++, build.toString()); + s.setString(i, person.toString()); + s.executeUpdate(); + } + } +} diff --git a/src/main/java/io/trygvis/esper/testing/core/db/PersonDto.java b/src/main/java/io/trygvis/esper/testing/core/db/PersonDto.java new file mode 100644 index 0000000..c643fc7 --- /dev/null +++ b/src/main/java/io/trygvis/esper/testing/core/db/PersonDto.java @@ -0,0 +1,15 @@ +package io.trygvis.esper.testing.core.db; + +import io.trygvis.esper.testing.*; +import org.joda.time.*; + +import java.util.*; + +public class PersonDto extends AbstractEntity { + public final String name; + + public PersonDto(UUID uuid, DateTime createdDate, String name) { + super(uuid, createdDate); + this.name = name; + } +} diff --git a/src/main/java/io/trygvis/esper/testing/core/jenkins/JenkinsBuildPoller.java b/src/main/java/io/trygvis/esper/testing/core/jenkins/JenkinsBuildPoller.java new file mode 100644 index 0000000..90a4ef4 --- /dev/null +++ b/src/main/java/io/trygvis/esper/testing/core/jenkins/JenkinsBuildPoller.java @@ -0,0 +1,55 @@ +package io.trygvis.esper.testing.core.jenkins; + +import com.jolbox.bonecp.*; +import io.trygvis.esper.testing.*; +import io.trygvis.esper.testing.core.*; +import io.trygvis.esper.testing.core.db.*; +import io.trygvis.esper.testing.jenkins.*; +import io.trygvis.esper.testing.util.sql.*; +import org.slf4j.*; + +import java.sql.*; +import java.util.*; + +import static fj.data.Option.some; +import static io.trygvis.esper.testing.Config.*; +import static io.trygvis.esper.testing.EntityRef.jenkinsRef; + +public class JenkinsBuildPoller implements TablePoller.NewRowCallback { + Logger logger = LoggerFactory.getLogger(getClass()); + + public static void main(String[] args) throws Exception { + String pollerName = "jenkins_build"; + String tableName = "jenkins_build"; + String columnNames = JenkinsDao.JENKINS_BUILD; + SqlF f = JenkinsDao.jenkinsBuild; + TablePoller.NewRowCallback callback = new JenkinsBuildPoller(); + + Config config = loadFromDisk(); + + BoneCPDataSource dataSource = config.createBoneCp(); + + new TablePoller<>(pollerName, tableName, columnNames, some("array_length(users, 1) > 0"), f, callback).work(dataSource); + } + + public void process(Connection c, JenkinsBuildDto jenkinsBuild) throws SQLException { + Daos daos = new Daos(c); + CoreDao coreDao = daos.coreDao; + + UUID uuid = coreDao.insertBuild(jenkinsBuild.timestamp, "SUCCESS".equals(jenkinsBuild.result), jenkinsRef(jenkinsBuild.uuid)); + logger.info("Created build uuid={}", uuid); + + for (UUID user : jenkinsBuild.users) { + SqlOption personO = coreDao.selectPersonByJenkinsUuid(user); + + // This happens if no one has claimed the user id. + if(personO.isNone()) { + continue; + } + + UUID person = personO.get().uuid; + logger.info("Created build participant, person={}", person); + coreDao.insertBuildParticipant(uuid, person); + } + } +} -- cgit v1.2.3