killbill-memoizeit

pom.xml: update killbill-oss-parent to 0.4.3 The main changes

8/30/2013 12:13:49 AM

Changes

pom.xml 2(+1 -1)

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());