aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/io/trygvis/esper/testing/Config.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/io/trygvis/esper/testing/Config.java')
-rwxr-xr-xsrc/main/java/io/trygvis/esper/testing/Config.java55
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();
+ }
+ }
+ });
+ }
}