Move creation of Change instance into ChangeInserter
Every caller of ChangeInserter had to do the creation of the Change instance on its own. By letting ChangeInserter create the Change instance we can remove some duplicate code. This way it is also guranteed that the Change instance is consistent with the other input parameters of ChangeInserter. When the Change instance was passed in we had to check this explicitly. Change-Id: Ie5a115988f967ae41cc0b57343ebe3fe78386a3d Signed-off-by: Edwin Kempin <ekempin@google.com>
This commit is contained in:
@@ -14,7 +14,6 @@
|
||||
|
||||
package com.google.gerrit.httpd.rpc.project;
|
||||
|
||||
import com.google.gerrit.common.FooterConstants;
|
||||
import com.google.gerrit.common.Nullable;
|
||||
import com.google.gerrit.common.TimeUtil;
|
||||
import com.google.gerrit.common.data.AccessSection;
|
||||
@@ -23,13 +22,11 @@ import com.google.gerrit.common.data.PermissionRule;
|
||||
import com.google.gerrit.extensions.api.changes.AddReviewerInput;
|
||||
import com.google.gerrit.extensions.restapi.ResourceNotFoundException;
|
||||
import com.google.gerrit.extensions.restapi.RestApiException;
|
||||
import com.google.gerrit.reviewdb.client.Branch;
|
||||
import com.google.gerrit.reviewdb.client.Change;
|
||||
import com.google.gerrit.reviewdb.client.PatchSet;
|
||||
import com.google.gerrit.reviewdb.client.Project;
|
||||
import com.google.gerrit.reviewdb.client.RefNames;
|
||||
import com.google.gerrit.reviewdb.server.ReviewDb;
|
||||
import com.google.gerrit.server.IdentifiedUser;
|
||||
import com.google.gerrit.server.Sequences;
|
||||
import com.google.gerrit.server.account.GroupBackend;
|
||||
import com.google.gerrit.server.change.ChangeInserter;
|
||||
@@ -71,7 +68,6 @@ public class ReviewProjectAccess extends ProjectAccessHandler<Change.Id> {
|
||||
|
||||
private final ReviewDb db;
|
||||
private final Sequences seq;
|
||||
private final IdentifiedUser user;
|
||||
private final Provider<PostReviewers> reviewersProvider;
|
||||
private final ProjectCache projectCache;
|
||||
private final ChangesCollection changes;
|
||||
@@ -82,7 +78,6 @@ public class ReviewProjectAccess extends ProjectAccessHandler<Change.Id> {
|
||||
ReviewProjectAccess(final ProjectControl.Factory projectControlFactory,
|
||||
GroupBackend groupBackend,
|
||||
MetaDataUpdate.User metaDataUpdateFactory, ReviewDb db,
|
||||
IdentifiedUser user,
|
||||
Provider<PostReviewers> reviewersProvider,
|
||||
ProjectCache projectCache,
|
||||
AllProjectsNameProvider allProjects,
|
||||
@@ -102,7 +97,6 @@ public class ReviewProjectAccess extends ProjectAccessHandler<Change.Id> {
|
||||
parentProjectName, message, false);
|
||||
this.db = db;
|
||||
this.seq = seq;
|
||||
this.user = user;
|
||||
this.reviewersProvider = reviewersProvider;
|
||||
this.projectCache = projectCache;
|
||||
this.changes = changes;
|
||||
@@ -123,23 +117,15 @@ public class ReviewProjectAccess extends ProjectAccessHandler<Change.Id> {
|
||||
return null;
|
||||
}
|
||||
|
||||
Change change = new Change(
|
||||
getChangeId(commit),
|
||||
changeId,
|
||||
user.getAccountId(),
|
||||
new Branch.NameKey(
|
||||
config.getProject().getNameKey(),
|
||||
RefNames.REFS_CONFIG),
|
||||
TimeUtil.nowTs());
|
||||
try (RevWalk rw = new RevWalk(md.getRepository());
|
||||
ObjectInserter objInserter = md.getRepository().newObjectInserter();
|
||||
BatchUpdate bu = updateFactory.create(
|
||||
db, change.getProject(), ctl.getUser(),
|
||||
change.getCreatedOn())) {
|
||||
db, config.getProject().getNameKey(), ctl.getUser(),
|
||||
TimeUtil.nowTs())) {
|
||||
bu.setRepository(md.getRepository(), rw, objInserter);
|
||||
bu.insertChange(
|
||||
changeInserterFactory.create(
|
||||
ctl.controlForRef(change.getDest().get()), change, commit)
|
||||
ctl.controlForRef(RefNames.REFS_CONFIG), changeId, commit)
|
||||
.setValidatePolicy(CommitValidators.Policy.NONE)
|
||||
.setUpdateRef(false)); // Created by commitToNewRef.
|
||||
bu.execute();
|
||||
@@ -160,14 +146,6 @@ public class ReviewProjectAccess extends ProjectAccessHandler<Change.Id> {
|
||||
return changeId;
|
||||
}
|
||||
|
||||
private static Change.Key getChangeId(RevCommit commit) {
|
||||
List<String> idList = commit.getFooterLines(FooterConstants.CHANGE_ID);
|
||||
Change.Key changeKey = !idList.isEmpty()
|
||||
? new Change.Key(idList.get(idList.size() - 1).trim())
|
||||
: new Change.Key("I" + commit.name());
|
||||
return changeKey;
|
||||
}
|
||||
|
||||
private void addProjectOwnersAsReviewers(ChangeResource rsrc) {
|
||||
final String projectOwners =
|
||||
groupBackend.get(SystemGroupBackend.PROJECT_OWNERS).getName();
|
||||
|
||||
Reference in New Issue
Block a user