diff options
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(); + } + } + }); + } } |