Build with API version 2.13-SNAPSHOT and adjust to recent changes
Change-Id: I8534c763a10f7751411c259faaa176a9ba2e6d0e
diff --git a/lib/gerrit/BUCK b/lib/gerrit/BUCK
index 0a0b2bc..6f4b8f6 100644
--- a/lib/gerrit/BUCK
+++ b/lib/gerrit/BUCK
@@ -1,12 +1,11 @@
include_defs('//bucklets/maven_jar.bucklet')
-VER = '2.12'
+VER = '2.13-SNAPSHOT'
REPO = MAVEN_CENTRAL
maven_jar(
name = 'plugin-api',
id = 'com.google.gerrit:gerrit-plugin-api:' + VER,
- sha1 = '8ce1f6e65078bbcf03a1758f96b3ebca19b7fe3c',
license = 'Apache2.0',
attach_source = False,
repository = REPO,
diff --git a/pom.xml b/pom.xml
index 75e56bf..126801d 100644
--- a/pom.xml
+++ b/pom.xml
@@ -22,7 +22,7 @@
<groupId>com.googlesource.gerrit.plugins</groupId>
<artifactId>wip-plugin</artifactId>
<packaging>jar</packaging>
- <version>2.12</version>
+ <version>2.13-SNAPSHOT</version>
<properties>
<Gerrit-ApiType>plugin</Gerrit-ApiType>
<Gerrit-ApiVersion>${project.version}</Gerrit-ApiVersion>
diff --git a/src/main/java/com/googlesource/gerrit/plugins/wip/SetCommand.java b/src/main/java/com/googlesource/gerrit/plugins/wip/SetCommand.java
index c45c1b5..124d5b1 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/wip/SetCommand.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/wip/SetCommand.java
@@ -16,18 +16,15 @@
import com.google.gerrit.extensions.restapi.ResourceConflictException;
import com.google.gerrit.extensions.restapi.ResourceNotFoundException;
-import com.google.gerrit.reviewdb.client.Change;
import com.google.gerrit.reviewdb.client.PatchSet;
-import com.google.gerrit.reviewdb.client.RevId;
-import com.google.gerrit.reviewdb.server.ReviewDb;
import com.google.gerrit.server.change.ChangesCollection;
import com.google.gerrit.server.change.RevisionResource;
import com.google.gerrit.server.index.ChangeIndexer;
import com.google.gerrit.server.project.ProjectControl;
import com.google.gerrit.sshd.CommandMetaData;
import com.google.gerrit.sshd.SshCommand;
+import com.google.gerrit.sshd.commands.PatchSetParser;
import com.google.gwtorm.server.OrmException;
-import com.google.gwtorm.server.ResultSet;
import com.google.inject.Inject;
import com.google.inject.Provider;
@@ -46,13 +43,13 @@
private final Set<PatchSet> patchSets = new HashSet<>();
- @Argument(index = 0, required = true,
- multiValued = true,
+ @Argument(index = 0, required = true, multiValued = true,
metaVar = "{COMMIT | CHANGE,PATCHSET}",
usage = "list of commits or patch sets to review")
void addPatchSetId(String token) {
try {
- patchSets.add(parsePatchSet(token));
+ PatchSet ps = psParser.parsePatchSet(token, projectControl, branch);
+ patchSets.add(ps);
} catch (UnloggedFailure e) {
throw new IllegalArgumentException(e.getMessage(), e);
} catch (OrmException e) {
@@ -64,6 +61,9 @@
usage = "project containing the specified patch set(s)")
private ProjectControl projectControl;
+ @Option(name = "--branch", aliases = "-b", usage = "branch containing the specified patch set(s)")
+ private String branch;
+
@Option(name = "--message", aliases = "-m",
usage = "cover message on change(s)", metaVar = "MESSAGE")
private String changeComment;
@@ -77,9 +77,6 @@
private boolean readyChange;
@Inject
- private ReviewDb db;
-
- @Inject
private Provider<WorkInProgress> wipProvider;
@Inject
@@ -91,6 +88,9 @@
@Inject
ChangesCollection changes;
+ @Inject
+ PatchSetParser psParser;
+
@Override
protected void run() throws UnloggedFailure {
if (wipChange && readyChange) {
@@ -132,71 +132,6 @@
}
}
- private PatchSet parsePatchSet(String patchIdentity)
- throws UnloggedFailure, OrmException {
- // By commit?
- //
- if (patchIdentity.matches("^([0-9a-fA-F]{4," + RevId.LEN + "})$")) {
- RevId id = new RevId(patchIdentity);
- ResultSet<PatchSet> patches;
- if (id.isComplete()) {
- patches = db.patchSets().byRevision(id);
- } else {
- patches = db.patchSets().byRevisionRange(id, id.max());
- }
-
- Set<PatchSet> matches = new HashSet<>();
- for (PatchSet ps : patches) {
- Change change = db.changes().get(ps.getId().getParentKey());
- if (inProject(change)) {
- matches.add(ps);
- }
- }
-
- switch (matches.size()) {
- case 1:
- return matches.iterator().next();
- case 0:
- throw error("\"" + patchIdentity + "\" no such patch set");
- default:
- throw error("\"" + patchIdentity + "\" matches multiple patch sets");
- }
- }
-
- // By older style change,patchset?
- //
- if (patchIdentity.matches("^[1-9][0-9]*,[1-9][0-9]*$")) {
- PatchSet.Id patchSetId;
- try {
- patchSetId = PatchSet.Id.parse(patchIdentity);
- } catch (IllegalArgumentException e) {
- throw error("\"" + patchIdentity + "\" is not a valid patch set");
- }
- PatchSet patchSet = db.patchSets().get(patchSetId);
- if (patchSet == null) {
- throw error("\"" + patchIdentity + "\" no such patch set");
- }
- if (projectControl != null) {
- Change change = db.changes().get(patchSetId.getParentKey());
- if (!inProject(change)) {
- throw error("change " + change.getId() + " not in project "
- + projectControl.getProject().getName());
- }
- }
- return patchSet;
- }
-
- throw error("\"" + patchIdentity + "\" is not a valid patch set");
- }
-
- private boolean inProject(Change change) {
- if (projectControl == null) {
- // No --project option, so they want every project.
- return true;
- }
- return projectControl.getProject().getNameKey().equals(change.getProject());
- }
-
private void writeError(String msg) {
try {
err.write(msg.getBytes(ENC));