diff --git a/server/src/main/java/com/ning/billing/server/listeners/KillbillGuiceListener.java b/server/src/main/java/com/ning/billing/server/listeners/KillbillGuiceListener.java
index f8c1567..aaf22b7 100644
--- a/server/src/main/java/com/ning/billing/server/listeners/KillbillGuiceListener.java
+++ b/server/src/main/java/com/ning/billing/server/listeners/KillbillGuiceListener.java
@@ -37,6 +37,7 @@ import com.ning.billing.util.svcsapi.bus.InternalBus;
import com.ning.jetty.base.modules.ServerModuleBuilder;
import com.ning.jetty.core.listeners.SetupServer;
+import com.google.common.annotations.VisibleForTesting;
import com.google.inject.Injector;
import com.google.inject.Module;
import net.sf.ehcache.CacheManager;
@@ -47,6 +48,7 @@ public class KillbillGuiceListener extends SetupServer {
public static final Logger logger = LoggerFactory.getLogger(KillbillGuiceListener.class);
public static final String KILLBILL_MULTITENANT_PROPERTY = "killbill.server.multitenant";
+ private Injector injector;
private DefaultLifecycle killbillLifecycle;
private BusService killbillBusService;
private KillbillEventHandler killbilleventHandler;
@@ -86,12 +88,15 @@ public class KillbillGuiceListener extends SetupServer {
super.contextInitialized(event);
logger.info("KillbillLifecycleListener : contextInitialized");
- final Injector theInjector = injector(event);
- killbillLifecycle = theInjector.getInstance(DefaultLifecycle.class);
- killbillBusService = theInjector.getInstance(BusService.class);
- killbilleventHandler = theInjector.getInstance(KillbillEventHandler.class);
- registerMBeansForCache(theInjector.getInstance(CacheManager.class));
+ injector = injector(event);
+ event.getServletContext().setAttribute(Injector.class.getName(), injector);
+
+ killbillLifecycle = injector.getInstance(DefaultLifecycle.class);
+ killbillBusService = injector.getInstance(BusService.class);
+ killbilleventHandler = injector.getInstance(KillbillEventHandler.class);
+
+ registerMBeansForCache(injector.getInstance(CacheManager.class));
/*
ObjectMapper mapper = theInjector.getInstance(ObjectMapper.class);
@@ -137,4 +142,9 @@ public class KillbillGuiceListener extends SetupServer {
// Complete shutdown sequence
killbillLifecycle.fireShutdownSequencePostEventUnRegistration();
}
+
+ @VisibleForTesting
+ public Injector getInstantiatedInjector() {
+ return injector;
+ }
}
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 25e1f10..7c6d2c2 100644
--- a/server/src/test/java/com/ning/billing/jaxrs/TestJaxrsBase.java
+++ b/server/src/test/java/com/ning/billing/jaxrs/TestJaxrsBase.java
@@ -248,6 +248,8 @@ public class TestJaxrsBase extends KillbillClient {
server.configure(config, getListeners(), getFilters());
server.start();
+
+ listener.getInstantiatedInjector().injectMembers(this);
}
protected Iterable<EventListener> getListeners() {