Deprecate SharedRefEnforcement

According to discussion in [1].

Using [2] as reference where the old deprecated implementation CredentialsFactory was moved to LegacyCredentialsFactory we move the old deprecated implementation to LegacySharedRefEnforcement to enable implementing the new simplified policy in SharedRefEnforcement in the next change.

[1] https://gerrit-review.googlesource.com/c/modules/global-refdb/+/425506/47
[2] https://gerrit-review.googlesource.com/c/plugins/replication/+/429897

Change-Id: I97c30621318d025f89315ec343f9315e51f9638e
diff --git a/bindings.md b/bindings.md
index c936c5d..0fc0940 100644
--- a/bindings.md
+++ b/bindings.md
@@ -35,10 +35,10 @@
     bind(SharedRefDbConfiguration.class).toInstance(cfg.getSharedRefDbConfiguration());
     bind(GitRepositoryManager.class).to(SharedRefDbGitRepositoryManager.class);
     if (cfg.getSharedRefDbConfiguration().getSharedRefDb().getEnforcementRules().isEmpty()) {
-      bind(SharedRefEnforcement.class).to(DefaultSharedRefEnforcement.class).in(Scopes.SINGLETON);
+      bind(LegacySharedRefEnforcement.class).to(LegacyDefaultSharedRefEnforcement.class).in(Scopes.SINGLETON);
     } else {
-      bind(SharedRefEnforcement.class)
-          .to(CustomSharedRefEnforcementByProject.class)
+      bind(LegacySharedRefEnforcement.class)
+          .to(LegacyCustomSharedRefEnforcementByProject.class)
           .in(Scopes.SINGLETON);
     }
     DynamicSet.bind(binder(), ExceptionHook.class).to(SharedRefDbExceptionHook.class);
diff --git a/src/main/java/com/gerritforge/gerrit/globalrefdb/validation/BatchRefUpdateValidator.java b/src/main/java/com/gerritforge/gerrit/globalrefdb/validation/BatchRefUpdateValidator.java
index 4a28687..0aaa61e 100644
--- a/src/main/java/com/gerritforge/gerrit/globalrefdb/validation/BatchRefUpdateValidator.java
+++ b/src/main/java/com/gerritforge/gerrit/globalrefdb/validation/BatchRefUpdateValidator.java
@@ -14,11 +14,11 @@
 
 package com.gerritforge.gerrit.globalrefdb.validation;
 
-import com.gerritforge.gerrit.globalrefdb.validation.dfsrefdb.CustomSharedRefEnforcementByProject;
-import com.gerritforge.gerrit.globalrefdb.validation.dfsrefdb.DefaultSharedRefEnforcement;
+import com.gerritforge.gerrit.globalrefdb.validation.dfsrefdb.LegacyCustomSharedRefEnforcementByProject;
+import com.gerritforge.gerrit.globalrefdb.validation.dfsrefdb.LegacyDefaultSharedRefEnforcement;
+import com.gerritforge.gerrit.globalrefdb.validation.dfsrefdb.LegacySharedRefEnforcement;
+import com.gerritforge.gerrit.globalrefdb.validation.dfsrefdb.LegacySharedRefEnforcement.EnforcePolicy;
 import com.gerritforge.gerrit.globalrefdb.validation.dfsrefdb.OutOfSyncException;
-import com.gerritforge.gerrit.globalrefdb.validation.dfsrefdb.SharedRefEnforcement;
-import com.gerritforge.gerrit.globalrefdb.validation.dfsrefdb.SharedRefEnforcement.EnforcePolicy;
 import com.google.common.collect.ImmutableSet;
 import com.google.common.flogger.FluentLogger;
 import com.google.inject.Inject;
@@ -56,8 +56,8 @@
    * @param sharedRefDb an instance of the global refdb to check for out-of-sync refs.
    * @param validationMetrics to update validation results, such as split-brains.
    * @param refEnforcement Specific ref enforcements for this project. Either a {@link
-   *     CustomSharedRefEnforcementByProject} when custom policies are provided via configuration *
-   *     file or a {@link DefaultSharedRefEnforcement} for defaults.
+   *     LegacyCustomSharedRefEnforcementByProject} when custom policies are provided via
+   *     configuration * file or a {@link LegacyDefaultSharedRefEnforcement} for defaults.
    * @param projectsFilter filter to match whether the project being updated should be validated
    *     against global refdb
    * @param projectName the name of the project being updated.
@@ -69,7 +69,7 @@
   public BatchRefUpdateValidator(
       SharedRefDatabaseWrapper sharedRefDb,
       ValidationMetrics validationMetrics,
-      SharedRefEnforcement refEnforcement,
+      LegacySharedRefEnforcement refEnforcement,
       ProjectsFilter projectsFilter,
       @Assisted String projectName,
       @Assisted RefDatabase refDb,
diff --git a/src/main/java/com/gerritforge/gerrit/globalrefdb/validation/RefUpdateValidator.java b/src/main/java/com/gerritforge/gerrit/globalrefdb/validation/RefUpdateValidator.java
index 895a7f4..8286007 100644
--- a/src/main/java/com/gerritforge/gerrit/globalrefdb/validation/RefUpdateValidator.java
+++ b/src/main/java/com/gerritforge/gerrit/globalrefdb/validation/RefUpdateValidator.java
@@ -17,12 +17,12 @@
 import com.gerritforge.gerrit.globalrefdb.GlobalRefDbLockException;
 import com.gerritforge.gerrit.globalrefdb.GlobalRefDbSystemError;
 import com.gerritforge.gerrit.globalrefdb.RefDbLockException;
-import com.gerritforge.gerrit.globalrefdb.validation.dfsrefdb.CustomSharedRefEnforcementByProject;
-import com.gerritforge.gerrit.globalrefdb.validation.dfsrefdb.DefaultSharedRefEnforcement;
+import com.gerritforge.gerrit.globalrefdb.validation.dfsrefdb.LegacyCustomSharedRefEnforcementByProject;
+import com.gerritforge.gerrit.globalrefdb.validation.dfsrefdb.LegacyDefaultSharedRefEnforcement;
+import com.gerritforge.gerrit.globalrefdb.validation.dfsrefdb.LegacySharedRefEnforcement;
+import com.gerritforge.gerrit.globalrefdb.validation.dfsrefdb.LegacySharedRefEnforcement.EnforcePolicy;
 import com.gerritforge.gerrit.globalrefdb.validation.dfsrefdb.OutOfSyncException;
 import com.gerritforge.gerrit.globalrefdb.validation.dfsrefdb.SharedDbSplitBrainException;
-import com.gerritforge.gerrit.globalrefdb.validation.dfsrefdb.SharedRefEnforcement;
-import com.gerritforge.gerrit.globalrefdb.validation.dfsrefdb.SharedRefEnforcement.EnforcePolicy;
 import com.google.common.base.MoreObjects;
 import com.google.common.collect.ImmutableSet;
 import com.google.common.flogger.FluentLogger;
@@ -48,7 +48,7 @@
 
   protected final String projectName;
   protected final RefDatabase refDb;
-  protected final SharedRefEnforcement refEnforcement;
+  protected final LegacySharedRefEnforcement refEnforcement;
   protected final ProjectsFilter projectsFilter;
   private final ImmutableSet<String> ignoredRefs;
 
@@ -90,8 +90,8 @@
    * @param sharedRefDb an instance of the global refdb to check for out-of-sync refs.
    * @param validationMetrics to update validation results, such as split-brains.
    * @param refEnforcement Specific ref enforcements for this project. Either a {@link
-   *     CustomSharedRefEnforcementByProject} when custom policies are provided via configuration
-   *     file or a {@link DefaultSharedRefEnforcement} for defaults.
+   *     LegacyCustomSharedRefEnforcementByProject} when custom policies are provided via
+   *     configuration file or a {@link LegacyDefaultSharedRefEnforcement} for defaults.
    * @param projectsFilter filter to match whether the project being updated should be validated
    *     against global refdb
    * @param projectName the name of the project being updated.
@@ -103,7 +103,7 @@
   public RefUpdateValidator(
       SharedRefDatabaseWrapper sharedRefDb,
       ValidationMetrics validationMetrics,
-      SharedRefEnforcement refEnforcement,
+      LegacySharedRefEnforcement refEnforcement,
       ProjectsFilter projectsFilter,
       @Assisted String projectName,
       @Assisted RefDatabase refDb,
diff --git a/src/main/java/com/gerritforge/gerrit/globalrefdb/validation/SharedRefDbConfiguration.java b/src/main/java/com/gerritforge/gerrit/globalrefdb/validation/SharedRefDbConfiguration.java
index 4b7f987..464df4f 100644
--- a/src/main/java/com/gerritforge/gerrit/globalrefdb/validation/SharedRefDbConfiguration.java
+++ b/src/main/java/com/gerritforge/gerrit/globalrefdb/validation/SharedRefDbConfiguration.java
@@ -17,8 +17,8 @@
 import static com.google.common.base.Suppliers.memoize;
 import static com.google.common.base.Suppliers.ofInstance;
 
-import com.gerritforge.gerrit.globalrefdb.validation.dfsrefdb.SharedRefEnforcement;
-import com.gerritforge.gerrit.globalrefdb.validation.dfsrefdb.SharedRefEnforcement.EnforcePolicy;
+import com.gerritforge.gerrit.globalrefdb.validation.dfsrefdb.LegacySharedRefEnforcement;
+import com.gerritforge.gerrit.globalrefdb.validation.dfsrefdb.LegacySharedRefEnforcement.EnforcePolicy;
 import com.google.common.base.Supplier;
 import com.google.common.collect.ImmutableList;
 import com.google.common.collect.ImmutableSet;
@@ -100,8 +100,8 @@
   /**
    * Represents the global refdb configuration, which is computed by reading the 'ref-database'
    * section from the configuration file of this library's consumers. It allows to specify whether
-   * it is enabled, specific {@link SharedRefEnforcement}s and to tune other parameters that define
-   * specific behaviours of the global refdb.
+   * it is enabled, specific {@link LegacySharedRefEnforcement}s and to tune other parameters that
+   * define specific behaviours of the global refdb.
    */
   public static class SharedRefDatabase {
     public static final String SECTION = "ref-database";
@@ -135,14 +135,14 @@
 
     /**
      * Getter for the map of {@link EnforcePolicy} to a specific "project:refs". Each entry can be
-     * either be {@link SharedRefEnforcement.EnforcePolicy#IGNORED} or {@link
-     * SharedRefEnforcement.EnforcePolicy#REQUIRED} and it represents the level of consistency
+     * either be {@link LegacySharedRefEnforcement.EnforcePolicy#IGNORED} or {@link
+     * LegacySharedRefEnforcement.EnforcePolicy#REQUIRED} and it represents the level of consistency
      * enforcements for that specific "project:refs". If the project or ref is omitted, apply the
      * policy to all projects or all refs.
      *
      * <p>The projec/ref will not be validated against the global refdb if it one to be ignored by
-     * default ({@link SharedRefEnforcement#isRefToBeIgnoredBySharedRefDb(String)} or if it has been
-     * configured so, for example:
+     * default ({@link LegacySharedRefEnforcement#isRefToBeIgnoredBySharedRefDb(String)} or if it
+     * has been configured so, for example:
      *
      * <pre>
      *     [ref-database "enforcementRules"]
diff --git a/src/main/java/com/gerritforge/gerrit/globalrefdb/validation/dfsrefdb/CustomSharedRefEnforcementByProject.java b/src/main/java/com/gerritforge/gerrit/globalrefdb/validation/dfsrefdb/LegacyCustomSharedRefEnforcementByProject.java
similarity index 93%
rename from src/main/java/com/gerritforge/gerrit/globalrefdb/validation/dfsrefdb/CustomSharedRefEnforcementByProject.java
rename to src/main/java/com/gerritforge/gerrit/globalrefdb/validation/dfsrefdb/LegacyCustomSharedRefEnforcementByProject.java
index 394aa58..f0d09b6 100644
--- a/src/main/java/com/gerritforge/gerrit/globalrefdb/validation/dfsrefdb/CustomSharedRefEnforcementByProject.java
+++ b/src/main/java/com/gerritforge/gerrit/globalrefdb/validation/dfsrefdb/LegacyCustomSharedRefEnforcementByProject.java
@@ -28,23 +28,24 @@
 import java.util.Map;
 
 /**
- * Implementation of the {@link SharedRefEnforcement} interface which derives project and
+ * Implementation of the {@link LegacySharedRefEnforcement} interface which derives project and
  * project/ref enforcement policy from the configuration of the libModule consuming this library
  */
-public class CustomSharedRefEnforcementByProject implements SharedRefEnforcement {
+@Deprecated(forRemoval = true)
+public class LegacyCustomSharedRefEnforcementByProject implements LegacySharedRefEnforcement {
   private static final String ALL = ".*";
 
   private final Supplier<Map<String, Map<String, EnforcePolicy>>> predefEnforcements;
   private final Boolean draftCommentEventsEnabled;
 
   /**
-   * Constructs a {@code CustomSharedRefEnforcementByProject} with the values specified in the
+   * Constructs a {@code LegacyCustomSharedRefEnforcementByProject} with the values specified in the
    * configuration of the libModule consuming this library
    *
    * @param config the libModule configuration
    */
   @Inject
-  public CustomSharedRefEnforcementByProject(
+  public LegacyCustomSharedRefEnforcementByProject(
       SharedRefDbConfiguration config,
       DraftCommentEventsEnabledProvider draftCommentEventsEnabledProvider) {
     this.predefEnforcements = memoize(() -> parseDryRunEnforcementsToMap(config));
diff --git a/src/main/java/com/gerritforge/gerrit/globalrefdb/validation/dfsrefdb/DefaultSharedRefEnforcement.java b/src/main/java/com/gerritforge/gerrit/globalrefdb/validation/dfsrefdb/LegacyDefaultSharedRefEnforcement.java
similarity index 81%
rename from src/main/java/com/gerritforge/gerrit/globalrefdb/validation/dfsrefdb/DefaultSharedRefEnforcement.java
rename to src/main/java/com/gerritforge/gerrit/globalrefdb/validation/dfsrefdb/LegacyDefaultSharedRefEnforcement.java
index eabd83b..b89b61e 100644
--- a/src/main/java/com/gerritforge/gerrit/globalrefdb/validation/dfsrefdb/DefaultSharedRefEnforcement.java
+++ b/src/main/java/com/gerritforge/gerrit/globalrefdb/validation/dfsrefdb/LegacyDefaultSharedRefEnforcement.java
@@ -19,34 +19,35 @@
 import com.google.inject.Inject;
 
 /**
- * Default implementation of {@link SharedRefEnforcement}. This class provides the default
+ * Default implementation of {@link LegacySharedRefEnforcement}. This class provides the default
  * project/ref enforcement rules when no more specific rules have been configured for the libModule
  * consuming this library.
  */
-public class DefaultSharedRefEnforcement implements SharedRefEnforcement {
+@Deprecated(forRemoval = true)
+public class LegacyDefaultSharedRefEnforcement implements LegacySharedRefEnforcement {
 
   private final Boolean enableDraftCommentEvents;
 
   @Inject
-  public DefaultSharedRefEnforcement(
+  public LegacyDefaultSharedRefEnforcement(
       DraftCommentEventsEnabledProvider draftCommentEventsEnabledProvider) {
     this.enableDraftCommentEvents = draftCommentEventsEnabledProvider.get();
   }
 
   @VisibleForTesting
-  public DefaultSharedRefEnforcement(boolean enableDraftCommentEvents) {
+  public LegacyDefaultSharedRefEnforcement(boolean enableDraftCommentEvents) {
     this.enableDraftCommentEvents = enableDraftCommentEvents;
   }
 
   @VisibleForTesting
-  public DefaultSharedRefEnforcement() {
+  public LegacyDefaultSharedRefEnforcement() {
     this.enableDraftCommentEvents = false;
   }
 
   /**
    * Returns {@link EnforcePolicy#IGNORED} for refs to be ignored {@link
-   * SharedRefEnforcement#isRefToBeIgnoredBySharedRefDb(String)}, {@link EnforcePolicy#REQUIRED}
-   * otherwise
+   * LegacySharedRefEnforcement#isRefToBeIgnoredBySharedRefDb(String)}, {@link
+   * EnforcePolicy#REQUIRED} otherwise
    *
    * @param projectName project to be enforced
    * @param refName ref name to be enforced
diff --git a/src/main/java/com/gerritforge/gerrit/globalrefdb/validation/dfsrefdb/SharedRefEnforcement.java b/src/main/java/com/gerritforge/gerrit/globalrefdb/validation/dfsrefdb/LegacySharedRefEnforcement.java
similarity index 96%
rename from src/main/java/com/gerritforge/gerrit/globalrefdb/validation/dfsrefdb/SharedRefEnforcement.java
rename to src/main/java/com/gerritforge/gerrit/globalrefdb/validation/dfsrefdb/LegacySharedRefEnforcement.java
index 405d33a..4459825 100644
--- a/src/main/java/com/gerritforge/gerrit/globalrefdb/validation/dfsrefdb/SharedRefEnforcement.java
+++ b/src/main/java/com/gerritforge/gerrit/globalrefdb/validation/dfsrefdb/LegacySharedRefEnforcement.java
@@ -17,7 +17,8 @@
 import com.google.gerrit.entities.RefNames;
 
 /** Type of enforcement to implement between the local and shared RefDb. */
-public interface SharedRefEnforcement {
+@Deprecated(forRemoval = true)
+public interface LegacySharedRefEnforcement {
   public enum EnforcePolicy {
     IGNORED,
     REQUIRED;
diff --git a/src/test/java/com/gerritforge/gerrit/globalrefdb/validation/BatchRefUpdateValidatorTest.java b/src/test/java/com/gerritforge/gerrit/globalrefdb/validation/BatchRefUpdateValidatorTest.java
index bb50f74..ced5a14 100644
--- a/src/test/java/com/gerritforge/gerrit/globalrefdb/validation/BatchRefUpdateValidatorTest.java
+++ b/src/test/java/com/gerritforge/gerrit/globalrefdb/validation/BatchRefUpdateValidatorTest.java
@@ -31,9 +31,9 @@
 
 import com.gerritforge.gerrit.globalrefdb.GlobalRefDbSystemError;
 import com.gerritforge.gerrit.globalrefdb.validation.RefUpdateValidator.OneParameterVoidFunction;
-import com.gerritforge.gerrit.globalrefdb.validation.dfsrefdb.DefaultSharedRefEnforcement;
+import com.gerritforge.gerrit.globalrefdb.validation.dfsrefdb.LegacyDefaultSharedRefEnforcement;
+import com.gerritforge.gerrit.globalrefdb.validation.dfsrefdb.LegacySharedRefEnforcement;
 import com.gerritforge.gerrit.globalrefdb.validation.dfsrefdb.RefFixture;
-import com.gerritforge.gerrit.globalrefdb.validation.dfsrefdb.SharedRefEnforcement;
 import com.google.common.collect.ImmutableSet;
 import com.google.gerrit.entities.Project;
 import com.google.gerrit.metrics.DisabledMetricMaker;
@@ -76,7 +76,7 @@
 
   @Mock SharedRefDatabaseWrapper sharedRefDatabase;
 
-  @Mock SharedRefEnforcement tmpRefEnforcement;
+  @Mock LegacySharedRefEnforcement tmpRefEnforcement;
   @Mock ProjectsFilter projectsFilter;
   @Mock OneParameterVoidFunction<List<ReceiveCommand>> rollbackFunction;
 
@@ -108,7 +108,7 @@
     BatchRefUpdateValidator batchRefUpdateValidator =
         getRefValidatorForEnforcement(tmpRefEnforcement);
 
-    doReturn(SharedRefEnforcement.EnforcePolicy.REQUIRED)
+    doReturn(LegacySharedRefEnforcement.EnforcePolicy.REQUIRED)
         .when(batchRefUpdateValidator.refEnforcement)
         .getPolicy(A_TEST_PROJECT_NAME, A_REF_NAME_1);
 
@@ -166,7 +166,7 @@
     BatchRefUpdateValidator batchRefUpdateValidator =
         getRefValidatorForEnforcement(tmpRefEnforcement);
 
-    doReturn(SharedRefEnforcement.EnforcePolicy.REQUIRED)
+    doReturn(LegacySharedRefEnforcement.EnforcePolicy.REQUIRED)
         .when(batchRefUpdateValidator.refEnforcement)
         .getPolicy(A_TEST_PROJECT_NAME, A_REF_NAME_1);
     doReturn(false).when(sharedRefDatabase).isUpToDate(eq(A_TEST_PROJECT_NAME_KEY), any());
@@ -188,7 +188,7 @@
     BatchRefUpdateValidator batchRefUpdateValidator =
         getRefValidatorForEnforcement(tmpRefEnforcement);
 
-    doReturn(SharedRefEnforcement.EnforcePolicy.REQUIRED)
+    doReturn(LegacySharedRefEnforcement.EnforcePolicy.REQUIRED)
         .when(batchRefUpdateValidator.refEnforcement)
         .getPolicy(A_TEST_PROJECT_NAME, A_REF_NAME_1);
     doReturn(true).when(sharedRefDatabase).isUpToDate(any(), any());
@@ -212,7 +212,7 @@
     BatchRefUpdateValidator batchRefUpdateValidator =
         getRefValidatorForEnforcement(tmpRefEnforcement);
 
-    doReturn(SharedRefEnforcement.EnforcePolicy.REQUIRED)
+    doReturn(LegacySharedRefEnforcement.EnforcePolicy.REQUIRED)
         .when(batchRefUpdateValidator.refEnforcement)
         .getPolicy(A_TEST_PROJECT_NAME, A_REF_NAME_1);
 
@@ -257,16 +257,16 @@
   }
 
   private BatchRefUpdateValidator newDefaultValidator() {
-    return getRefValidatorForEnforcement(new DefaultSharedRefEnforcement());
+    return getRefValidatorForEnforcement(new LegacyDefaultSharedRefEnforcement());
   }
 
   private BatchRefUpdateValidator getRefValidatorForEnforcement(
-      SharedRefEnforcement sharedRefEnforcement) {
+      LegacySharedRefEnforcement LegacySharedRefEnforcement) {
     return new BatchRefUpdateValidator(
         sharedRefDatabase,
         new ValidationMetrics(
             new DisabledMetricMaker(), new SharedRefDbConfiguration(new Config(), "testplugin")),
-        sharedRefEnforcement,
+        LegacySharedRefEnforcement,
         projectsFilter,
         RefFixture.A_TEST_PROJECT_NAME,
         diskRepo.getRefDatabase(),
diff --git a/src/test/java/com/gerritforge/gerrit/globalrefdb/validation/RefUpdateValidatorTest.java b/src/test/java/com/gerritforge/gerrit/globalrefdb/validation/RefUpdateValidatorTest.java
index 01018f2..d2d74b4 100644
--- a/src/test/java/com/gerritforge/gerrit/globalrefdb/validation/RefUpdateValidatorTest.java
+++ b/src/test/java/com/gerritforge/gerrit/globalrefdb/validation/RefUpdateValidatorTest.java
@@ -28,7 +28,7 @@
 import com.gerritforge.gerrit.globalrefdb.GlobalRefDbSystemError;
 import com.gerritforge.gerrit.globalrefdb.RefDbLockException;
 import com.gerritforge.gerrit.globalrefdb.validation.RefUpdateValidator.OneParameterFunction;
-import com.gerritforge.gerrit.globalrefdb.validation.dfsrefdb.DefaultSharedRefEnforcement;
+import com.gerritforge.gerrit.globalrefdb.validation.dfsrefdb.LegacyDefaultSharedRefEnforcement;
 import com.gerritforge.gerrit.globalrefdb.validation.dfsrefdb.RefFixture;
 import com.google.common.collect.ImmutableSet;
 import com.google.gerrit.entities.Project;
@@ -47,8 +47,8 @@
 
 @RunWith(MockitoJUnitRunner.class)
 public class RefUpdateValidatorTest implements RefFixture {
-  private static final DefaultSharedRefEnforcement defaultRefEnforcement =
-      new DefaultSharedRefEnforcement();
+  private static final LegacyDefaultSharedRefEnforcement defaultRefEnforcement =
+      new LegacyDefaultSharedRefEnforcement();
 
   @Mock SharedRefDatabaseWrapper sharedRefDb;
 
diff --git a/src/test/java/com/gerritforge/gerrit/globalrefdb/validation/SharedRefDbBatchRefUpdateTest.java b/src/test/java/com/gerritforge/gerrit/globalrefdb/validation/SharedRefDbBatchRefUpdateTest.java
index 4c6290d..b417263 100644
--- a/src/test/java/com/gerritforge/gerrit/globalrefdb/validation/SharedRefDbBatchRefUpdateTest.java
+++ b/src/test/java/com/gerritforge/gerrit/globalrefdb/validation/SharedRefDbBatchRefUpdateTest.java
@@ -27,7 +27,7 @@
 import static org.mockito.Mockito.verifyNoInteractions;
 import static org.mockito.Mockito.when;
 
-import com.gerritforge.gerrit.globalrefdb.validation.dfsrefdb.DefaultSharedRefEnforcement;
+import com.gerritforge.gerrit.globalrefdb.validation.dfsrefdb.LegacyDefaultSharedRefEnforcement;
 import com.gerritforge.gerrit.globalrefdb.validation.dfsrefdb.RefFixture;
 import com.google.common.collect.ImmutableSet;
 import java.io.IOException;
@@ -180,7 +180,7 @@
             return new BatchRefUpdateValidator(
                 sharedRefDb,
                 validationMetrics,
-                new DefaultSharedRefEnforcement(),
+                new LegacyDefaultSharedRefEnforcement(),
                 projectsFilter,
                 projectName,
                 refDb,
diff --git a/src/test/java/com/gerritforge/gerrit/globalrefdb/validation/ValidationModuleTest.java b/src/test/java/com/gerritforge/gerrit/globalrefdb/validation/ValidationModuleTest.java
index 1547bd3..6154a15 100644
--- a/src/test/java/com/gerritforge/gerrit/globalrefdb/validation/ValidationModuleTest.java
+++ b/src/test/java/com/gerritforge/gerrit/globalrefdb/validation/ValidationModuleTest.java
@@ -14,8 +14,8 @@
 
 package com.gerritforge.gerrit.globalrefdb.validation;
 
-import com.gerritforge.gerrit.globalrefdb.validation.dfsrefdb.DefaultSharedRefEnforcement;
-import com.gerritforge.gerrit.globalrefdb.validation.dfsrefdb.SharedRefEnforcement;
+import com.gerritforge.gerrit.globalrefdb.validation.dfsrefdb.LegacyDefaultSharedRefEnforcement;
+import com.gerritforge.gerrit.globalrefdb.validation.dfsrefdb.LegacySharedRefEnforcement;
 import com.google.common.collect.ImmutableSet;
 import com.google.gerrit.acceptance.LightweightPluginDaemonTest;
 import com.google.gerrit.acceptance.TestPlugin;
@@ -104,7 +104,9 @@
       bind(ValidationMetrics.class);
 
       bind(SharedRefDbGitRepositoryManager.class);
-      bind(SharedRefEnforcement.class).to(DefaultSharedRefEnforcement.class).in(Scopes.SINGLETON);
+      bind(LegacySharedRefEnforcement.class)
+          .to(LegacyDefaultSharedRefEnforcement.class)
+          .in(Scopes.SINGLETON);
     }
   }
 }
diff --git a/src/test/java/com/gerritforge/gerrit/globalrefdb/validation/dfsrefdb/CustomSharedRefEnforcementByProjectTest.java b/src/test/java/com/gerritforge/gerrit/globalrefdb/validation/dfsrefdb/LegacyCustomSharedRefEnforcementByProjectTest.java
similarity index 90%
rename from src/test/java/com/gerritforge/gerrit/globalrefdb/validation/dfsrefdb/CustomSharedRefEnforcementByProjectTest.java
rename to src/test/java/com/gerritforge/gerrit/globalrefdb/validation/dfsrefdb/LegacyCustomSharedRefEnforcementByProjectTest.java
index a21ff3e..141012a 100644
--- a/src/test/java/com/gerritforge/gerrit/globalrefdb/validation/dfsrefdb/CustomSharedRefEnforcementByProjectTest.java
+++ b/src/test/java/com/gerritforge/gerrit/globalrefdb/validation/dfsrefdb/LegacyCustomSharedRefEnforcementByProjectTest.java
@@ -19,16 +19,16 @@
 import com.gerritforge.gerrit.globalrefdb.DraftCommentEventsEnabledProvider;
 import com.gerritforge.gerrit.globalrefdb.validation.SharedRefDbConfiguration;
 import com.gerritforge.gerrit.globalrefdb.validation.SharedRefDbConfiguration.SharedRefDatabase;
-import com.gerritforge.gerrit.globalrefdb.validation.dfsrefdb.SharedRefEnforcement.EnforcePolicy;
+import com.gerritforge.gerrit.globalrefdb.validation.dfsrefdb.LegacySharedRefEnforcement.EnforcePolicy;
 import java.util.Arrays;
 import org.eclipse.jgit.lib.Config;
 import org.eclipse.jgit.lib.Ref;
 import org.junit.Before;
 import org.junit.Test;
 
-public class CustomSharedRefEnforcementByProjectTest implements RefFixture {
+public class LegacyCustomSharedRefEnforcementByProjectTest implements RefFixture {
 
-  SharedRefEnforcement refEnforcement;
+  LegacySharedRefEnforcement refEnforcement;
 
   @Before
   public void setUp() {
@@ -115,7 +115,7 @@
 
   @Test
   public void getProjectPolicyForNonListedProjectWhenSingleProject() {
-    SharedRefEnforcement customEnforcement =
+    LegacySharedRefEnforcement customEnforcement =
         newCustomRefEnforcementWithValue(EnforcePolicy.IGNORED, ":refs/heads/master");
 
     assertThat(customEnforcement.getPolicy("NonListedProject")).isEqualTo(EnforcePolicy.REQUIRED);
@@ -123,13 +123,13 @@
 
   @Test
   public void getANonListedProjectWhenOnlyOneProjectIsListedShouldReturnRequired() {
-    SharedRefEnforcement customEnforcement =
+    LegacySharedRefEnforcement customEnforcement =
         newCustomRefEnforcementWithValue(EnforcePolicy.IGNORED, "AProject:");
     assertThat(customEnforcement.getPolicy("NonListedProject", "refs/heads/master"))
         .isEqualTo(EnforcePolicy.REQUIRED);
   }
 
-  private SharedRefEnforcement newCustomRefEnforcementWithValue(
+  private LegacySharedRefEnforcement newCustomRefEnforcementWithValue(
       EnforcePolicy policy, String... projectAndRefs) {
     Config sharedRefDbConfiguration = new Config();
     sharedRefDbConfiguration.setStringList(
@@ -140,8 +140,8 @@
     return newCustomRefEnforcement(sharedRefDbConfiguration);
   }
 
-  private SharedRefEnforcement newCustomRefEnforcement(Config sharedRefDbConfig) {
-    return new CustomSharedRefEnforcementByProject(
+  private LegacySharedRefEnforcement newCustomRefEnforcement(Config sharedRefDbConfig) {
+    return new LegacyCustomSharedRefEnforcementByProject(
         new SharedRefDbConfiguration(sharedRefDbConfig, "testplugin"),
         new DraftCommentEventsEnabledProvider(new Config()));
   }
diff --git a/src/test/java/com/gerritforge/gerrit/globalrefdb/validation/dfsrefdb/DefaultSharedRefEnforcementTest.java b/src/test/java/com/gerritforge/gerrit/globalrefdb/validation/dfsrefdb/LegacyDefaultSharedRefEnforcementTest.java
similarity index 90%
rename from src/test/java/com/gerritforge/gerrit/globalrefdb/validation/dfsrefdb/DefaultSharedRefEnforcementTest.java
rename to src/test/java/com/gerritforge/gerrit/globalrefdb/validation/dfsrefdb/LegacyDefaultSharedRefEnforcementTest.java
index f26846c..cb9f98c 100644
--- a/src/test/java/com/gerritforge/gerrit/globalrefdb/validation/dfsrefdb/DefaultSharedRefEnforcementTest.java
+++ b/src/test/java/com/gerritforge/gerrit/globalrefdb/validation/dfsrefdb/LegacyDefaultSharedRefEnforcementTest.java
@@ -16,14 +16,14 @@
 
 import static com.google.common.truth.Truth.assertThat;
 
-import com.gerritforge.gerrit.globalrefdb.validation.dfsrefdb.SharedRefEnforcement.EnforcePolicy;
+import com.gerritforge.gerrit.globalrefdb.validation.dfsrefdb.LegacySharedRefEnforcement.EnforcePolicy;
 import com.google.gerrit.entities.RefNames;
 import org.eclipse.jgit.lib.Ref;
 import org.junit.Test;
 
-public class DefaultSharedRefEnforcementTest implements RefFixture {
+public class LegacyDefaultSharedRefEnforcementTest implements RefFixture {
 
-  SharedRefEnforcement refEnforcement = new DefaultSharedRefEnforcement();
+  LegacySharedRefEnforcement refEnforcement = new LegacyDefaultSharedRefEnforcement();
 
   @Test
   public void anImmutableChangeShouldBeIgnored() {
@@ -84,7 +84,7 @@
 
   @Test
   public void draftCommentsShouldBeRequiredWhenDraftCommentEventsEnabled() {
-    SharedRefEnforcement refEnforcement = new DefaultSharedRefEnforcement(true);
+    LegacySharedRefEnforcement refEnforcement = new LegacyDefaultSharedRefEnforcement(true);
 
     Ref draftCommentRef = newRef("refs/draft-comments/01/1/1000000", AN_OBJECT_ID_1);
     assertThat(refEnforcement.getPolicy(A_TEST_PROJECT_NAME, draftCommentRef.getName()))