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?
*