Adapt to changes in Gerrit API
Change-Id: I3ff44cad8463c6c313c50481228ec5e32e628c19
diff --git a/src/main/java/com/googlesource/gerrit/plugins/importer/AddApprovalsStep.java b/src/main/java/com/googlesource/gerrit/plugins/importer/AddApprovalsStep.java
index b541966..267925f 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/importer/AddApprovalsStep.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/importer/AddApprovalsStep.java
@@ -18,7 +18,6 @@
import com.google.gerrit.common.TimeUtil;
import com.google.gerrit.common.data.LabelType;
import com.google.gerrit.common.errors.NoSuchAccountException;
-import com.google.gerrit.extensions.common.AccountInfo;
import com.google.gerrit.extensions.common.ApprovalInfo;
import com.google.gerrit.extensions.common.ChangeInfo;
import com.google.gerrit.extensions.common.LabelInfo;
@@ -29,8 +28,8 @@
import com.google.gerrit.reviewdb.server.ReviewDb;
import com.google.gerrit.server.IdentifiedUser;
import com.google.gerrit.server.notedb.ChangeUpdate;
-import com.google.gerrit.server.project.ChangeControl;
import com.google.gerrit.server.project.NoSuchChangeException;
+import com.google.gerrit.server.query.change.ChangeData;
import com.google.gwtorm.server.OrmException;
import com.google.inject.Inject;
import com.google.inject.assistedinject.Assisted;
@@ -57,7 +56,7 @@
private final ChangeUpdate.Factory updateFactory;
private final ReviewDb db;
private final IdentifiedUser.GenericFactory genericUserFactory;
- private final ChangeControl.GenericFactory changeControlFactory;
+ private final ChangeData.Factory changeDataFactory;
private final Change change;
private final ChangeInfo changeInfo;
private final boolean resume;
@@ -67,7 +66,7 @@
ChangeUpdate.Factory updateFactory,
ReviewDb db,
IdentifiedUser.GenericFactory genericUserFactory,
- ChangeControl.GenericFactory changeControlFactory,
+ ChangeData.Factory changeDataFactory,
@Assisted Change change,
@Assisted ChangeInfo changeInfo,
@Assisted boolean resume) {
@@ -75,7 +74,7 @@
this.updateFactory = updateFactory;
this.db = db;
this.genericUserFactory = genericUserFactory;
- this.changeControlFactory = changeControlFactory;
+ this.changeDataFactory = changeDataFactory;
this.change = change;
this.changeInfo = changeInfo;
this.resume = resume;
@@ -96,8 +95,8 @@
if (label.all != null) {
for (ApprovalInfo a : label.all) {
Account.Id user = accountUtil.resolveUser(api, a);
- ChangeControl ctrl = control(change, a);
- LabelType labelType = ctrl.getLabelTypes().byLabel(labelName);
+ ChangeData cd = changeDataFactory.create(db, change);
+ LabelType labelType = cd.getLabelTypes().byLabel(labelName);
if(labelType == null) {
log.warn(String.format("Label '%s' not found in target system."
+ " This label was referenced by an approval provided from '%s'"
@@ -112,7 +111,7 @@
approvals.add(new PatchSetApproval(new PatchSetApproval.Key(change
.currentPatchSetId(), user, labelType.getLabelId()), shortValue,
MoreObjects.firstNonNull(a.date, TimeUtil.nowTs())));
- ChangeUpdate update = updateFactory.create(ctrl);
+ ChangeUpdate update = updateFactory.create(cd.notes(), genericUserFactory.create(user));
if (shortValue != 0) {
update.putApproval(labelName, shortValue);
} else {
@@ -124,19 +123,4 @@
}
db.patchSetApprovals().insert(approvals);
}
-
- private ChangeControl control(Change change, AccountInfo acc)
- throws NoSuchChangeException {
- return control(change, new Account.Id(acc._accountId));
- }
-
- private ChangeControl control(Change change, Account.Id id)
- throws NoSuchChangeException {
- try {
- return changeControlFactory.controlFor(db, change,
- genericUserFactory.create(id));
- } catch (OrmException e) {
- throw new NoSuchChangeException(change.getId());
- }
- }
}
diff --git a/src/main/java/com/googlesource/gerrit/plugins/importer/CompleteProjectImport.java b/src/main/java/com/googlesource/gerrit/plugins/importer/CompleteProjectImport.java
index 2767f13..f5cabb9 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/importer/CompleteProjectImport.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/importer/CompleteProjectImport.java
@@ -112,6 +112,8 @@
case REJECTED:
case REJECTED_CURRENT_BRANCH:
case RENAMED:
+ case REJECTED_MISSING_OBJECT:
+ case REJECTED_OTHER_REASON:
default:
throw new IOException(String.format(
"Failed to delete %s, RefUpdate.Result = %s", ref, result));
diff --git a/src/main/java/com/googlesource/gerrit/plugins/importer/GitFetchStep.java b/src/main/java/com/googlesource/gerrit/plugins/importer/GitFetchStep.java
index 132a36c..a3421d1 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/importer/GitFetchStep.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/importer/GitFetchStep.java
@@ -83,6 +83,8 @@
case REJECTED:
case REJECTED_CURRENT_BRANCH:
case RENAMED:
+ case REJECTED_MISSING_OBJECT:
+ case REJECTED_OTHER_REASON:
default:
throw new IOException(String.format(
"Failed to update %s, RefUpdate.Result = %s", targetRef, result));
diff --git a/src/main/java/com/googlesource/gerrit/plugins/importer/GroupsCollection.java b/src/main/java/com/googlesource/gerrit/plugins/importer/GroupsCollection.java
index bb692cd..c25f5b5 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/importer/GroupsCollection.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/importer/GroupsCollection.java
@@ -60,7 +60,6 @@
}
@Override
- @SuppressWarnings("unchecked")
public ImportGroup create(ConfigResource parent, IdString id)
throws RestApiException {
return importGroupFactory.create(new AccountGroup.NameKey(id.get()));
diff --git a/src/main/java/com/googlesource/gerrit/plugins/importer/ImportGroup.java b/src/main/java/com/googlesource/gerrit/plugins/importer/ImportGroup.java
index 7016c39..1279b56 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/importer/ImportGroup.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/importer/ImportGroup.java
@@ -41,6 +41,7 @@
import com.google.gerrit.server.account.GroupIncludeCache;
import com.google.gerrit.server.config.ConfigResource;
import com.google.gerrit.server.config.GerritServerConfig;
+import com.google.gerrit.server.group.InternalGroup;
import com.google.gerrit.server.validators.GroupCreationValidationListener;
import com.google.gerrit.server.validators.ValidationException;
import com.google.gwtorm.server.OrmDuplicateKeyException;
@@ -60,6 +61,7 @@
import java.util.Collections;
import java.util.HashSet;
import java.util.List;
+import java.util.Optional;
import java.util.Set;
@RequiresCapability(ImportCapability.ID)
@@ -179,7 +181,7 @@
return groupCache.get(new AccountGroup.NameKey(groupName));
}
- private AccountGroup getGroupByUUID(String uuid) {
+ private Optional<InternalGroup> getGroupByUUID(String uuid) {
return groupCache.get(new AccountGroup.UUID(uuid));
}
@@ -191,7 +193,7 @@
args.groupDescription = groupInfo.description;
args.visibleToAll = cfg.getBoolean("groups", "newGroupsVisibleToAll", false);
if (!groupInfo.ownerId.equals(groupInfo.id)) {
- args.ownerGroupId = getGroupByUUID(groupInfo.ownerId).getId();
+ args.ownerGroupId = getGroupByUUID(groupInfo.ownerId).get().getId();
}
Set<Account.Id> initialMembers = new HashSet<>();
for (AccountInfo member : groupInfo.members) {
@@ -221,7 +223,7 @@
throw new ResourceConflictException(info.name);
}
db.accountGroups().insert(Collections.singleton(group));
- groupCache.evict(group);
+ groupCache.evict(group.getGroupUUID(), group.getId(), group.getNameKey());
if (!info.id.equals(info.ownerId)) {
if (getGroupByUUID(info.ownerId) == null) {
@@ -244,7 +246,7 @@
addMembers(group.getId(), info.members);
addGroups(input, group.getId(), info.name, info.includes);
- groupCache.evict(group);
+ groupCache.evict(group.getGroupUUID(), group.getId(), group.getNameKey());
return group;
}
diff --git a/src/main/java/com/googlesource/gerrit/plugins/importer/InsertLinkToOriginalChangeStep.java b/src/main/java/com/googlesource/gerrit/plugins/importer/InsertLinkToOriginalChangeStep.java
index ba25273..eb3dbe9 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/importer/InsertLinkToOriginalChangeStep.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/importer/InsertLinkToOriginalChangeStep.java
@@ -28,8 +28,8 @@
import com.google.gerrit.server.IdentifiedUser;
import com.google.gerrit.server.config.CanonicalWebUrl;
import com.google.gerrit.server.notedb.ChangeUpdate;
-import com.google.gerrit.server.project.ChangeControl;
import com.google.gerrit.server.project.NoSuchChangeException;
+import com.google.gerrit.server.query.change.ChangeData;
import com.google.gwtorm.server.OrmException;
import com.google.inject.Inject;
import com.google.inject.assistedinject.Assisted;
@@ -41,7 +41,7 @@
private final CurrentUser currentUser;
private final ChangeUpdate.Factory updateFactory;
private final IdentifiedUser.GenericFactory genericUserFactory;
- private final ChangeControl.GenericFactory changeControlFactory;
+ private final ChangeData.Factory changeDataFactory;
private final ReviewDb db;
private final ChangeMessagesUtil cmUtil;
private final String canonicalWebUrl;
@@ -62,7 +62,7 @@
InsertLinkToOriginalChangeStep(CurrentUser currentUser,
ChangeUpdate.Factory updateFactory,
IdentifiedUser.GenericFactory genericUserFactory,
- ChangeControl.GenericFactory changeControlFactory,
+ ChangeData.Factory changeDataFactory,
ReviewDb db,
ChangeMessagesUtil cmUtil,
@CanonicalWebUrl String canonicalWebUrl,
@@ -73,7 +73,7 @@
this.currentUser = currentUser;
this.updateFactory = updateFactory;
this.genericUserFactory = genericUserFactory;
- this.changeControlFactory = changeControlFactory;
+ this.changeDataFactory = changeDataFactory;
this.db = db;
this.cmUtil = cmUtil;
this.canonicalWebUrl = canonicalWebUrl;
@@ -99,7 +99,8 @@
private void insertMessage(Change change, String message)
throws NoSuchChangeException, OrmException, IOException {
Account.Id userId = ((IdentifiedUser) currentUser).getAccountId();
- ChangeUpdate update = updateFactory.create(control(change, userId));
+ ChangeData cd = changeDataFactory.create(db, change);
+ ChangeUpdate update = updateFactory.create(cd.notes(), genericUserFactory.create(userId));
ChangeMessage cmsg =
new ChangeMessage(new ChangeMessage.Key(change.getId(),
ChangeUtil.messageUuid()), userId, TimeUtil.nowTs(),
@@ -109,16 +110,6 @@
update.commit();
}
- private ChangeControl control(Change change, Account.Id id)
- throws NoSuchChangeException {
- try {
- return changeControlFactory.controlFor(db, change,
- genericUserFactory.create(id));
- } catch (OrmException e) {
- throw new NoSuchChangeException(change.getId());
- }
- }
-
private static String ensureSlash(String in) {
if (in != null && !in.endsWith("/")) {
return in + "/";
diff --git a/src/main/java/com/googlesource/gerrit/plugins/importer/OpenRepositoryStep.java b/src/main/java/com/googlesource/gerrit/plugins/importer/OpenRepositoryStep.java
index f37d9b2..06fb06c 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/importer/OpenRepositoryStep.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/importer/OpenRepositoryStep.java
@@ -89,7 +89,7 @@
PermissionBackendException {
CreateProjectArgs args = new CreateProjectArgs();
args.setProjectName(name);
- args.newParent = projectsCollection.get().parse(parent.get()).getControl();
+ args.newParent = projectsCollection.get().parse(parent.get()).getNameKey();
for (ProjectCreationValidationListener l : projectCreationValidationListeners) {
try {
l.validateNewProject(args);
diff --git a/src/main/java/com/googlesource/gerrit/plugins/importer/ProjectsCollection.java b/src/main/java/com/googlesource/gerrit/plugins/importer/ProjectsCollection.java
index 74d3efb..ded7130 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/importer/ProjectsCollection.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/importer/ProjectsCollection.java
@@ -136,7 +136,6 @@
}
@Override
- @SuppressWarnings("unchecked")
public ImportProject create(ConfigResource parent, IdString id)
throws RestApiException {
return importProjectFactory.create(new Project.NameKey(id.get()));
diff --git a/src/main/java/com/googlesource/gerrit/plugins/importer/ReplayInlineCommentsStep.java b/src/main/java/com/googlesource/gerrit/plugins/importer/ReplayInlineCommentsStep.java
index 79d6370..5f12110 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/importer/ReplayInlineCommentsStep.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/importer/ReplayInlineCommentsStep.java
@@ -214,7 +214,7 @@
}
Iterables.addAll(del, drafts.values());
- ChangeUpdate update = updateFactory.create(ctrl, TimeUtil.nowTs());
+ ChangeUpdate update = updateFactory.create(ctrl.getNotes(), ctrl.getUser(), TimeUtil.nowTs());
update.setPatchSetId(ps.getId());
commentsUtil.deleteComments(db, update, del);
diff --git a/src/main/java/com/googlesource/gerrit/plugins/importer/ReplayMessagesStep.java b/src/main/java/com/googlesource/gerrit/plugins/importer/ReplayMessagesStep.java
index dde14ee..9b1d130 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/importer/ReplayMessagesStep.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/importer/ReplayMessagesStep.java
@@ -92,7 +92,8 @@
: null;
if (msg.author != null) {
Account.Id userId = accountUtil.resolveUser(api, msg.author);
- ChangeUpdate update = updateFactory.create(control(change, userId), ts);
+ ChangeControl ctrl = control(change, userId);
+ ChangeUpdate update = updateFactory.create(ctrl.getNotes(), ctrl.getUser(), ts);
ChangeMessage cmsg = new ChangeMessage(msgKey, userId, ts, psId);
cmsg.setMessage(msg.message);
cmUtil.addChangeMessage(db, update, cmsg);
diff --git a/src/main/java/com/googlesource/gerrit/plugins/importer/ReplayRevisionsStep.java b/src/main/java/com/googlesource/gerrit/plugins/importer/ReplayRevisionsStep.java
index 4eafe91..7272cd5 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/importer/ReplayRevisionsStep.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/importer/ReplayRevisionsStep.java
@@ -188,6 +188,8 @@
case REJECTED:
case REJECTED_CURRENT_BRANCH:
case RENAMED:
+ case REJECTED_MISSING_OBJECT:
+ case REJECTED_OTHER_REASON:
default:
throw new IOException(String.format(
"Failed to create ref %s, RefUpdate.Result = %s", ref, result));