Fix a dependency injection runtime error in DeleteZombieDrafts pgm

The DeleteZombieDrafts pgm was added in stable-2.16 (I6aaf4ac292aca2da)
and merged all the way up to master. When running the pgm from the
command line in stable-3.0, a dependency injection error occurs in
SchemaModule while trying to bind a SchemaCreator class with the
following error: No implementation for
com.google.gerrit.metrics.MetricMaker was bound.

This change binds a MetricMaker to DisabledMetricMaker to fix the
problem.

Change-Id: I803a11d4f2ade6159a3bc6a3223ae4be05f2ab5e
This commit is contained in:
Youssef Elghareeb
2020-02-18 16:20:57 +01:00
parent 93aa1c46e8
commit 3e358f5c94
2 changed files with 4 additions and 0 deletions

View File

@@ -31,6 +31,7 @@ java_library(
"//java/com/google/gerrit/launcher",
"//java/com/google/gerrit/lifecycle",
"//java/com/google/gerrit/lucene",
"//java/com/google/gerrit/metrics",
"//java/com/google/gerrit/metrics/dropwizard",
"//java/com/google/gerrit/pgm/http/jetty",
"//java/com/google/gerrit/pgm/init",

View File

@@ -14,6 +14,8 @@
package com.google.gerrit.pgm;
import com.google.gerrit.metrics.DisabledMetricMaker;
import com.google.gerrit.metrics.MetricMaker;
import com.google.gerrit.pgm.init.api.ConsoleUI;
import com.google.gerrit.pgm.util.SiteProgram;
import com.google.gerrit.server.config.GerritServerConfigModule;
@@ -68,6 +70,7 @@ public class DeleteZombieDrafts extends SiteProgram {
bind(String.class)
.annotatedWith(SecureStoreClassName.class)
.toProvider(Providers.of(getConfiguredSecureStoreClass()));
bind(MetricMaker.class).to(DisabledMetricMaker.class);
install(new FactoryModuleBuilder().build(DeleteZombieCommentsRefs.Factory.class));
}
});