Revert "Replace project cache with GerritApi for listing projects"
Revert submission 425518
Reason for revert: See Issue 325029893, this metric should go into Gerrit core
Reverted changes: /q/submissionid:425518
Change-Id: I8153b52cf2ad975eb002f3b1449a79d882354fd9
diff --git a/src/main/java/com/googlesource/gerrit/plugins/gitrepometrics/collectors/NumberOfProjectsCollector.java b/src/main/java/com/googlesource/gerrit/plugins/gitrepometrics/collectors/NumberOfProjectsCollector.java
index 4e41e1d..27c320b 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/gitrepometrics/collectors/NumberOfProjectsCollector.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/gitrepometrics/collectors/NumberOfProjectsCollector.java
@@ -14,47 +14,21 @@
package com.googlesource.gerrit.plugins.gitrepometrics.collectors;
-import com.google.common.base.Supplier;
-import com.google.common.base.Suppliers;
-import com.google.common.flogger.FluentLogger;
-import com.google.gerrit.extensions.api.GerritApi;
-import com.google.gerrit.extensions.restapi.RestApiException;
-import com.google.gerrit.server.util.ManualRequestContext;
-import com.google.gerrit.server.util.OneOffRequestContext;
+import com.google.gerrit.server.project.ProjectCache;
import com.google.inject.Inject;
import com.google.inject.Provider;
-import com.google.inject.Singleton;
-import com.googlesource.gerrit.plugins.gitrepometrics.GitRepoMetricsConfig;
-import java.util.concurrent.TimeUnit;
-@Singleton
public class NumberOfProjectsCollector implements Provider<Long> {
public static final String NUM_PROJECTS = "num-projects";
- public static final long MIN_NUM_PROJECTS_GRACE_PERIOD_MS = 1000L;
-
- private static final FluentLogger logger = FluentLogger.forEnclosingClass();
- private final Supplier<Long> numberOfProjects;
+ private final ProjectCache projectCache;
@Inject
- NumberOfProjectsCollector(GerritApi api, OneOffRequestContext ctx, GitRepoMetricsConfig config) {
- numberOfProjects =
- Suppliers.memoizeWithExpiration(
- () -> queryNumberOfProjects(ctx, api),
- Math.max(MIN_NUM_PROJECTS_GRACE_PERIOD_MS, config.getGracePeriodMs()),
- TimeUnit.MILLISECONDS);
- }
-
- private static long queryNumberOfProjects(OneOffRequestContext ctx, GerritApi api) {
- try (ManualRequestContext c = ctx.open()) {
- return api.projects().query().get().size();
- } catch (RestApiException e) {
- logger.atWarning().withCause(e).log("Unable to query Gerrit projects list");
- throw new IllegalStateException(e);
- }
+ NumberOfProjectsCollector(ProjectCache projectCache) {
+ this.projectCache = projectCache;
}
@Override
public Long get() {
- return numberOfProjects.get();
+ return (long) projectCache.all().size();
}
}