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:
		@@ -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.ProjectQoSFilter;
 | 
			
		||||
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.RuntimeShutdown;
 | 
			
		||||
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.contact.ContactStoreModule;
 | 
			
		||||
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.WorkQueue;
 | 
			
		||||
import com.google.gerrit.server.index.DummyIndexModule;
 | 
			
		||||
@@ -197,7 +196,6 @@ public class Daemon extends SiteProgram {
 | 
			
		||||
      throw die("No services enabled, nothing to do");
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    manager.add(GarbageCollectionLogFile.start(getSitePath()));
 | 
			
		||||
    if (!consoleLog) {
 | 
			
		||||
      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);
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -72,7 +72,6 @@ import com.google.gerrit.server.change.MergeabilityCacheImpl;
 | 
			
		||||
import com.google.gerrit.server.events.EventFactory;
 | 
			
		||||
import com.google.gerrit.server.extensions.events.GitReferenceUpdated;
 | 
			
		||||
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.MergeQueue;
 | 
			
		||||
import com.google.gerrit.server.git.MergeUtil;
 | 
			
		||||
@@ -200,7 +199,6 @@ public class GerritGlobalModule extends FactoryModule {
 | 
			
		||||
    factory(ProjectState.Factory.class);
 | 
			
		||||
    factory(RegisterNewEmailSender.Factory.class);
 | 
			
		||||
    factory(ReplacePatchSetSender.Factory.class);
 | 
			
		||||
    factory(GarbageCollection.Factory.class);
 | 
			
		||||
    bind(PermissionCollection.Factory.class);
 | 
			
		||||
    bind(AccountVisibility.class)
 | 
			
		||||
        .toProvider(AccountVisibilityProvider.class)
 | 
			
		||||
 
 | 
			
		||||
@@ -12,30 +12,31 @@
 | 
			
		||||
// See the License for the specific language governing permissions and
 | 
			
		||||
// 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.extensions.events.LifecycleListener;
 | 
			
		||||
import com.google.gerrit.server.config.SitePaths;
 | 
			
		||||
import com.google.gerrit.server.git.GarbageCollection;
 | 
			
		||||
import com.google.gerrit.server.util.SystemLog;
 | 
			
		||||
import com.google.inject.Inject;
 | 
			
		||||
 | 
			
		||||
import org.apache.log4j.LogManager;
 | 
			
		||||
import org.apache.log4j.Logger;
 | 
			
		||||
import org.apache.log4j.PatternLayout;
 | 
			
		||||
 | 
			
		||||
import java.io.IOException;
 | 
			
		||||
import java.nio.file.Path;
 | 
			
		||||
 | 
			
		||||
public class GarbageCollectionLogFile {
 | 
			
		||||
  public static LifecycleListener start(Path sitePath) throws IOException {
 | 
			
		||||
    Path logdir = FileUtil.mkdirsOrDie(new SitePaths(sitePath).logs_dir,
 | 
			
		||||
public class GarbageCollectionLogFile implements LifecycleListener {
 | 
			
		||||
 | 
			
		||||
  @Inject
 | 
			
		||||
  public GarbageCollectionLogFile(SitePaths sitePaths) {
 | 
			
		||||
    Path logdir = FileUtil.mkdirsOrDie(sitePaths.logs_dir,
 | 
			
		||||
        "Cannot create log directory");
 | 
			
		||||
    if (SystemLog.shouldConfigure()) {
 | 
			
		||||
      initLogSystem(logdir);
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
    return new LifecycleListener() {
 | 
			
		||||
  @Override
 | 
			
		||||
  public void start() {
 | 
			
		||||
  }
 | 
			
		||||
@@ -44,8 +45,6 @@ public class GarbageCollectionLogFile {
 | 
			
		||||
  public void stop() {
 | 
			
		||||
    LogManager.getLogger(GarbageCollection.LOG_NAME).removeAllAppenders();
 | 
			
		||||
  }
 | 
			
		||||
    };
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  private static void initLogSystem(Path logdir) {
 | 
			
		||||
    Logger gcLogger = LogManager.getLogger(GarbageCollection.LOG_NAME);
 | 
			
		||||
@@ -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);
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
@@ -18,12 +18,10 @@ import static com.google.gerrit.server.config.ScheduleConfig.MISSING_CONFIG;
 | 
			
		||||
 | 
			
		||||
import com.google.common.collect.Lists;
 | 
			
		||||
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.ScheduleConfig;
 | 
			
		||||
import com.google.gerrit.server.project.ProjectCache;
 | 
			
		||||
import com.google.inject.Inject;
 | 
			
		||||
import com.google.inject.Module;
 | 
			
		||||
 | 
			
		||||
import org.slf4j.Logger;
 | 
			
		||||
import org.slf4j.LoggerFactory;
 | 
			
		||||
@@ -35,16 +33,6 @@ public class GarbageCollectionRunner implements Runnable {
 | 
			
		||||
  private static final Logger gcLog = LoggerFactory
 | 
			
		||||
      .getLogger(GarbageCollection.LOG_NAME);
 | 
			
		||||
 | 
			
		||||
  public static Module module() {
 | 
			
		||||
    return new LifecycleModule() {
 | 
			
		||||
 | 
			
		||||
      @Override
 | 
			
		||||
      protected void configure() {
 | 
			
		||||
        listener().to(Lifecycle.class);
 | 
			
		||||
      }
 | 
			
		||||
    };
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  static class Lifecycle implements LifecycleListener {
 | 
			
		||||
    private final WorkQueue queue;
 | 
			
		||||
    private final GarbageCollectionRunner gcRunner;
 | 
			
		||||
 
 | 
			
		||||
@@ -40,6 +40,7 @@ import com.google.gerrit.server.config.SitePath;
 | 
			
		||||
import com.google.gerrit.server.config.TrackingFooters;
 | 
			
		||||
import com.google.gerrit.server.config.TrackingFootersProvider;
 | 
			
		||||
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.PerThreadRequestScope;
 | 
			
		||||
import com.google.gerrit.server.git.WorkQueue;
 | 
			
		||||
@@ -127,6 +128,7 @@ public class InMemoryModule extends FactoryModule {
 | 
			
		||||
      }
 | 
			
		||||
    });
 | 
			
		||||
    install(cfgInjector.getInstance(GerritGlobalModule.class));
 | 
			
		||||
    factory(GarbageCollection.Factory.class);
 | 
			
		||||
 | 
			
		||||
    bindScope(RequestScoped.class, PerThreadRequestScope.REQUEST);
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -39,7 +39,7 @@ import com.google.gerrit.server.config.RestCacheAdminModule;
 | 
			
		||||
import com.google.gerrit.server.config.SitePath;
 | 
			
		||||
import com.google.gerrit.server.contact.ContactStoreModule;
 | 
			
		||||
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.ReceiveCommitsExecutorModule;
 | 
			
		||||
import com.google.gerrit.server.git.WorkQueue;
 | 
			
		||||
@@ -320,7 +320,7 @@ public class WebAppInitializer extends GuiceServletContextListener
 | 
			
		||||
        bind(GerritOptions.class).toInstance(new GerritOptions(false, false));
 | 
			
		||||
      }
 | 
			
		||||
    });
 | 
			
		||||
    modules.add(GarbageCollectionRunner.module());
 | 
			
		||||
    modules.add(new GarbageCollectionModule());
 | 
			
		||||
    return cfgInjector.createChildInjector(modules);
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user