Use core Gerrit API instead of ChangeHooks
In preparation for upgrade to 2.14 support. ChangeHooks were seperated
from core Gerrit into its own plugin since 2.13.
Change-Id: I45fbb47c558a4e4c0c646ed9d6da8b5f6ab96017
diff --git a/src/main/java/com/amd/gerrit/plugins/manifestsubscription/BranchManifestCommand.java b/src/main/java/com/amd/gerrit/plugins/manifestsubscription/BranchManifestCommand.java
index fd367a6..f8517d6 100644
--- a/src/main/java/com/amd/gerrit/plugins/manifestsubscription/BranchManifestCommand.java
+++ b/src/main/java/com/amd/gerrit/plugins/manifestsubscription/BranchManifestCommand.java
@@ -14,9 +14,9 @@
package com.amd.gerrit.plugins.manifestsubscription;
-import com.google.gerrit.common.ChangeHooks;
import com.google.gerrit.common.data.GlobalCapability;
import com.google.gerrit.extensions.annotations.RequiresCapability;
+import com.google.gerrit.server.extensions.events.GitReferenceUpdated;
import com.google.gerrit.server.git.GitRepositoryManager;
import com.google.gerrit.server.git.MetaDataUpdate;
import com.google.gerrit.sshd.CommandMetaData;
@@ -36,7 +36,7 @@
private MetaDataUpdate.Server metaDataUpdateFactory;
@Inject
- private ChangeHooks changeHooks;
+ private GitReferenceUpdated gitRefUpdated;
@Option(name = "-r", aliases = {"--manifest-repo"},
usage = "", required = true)
@@ -90,7 +90,7 @@
stdout.println(newManifestPath);
stdout.println("Create snapshot branch: " + createSnapShotBranch);
- Utilities.branchManifest(gitRepoManager, metaDataUpdateFactory, changeHooks,
+ Utilities.branchManifest(gitRepoManager, metaDataUpdateFactory, gitRefUpdated,
manifestRepo, manifestCommitish, manifestPath,
newBranch,
newManifestRepo, newManifestBranch, newManifestPath,
diff --git a/src/main/java/com/amd/gerrit/plugins/manifestsubscription/BranchManifestServlet.java b/src/main/java/com/amd/gerrit/plugins/manifestsubscription/BranchManifestServlet.java
index aeb97f2..c03106b 100644
--- a/src/main/java/com/amd/gerrit/plugins/manifestsubscription/BranchManifestServlet.java
+++ b/src/main/java/com/amd/gerrit/plugins/manifestsubscription/BranchManifestServlet.java
@@ -14,8 +14,8 @@
package com.amd.gerrit.plugins.manifestsubscription;
-import com.google.gerrit.common.ChangeHooks;
import com.google.gerrit.extensions.annotations.Export;
+import com.google.gerrit.server.extensions.events.GitReferenceUpdated;
import com.google.gerrit.server.git.GitRepositoryManager;
import com.google.gerrit.server.git.MetaDataUpdate;
import com.google.inject.Inject;
@@ -39,7 +39,7 @@
private MetaDataUpdate.Server metaDataUpdateFactory;
@Inject
- private ChangeHooks changeHooks;
+ private GitReferenceUpdated gitRefUpdated;
protected void doPost(HttpServletRequest req, HttpServletResponse res)
throws IOException {
@@ -67,7 +67,7 @@
}
Utilities.branchManifest(
- gitRepoManager, metaDataUpdateFactory, changeHooks,
+ gitRepoManager, metaDataUpdateFactory, gitRefUpdated,
input.get("manifest-repo")[0],
input.get("manifest-commit-ish")[0],
input.get("manifest-path")[0],
diff --git a/src/main/java/com/amd/gerrit/plugins/manifestsubscription/ManifestSubscription.java b/src/main/java/com/amd/gerrit/plugins/manifestsubscription/ManifestSubscription.java
index 29699e3..7e82ff2 100644
--- a/src/main/java/com/amd/gerrit/plugins/manifestsubscription/ManifestSubscription.java
+++ b/src/main/java/com/amd/gerrit/plugins/manifestsubscription/ManifestSubscription.java
@@ -18,11 +18,11 @@
import com.amd.gerrit.plugins.manifestsubscription.manifest.Manifest;
import com.google.common.collect.*;
-import com.google.gerrit.common.ChangeHooks;
import com.google.gerrit.extensions.annotations.PluginName;
import com.google.gerrit.extensions.events.GitReferenceUpdatedListener;
import com.google.gerrit.extensions.events.LifecycleListener;
import com.google.gerrit.reviewdb.client.Project;
+import com.google.gerrit.server.extensions.events.GitReferenceUpdated;
import com.google.gerrit.server.git.GitRepositoryManager;
import com.google.gerrit.server.git.MetaDataUpdate;
import com.google.gerrit.server.git.ProjectConfig;
@@ -56,7 +56,8 @@
private final MetaDataUpdate.Server metaDataUpdateFactory;
private final GitRepositoryManager gitRepoManager;
private final ProjectCache projectCache;
- private final ChangeHooks changeHooks;
+ private final GitReferenceUpdated gitRefUpdated;
+
/**
@@ -124,12 +125,12 @@
GitRepositoryManager gitRepoManager,
@PluginName String pluginName,
ProjectCache projectCache,
- ChangeHooks changeHooks) {
+ GitReferenceUpdated gitRefUpdated) {
this.metaDataUpdateFactory = metaDataUpdateFactory;
this.gitRepoManager = gitRepoManager;
this.pluginName = pluginName;
this.projectCache = projectCache;
- this.changeHooks = changeHooks;
+ this.gitRefUpdated = gitRefUpdated;
}
@Override
@@ -199,7 +200,7 @@
try {
Utilities.updateManifest(gitRepoManager, metaDataUpdateFactory,
- changeHooks, store, STORE_BRANCH_PREFIX + storeBranch,
+ gitRefUpdated, store, STORE_BRANCH_PREFIX + storeBranch,
manifest, manifestSrc, extraCommitMsg.toString(), null);
} catch (JAXBException | IOException e) {
e.printStackTrace();
@@ -465,7 +466,7 @@
private void updateManifest(String projectName, String refName,
Manifest manifest, String manifestSrc)
throws JAXBException, IOException {
- Utilities.updateManifest(gitRepoManager, metaDataUpdateFactory, changeHooks,
+ Utilities.updateManifest(gitRepoManager, metaDataUpdateFactory, gitRefUpdated,
projectName, refName, manifest, manifestSrc, "", null);
}
diff --git a/src/main/java/com/amd/gerrit/plugins/manifestsubscription/Utilities.java b/src/main/java/com/amd/gerrit/plugins/manifestsubscription/Utilities.java
index 92a1a82..3ff0ee5 100644
--- a/src/main/java/com/amd/gerrit/plugins/manifestsubscription/Utilities.java
+++ b/src/main/java/com/amd/gerrit/plugins/manifestsubscription/Utilities.java
@@ -14,22 +14,19 @@
package com.amd.gerrit.plugins.manifestsubscription;
+import com.amd.gerrit.plugins.manifestsubscription.manifest.Default;
+import com.amd.gerrit.plugins.manifestsubscription.manifest.Manifest;
import com.google.common.base.Throwables;
import com.google.common.collect.ImmutableCollection;
import com.google.common.collect.ImmutableTable;
import com.google.common.collect.Maps;
-import com.google.gerrit.common.ChangeHooks;
-import com.google.gerrit.reviewdb.client.Branch;
import com.google.gerrit.reviewdb.client.Project;
+import com.google.gerrit.server.extensions.events.GitReferenceUpdated;
import com.google.gerrit.server.git.GitRepositoryManager;
import com.google.gerrit.server.git.MetaDataUpdate;
import com.google.gson.FieldNamingPolicy;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
-
-import com.amd.gerrit.plugins.manifestsubscription.manifest.Default;
-import com.amd.gerrit.plugins.manifestsubscription.manifest.Manifest;
-
import org.eclipse.jgit.api.errors.GitAPIException;
import org.eclipse.jgit.errors.ConfigInvalidException;
import org.eclipse.jgit.lib.ObjectId;
@@ -38,15 +35,14 @@
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import javax.servlet.http.HttpServletRequest;
+import javax.xml.bind.JAXBException;
import java.io.IOException;
import java.io.PrintWriter;
import java.io.Writer;
import java.util.Map;
import java.util.Set;
-import javax.servlet.http.HttpServletRequest;
-import javax.xml.bind.JAXBException;
-
public class Utilities {
private static final Logger log =
LoggerFactory.getLogger(Utilities.class);
@@ -80,7 +76,7 @@
static ObjectId updateManifest(GitRepositoryManager gitRepoManager,
MetaDataUpdate.Server metaDataUpdateFactory,
- ChangeHooks changeHooks,
+ GitReferenceUpdated gitRefUpdated,
String projectName, String refName,
Manifest manifest, String manifestSrc,
String extraCommitMsg,
@@ -134,10 +130,7 @@
if (commit.getParents().length > 0) {
parent = commit.getParent(0).getId();
}
- changeHooks.doRefUpdatedHook(new Branch.NameKey(p, refName),
- parent,
- commit.getId(), null);
-
+ gitRefUpdated.fire(p, refName, parent, commit.getId() );
}
return commit.getId();
} else {
@@ -171,14 +164,14 @@
}
static Manifest createNewManifestFromBase(
- GitRepositoryManager gitRepoManager,
- MetaDataUpdate.Server metaDataUpdateFactory,
- ChangeHooks changeHooks,
- String srcManifestRepo, String srcManifestCommitish,
- String manifestRepo, String manifestBranch, String manifestPath,
- String newRef,
- boolean createSnapShotBranch,
- Manifest base)
+ GitRepositoryManager gitRepoManager,
+ MetaDataUpdate.Server metaDataUpdateFactory,
+ GitReferenceUpdated gitRefUpdated,
+ String srcManifestRepo, String srcManifestCommitish,
+ String manifestRepo, String manifestBranch, String manifestPath,
+ String newRef,
+ boolean createSnapShotBranch,
+ Manifest base)
throws JAXBException, IOException, ConfigInvalidException, GitAPIException {
// Replace default ref with newly created branch or tag
@@ -226,7 +219,7 @@
String shortBranch = manifestBranch.replaceFirst("^refs/heads/(.*)", "$1");
ObjectId oid = Utilities.updateManifest(
- gitRepoManager, metaDataUpdateFactory, changeHooks,
+ gitRepoManager, metaDataUpdateFactory, gitRefUpdated,
srcManifestRepo,
ManifestSubscription.STORE_BRANCH_PREFIX + shortBranch + "/" + manifestPath,
manifest, manifestRepo, "Manifest branched", srcManifestCommitish);
@@ -317,7 +310,7 @@
static void branchManifest(GitRepositoryManager gitRepoManager,
MetaDataUpdate.Server metaDataUpdateFactory,
- ChangeHooks changeHooks,
+ GitReferenceUpdated gitRefUpdated,
String manifestRepo, String manifestCommitish,
String manifestPath, String newBranch,
String newManifestRepo,
@@ -331,13 +324,13 @@
manifest = getManifest(gitRepoManager, manifestRepo,
manifestCommitish, manifestPath);
VersionedManifests.branchManifest(gitRepoManager, manifest,
- newBranch, changeHooks);
+ newBranch, gitRefUpdated);
if (newManifestBranch != null &&
newManifestPath != null &&
newManifestRepo != null) {
createNewManifestFromBase(
- gitRepoManager, metaDataUpdateFactory, changeHooks,
+ gitRepoManager, metaDataUpdateFactory, gitRefUpdated,
manifestRepo, manifestCommitish,
newManifestRepo, newManifestBranch, newManifestPath,
newBranch, createSnapShotBranch, manifest);
diff --git a/src/main/java/com/amd/gerrit/plugins/manifestsubscription/VersionedManifests.java b/src/main/java/com/amd/gerrit/plugins/manifestsubscription/VersionedManifests.java
index 3c779d1..196a945 100644
--- a/src/main/java/com/amd/gerrit/plugins/manifestsubscription/VersionedManifests.java
+++ b/src/main/java/com/amd/gerrit/plugins/manifestsubscription/VersionedManifests.java
@@ -17,9 +17,9 @@
import com.google.common.collect.HashBasedTable;
import com.google.common.collect.Maps;
import com.google.common.collect.Table;
-import com.google.gerrit.common.ChangeHooks;
import com.google.gerrit.reviewdb.client.Branch;
import com.google.gerrit.reviewdb.client.Project;
+import com.google.gerrit.server.extensions.events.GitReferenceUpdated;
import com.google.gerrit.server.git.GitRepositoryManager;
import com.google.gerrit.server.git.VersionedMetaData;
@@ -259,7 +259,7 @@
static void branchManifest(GitRepositoryManager gitRepoManager,
Manifest manifest,
final String branch,
- final ChangeHooks changeHooks)
+ final GitReferenceUpdated gitReferenceUpdated)
throws GitAPIException, IOException {
Table<String, String, String> lookup = HashBasedTable.create();
String defaultRef = null;
@@ -279,9 +279,7 @@
Git git = new Git(db)) {
try {
Ref r = git.branchCreate().setName(branch).setStartPoint(hash).call();
- changeHooks.doRefUpdatedHook(new Branch.NameKey(p, branch),
- ObjectId.zeroId(),
- r.getObjectId(), null);
+ gitReferenceUpdated.fire(p, branch, ObjectId.zeroId(), r.getObjectId());
} catch (Exception e) {
}