From 05cde2836cc74656f6c40b32dc1853069ddbdfd7 Mon Sep 17 00:00:00 2001 From: David Ostrovsky Date: Fri, 30 Jan 2015 00:38:21 +0100 Subject: [PATCH] Copy bindings from db injector to plugin environment Some basic bindings aren't copied to plugin environment that were defined in SchemaModule, e.g. AllProjectsName. Bug: Issue 3163 Change-Id: I7b07f6658c4b5d0dd997039e85f4373e57c4650f --- gerrit-pgm/src/main/java/com/google/gerrit/pgm/Daemon.java | 2 +- .../google/gerrit/server/plugins/PluginGuiceEnvironment.java | 4 +++- .../main/java/com/google/gerrit/httpd/WebAppInitializer.java | 2 +- 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/gerrit-pgm/src/main/java/com/google/gerrit/pgm/Daemon.java b/gerrit-pgm/src/main/java/com/google/gerrit/pgm/Daemon.java index 77edcfaac0..c9cb4582ba 100644 --- a/gerrit-pgm/src/main/java/com/google/gerrit/pgm/Daemon.java +++ b/gerrit-pgm/src/main/java/com/google/gerrit/pgm/Daemon.java @@ -275,7 +275,7 @@ public class Daemon extends SiteProgram { cfgInjector = createCfgInjector(); sysInjector = createSysInjector(); sysInjector.getInstance(PluginGuiceEnvironment.class) - .setCfgInjector(cfgInjector); + .setDbCfgInjector(dbInjector, cfgInjector); manager.add(dbInjector, cfgInjector, sysInjector); sshd &= !sshdOff(); diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/plugins/PluginGuiceEnvironment.java b/gerrit-server/src/main/java/com/google/gerrit/server/plugins/PluginGuiceEnvironment.java index 79ad9eeb84..3fbbfa9b0d 100644 --- a/gerrit-server/src/main/java/com/google/gerrit/server/plugins/PluginGuiceEnvironment.java +++ b/gerrit-server/src/main/java/com/google/gerrit/server/plugins/PluginGuiceEnvironment.java @@ -149,13 +149,15 @@ public class PluginGuiceEnvironment { return sysModule; } - public void setCfgInjector(Injector cfgInjector) { + public void setDbCfgInjector(Injector dbInjector, Injector cfgInjector) { + final Module db = copy(dbInjector); final Module cm = copy(cfgInjector); final Module sm = copy(sysInjector); sysModule = new AbstractModule() { @Override protected void configure() { install(copyConfigModule); + install(db); install(cm); install(sm); } diff --git a/gerrit-war/src/main/java/com/google/gerrit/httpd/WebAppInitializer.java b/gerrit-war/src/main/java/com/google/gerrit/httpd/WebAppInitializer.java index 863727b59c..15e2daa98f 100644 --- a/gerrit-war/src/main/java/com/google/gerrit/httpd/WebAppInitializer.java +++ b/gerrit-war/src/main/java/com/google/gerrit/httpd/WebAppInitializer.java @@ -167,7 +167,7 @@ public class WebAppInitializer extends GuiceServletContextListener webInjector = createWebInjector(); PluginGuiceEnvironment env = sysInjector.getInstance(PluginGuiceEnvironment.class); - env.setCfgInjector(cfgInjector); + env.setDbCfgInjector(dbInjector, cfgInjector); if (sshInjector != null) { env.setSshInjector(sshInjector); }