killbill-memoizeit
Changes
entitlement/src/test/java/com/ning/billing/entitlement/glue/TestEntitlementModuleWithEmbeddedDB.java 2(+2 -0)
junction/src/test/java/com/ning/billing/junction/glue/TestJunctionModuleWithEmbeddedDB.java 2(+2 -0)
pom.xml 2(+1 -1)
subscription/src/test/java/com/ning/billing/subscription/glue/TestDefaultSubscriptionModuleNoDB.java 12(+7 -5)
subscription/src/test/java/com/ning/billing/subscription/glue/TestDefaultSubscriptionModuleWithEmbeddedDB.java 2(+2 -0)
util/pom.xml 4(+4 -0)
Details
diff --git a/account/src/test/java/com/ning/billing/account/glue/TestAccountModuleWithEmbeddedDB.java b/account/src/test/java/com/ning/billing/account/glue/TestAccountModuleWithEmbeddedDB.java
index dfd1b29..bc49086 100644
--- a/account/src/test/java/com/ning/billing/account/glue/TestAccountModuleWithEmbeddedDB.java
+++ b/account/src/test/java/com/ning/billing/account/glue/TestAccountModuleWithEmbeddedDB.java
@@ -20,6 +20,7 @@ import org.skife.config.ConfigSource;
import com.ning.billing.GuicyKillbillTestWithEmbeddedDBModule;
import com.ning.billing.util.glue.BusModule;
+import com.ning.billing.util.glue.MetricsModule;
import com.ning.billing.util.glue.NonEntityDaoModule;
public class TestAccountModuleWithEmbeddedDB extends TestAccountModule {
@@ -34,6 +35,7 @@ public class TestAccountModuleWithEmbeddedDB extends TestAccountModule {
install(new GuicyKillbillTestWithEmbeddedDBModule());
install(new NonEntityDaoModule());
+ install(new MetricsModule());
install(new BusModule(configSource));
}
}
diff --git a/beatrix/src/main/java/com/ning/billing/beatrix/glue/BeatrixModule.java b/beatrix/src/main/java/com/ning/billing/beatrix/glue/BeatrixModule.java
index bf58455..267ad7a 100644
--- a/beatrix/src/main/java/com/ning/billing/beatrix/glue/BeatrixModule.java
+++ b/beatrix/src/main/java/com/ning/billing/beatrix/glue/BeatrixModule.java
@@ -16,26 +16,33 @@
package com.ning.billing.beatrix.glue;
+import org.skife.config.ConfigSource;
+import org.skife.config.ConfigurationObjectFactory;
+
import com.ning.billing.beatrix.DefaultBeatrixService;
import com.ning.billing.beatrix.bus.api.BeatrixService;
import com.ning.billing.beatrix.extbus.BeatrixListener;
import com.ning.billing.beatrix.lifecycle.DefaultLifecycle;
import com.ning.billing.beatrix.lifecycle.Lifecycle;
import com.ning.billing.bus.api.PersistentBus;
+import com.ning.billing.bus.api.PersistentBusConfig;
import com.ning.billing.util.glue.BusProvider;
+import com.google.common.collect.ImmutableMap;
import com.google.inject.AbstractModule;
import com.google.inject.Key;
import com.google.inject.name.Names;
public class BeatrixModule extends AbstractModule {
- // This has to match the DDL
- private final static String EXTERNAL_BUS_TABLE_NAME = "bus_ext_events";
- private final static String EXTERNAL_BUS_HISTORY_TABLE_NAME = "bus_ext_events_history";
-
public static final String EXTERNAL_BUS = "externalBus";
+ private final ConfigSource configSource;
+
+ public BeatrixModule(final ConfigSource configSource) {
+ this.configSource = configSource;
+ }
+
@Override
protected void configure() {
installLifecycle();
@@ -50,7 +57,9 @@ public class BeatrixModule extends AbstractModule {
bind(BeatrixService.class).to(DefaultBeatrixService.class);
bind(DefaultBeatrixService.class).asEagerSingleton();
- bind(BusProvider.class).annotatedWith(Names.named(EXTERNAL_BUS)).toInstance(new BusProvider(EXTERNAL_BUS_TABLE_NAME, EXTERNAL_BUS_HISTORY_TABLE_NAME));
+ final PersistentBusConfig extBusConfig = new ConfigurationObjectFactory(configSource).buildWithReplacements(PersistentBusConfig.class,
+ ImmutableMap.<String, String>of("instanceName", "external"));
+ bind(BusProvider.class).annotatedWith(Names.named(EXTERNAL_BUS)).toInstance(new BusProvider(extBusConfig));
bind(PersistentBus.class).annotatedWith(Names.named(EXTERNAL_BUS)).toProvider(Key.get(BusProvider.class, Names.named(EXTERNAL_BUS))).asEagerSingleton();
bind(BeatrixListener.class).asEagerSingleton();
diff --git a/beatrix/src/test/java/com/ning/billing/beatrix/integration/BeatrixIntegrationModule.java b/beatrix/src/test/java/com/ning/billing/beatrix/integration/BeatrixIntegrationModule.java
index 8ccbd3d..044cfb7 100644
--- a/beatrix/src/test/java/com/ning/billing/beatrix/integration/BeatrixIntegrationModule.java
+++ b/beatrix/src/test/java/com/ning/billing/beatrix/integration/BeatrixIntegrationModule.java
@@ -65,6 +65,7 @@ import com.ning.billing.util.glue.CallContextModule;
import com.ning.billing.util.glue.CustomFieldModule;
import com.ning.billing.util.glue.ExportModule;
import com.ning.billing.util.glue.GlobalLockerModule;
+import com.ning.billing.util.glue.MetricsModule;
import com.ning.billing.util.glue.NonEntityDaoModule;
import com.ning.billing.util.glue.NotificationQueueModule;
import com.ning.billing.util.glue.RecordIdModule;
@@ -103,6 +104,7 @@ public class BeatrixIntegrationModule extends AbstractModule {
install(new CacheModule(configSource));
install(new EmailModule(configSource));
install(new CallContextModule());
+ install(new MetricsModule());
install(new BusModule(configSource));
install(new NotificationQueueModule(configSource));
install(new TagStoreModule());
@@ -123,7 +125,7 @@ public class BeatrixIntegrationModule extends AbstractModule {
install(new DefaultOSGIModule(configSource));
install(new NonEntityDaoModule());
install(new RecordIdModule());
- install(new BeatrixModuleWithSubsetLifecycle());
+ install(new BeatrixModuleWithSubsetLifecycle(configSource));
bind(AccountChecker.class).asEagerSingleton();
bind(SubscriptionChecker.class).asEagerSingleton();
@@ -195,6 +197,10 @@ public class BeatrixIntegrationModule extends AbstractModule {
private static final class BeatrixModuleWithSubsetLifecycle extends BeatrixModule {
+ public BeatrixModuleWithSubsetLifecycle(final ConfigSource configSource) {
+ super(configSource);
+ }
+
@Override
protected void installLifecycle() {
bind(Lifecycle.class).to(SubsetDefaultLifecycle.class).asEagerSingleton();
diff --git a/beatrix/src/test/resources/beatrix.properties b/beatrix/src/test/resources/beatrix.properties
index 8365fab..928945c 100644
--- a/beatrix/src/test/resources/beatrix.properties
+++ b/beatrix/src/test/resources/beatrix.properties
@@ -1,9 +1,14 @@
killbill.catalog.uri=file:src/test/resources/catalogSample.xml
killbill.payment.engine.notifications.sleep=100
killbill.invoice.engine.notifications.sleep=100
-killbill.billing.persistent.bus.sleep=100
-killbill.billing.persistent.bus.nbThreads=1
-killbill.billing.persistent.bus.claimed=1
+killbill.billing.persistent.bus.main.sleep=100
+killbill.billing.persistent.bus.main.nbThreads=1
+killbill.billing.persistent.bus.main.claimed=1
+killbill.billing.persistent.bus.external.sleep=100
+killbill.billing.persistent.bus.external.nbThreads=1
+killbill.billing.persistent.bus.external.claimed=1
+killbill.billing.persistent.bus.external.tableName=bus_ext_events
+killbill.billing.persistent.bus.external.historyTableName=bus_ext_events_history
user.timezone=UTC
killbill.payment.retry.days=8,8,8,8,8,8,8,8
killbill.osgi.bundle.install.dir=/var/tmp/beatrix-bundles
diff --git a/entitlement/src/test/java/com/ning/billing/entitlement/glue/TestEntitlementModuleWithEmbeddedDB.java b/entitlement/src/test/java/com/ning/billing/entitlement/glue/TestEntitlementModuleWithEmbeddedDB.java
index 1f45f91..b104bc5 100644
--- a/entitlement/src/test/java/com/ning/billing/entitlement/glue/TestEntitlementModuleWithEmbeddedDB.java
+++ b/entitlement/src/test/java/com/ning/billing/entitlement/glue/TestEntitlementModuleWithEmbeddedDB.java
@@ -25,6 +25,7 @@ import com.ning.billing.entitlement.EntitlementTestListenerStatus;
import com.ning.billing.glue.AccountModule;
import com.ning.billing.subscription.glue.DefaultSubscriptionModule;
import com.ning.billing.util.glue.BusModule;
+import com.ning.billing.util.glue.MetricsModule;
import com.ning.billing.util.glue.NonEntityDaoModule;
import com.ning.billing.util.glue.NotificationQueueModule;
import com.ning.billing.util.glue.TagStoreModule;
@@ -42,6 +43,7 @@ public class TestEntitlementModuleWithEmbeddedDB extends TestEntitlementModule {
install(new DefaultAccountModule(configSource));
install(new GuicyKillbillTestWithEmbeddedDBModule());
install(new NonEntityDaoModule());
+ install(new MetricsModule());
install(new BusModule(configSource));
install(new TagStoreModule());
install(new CatalogModule(configSource));
diff --git a/entitlement/src/test/resources/entitlement.properties b/entitlement/src/test/resources/entitlement.properties
index ede26d9..87d47cb 100644
--- a/entitlement/src/test/resources/entitlement.properties
+++ b/entitlement/src/test/resources/entitlement.properties
@@ -1,5 +1,5 @@
killbill.catalog.uri=file:src/test/resources/catalog.xml
-killbill.billing.persistent.bus.sleep=100
-killbill.billing.persistent.bus.nbThreads=1
-killbill.billing.persistent.bus.claimed=1
+killbill.billing.persistent.bus.main.sleep=100
+killbill.billing.persistent.bus.main.nbThreads=1
+killbill.billing.persistent.bus.main.claimed=1
user.timezone=UTC
diff --git a/invoice/src/test/java/com/ning/billing/invoice/glue/TestInvoiceModuleWithEmbeddedDb.java b/invoice/src/test/java/com/ning/billing/invoice/glue/TestInvoiceModuleWithEmbeddedDb.java
index 9517d0b..a6cbc45 100644
--- a/invoice/src/test/java/com/ning/billing/invoice/glue/TestInvoiceModuleWithEmbeddedDb.java
+++ b/invoice/src/test/java/com/ning/billing/invoice/glue/TestInvoiceModuleWithEmbeddedDb.java
@@ -22,6 +22,7 @@ import com.ning.billing.GuicyKillbillTestWithEmbeddedDBModule;
import com.ning.billing.invoice.InvoiceListener;
import com.ning.billing.invoice.TestInvoiceNotificationQListener;
import com.ning.billing.util.glue.BusModule;
+import com.ning.billing.util.glue.MetricsModule;
import com.ning.billing.util.glue.NonEntityDaoModule;
public class TestInvoiceModuleWithEmbeddedDb extends TestInvoiceModule {
@@ -42,6 +43,7 @@ public class TestInvoiceModuleWithEmbeddedDb extends TestInvoiceModule {
install(new GuicyKillbillTestWithEmbeddedDBModule());
install(new NonEntityDaoModule());
+ install(new MetricsModule());
install(new BusModule(configSource));
}
}
diff --git a/junction/src/test/java/com/ning/billing/junction/glue/TestJunctionModule.java b/junction/src/test/java/com/ning/billing/junction/glue/TestJunctionModule.java
index 1324917..372a7f1 100644
--- a/junction/src/test/java/com/ning/billing/junction/glue/TestJunctionModule.java
+++ b/junction/src/test/java/com/ning/billing/junction/glue/TestJunctionModule.java
@@ -16,18 +16,19 @@
package com.ning.billing.junction.glue;
-import com.ning.billing.entitlement.api.svcs.DefaultInternalBlockingApi;
-import com.ning.billing.entitlement.dao.BlockingStateDao;
-import com.ning.billing.entitlement.dao.MockBlockingStateDao;
-import com.ning.billing.mock.glue.MockEntitlementModule;
-import com.ning.billing.util.svcapi.junction.BlockingInternalApi;
import org.skife.config.ConfigSource;
import com.ning.billing.catalog.MockCatalogModule;
+import com.ning.billing.entitlement.api.svcs.DefaultInternalBlockingApi;
+import com.ning.billing.entitlement.dao.BlockingStateDao;
+import com.ning.billing.entitlement.dao.MockBlockingStateDao;
import com.ning.billing.mock.glue.MockAccountModule;
+import com.ning.billing.mock.glue.MockEntitlementModule;
import com.ning.billing.mock.glue.MockSubscriptionModule;
import com.ning.billing.util.glue.CacheModule;
import com.ning.billing.util.glue.CallContextModule;
+import com.ning.billing.util.glue.MetricsModule;
+import com.ning.billing.util.svcapi.junction.BlockingInternalApi;
public class TestJunctionModule extends DefaultJunctionModule {
@@ -39,6 +40,7 @@ public class TestJunctionModule extends DefaultJunctionModule {
protected void configure() {
super.configure();
+ install(new MetricsModule());
install(new CacheModule(configSource));
install(new CallContextModule());
install(new MockAccountModule());
diff --git a/junction/src/test/java/com/ning/billing/junction/glue/TestJunctionModuleWithEmbeddedDB.java b/junction/src/test/java/com/ning/billing/junction/glue/TestJunctionModuleWithEmbeddedDB.java
index ab54197..ccac19f 100644
--- a/junction/src/test/java/com/ning/billing/junction/glue/TestJunctionModuleWithEmbeddedDB.java
+++ b/junction/src/test/java/com/ning/billing/junction/glue/TestJunctionModuleWithEmbeddedDB.java
@@ -20,6 +20,7 @@ import org.skife.config.ConfigSource;
import com.ning.billing.GuicyKillbillTestWithEmbeddedDBModule;
import com.ning.billing.util.glue.BusModule;
+import com.ning.billing.util.glue.MetricsModule;
import com.ning.billing.util.glue.NonEntityDaoModule;
import com.ning.billing.util.glue.TagStoreModule;
@@ -36,6 +37,7 @@ public class TestJunctionModuleWithEmbeddedDB extends TestJunctionModule {
install(new GuicyKillbillTestWithEmbeddedDBModule());
install(new NonEntityDaoModule());
install(new BusModule(configSource));
+ install(new MetricsModule());
install(new TagStoreModule());
}
}
diff --git a/junction/src/test/resources/resource.properties b/junction/src/test/resources/resource.properties
index 40eb8f3..a7e225e 100644
--- a/junction/src/test/resources/resource.properties
+++ b/junction/src/test/resources/resource.properties
@@ -1,5 +1,5 @@
killbill.catalog.uri=file:src/test/resources/catalogSample.xml
-killbill.billing.persistent.bus.claimed=1
+killbill.billing.persistent.bus.main.claimed=1
user.timezone=UTC
diff --git a/overdue/src/test/java/com/ning/billing/overdue/glue/TestOverdueModuleWithEmbeddedDB.java b/overdue/src/test/java/com/ning/billing/overdue/glue/TestOverdueModuleWithEmbeddedDB.java
index 863b5ab..8f626e7 100644
--- a/overdue/src/test/java/com/ning/billing/overdue/glue/TestOverdueModuleWithEmbeddedDB.java
+++ b/overdue/src/test/java/com/ning/billing/overdue/glue/TestOverdueModuleWithEmbeddedDB.java
@@ -20,6 +20,7 @@ import org.skife.config.ConfigSource;
import com.ning.billing.GuicyKillbillTestWithEmbeddedDBModule;
import com.ning.billing.util.glue.BusModule;
+import com.ning.billing.util.glue.MetricsModule;
import com.ning.billing.util.glue.NonEntityDaoModule;
import com.ning.billing.util.glue.NotificationQueueModule;
@@ -36,6 +37,7 @@ public class TestOverdueModuleWithEmbeddedDB extends TestOverdueModule {
install(new GuicyKillbillTestWithEmbeddedDBModule());
install(new NonEntityDaoModule());
install(new NotificationQueueModule(configSource));
+ install(new MetricsModule());
install(new BusModule(configSource));
}
}
diff --git a/overdue/src/test/resources/resource.properties b/overdue/src/test/resources/resource.properties
index 40eb8f3..a7e225e 100644
--- a/overdue/src/test/resources/resource.properties
+++ b/overdue/src/test/resources/resource.properties
@@ -1,5 +1,5 @@
killbill.catalog.uri=file:src/test/resources/catalogSample.xml
-killbill.billing.persistent.bus.claimed=1
+killbill.billing.persistent.bus.main.claimed=1
user.timezone=UTC
diff --git a/payment/src/test/resources/payment.properties b/payment/src/test/resources/payment.properties
index 6899043..5841e2e 100644
--- a/payment/src/test/resources/payment.properties
+++ b/payment/src/test/resources/payment.properties
@@ -1,4 +1,4 @@
killbill.payment.failure.retry.start.sec=3600
killbill.payment.failure.retry.multiplier=1
killbill.payment.failure.retry.max.attempts=3
-killbill.billing.persistent.bus.claimed=1
+killbill.billing.persistent.bus.main.claimed=1
pom.xml 2(+1 -1)
diff --git a/pom.xml b/pom.xml
index 6c8b8c4..3e7f136 100644
--- a/pom.xml
+++ b/pom.xml
@@ -19,7 +19,7 @@
<parent>
<artifactId>killbill-oss-parent</artifactId>
<groupId>com.ning.billing</groupId>
- <version>0.4.1</version>
+ <version>0.4.3</version>
</parent>
<artifactId>killbill</artifactId>
<version>0.6.3-SNAPSHOT</version>
diff --git a/server/src/main/java/com/ning/billing/server/modules/KillbillServerModule.java b/server/src/main/java/com/ning/billing/server/modules/KillbillServerModule.java
index 8113fdc..78068cb 100644
--- a/server/src/main/java/com/ning/billing/server/modules/KillbillServerModule.java
+++ b/server/src/main/java/com/ning/billing/server/modules/KillbillServerModule.java
@@ -66,6 +66,7 @@ import com.ning.billing.util.glue.ExportModule;
import com.ning.billing.util.glue.GlobalLockerModule;
import com.ning.billing.util.glue.KillBillShiroAopModule;
import com.ning.billing.util.glue.KillBillShiroModule;
+import com.ning.billing.util.glue.MetricsModule;
import com.ning.billing.util.glue.NonEntityDaoModule;
import com.ning.billing.util.glue.NotificationQueueModule;
import com.ning.billing.util.glue.RecordIdModule;
@@ -139,6 +140,7 @@ public class KillbillServerModule extends AbstractModule {
install(new CustomFieldModule());
install(new AuditModule());
install(new CatalogModule(configSource));
+ install(new MetricsModule());
install(new BusModule(configSource));
install(new NotificationQueueModule(configSource));
install(new CallContextModule());
@@ -148,7 +150,7 @@ public class KillbillServerModule extends AbstractModule {
install(new DefaultSubscriptionModule(configSource));
install(new DefaultEntitlementModule(configSource));
install(new PaymentModule(configSource));
- install(new BeatrixModule());
+ install(new BeatrixModule(configSource));
install(new DefaultJunctionModule(configSource));
install(new DefaultOverdueModule(configSource));
install(new TenantModule(configSource));
diff --git a/server/src/test/java/com/ning/billing/jaxrs/TestJaxrsBase.java b/server/src/test/java/com/ning/billing/jaxrs/TestJaxrsBase.java
index d900118..824546f 100644
--- a/server/src/test/java/com/ning/billing/jaxrs/TestJaxrsBase.java
+++ b/server/src/test/java/com/ning/billing/jaxrs/TestJaxrsBase.java
@@ -76,6 +76,7 @@ import com.ning.billing.util.glue.CustomFieldModule;
import com.ning.billing.util.glue.ExportModule;
import com.ning.billing.util.glue.KillBillShiroAopModule;
import com.ning.billing.util.glue.KillBillShiroModule;
+import com.ning.billing.util.glue.MetricsModule;
import com.ning.billing.util.glue.NonEntityDaoModule;
import com.ning.billing.util.glue.NotificationQueueModule;
import com.ning.billing.util.glue.RecordIdModule;
@@ -210,6 +211,7 @@ public class TestJaxrsBase extends KillbillClient {
install(new TagStoreModule());
install(new AuditModule());
install(new CatalogModule(configSource));
+ install(new MetricsModule());
install(new BusModule(configSource));
install(new NotificationQueueModule(configSource));
install(new CallContextModule());
@@ -219,7 +221,7 @@ public class TestJaxrsBase extends KillbillClient {
install(new DefaultSubscriptionModule(configSource));
install(new DefaultEntitlementModule(configSource));
install(new PaymentMockModule(configSource));
- install(new BeatrixModule());
+ install(new BeatrixModule(configSource));
install(new DefaultJunctionModule(configSource));
install(new DefaultOverdueModule(configSource));
install(new TenantModule(configSource));
diff --git a/server/src/test/resources/killbill.properties b/server/src/test/resources/killbill.properties
index dd7b4f2..7edc08b 100644
--- a/server/src/test/resources/killbill.properties
+++ b/server/src/test/resources/killbill.properties
@@ -29,10 +29,15 @@ com.ning.core.server.jetty.logPath=/var/tmp/.logs
killbill.payment.engine.notifications.sleep=100
killbill.invoice.engine.notifications.sleep=100
-killbill.billing.persistent.bus.sleep=100
-killbill.billing.persistent.bus.nbThreads=1
-killbill.billing.persistent.bus.claimed=1
-# Local DB
+killbill.billing.persistent.bus.main.sleep=100
+killbill.billing.persistent.bus.main.nbThreads=1
+killbill.billing.persistent.bus.main.claimed=1
+killbill.billing.persistent.bus.external.sleep=100
+killbill.billing.persistent.bus.external.nbThreads=1
+killbill.billing.persistent.bus.external.claimed=1
+killbill.billing.persistent.bus.external.tableName=bus_ext_events
+killbill.billing.persistent.bus.external.historyTableName=bus_ext_events_history
+# Local DB
#com.ning.billing.dbi.test.useLocalDb=true
killbill.osgi.bundle.install.dir=/var/tmp/somethingthatdoesnotexist
diff --git a/subscription/src/test/java/com/ning/billing/subscription/glue/TestDefaultSubscriptionModuleNoDB.java b/subscription/src/test/java/com/ning/billing/subscription/glue/TestDefaultSubscriptionModuleNoDB.java
index 555b121..2085dff 100644
--- a/subscription/src/test/java/com/ning/billing/subscription/glue/TestDefaultSubscriptionModuleNoDB.java
+++ b/subscription/src/test/java/com/ning/billing/subscription/glue/TestDefaultSubscriptionModuleNoDB.java
@@ -20,16 +20,17 @@ import org.skife.config.ConfigSource;
import org.skife.config.ConfigurationObjectFactory;
import com.ning.billing.GuicyKillbillTestNoDBModule;
-import com.ning.billing.subscription.api.timeline.RepairSubscriptionLifecycleDao;
-import com.ning.billing.subscription.engine.dao.MockSubscriptionDaoMemory;
-import com.ning.billing.subscription.engine.dao.SubscriptionDao;
-import com.ning.billing.subscription.engine.dao.RepairSubscriptionDao;
import com.ning.billing.mock.glue.MockNonEntityDaoModule;
import com.ning.billing.notificationq.MockNotificationQueueService;
import com.ning.billing.notificationq.api.NotificationQueueConfig;
import com.ning.billing.notificationq.api.NotificationQueueService;
+import com.ning.billing.subscription.api.timeline.RepairSubscriptionLifecycleDao;
+import com.ning.billing.subscription.engine.dao.MockSubscriptionDaoMemory;
+import com.ning.billing.subscription.engine.dao.RepairSubscriptionDao;
+import com.ning.billing.subscription.engine.dao.SubscriptionDao;
import com.ning.billing.util.bus.InMemoryBusModule;
+import com.google.common.collect.ImmutableMap;
import com.google.inject.name.Names;
public class TestDefaultSubscriptionModuleNoDB extends TestDefaultSubscriptionModule {
@@ -52,7 +53,8 @@ public class TestDefaultSubscriptionModuleNoDB extends TestDefaultSubscriptionMo
}
protected void configureNotificationQueueConfig() {
- final NotificationQueueConfig config = new ConfigurationObjectFactory(configSource).build(NotificationQueueConfig.class);
+ final NotificationQueueConfig config = new ConfigurationObjectFactory(configSource).buildWithReplacements(NotificationQueueConfig.class,
+ ImmutableMap.<String, String>of("instanceName", "main"));
bind(NotificationQueueConfig.class).toInstance(config);
}
diff --git a/subscription/src/test/java/com/ning/billing/subscription/glue/TestDefaultSubscriptionModuleWithEmbeddedDB.java b/subscription/src/test/java/com/ning/billing/subscription/glue/TestDefaultSubscriptionModuleWithEmbeddedDB.java
index 98e4a71..30815b6 100644
--- a/subscription/src/test/java/com/ning/billing/subscription/glue/TestDefaultSubscriptionModuleWithEmbeddedDB.java
+++ b/subscription/src/test/java/com/ning/billing/subscription/glue/TestDefaultSubscriptionModuleWithEmbeddedDB.java
@@ -25,6 +25,7 @@ import com.ning.billing.subscription.engine.dao.SubscriptionDao;
import com.ning.billing.subscription.engine.dao.RepairSubscriptionDao;
import com.ning.billing.util.glue.BusModule;
import com.ning.billing.util.glue.CustomFieldModule;
+import com.ning.billing.util.glue.MetricsModule;
import com.ning.billing.util.glue.NonEntityDaoModule;
import com.ning.billing.util.glue.NotificationQueueModule;
@@ -55,6 +56,7 @@ public class TestDefaultSubscriptionModuleWithEmbeddedDB extends TestDefaultSubs
install(new NotificationQueueModule(configSource));
install(new CustomFieldModule());
+ install(new MetricsModule());
install(new BusModule(configSource));
super.configure();
}
diff --git a/subscription/src/test/resources/subscription.properties b/subscription/src/test/resources/subscription.properties
index d2f91f5..b1d5ad6 100644
--- a/subscription/src/test/resources/subscription.properties
+++ b/subscription/src/test/resources/subscription.properties
@@ -1,5 +1,5 @@
killbill.catalog.uri=file:src/test/resources/testInput.xml
-killbill.billing.persistent.bus.sleep=100
-killbill.billing.persistent.bus.nbThreads=1
-killbill.billing.persistent.bus.claimed=1
+killbill.billing.persistent.bus.main.sleep=100
+killbill.billing.persistent.bus.main.nbThreads=1
+killbill.billing.persistent.bus.main.claimed=1
user.timezone=UTC
util/pom.xml 4(+4 -0)
diff --git a/util/pom.xml b/util/pom.xml
index dd063e5..52800cd 100644
--- a/util/pom.xml
+++ b/util/pom.xml
@@ -20,6 +20,10 @@
<name>killbill-util</name>
<dependencies>
<dependency>
+ <groupId>com.codahale.metrics</groupId>
+ <artifactId>metrics-core</artifactId>
+ </dependency>
+ <dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId>
</dependency>
diff --git a/util/src/main/java/com/ning/billing/util/bus/InMemoryBusModule.java b/util/src/main/java/com/ning/billing/util/bus/InMemoryBusModule.java
index 8cbc547..21034e5 100644
--- a/util/src/main/java/com/ning/billing/util/bus/InMemoryBusModule.java
+++ b/util/src/main/java/com/ning/billing/util/bus/InMemoryBusModule.java
@@ -23,6 +23,6 @@ import com.ning.billing.util.glue.BusModule;
public class InMemoryBusModule extends BusModule {
public InMemoryBusModule(final ConfigSource configSource) {
- super(BusType.MEMORY, configSource, "foo", "bar");
+ super(BusType.MEMORY, configSource);
}
}
diff --git a/util/src/main/java/com/ning/billing/util/config/OSGIConfig.java b/util/src/main/java/com/ning/billing/util/config/OSGIConfig.java
index 9e120dd..f9fb161 100644
--- a/util/src/main/java/com/ning/billing/util/config/OSGIConfig.java
+++ b/util/src/main/java/com/ning/billing/util/config/OSGIConfig.java
@@ -73,6 +73,8 @@ public interface OSGIConfig extends KillbillConfig {
// javax.servlet and javax.servlet.http are not exported by default - we
// need the bundles to see them for them to be able to register their servlets.
// Note: bundles should mark javax.servlet:servlet-api as provided
+ "sun.misc," +
+ "javax.management," +
"javax.servlet;version=3.0," +
"javax.servlet.http;version=3.0," +
// Since we are using joda in our APIs we need to export it
diff --git a/util/src/main/java/com/ning/billing/util/glue/BusModule.java b/util/src/main/java/com/ning/billing/util/glue/BusModule.java
index b757a56..2b2cbde 100644
--- a/util/src/main/java/com/ning/billing/util/glue/BusModule.java
+++ b/util/src/main/java/com/ning/billing/util/glue/BusModule.java
@@ -25,29 +25,21 @@ import com.ning.billing.bus.api.PersistentBusConfig;
import com.ning.billing.util.bus.DefaultBusService;
import com.ning.billing.util.svcsapi.bus.BusService;
+import com.google.common.collect.ImmutableMap;
import com.google.inject.AbstractModule;
public class BusModule extends AbstractModule {
- // This has to match the DLL
- private final static String BUS_TABLE_NAME = "bus_events";
- private final static String BUS_HISTORY_TABLE_NAME = "bus_events_history";
-
private final BusType type;
private final ConfigSource configSource;
- private final String tableName;
- private final String historyTableName;
public BusModule(final ConfigSource configSource) {
- this(BusType.PERSISTENT, configSource, BUS_TABLE_NAME, BUS_HISTORY_TABLE_NAME);
+ this(BusType.PERSISTENT, configSource);
}
-
- protected BusModule(final BusType type, final ConfigSource configSource, final String tableName, final String historyTableName) {
+ protected BusModule(final BusType type, final ConfigSource configSource) {
this.type = type;
this.configSource = configSource;
- this.tableName = tableName;
- this.historyTableName = historyTableName;
}
public enum BusType {
@@ -66,19 +58,14 @@ public class BusModule extends AbstractModule {
configurePersistentEventBus();
break;
default:
- new RuntimeException("Unrecognized EventBus type " + type);
+ throw new RuntimeException("Unrecognized EventBus type " + type);
}
-
- }
-
- protected void configurePersistentBusConfig() {
- final PersistentBusConfig config = new ConfigurationObjectFactory(configSource).build(PersistentBusConfig.class);
- bind(PersistentBusConfig.class).toInstance(config);
}
- private void configurePersistentEventBus() {
- configurePersistentBusConfig();
- bind(BusProvider.class).toInstance(new BusProvider(tableName, historyTableName));
+ protected void configurePersistentEventBus() {
+ final PersistentBusConfig busConfig = new ConfigurationObjectFactory(configSource).buildWithReplacements(PersistentBusConfig.class,
+ ImmutableMap.<String, String>of("instanceName", "main"));
+ bind(BusProvider.class).toInstance(new BusProvider(busConfig));
bind(PersistentBus.class).toProvider(BusProvider.class).asEagerSingleton();
}
diff --git a/util/src/main/java/com/ning/billing/util/glue/BusProvider.java b/util/src/main/java/com/ning/billing/util/glue/BusProvider.java
index d2d5c56..9902c95 100644
--- a/util/src/main/java/com/ning/billing/util/glue/BusProvider.java
+++ b/util/src/main/java/com/ning/billing/util/glue/BusProvider.java
@@ -26,30 +26,30 @@ import com.ning.billing.bus.api.PersistentBus;
import com.ning.billing.bus.api.PersistentBusConfig;
import com.ning.billing.clock.Clock;
+import com.codahale.metrics.MetricRegistry;
+
public class BusProvider implements Provider<PersistentBus> {
+ private final PersistentBusConfig busConfig;
+
private IDBI dbi;
private Clock clock;
- private PersistentBusConfig busConfig;
- private String tableName;
- private String historyTableName;
+ private MetricRegistry metricRegistry;
- public BusProvider(final String tableName, final String historyTableName) {
- this.tableName = tableName;
- this.historyTableName = historyTableName;
+ public BusProvider(final PersistentBusConfig busConfig) {
+ this.busConfig = busConfig;
}
@Inject
- public void initialize(final IDBI dbi, final Clock clock, final PersistentBusConfig config) {
+ public void initialize(final IDBI dbi, final Clock clock, final MetricRegistry metricRegistry) {
this.dbi = dbi;
this.clock = clock;
- this.busConfig = config;
+ this.metricRegistry = metricRegistry;
}
-
@Override
public PersistentBus get() {
- return new DefaultPersistentBus(dbi, clock, busConfig, tableName, historyTableName);
+ return new DefaultPersistentBus(dbi, clock, busConfig, metricRegistry);
}
}
diff --git a/util/src/main/java/com/ning/billing/util/glue/MetricsModule.java b/util/src/main/java/com/ning/billing/util/glue/MetricsModule.java
new file mode 100644
index 0000000..8bf2fa0
--- /dev/null
+++ b/util/src/main/java/com/ning/billing/util/glue/MetricsModule.java
@@ -0,0 +1,28 @@
+/*
+ * Copyright 2010-2013 Ning, Inc.
+ *
+ * Ning 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
+ * License. You may obtain a copy of the License at:
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * License for the specific language governing permissions and limitations
+ * under the License.
+ */
+
+package com.ning.billing.util.glue;
+
+import com.codahale.metrics.MetricRegistry;
+import com.google.inject.AbstractModule;
+
+public class MetricsModule extends AbstractModule {
+
+ @Override
+ protected void configure() {
+ bind(MetricRegistry.class).asEagerSingleton();
+ }
+}
diff --git a/util/src/main/java/com/ning/billing/util/glue/NotificationQueueModule.java b/util/src/main/java/com/ning/billing/util/glue/NotificationQueueModule.java
index 98525cc..3f0e6be 100644
--- a/util/src/main/java/com/ning/billing/util/glue/NotificationQueueModule.java
+++ b/util/src/main/java/com/ning/billing/util/glue/NotificationQueueModule.java
@@ -23,6 +23,7 @@ import com.ning.billing.notificationq.DefaultNotificationQueueService;
import com.ning.billing.notificationq.api.NotificationQueueConfig;
import com.ning.billing.notificationq.api.NotificationQueueService;
+import com.google.common.collect.ImmutableMap;
import com.google.inject.AbstractModule;
public class NotificationQueueModule extends AbstractModule {
@@ -34,9 +35,11 @@ public class NotificationQueueModule extends AbstractModule {
}
protected void configureNotificationQueueConfig() {
- final NotificationQueueConfig config = new ConfigurationObjectFactory(configSource).build(NotificationQueueConfig.class);
+ final NotificationQueueConfig config = new ConfigurationObjectFactory(configSource).buildWithReplacements(NotificationQueueConfig.class,
+ ImmutableMap.<String, String>of("instanceName", "main"));
bind(NotificationQueueConfig.class).toInstance(config);
}
+
@Override
protected void configure() {
bind(NotificationQueueService.class).to(DefaultNotificationQueueService.class).asEagerSingleton();
diff --git a/util/src/test/java/com/ning/billing/KillbillConfigSource.java b/util/src/test/java/com/ning/billing/KillbillConfigSource.java
index 1897575..bf4191f 100644
--- a/util/src/test/java/com/ning/billing/KillbillConfigSource.java
+++ b/util/src/test/java/com/ning/billing/KillbillConfigSource.java
@@ -35,10 +35,10 @@ public class KillbillConfigSource implements ConfigSource {
this.properties.put("user.timezone", "UTC");
// Speed up the notification queue
- this.properties.put("killbill.billing.notificationq.sleep", "100");
+ this.properties.put("killbill.billing.notificationq.main.sleep", "100");
// Speed up the bus
- this.properties.put("killbill.billing.persistent.bus.sleep", "100");
- this.properties.put("killbill.billing.persistent.bus.nbThreads", "1");
+ this.properties.put("killbill.billing.persistent.bus.main.sleep", "100");
+ this.properties.put("killbill.billing.persistent.bus.main.nbThreads", "1");
}
public String getString(final String propertyName) {
diff --git a/util/src/test/java/com/ning/billing/mock/glue/MockNotificationQueueModule.java b/util/src/test/java/com/ning/billing/mock/glue/MockNotificationQueueModule.java
index eac301f..6fcc86d 100644
--- a/util/src/test/java/com/ning/billing/mock/glue/MockNotificationQueueModule.java
+++ b/util/src/test/java/com/ning/billing/mock/glue/MockNotificationQueueModule.java
@@ -24,6 +24,8 @@ import com.ning.billing.notificationq.api.NotificationQueueConfig;
import com.ning.billing.notificationq.api.NotificationQueueService;
import com.ning.billing.util.glue.NotificationQueueModule;
+import com.google.common.collect.ImmutableMap;
+
public class MockNotificationQueueModule extends NotificationQueueModule {
public MockNotificationQueueModule(final ConfigSource configSource) {
@@ -32,9 +34,11 @@ public class MockNotificationQueueModule extends NotificationQueueModule {
@Override
protected void configureNotificationQueueConfig() {
- final NotificationQueueConfig config = new ConfigurationObjectFactory(configSource).build(NotificationQueueConfig.class);
+ final NotificationQueueConfig config = new ConfigurationObjectFactory(configSource).buildWithReplacements(NotificationQueueConfig.class,
+ ImmutableMap.<String, String>of("instanceName", "main"));
bind(NotificationQueueConfig.class).toInstance(config);
}
+
@Override
protected void configure() {
bind(NotificationQueueService.class).to(MockNotificationQueueService.class).asEagerSingleton();
diff --git a/util/src/test/java/com/ning/billing/util/glue/TestUtilModuleWithEmbeddedDB.java b/util/src/test/java/com/ning/billing/util/glue/TestUtilModuleWithEmbeddedDB.java
index cdf1b98..71e6fd5 100644
--- a/util/src/test/java/com/ning/billing/util/glue/TestUtilModuleWithEmbeddedDB.java
+++ b/util/src/test/java/com/ning/billing/util/glue/TestUtilModuleWithEmbeddedDB.java
@@ -34,6 +34,7 @@ public class TestUtilModuleWithEmbeddedDB extends TestUtilModule {
install(new AuditModule());
install(new TagStoreModule());
install(new CustomFieldModule());
+ install(new MetricsModule());
install(new BusModule(configSource));
install(new NotificationQueueModule(configSource));
install(new NonEntityDaoModule());