From 057bea43adb8bf29aefc34d5f6f5b6591bea4da2 Mon Sep 17 00:00:00 2001 From: Sebastian Sdorra Date: Thu, 3 Apr 2014 19:22:51 +0200 Subject: [PATCH] pass scm-manager stage to google guice --- scm-core/src/main/java/sonia/scm/Stage.java | 36 +++++++++++++++++-- .../java/sonia/scm/ScmContextListener.java | 6 ++-- 2 files changed, 38 insertions(+), 4 deletions(-) diff --git a/scm-core/src/main/java/sonia/scm/Stage.java b/scm-core/src/main/java/sonia/scm/Stage.java index 17a3938269..e04e582fbe 100644 --- a/scm-core/src/main/java/sonia/scm/Stage.java +++ b/scm-core/src/main/java/sonia/scm/Stage.java @@ -30,6 +30,7 @@ */ + package sonia.scm; /** @@ -46,10 +47,41 @@ public enum Stage /** * This value indicates SCM-Manager is right now in development. */ - DEVELOPMENT, + DEVELOPMENT(com.google.inject.Stage.DEVELOPMENT), /** * This value indicates SCM-Manager is right now productive. */ - PRODUCTION + PRODUCTION(com.google.inject.Stage.PRODUCTION); + + /** + * Constructs a new Stage + * + * + * @param injectionStage injection stage + */ + private Stage(com.google.inject.Stage injectionStage) + { + this.injectionStage = injectionStage; + } + + //~--- get methods ---------------------------------------------------------- + + /** + * Returns the injection stage + * + * + * @return injection stage + * + * @since 2.0.0 + */ + public com.google.inject.Stage getInjectionStage() + { + return injectionStage; + } + + //~--- fields --------------------------------------------------------------- + + /** injection stage */ + private final com.google.inject.Stage injectionStage; } diff --git a/scm-webapp/src/main/java/sonia/scm/ScmContextListener.java b/scm-webapp/src/main/java/sonia/scm/ScmContextListener.java index 4729980992..784b2ea11d 100644 --- a/scm-webapp/src/main/java/sonia/scm/ScmContextListener.java +++ b/scm-webapp/src/main/java/sonia/scm/ScmContextListener.java @@ -46,6 +46,7 @@ import org.apache.shiro.guice.web.ShiroWebModule; import sonia.scm.cache.CacheManager; import sonia.scm.group.GroupManager; import sonia.scm.plugin.DefaultPluginLoader; +import sonia.scm.repository.HealthCheckContextListener; import sonia.scm.repository.RepositoryManager; import sonia.scm.store.StoreFactory; import sonia.scm.upgrade.UpgradeManager; @@ -59,7 +60,6 @@ import java.util.List; import javax.servlet.ServletContext; import javax.servlet.ServletContextEvent; -import sonia.scm.repository.HealthCheckContextListener; /** * @@ -196,7 +196,9 @@ public class ScmContextListener extends GuiceServletContextListener moduleList.addAll(pluginLoader.getInjectionModules()); moduleList.addAll(overrides.getModules()); - return Guice.createInjector(moduleList); + SCMContextProvider ctx = SCMContext.getContext(); + + return Guice.createInjector(ctx.getStage().getInjectionStage(), moduleList); } /**