Merge branch 'stable-2.11'

* stable-2.11:
  Move all GarbageCollection bindings into the same module
  Fix gc_log when running in a web container

Change-Id: Ib4927d7fa1d1c8c3dd6bcf43359fc32b79abbb2c
Signed-off-by: Edwin Kempin <edwin.kempin@sap.com>
This commit is contained in:
Edwin Kempin
2015-04-20 09:52:09 +02:00
7 changed files with 50 additions and 35 deletions

View File

@@ -38,7 +38,6 @@ import com.google.gerrit.pgm.http.jetty.JettyEnv;
import com.google.gerrit.pgm.http.jetty.JettyModule; import com.google.gerrit.pgm.http.jetty.JettyModule;
import com.google.gerrit.pgm.http.jetty.ProjectQoSFilter; import com.google.gerrit.pgm.http.jetty.ProjectQoSFilter;
import com.google.gerrit.pgm.util.ErrorLogFile; import com.google.gerrit.pgm.util.ErrorLogFile;
import com.google.gerrit.pgm.util.GarbageCollectionLogFile;
import com.google.gerrit.pgm.util.LogFileCompressor; import com.google.gerrit.pgm.util.LogFileCompressor;
import com.google.gerrit.pgm.util.RuntimeShutdown; import com.google.gerrit.pgm.util.RuntimeShutdown;
import com.google.gerrit.pgm.util.SiteProgram; import com.google.gerrit.pgm.util.SiteProgram;
@@ -55,7 +54,7 @@ import com.google.gerrit.server.config.MasterNodeStartup;
import com.google.gerrit.server.config.RestCacheAdminModule; import com.google.gerrit.server.config.RestCacheAdminModule;
import com.google.gerrit.server.contact.ContactStoreModule; import com.google.gerrit.server.contact.ContactStoreModule;
import com.google.gerrit.server.contact.HttpContactStoreConnection; import com.google.gerrit.server.contact.HttpContactStoreConnection;
import com.google.gerrit.server.git.GarbageCollectionRunner; import com.google.gerrit.server.git.GarbageCollectionModule;
import com.google.gerrit.server.git.ReceiveCommitsExecutorModule; import com.google.gerrit.server.git.ReceiveCommitsExecutorModule;
import com.google.gerrit.server.git.WorkQueue; import com.google.gerrit.server.git.WorkQueue;
import com.google.gerrit.server.index.DummyIndexModule; import com.google.gerrit.server.index.DummyIndexModule;
@@ -197,7 +196,6 @@ public class Daemon extends SiteProgram {
throw die("No services enabled, nothing to do"); throw die("No services enabled, nothing to do");
} }
manager.add(GarbageCollectionLogFile.start(getSitePath()));
if (!consoleLog) { if (!consoleLog) {
manager.add(ErrorLogFile.start(getSitePath())); manager.add(ErrorLogFile.start(getSitePath()));
} }
@@ -371,7 +369,7 @@ public class Daemon extends SiteProgram {
} }
} }
}); });
modules.add(GarbageCollectionRunner.module()); modules.add(new GarbageCollectionModule());
return cfgInjector.createChildInjector(modules); return cfgInjector.createChildInjector(modules);
} }

View File

@@ -72,7 +72,6 @@ import com.google.gerrit.server.change.MergeabilityCacheImpl;
import com.google.gerrit.server.events.EventFactory; import com.google.gerrit.server.events.EventFactory;
import com.google.gerrit.server.extensions.events.GitReferenceUpdated; import com.google.gerrit.server.extensions.events.GitReferenceUpdated;
import com.google.gerrit.server.git.ChangeMergeQueue; import com.google.gerrit.server.git.ChangeMergeQueue;
import com.google.gerrit.server.git.GarbageCollection;
import com.google.gerrit.server.git.GitModule; import com.google.gerrit.server.git.GitModule;
import com.google.gerrit.server.git.MergeQueue; import com.google.gerrit.server.git.MergeQueue;
import com.google.gerrit.server.git.MergeUtil; import com.google.gerrit.server.git.MergeUtil;
@@ -200,7 +199,6 @@ public class GerritGlobalModule extends FactoryModule {
factory(ProjectState.Factory.class); factory(ProjectState.Factory.class);
factory(RegisterNewEmailSender.Factory.class); factory(RegisterNewEmailSender.Factory.class);
factory(ReplacePatchSetSender.Factory.class); factory(ReplacePatchSetSender.Factory.class);
factory(GarbageCollection.Factory.class);
bind(PermissionCollection.Factory.class); bind(PermissionCollection.Factory.class);
bind(AccountVisibility.class) bind(AccountVisibility.class)
.toProvider(AccountVisibilityProvider.class) .toProvider(AccountVisibilityProvider.class)

View File

@@ -12,30 +12,31 @@
// See the License for the specific language governing permissions and // See the License for the specific language governing permissions and
// limitations under the License. // limitations under the License.
package com.google.gerrit.pgm.util; package com.google.gerrit.server.git;
import com.google.gerrit.common.FileUtil; import com.google.gerrit.common.FileUtil;
import com.google.gerrit.extensions.events.LifecycleListener; import com.google.gerrit.extensions.events.LifecycleListener;
import com.google.gerrit.server.config.SitePaths; import com.google.gerrit.server.config.SitePaths;
import com.google.gerrit.server.git.GarbageCollection;
import com.google.gerrit.server.util.SystemLog; import com.google.gerrit.server.util.SystemLog;
import com.google.inject.Inject;
import org.apache.log4j.LogManager; import org.apache.log4j.LogManager;
import org.apache.log4j.Logger; import org.apache.log4j.Logger;
import org.apache.log4j.PatternLayout; import org.apache.log4j.PatternLayout;
import java.io.IOException;
import java.nio.file.Path; import java.nio.file.Path;
public class GarbageCollectionLogFile { public class GarbageCollectionLogFile implements LifecycleListener {
public static LifecycleListener start(Path sitePath) throws IOException {
Path logdir = FileUtil.mkdirsOrDie(new SitePaths(sitePath).logs_dir, @Inject
public GarbageCollectionLogFile(SitePaths sitePaths) {
Path logdir = FileUtil.mkdirsOrDie(sitePaths.logs_dir,
"Cannot create log directory"); "Cannot create log directory");
if (SystemLog.shouldConfigure()) { if (SystemLog.shouldConfigure()) {
initLogSystem(logdir); initLogSystem(logdir);
} }
}
return new LifecycleListener() {
@Override @Override
public void start() { public void start() {
} }
@@ -44,8 +45,6 @@ public class GarbageCollectionLogFile {
public void stop() { public void stop() {
LogManager.getLogger(GarbageCollection.LOG_NAME).removeAllAppenders(); LogManager.getLogger(GarbageCollection.LOG_NAME).removeAllAppenders();
} }
};
}
private static void initLogSystem(Path logdir) { private static void initLogSystem(Path logdir) {
Logger gcLogger = LogManager.getLogger(GarbageCollection.LOG_NAME); Logger gcLogger = LogManager.getLogger(GarbageCollection.LOG_NAME);

View File

@@ -0,0 +1,30 @@
// Copyright (C) 2015 The Android Open Source Project
//
// Licensed 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.google.gerrit.server.git;
import com.google.gerrit.lifecycle.LifecycleModule;
public class GarbageCollectionModule extends LifecycleModule {
@Override
protected void configure() {
bind(GarbageCollectionLogFile.class).asEagerSingleton();
listener().to(GarbageCollectionLogFile.class);
bind(GarbageCollectionQueue.class);
factory(GarbageCollection.Factory.class);
listener().to(GarbageCollectionRunner.Lifecycle.class);
}
}

View File

@@ -18,12 +18,10 @@ import static com.google.gerrit.server.config.ScheduleConfig.MISSING_CONFIG;
import com.google.common.collect.Lists; import com.google.common.collect.Lists;
import com.google.gerrit.extensions.events.LifecycleListener; import com.google.gerrit.extensions.events.LifecycleListener;
import com.google.gerrit.lifecycle.LifecycleModule;
import com.google.gerrit.server.config.GcConfig; import com.google.gerrit.server.config.GcConfig;
import com.google.gerrit.server.config.ScheduleConfig; import com.google.gerrit.server.config.ScheduleConfig;
import com.google.gerrit.server.project.ProjectCache; import com.google.gerrit.server.project.ProjectCache;
import com.google.inject.Inject; import com.google.inject.Inject;
import com.google.inject.Module;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
@@ -35,16 +33,6 @@ public class GarbageCollectionRunner implements Runnable {
private static final Logger gcLog = LoggerFactory private static final Logger gcLog = LoggerFactory
.getLogger(GarbageCollection.LOG_NAME); .getLogger(GarbageCollection.LOG_NAME);
public static Module module() {
return new LifecycleModule() {
@Override
protected void configure() {
listener().to(Lifecycle.class);
}
};
}
static class Lifecycle implements LifecycleListener { static class Lifecycle implements LifecycleListener {
private final WorkQueue queue; private final WorkQueue queue;
private final GarbageCollectionRunner gcRunner; private final GarbageCollectionRunner gcRunner;

View File

@@ -40,6 +40,7 @@ import com.google.gerrit.server.config.SitePath;
import com.google.gerrit.server.config.TrackingFooters; import com.google.gerrit.server.config.TrackingFooters;
import com.google.gerrit.server.config.TrackingFootersProvider; import com.google.gerrit.server.config.TrackingFootersProvider;
import com.google.gerrit.server.git.EmailReviewCommentsExecutor; import com.google.gerrit.server.git.EmailReviewCommentsExecutor;
import com.google.gerrit.server.git.GarbageCollection;
import com.google.gerrit.server.git.GitRepositoryManager; import com.google.gerrit.server.git.GitRepositoryManager;
import com.google.gerrit.server.git.PerThreadRequestScope; import com.google.gerrit.server.git.PerThreadRequestScope;
import com.google.gerrit.server.git.WorkQueue; import com.google.gerrit.server.git.WorkQueue;
@@ -127,6 +128,7 @@ public class InMemoryModule extends FactoryModule {
} }
}); });
install(cfgInjector.getInstance(GerritGlobalModule.class)); install(cfgInjector.getInstance(GerritGlobalModule.class));
factory(GarbageCollection.Factory.class);
bindScope(RequestScoped.class, PerThreadRequestScope.REQUEST); bindScope(RequestScoped.class, PerThreadRequestScope.REQUEST);

View File

@@ -39,7 +39,7 @@ import com.google.gerrit.server.config.RestCacheAdminModule;
import com.google.gerrit.server.config.SitePath; import com.google.gerrit.server.config.SitePath;
import com.google.gerrit.server.contact.ContactStoreModule; import com.google.gerrit.server.contact.ContactStoreModule;
import com.google.gerrit.server.contact.HttpContactStoreConnection; import com.google.gerrit.server.contact.HttpContactStoreConnection;
import com.google.gerrit.server.git.GarbageCollectionRunner; import com.google.gerrit.server.git.GarbageCollectionModule;
import com.google.gerrit.server.git.LocalDiskRepositoryManager; import com.google.gerrit.server.git.LocalDiskRepositoryManager;
import com.google.gerrit.server.git.ReceiveCommitsExecutorModule; import com.google.gerrit.server.git.ReceiveCommitsExecutorModule;
import com.google.gerrit.server.git.WorkQueue; import com.google.gerrit.server.git.WorkQueue;
@@ -320,7 +320,7 @@ public class WebAppInitializer extends GuiceServletContextListener
bind(GerritOptions.class).toInstance(new GerritOptions(false, false)); bind(GerritOptions.class).toInstance(new GerritOptions(false, false));
} }
}); });
modules.add(GarbageCollectionRunner.module()); modules.add(new GarbageCollectionModule());
return cfgInjector.createChildInjector(modules); return cfgInjector.createChildInjector(modules);
} }