diff options
author | Trygve Laugstøl <trygvis@inamo.no> | 2012-11-20 20:02:47 +0100 |
---|---|---|
committer | Trygve Laugstøl <trygvis@inamo.no> | 2012-11-20 20:02:47 +0100 |
commit | cac8228f38136cfc41673458c58c25f168b1e1ff (patch) | |
tree | 34f482cfd506a3b217f9f62fc00719b7f36e4a9e /src/main/java/io/trygvis/esper/testing/Config.java | |
parent | 8596b9b566745ca65b3a75fe8b6d4c091369fedc (diff) | |
download | esper-testing-cac8228f38136cfc41673458c58c25f168b1e1ff.tar.gz esper-testing-cac8228f38136cfc41673458c58c25f168b1e1ff.tar.bz2 esper-testing-cac8228f38136cfc41673458c58c25f168b1e1ff.tar.xz esper-testing-cac8228f38136cfc41673458c58c25f168b1e1ff.zip |
o Adding BoneCP init to Config.
o Starting on an actor-like structure for the running jobs.
o Loading Nexus servers and group ids to look for from the database.
Diffstat (limited to 'src/main/java/io/trygvis/esper/testing/Config.java')
-rwxr-xr-x | src/main/java/io/trygvis/esper/testing/Config.java | 55 |
1 files changed, 39 insertions, 16 deletions
diff --git a/src/main/java/io/trygvis/esper/testing/Config.java b/src/main/java/io/trygvis/esper/testing/Config.java index d99a18a..ca0e6ff 100755 --- a/src/main/java/io/trygvis/esper/testing/Config.java +++ b/src/main/java/io/trygvis/esper/testing/Config.java @@ -2,29 +2,31 @@ package io.trygvis.esper.testing; import ch.qos.logback.classic.*; import ch.qos.logback.core.util.*; +import com.jolbox.bonecp.*; import fj.data.*; -import java.io.*; -import java.util.*; -import org.apache.commons.httpclient.protocol.*; +import static fj.data.Option.*; +import static org.apache.commons.lang.StringUtils.*; import org.slf4j.*; -import static org.apache.commons.lang.StringUtils.*; +import java.io.*; +import java.sql.*; +import java.util.*; +import java.util.concurrent.atomic.*; public class Config { public final String gitoriousUrl; public final Option<String> gitoriousSessionValue; - public final String nexusUrl; - public final String databaseDriver; + public final long nexusUpdateInterval; + public final String databaseUrl; public final String databaseUsername; public final String databasePassword; - public Config(String gitoriousUrl, Option<String> gitoriousSessionValue, String nexusUrl, String databaseDriver, String databaseUrl, String databaseUsername, String databasePassword) { + public Config(String gitoriousUrl, Option<String> gitoriousSessionValue, long nexusUpdateInterval, String databaseUrl, String databaseUsername, String databasePassword) { this.gitoriousUrl = gitoriousUrl; this.gitoriousSessionValue = gitoriousSessionValue; - this.nexusUrl = nexusUrl; - this.databaseDriver = databaseDriver; + this.nexusUpdateInterval = nexusUpdateInterval; this.databaseUrl = databaseUrl; this.databaseUsername = databaseUsername; this.databasePassword = databasePassword; @@ -38,14 +40,9 @@ public class Config { properties.load(inputStream); } - String driver = trimToNull(properties.getProperty("database.driver")); - -// Class.forName(driver); - return new Config(trimToNull(properties.getProperty("gitorious.url")), - Option.fromNull(trimToNull(properties.getProperty("gitorious.sessionValue"))), - trimToNull(properties.getProperty("nexus.url")), - driver, + fromNull(trimToNull(properties.getProperty("gitorious.sessionValue"))), + fromNull(trimToNull(properties.getProperty("nexus.updateInterval"))).bind(parseInt).some() * 1000, trimToNull(properties.getProperty("database.url")), trimToNull(properties.getProperty("database.username")), trimToNull(properties.getProperty("database.password"))); @@ -55,4 +52,30 @@ public class Config { LoggerContext lc = (LoggerContext) LoggerFactory.getILoggerFactory(); StatusPrinter.print(lc); } + + public BoneCPDataSource createBoneCp() throws SQLException { + return new BoneCPDataSource(new BoneCPConfig(){{ + setJdbcUrl(databaseUrl); + setUsername(databaseUsername); + setPassword(databasePassword); + setDefaultAutoCommit(false); + setMaxConnectionsPerPartition(10); + }}); + } + + public void addShutdownHook(final Thread t, final AtomicBoolean shouldRun) { + Runtime.getRuntime().addShutdownHook(new Thread() { + { + setName("Shutdown hook"); + } + + public void run() { + synchronized (shouldRun) { + shouldRun.set(false); + shouldRun.notifyAll(); + t.interrupt(); + } + } + }); + } } |