Add a way to include projects into experiment evaluation.
This change adds a new interface method to ExperimentFeatures, which
allows to include project into experiment evaluation
Change-Id: I8b099d3b48dcc156c35da9363b1cd665c9c168a2
Release-Notes: skip
diff --git a/java/com/google/gerrit/server/experiments/ConfigExperimentFeatures.java b/java/com/google/gerrit/server/experiments/ConfigExperimentFeatures.java
index 227deb5..8de5db3 100644
--- a/java/com/google/gerrit/server/experiments/ConfigExperimentFeatures.java
+++ b/java/com/google/gerrit/server/experiments/ConfigExperimentFeatures.java
@@ -15,6 +15,7 @@
package com.google.gerrit.server.experiments;
import com.google.common.collect.ImmutableSet;
+import com.google.gerrit.entities.Project;
import com.google.gerrit.server.config.GerritServerConfig;
import com.google.inject.AbstractModule;
import com.google.inject.Inject;
@@ -57,6 +58,11 @@
}
@Override
+ public boolean isFeatureEnabled(String featureFlag, Project.NameKey project) {
+ return isFeatureEnabled(featureFlag);
+ }
+
+ @Override
public ImmutableSet<String> getEnabledExperimentFeatures() {
return enabledExperimentFeatures;
}
diff --git a/java/com/google/gerrit/server/experiments/ExperimentFeatures.java b/java/com/google/gerrit/server/experiments/ExperimentFeatures.java
index dc9148a..fd885ed 100644
--- a/java/com/google/gerrit/server/experiments/ExperimentFeatures.java
+++ b/java/com/google/gerrit/server/experiments/ExperimentFeatures.java
@@ -15,6 +15,7 @@
package com.google.gerrit.server.experiments;
import com.google.common.collect.ImmutableSet;
+import com.google.gerrit.entities.Project;
/**
* Features that can be enabled/disabled on Gerrit (e. g. experiments to research new behavior in
@@ -37,6 +38,12 @@
boolean isFeatureEnabled(String featureFlag);
/**
+ * Same {@link #isFeatureEnabled}, but takes into account {@code project}, when evaluating the
+ * experiment.
+ */
+ boolean isFeatureEnabled(String featureFlag, Project.NameKey project);
+
+ /**
* Returns the names of the features that are enabled on Gerrit instance (either by default or via
* gerrit.config).
*/