killbill-aplcache
Changes
beatrix/src/test/java/org/killbill/billing/beatrix/integration/BeatrixIntegrationModule.java 3(+1 -2)
profiles/killbill/src/main/java/org/killbill/billing/server/modules/KillbillServerModule.java 10(+4 -6)
Details
diff --git a/beatrix/src/test/java/org/killbill/billing/beatrix/integration/BeatrixIntegrationModule.java b/beatrix/src/test/java/org/killbill/billing/beatrix/integration/BeatrixIntegrationModule.java
index 0817d1d..f25423a 100644
--- a/beatrix/src/test/java/org/killbill/billing/beatrix/integration/BeatrixIntegrationModule.java
+++ b/beatrix/src/test/java/org/killbill/billing/beatrix/integration/BeatrixIntegrationModule.java
@@ -18,7 +18,6 @@
package org.killbill.billing.beatrix.integration;
-import org.killbill.billing.DBTestingHelper;
import org.killbill.billing.GuicyKillbillTestWithEmbeddedDBModule;
import org.killbill.billing.account.glue.DefaultAccountModule;
import org.killbill.billing.api.TestApiListener;
@@ -73,7 +72,7 @@ public class BeatrixIntegrationModule extends KillBillModule {
@Override
protected void configure() {
install(new GuicyKillbillTestWithEmbeddedDBModule(true, configSource));
- install(new GlobalLockerModule(DBTestingHelper.get().getInstance().getDBEngine(), configSource));
+ install(new GlobalLockerModule(configSource));
install(new CacheModule(configSource));
install(new EmailModule(configSource));
install(new CallContextModule(configSource));
diff --git a/profiles/killbill/src/main/java/org/killbill/billing/server/modules/KillbillServerModule.java b/profiles/killbill/src/main/java/org/killbill/billing/server/modules/KillbillServerModule.java
index 20a023a..1f40544 100644
--- a/profiles/killbill/src/main/java/org/killbill/billing/server/modules/KillbillServerModule.java
+++ b/profiles/killbill/src/main/java/org/killbill/billing/server/modules/KillbillServerModule.java
@@ -1,7 +1,7 @@
/*
* Copyright 2010-2013 Ning, Inc.
- * Copyright 2014 Groupon, Inc
- * Copyright 2014 The Billing Project, LLC
+ * Copyright 2014-2015 Groupon, Inc
+ * Copyright 2014-2015 The Billing Project, LLC
*
* The Billing Project licenses this file to you under the Apache License, version 2.0
* (the "License"); you may not use this file except in compliance with the
@@ -127,9 +127,7 @@ public class KillbillServerModule extends KillbillPlatformModule {
@Override
protected void configureEmbeddedDB() {
- final EmbeddedDBProvider embeddedDBProvider = new KillBillEmbeddedDBProvider(daoConfig);
- embeddedDB = embeddedDBProvider.get();
- bind(EmbeddedDB.class).toInstance(embeddedDB);
+ bind(EmbeddedDB.class).toProvider(KillBillEmbeddedDBProvider.class).asEagerSingleton();
}
@Override
@@ -158,7 +156,7 @@ public class KillbillServerModule extends KillbillPlatformModule {
install(new DefaultSubscriptionModule(configSource));
install(new EmailModule(configSource));
install(new ExportModule(configSource));
- install(new GlobalLockerModule(embeddedDB.getDBEngine(), configSource));
+ install(new GlobalLockerModule(configSource));
install(new KillBillShiroAopModule());
install(new KillbillApiAopModule());
install(new KillBillShiroWebModule(servletContext, skifeConfigSource));
diff --git a/profiles/killpay/src/main/java/org/killbill/billing/server/modules/KillpayServerModule.java b/profiles/killpay/src/main/java/org/killbill/billing/server/modules/KillpayServerModule.java
index 18c592f..d48507f 100644
--- a/profiles/killpay/src/main/java/org/killbill/billing/server/modules/KillpayServerModule.java
+++ b/profiles/killpay/src/main/java/org/killbill/billing/server/modules/KillpayServerModule.java
@@ -79,7 +79,7 @@ public class KillpayServerModule extends KillbillServerModule {
install(new CustomFieldModule(configSource));
install(new DefaultAccountModule(configSource));
install(new ExportModule(configSource));
- install(new GlobalLockerModule(embeddedDB.getDBEngine(), configSource));
+ install(new GlobalLockerModule(configSource));
install(new KillBillShiroAopModule());
install(new KillbillApiAopModule());
install(new KillBillShiroWebModule(servletContext, skifeConfigSource));
diff --git a/util/src/main/java/org/killbill/billing/util/glue/GlobalLockerModule.java b/util/src/main/java/org/killbill/billing/util/glue/GlobalLockerModule.java
index 9642aeb..f8fe73d 100644
--- a/util/src/main/java/org/killbill/billing/util/glue/GlobalLockerModule.java
+++ b/util/src/main/java/org/killbill/billing/util/glue/GlobalLockerModule.java
@@ -18,25 +18,34 @@
package org.killbill.billing.util.glue;
+import java.io.IOException;
+
import org.killbill.billing.platform.api.KillbillConfigSource;
import org.killbill.commons.embeddeddb.EmbeddedDB;
-import org.killbill.commons.embeddeddb.EmbeddedDB.DBEngine;
+import org.killbill.commons.locker.GlobalLocker;
+import org.killbill.commons.locker.memory.MemoryGlobalLocker;
+import org.killbill.commons.locker.mysql.MySqlGlobalLocker;
-public class GlobalLockerModule extends KillBillModule {
+import com.google.inject.Provides;
+import com.google.inject.Singleton;
- private final DBEngine engine;
+public class GlobalLockerModule extends KillBillModule {
- public GlobalLockerModule(final DBEngine engine, final KillbillConfigSource configSource) {
+ public GlobalLockerModule(final KillbillConfigSource configSource) {
super(configSource);
- this.engine = engine;
}
- @Override
- protected void configure() {
- if (EmbeddedDB.DBEngine.MYSQL.equals(engine)) {
- install(new MySqlGlobalLockerModule(configSource));
+ @Provides
+ @Singleton
+ protected GlobalLocker provideGlobalLocker(final EmbeddedDB embeddedDB) throws IOException {
+ if (EmbeddedDB.DBEngine.MYSQL.equals(embeddedDB)) {
+ return new MySqlGlobalLocker(embeddedDB.getDataSource());
} else {
- install(new MemoryGlobalLockerModule(configSource));
+ return new MemoryGlobalLocker();
}
}
+
+ @Override
+ protected void configure() {
+ }
}
diff --git a/util/src/test/java/org/killbill/billing/util/glue/TestUtilModuleWithEmbeddedDB.java b/util/src/test/java/org/killbill/billing/util/glue/TestUtilModuleWithEmbeddedDB.java
index 9d3837b..1537ac4 100644
--- a/util/src/test/java/org/killbill/billing/util/glue/TestUtilModuleWithEmbeddedDB.java
+++ b/util/src/test/java/org/killbill/billing/util/glue/TestUtilModuleWithEmbeddedDB.java
@@ -18,7 +18,6 @@
package org.killbill.billing.util.glue;
-import org.killbill.billing.DBTestingHelper;
import org.killbill.billing.GuicyKillbillTestWithEmbeddedDBModule;
import org.killbill.billing.api.TestApiListener;
import org.killbill.billing.platform.api.KillbillConfigSource;
@@ -38,7 +37,7 @@ public class TestUtilModuleWithEmbeddedDB extends TestUtilModule {
install(new TagStoreModule(configSource));
install(new CustomFieldModule(configSource));
install(new NonEntityDaoModule(configSource));
- install(new GlobalLockerModule(DBTestingHelper.get().getInstance().getDBEngine(), configSource));
+ install(new GlobalLockerModule(configSource));
bind(TestApiListener.class).asEagerSingleton();
}