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));