diff options
author | David Pursehouse <dpursehouse@collab.net> | 2017-02-03 19:05:29 +0900 |
---|---|---|
committer | David Pursehouse <dpursehouse@collab.net> | 2017-02-03 19:37:02 +0900 |
commit | 48d05ea980612adb61a8272ad5b6c8cdea1502e2 (patch) | |
tree | 3174c9b1732804a2444f5442f254b52ffd474389 | |
parent | 5e48cddbb306bcf3717f80f25aab8ba54de43c97 (diff) |
BaseInit: Bind DisabledMetricMaker
In some cases a plugin may have an InitStep that refers to other
classes in its implementation, that in turn get a MetricMaker
injected.
Since the MetricMaker, among other things, is not available to
the InitStep, this results in a guice injection error during the
plugins init step of site initialization.
Bind the DisabledMetricMaker to avoid the injection error. This
has the result that the InitStep works, but no metrics can be
recorded. Update the metrics documentation to explicitly mention
that metrics are not available during plugin init steps.
Bug: Issue 5438
Change-Id: Iac9f462eb93a2ae668d5c934e61eda9f23bd3c4d
-rw-r--r-- | Documentation/dev-plugins.txt | 3 | ||||
-rw-r--r-- | gerrit-pgm/src/main/java/com/google/gerrit/pgm/init/BaseInit.java | 4 |
2 files changed, 7 insertions, 0 deletions
diff --git a/Documentation/dev-plugins.txt b/Documentation/dev-plugins.txt index b6b7d677ab..d085731d00 100644 --- a/Documentation/dev-plugins.txt +++ b/Documentation/dev-plugins.txt @@ -2217,6 +2217,9 @@ Metric recording time spent on an operation. + Metric recording statistical distribution (rate) of values. +Note that metrics cannot be recorded from plugin init steps that +are run during site initialization. + Plugin metrics are recorded under `plugins/${plugin-name}/${metric-name}`. See the replication metrics in the diff --git a/gerrit-pgm/src/main/java/com/google/gerrit/pgm/init/BaseInit.java b/gerrit-pgm/src/main/java/com/google/gerrit/pgm/init/BaseInit.java index 8ccdebce4a..f625f7548e 100644 --- a/gerrit-pgm/src/main/java/com/google/gerrit/pgm/init/BaseInit.java +++ b/gerrit-pgm/src/main/java/com/google/gerrit/pgm/init/BaseInit.java @@ -23,6 +23,8 @@ import com.google.common.base.MoreObjects; import com.google.common.base.Strings; import com.google.gerrit.common.Die; import com.google.gerrit.common.IoUtil; +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.init.api.InitFlags; import com.google.gerrit.pgm.init.api.InstallAllPlugins; @@ -274,6 +276,8 @@ public class BaseInit extends SiteProgram { LibraryDownload.class).toInstance(getSkippedDownloads()); bind(Boolean.class).annotatedWith( LibraryDownload.class).toInstance(skipAllDownloads()); + + bind(MetricMaker.class).to(DisabledMetricMaker.class); } }); |