You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@aurora.apache.org by wf...@apache.org on 2014/07/04 06:42:23 UTC
git commit: Configure H2 to use a named (non-private) database,
and not close the database.
Repository: incubator-aurora
Updated Branches:
refs/heads/master 2f6211638 -> e703c5e25
Configure H2 to use a named (non-private) database, and not close the database.
Bugs closed: AURORA-573
Reviewed at https://reviews.apache.org/r/23273/
Project: http://git-wip-us.apache.org/repos/asf/incubator-aurora/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-aurora/commit/e703c5e2
Tree: http://git-wip-us.apache.org/repos/asf/incubator-aurora/tree/e703c5e2
Diff: http://git-wip-us.apache.org/repos/asf/incubator-aurora/diff/e703c5e2
Branch: refs/heads/master
Commit: e703c5e256473d9c770631571ac11af1b69ad6ad
Parents: 2f62116
Author: Bill Farner <wf...@apache.org>
Authored: Thu Jul 3 21:42:18 2014 -0700
Committer: Bill Farner <wf...@apache.org>
Committed: Thu Jul 3 21:42:18 2014 -0700
----------------------------------------------------------------------
.../aurora/scheduler/storage/db/DbModule.java | 24 ++++++++++++++++++--
.../scheduler/storage/mem/MemStorage.java | 2 +-
.../scheduler/storage/db/DbLockStoreTest.java | 2 +-
.../scheduler/storage/db/DbQuotaStoreTest.java | 2 +-
4 files changed, 25 insertions(+), 5 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-aurora/blob/e703c5e2/src/main/java/org/apache/aurora/scheduler/storage/db/DbModule.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/aurora/scheduler/storage/db/DbModule.java b/src/main/java/org/apache/aurora/scheduler/storage/db/DbModule.java
index 3485279..99d725b 100644
--- a/src/main/java/org/apache/aurora/scheduler/storage/db/DbModule.java
+++ b/src/main/java/org/apache/aurora/scheduler/storage/db/DbModule.java
@@ -17,6 +17,7 @@ import java.util.Properties;
import javax.inject.Singleton;
+import com.google.common.annotations.VisibleForTesting;
import com.google.inject.Key;
import com.google.inject.PrivateModule;
import com.google.inject.name.Names;
@@ -55,9 +56,28 @@ import static com.google.inject.name.Names.named;
public class DbModule extends PrivateModule {
private final Bindings.KeyFactory keyFactory;
+ private final String jdbcUrl;
- public DbModule(Bindings.KeyFactory keyFactory) {
+ private DbModule(Bindings.KeyFactory keyFactory, String jdbcUrl) {
this.keyFactory = requireNonNull(keyFactory);
+ this.jdbcUrl = requireNonNull(jdbcUrl);
+ }
+
+ public DbModule(Bindings.KeyFactory keyFactory) {
+ this(keyFactory, "jdbc:h2:mem:aurora;DB_CLOSE_DELAY=-1");
+ }
+
+ /**
+ * Creates a module that will prepare a private in-memory database.
+ *
+ * @param keyFactory Key factory to scope bindings.
+ * @return A new database module for testing.
+ */
+ @VisibleForTesting
+ public static DbModule testModule(Bindings.KeyFactory keyFactory) {
+ // This creates a private in-memory database. New connections will have a _new_ database,
+ // and closing the database will expunge its data.
+ return new DbModule(keyFactory, "jdbc:h2:mem:");
}
private <T> void bindStore(Class<T> binding, Class<? extends T> impl) {
@@ -78,7 +98,7 @@ public class DbModule extends PrivateModule {
// But the in-memory URL is invalid as far as H2 is concerned, so we had to inline
// some of the constants here and bind it manually.
bindConstant().annotatedWith(named("JDBC.driver")).to(Driver.class.getName());
- bind(Key.get(String.class, named("JDBC.url"))).toInstance("jdbc:h2:mem:");
+ bind(Key.get(String.class, named("JDBC.url"))).toInstance(jdbcUrl);
bindDataSourceProviderType(PooledDataSourceProvider.class);
bindTransactionFactoryType(JdbcTransactionFactory.class);
http://git-wip-us.apache.org/repos/asf/incubator-aurora/blob/e703c5e2/src/main/java/org/apache/aurora/scheduler/storage/mem/MemStorage.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/aurora/scheduler/storage/mem/MemStorage.java b/src/main/java/org/apache/aurora/scheduler/storage/mem/MemStorage.java
index cc20631..5cddd12 100644
--- a/src/main/java/org/apache/aurora/scheduler/storage/mem/MemStorage.java
+++ b/src/main/java/org/apache/aurora/scheduler/storage/mem/MemStorage.java
@@ -139,7 +139,7 @@ public class MemStorage implements Storage {
@VisibleForTesting
public static Storage newEmptyStorage() {
Injector injector = Guice.createInjector(
- new DbModule(Bindings.annotatedKeyFactory(Delegated.class)),
+ DbModule.testModule(Bindings.annotatedKeyFactory(Delegated.class)),
new MemStorageModule(Bindings.annotatedKeyFactory(Volatile.class)));
Storage storage = injector.getInstance(Key.get(Storage.class, Volatile.class));
http://git-wip-us.apache.org/repos/asf/incubator-aurora/blob/e703c5e2/src/test/java/org/apache/aurora/scheduler/storage/db/DbLockStoreTest.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/aurora/scheduler/storage/db/DbLockStoreTest.java b/src/test/java/org/apache/aurora/scheduler/storage/db/DbLockStoreTest.java
index 3a50454..283fc7e 100644
--- a/src/test/java/org/apache/aurora/scheduler/storage/db/DbLockStoreTest.java
+++ b/src/test/java/org/apache/aurora/scheduler/storage/db/DbLockStoreTest.java
@@ -99,7 +99,7 @@ public class DbLockStoreTest {
@Before
public void setUp() throws IOException {
- Injector injector = Guice.createInjector(new DbModule(Bindings.KeyFactory.PLAIN));
+ Injector injector = Guice.createInjector(DbModule.testModule(Bindings.KeyFactory.PLAIN));
storage = injector.getInstance(DbStorage.class);
storage.prepare();
}
http://git-wip-us.apache.org/repos/asf/incubator-aurora/blob/e703c5e2/src/test/java/org/apache/aurora/scheduler/storage/db/DbQuotaStoreTest.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/aurora/scheduler/storage/db/DbQuotaStoreTest.java b/src/test/java/org/apache/aurora/scheduler/storage/db/DbQuotaStoreTest.java
index 21151f5..1f0af86 100644
--- a/src/test/java/org/apache/aurora/scheduler/storage/db/DbQuotaStoreTest.java
+++ b/src/test/java/org/apache/aurora/scheduler/storage/db/DbQuotaStoreTest.java
@@ -47,7 +47,7 @@ public class DbQuotaStoreTest {
@Before
public void setUp() throws IOException {
- Injector injector = Guice.createInjector(new DbModule(Bindings.KeyFactory.PLAIN));
+ Injector injector = Guice.createInjector(DbModule.testModule(Bindings.KeyFactory.PLAIN));
storage = injector.getInstance(Storage.class);
storage.prepare();
}