killbill-memoizeit

util: add ConfigSource in constructor of BusModule This

2/1/2013 7:11:43 PM

Details

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 2b8ea6f..b736ea4 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
@@ -16,29 +16,39 @@
 
 package com.ning.billing.util.glue;
 
+import org.skife.config.ConfigSource;
 import org.skife.config.ConfigurationObjectFactory;
+import org.skife.config.SimplePropertyConfigSource;
 
-import com.ning.billing.util.svcsapi.bus.InternalBus;
-import com.ning.billing.util.svcsapi.bus.BusService;
 import com.ning.billing.util.bus.DefaultBusService;
 import com.ning.billing.util.bus.InMemoryInternalBus;
-import com.ning.billing.util.bus.PersistentInternalBus;
 import com.ning.billing.util.bus.PersistentBusConfig;
+import com.ning.billing.util.bus.PersistentInternalBus;
+import com.ning.billing.util.svcsapi.bus.BusService;
+import com.ning.billing.util.svcsapi.bus.InternalBus;
 
 import com.google.inject.AbstractModule;
 
 public class BusModule extends AbstractModule {
 
     private final BusType type;
+    private final ConfigSource configSource;
 
     public BusModule() {
-        super();
-        type = BusType.PERSISTENT;
+        this(BusType.PERSISTENT);
+    }
+
+    public BusModule(final ConfigSource configSource) {
+        this(BusType.PERSISTENT, configSource);
     }
 
     public BusModule(final BusType type) {
-        super();
+        this(type, new SimplePropertyConfigSource(System.getProperties()));
+    }
+
+    public BusModule(final BusType type, final ConfigSource configSource) {
         this.type = type;
+        this.configSource = configSource;
     }
 
     public enum BusType {
@@ -63,7 +73,7 @@ public class BusModule extends AbstractModule {
     }
 
     protected void configurePersistentBusConfig() {
-        final PersistentBusConfig config = new ConfigurationObjectFactory(System.getProperties()).build(PersistentBusConfig.class);
+        final PersistentBusConfig config = new ConfigurationObjectFactory(configSource).build(PersistentBusConfig.class);
         bind(PersistentBusConfig.class).toInstance(config);
     }
 
diff --git a/util/src/test/java/com/ning/billing/util/bus/InMemoryBusModule.java b/util/src/test/java/com/ning/billing/util/bus/InMemoryBusModule.java
index b13baf1..e178bad 100644
--- a/util/src/test/java/com/ning/billing/util/bus/InMemoryBusModule.java
+++ b/util/src/test/java/com/ning/billing/util/bus/InMemoryBusModule.java
@@ -16,6 +16,8 @@
 
 package com.ning.billing.util.bus;
 
+import org.skife.config.ConfigSource;
+
 import com.ning.billing.util.glue.BusModule;
 
 public class InMemoryBusModule extends BusModule {
@@ -23,4 +25,8 @@ public class InMemoryBusModule extends BusModule {
     public InMemoryBusModule() {
         super(BusType.MEMORY);
     }
+
+    public InMemoryBusModule(final ConfigSource configSource) {
+        super(BusType.MEMORY, configSource);
+    }
 }