Adapt to core gerrit API changes - ProjectControl's visibility was reduced to private and is no longer visible; replace usage of ProjectControl.GenericFactory. - Adjust imports to restructured packages. Change-Id: I8b24e17008e0b916c49933eb206fcea32f07219e
diff --git a/src/main/java/com/googlesource/gerrit/plugins/refprotection/BackupRef.java b/src/main/java/com/googlesource/gerrit/plugins/refprotection/BackupRef.java index 30eaeca..dd4e21b 100644 --- a/src/main/java/com/googlesource/gerrit/plugins/refprotection/BackupRef.java +++ b/src/main/java/com/googlesource/gerrit/plugins/refprotection/BackupRef.java
@@ -38,9 +38,9 @@ import com.google.gerrit.server.events.RefUpdatedEvent; import com.google.gerrit.server.git.GitRepositoryManager; import com.google.gerrit.server.permissions.PermissionBackendException; -import com.google.gerrit.server.project.CreateBranch; import com.google.gerrit.server.project.NoSuchProjectException; import com.google.gerrit.server.project.ProjectResource; +import com.google.gerrit.server.restapi.project.CreateBranch; import com.google.inject.Inject; import java.io.IOException; import java.text.SimpleDateFormat;
diff --git a/src/main/java/com/googlesource/gerrit/plugins/refprotection/RefProtectionModule.java b/src/main/java/com/googlesource/gerrit/plugins/refprotection/RefProtectionModule.java index 0f00282..f4e755a 100644 --- a/src/main/java/com/googlesource/gerrit/plugins/refprotection/RefProtectionModule.java +++ b/src/main/java/com/googlesource/gerrit/plugins/refprotection/RefProtectionModule.java
@@ -23,8 +23,8 @@ */ package com.googlesource.gerrit.plugins.refprotection; -import com.google.gerrit.common.EventListener; import com.google.gerrit.extensions.registration.DynamicSet; +import com.google.gerrit.server.events.EventListener; import com.google.inject.AbstractModule; public class RefProtectionModule extends AbstractModule {
diff --git a/src/main/java/com/googlesource/gerrit/plugins/refprotection/RefUpdateListener.java b/src/main/java/com/googlesource/gerrit/plugins/refprotection/RefUpdateListener.java index bca99a1..fba7e2b 100644 --- a/src/main/java/com/googlesource/gerrit/plugins/refprotection/RefUpdateListener.java +++ b/src/main/java/com/googlesource/gerrit/plugins/refprotection/RefUpdateListener.java
@@ -26,18 +26,19 @@ import static org.eclipse.jgit.lib.Constants.R_HEADS; import static org.eclipse.jgit.lib.Constants.R_TAGS; -import com.google.gerrit.common.EventListener; import com.google.gerrit.extensions.annotations.PluginName; import com.google.gerrit.reviewdb.client.Project; import com.google.gerrit.server.CurrentUser; import com.google.gerrit.server.config.PluginConfigFactory; import com.google.gerrit.server.data.RefUpdateAttribute; import com.google.gerrit.server.events.Event; +import com.google.gerrit.server.events.EventListener; import com.google.gerrit.server.events.RefUpdatedEvent; import com.google.gerrit.server.git.GitRepositoryManager; import com.google.gerrit.server.project.NoSuchProjectException; -import com.google.gerrit.server.project.ProjectControl; +import com.google.gerrit.server.project.ProjectCache; import com.google.gerrit.server.project.ProjectResource; +import com.google.gerrit.server.project.ProjectState; import com.google.inject.Inject; import java.io.IOException; import org.eclipse.jgit.errors.RepositoryNotFoundException; @@ -51,7 +52,7 @@ class RefUpdateListener implements EventListener { private static final Logger log = LoggerFactory.getLogger(RefUpdateListener.class); - private final ProjectControl.GenericFactory projectControl; + private final ProjectCache projectCache; private final CurrentUser user; private final GitRepositoryManager repoManager; private final BackupRef backupRef; @@ -60,13 +61,13 @@ @Inject RefUpdateListener( - ProjectControl.GenericFactory p, + ProjectCache projectCache, CurrentUser user, GitRepositoryManager repoManager, BackupRef backupRef, PluginConfigFactory cfg, @PluginName String pluginName) { - this.projectControl = p; + this.projectCache = projectCache; this.user = user; this.repoManager = repoManager; this.backupRef = backupRef; @@ -80,9 +81,8 @@ if (event instanceof RefUpdatedEvent) { RefUpdatedEvent refUpdate = (RefUpdatedEvent) event; if ((protectDeleted || protectFastForward) && isRelevantRef(refUpdate)) { - Project.NameKey nameKey = refUpdate.getProjectNameKey(); try { - ProjectResource project = new ProjectResource(projectControl.controlFor(nameKey, user)); + ProjectResource project = getProjectResource(refUpdate.getProjectNameKey()); if ((protectDeleted && isRefDeleted(refUpdate)) || (protectFastForward && isNonFastForwardUpdate(refUpdate, project))) { backupRef.createBackup(refUpdate, project); @@ -94,6 +94,15 @@ } } + private ProjectResource getProjectResource(Project.NameKey nameKey) + throws IOException, NoSuchProjectException { + ProjectState state = projectCache.checkedGet(nameKey); + if (state == null) { + throw new NoSuchProjectException(nameKey); + } + return new ProjectResource(state, user); + } + /** * Is the event on a relevant ref? *