Add convenience methods for constructing approvals and messages

This saves a lot of boilerplate, nested key construction, ChangeUtil
usage, etc. Particularly in the case of ChangeMessage, we can usually
infer pretty much everything directly from the ChangeContext.

Change-Id: I93eb1e5f5c766b4f661bf21084760141b4d1db02
This commit is contained in:
Dave Borowitz
2016-10-05 17:23:32 -04:00
parent 76a0028397
commit 2e8857a18b
21 changed files with 106 additions and 199 deletions

View File

@@ -26,6 +26,7 @@ import com.google.common.collect.ListMultimap;
import com.google.common.collect.Lists;
import com.google.common.collect.Ordering;
import com.google.common.collect.Sets;
import com.google.common.primitives.Shorts;
import com.google.gerrit.common.data.LabelType;
import com.google.gerrit.common.data.LabelTypes;
import com.google.gerrit.common.data.Permission;
@@ -86,6 +87,18 @@ public class ApprovalsUtil {
return SORT_APPROVALS.sortedCopy(approvals);
}
public static PatchSetApproval newApproval(PatchSet.Id psId, CurrentUser user,
LabelId labelId, int value, Date when) {
PatchSetApproval psa = new PatchSetApproval(
new PatchSetApproval.Key(
psId,
user.getAccountId(),
labelId),
Shorts.checkedCast(value),
when);
return psa;
}
private static Iterable<PatchSetApproval> filterApprovals(
Iterable<PatchSetApproval> psas, final Account.Id accountId) {
return Iterables.filter(
@@ -288,12 +301,9 @@ public class ApprovalsUtil {
Date ts = update.getWhen();
for (Map.Entry<String, Short> vote : approvals.entrySet()) {
LabelType lt = labelTypes.byLabel(vote.getKey());
cells.add(new PatchSetApproval(new PatchSetApproval.Key(
ps.getId(),
ps.getUploader(),
lt.getLabelId()),
vote.getValue(),
ts));
cells.add(
newApproval(ps.getId(), changeCtl.getUser(), lt.getLabelId(),
vote.getValue(), ts));
}
for (PatchSetApproval psa : cells) {
update.putApproval(psa.getLabel(), psa.getValue());

View File

@@ -14,12 +14,15 @@
package com.google.gerrit.server;
import static com.google.common.base.Preconditions.checkNotNull;
import static com.google.common.base.Preconditions.checkState;
import com.google.common.annotations.VisibleForTesting;
import com.google.gerrit.reviewdb.client.Account;
import com.google.gerrit.reviewdb.client.ChangeMessage;
import com.google.gerrit.reviewdb.client.PatchSet;
import com.google.gerrit.reviewdb.server.ReviewDb;
import com.google.gerrit.server.git.BatchUpdate;
import com.google.gerrit.server.notedb.ChangeNotes;
import com.google.gerrit.server.notedb.ChangeUpdate;
import com.google.gerrit.server.notedb.NotesMigration;
@@ -27,6 +30,7 @@ import com.google.gwtorm.server.OrmException;
import com.google.inject.Inject;
import com.google.inject.Singleton;
import java.sql.Timestamp;
import java.util.Collections;
import java.util.List;
import java.util.Objects;
@@ -39,6 +43,25 @@ import java.util.Objects;
*/
@Singleton
public class ChangeMessagesUtil {
public static ChangeMessage newMessage(BatchUpdate.ChangeContext ctx,
String body) throws OrmException {
return newMessage(
ctx.getDb(), ctx.getChange().currentPatchSetId(),
ctx.getUser(), ctx.getWhen(), body);
}
public static ChangeMessage newMessage(
ReviewDb db, PatchSet.Id psId, CurrentUser user, Timestamp when,
String body) throws OrmException {
checkNotNull(psId);
Account.Id accountId = user.isInternalUser() ? null : user.getAccountId();
ChangeMessage m = new ChangeMessage(
new ChangeMessage.Key(psId.getParentKey(), ChangeUtil.messageUUID(db)),
accountId, when, psId);
m.setMessage(body);
return m;
}
private static List<ChangeMessage> sortChangeMessages(
Iterable<ChangeMessage> changeMessage) {
return ChangeNotes.MESSAGE_BY_TIME.sortedCopy(changeMessage);

View File

@@ -31,7 +31,6 @@ import com.google.gerrit.reviewdb.client.PatchSet;
import com.google.gerrit.reviewdb.client.Project;
import com.google.gerrit.reviewdb.server.ReviewDb;
import com.google.gerrit.server.ChangeMessagesUtil;
import com.google.gerrit.server.ChangeUtil;
import com.google.gerrit.server.CurrentUser;
import com.google.gerrit.server.PatchSetUtil;
import com.google.gerrit.server.extensions.events.ChangeAbandoned;
@@ -106,7 +105,7 @@ public class Abandon implements RestModifyView<ChangeResource, AbandonInput>,
public Change abandon(ChangeControl control, String msgTxt,
NotifyHandling notifyHandling) throws RestApiException, UpdateException {
Op op = new Op(control.getUser(), msgTxt, notifyHandling);
Op op = new Op(msgTxt, notifyHandling);
try (BatchUpdate u =
batchUpdateFactory.create(
dbProvider.get(),
@@ -142,8 +141,7 @@ public class Abandon implements RestModifyView<ChangeResource, AbandonInput>,
control.getProject().getNameKey().get(),
project.get()));
}
u.addOp(
control.getId(), new Op(control.getUser(), msgTxt, notifyHandling));
u.addOp(control.getId(), new Op(msgTxt, notifyHandling));
}
u.execute();
}
@@ -164,18 +162,14 @@ public class Abandon implements RestModifyView<ChangeResource, AbandonInput>,
private class Op extends BatchUpdate.Op {
private final String msgTxt;
private final NotifyHandling notifyHandling;
private final Account account;
private Change change;
private PatchSet patchSet;
private ChangeMessage message;
private Op(CurrentUser user, String msgTxt, NotifyHandling notifyHandling) {
private Op(String msgTxt, NotifyHandling notifyHandling) {
this.msgTxt = msgTxt;
this.notifyHandling = notifyHandling;
account = user.isIdentifiedUser()
? user.asIdentifiedUser().getAccount()
: null;
}
@Override
@@ -208,19 +202,14 @@ public class Abandon implements RestModifyView<ChangeResource, AbandonInput>,
msg.append(msgTxt.trim());
}
ChangeMessage message = new ChangeMessage(
new ChangeMessage.Key(
change.getId(),
ChangeUtil.messageUUID(ctx.getDb())),
account != null ? account.getId() : null,
ctx.getWhen(),
change.currentPatchSetId());
message.setMessage(msg.toString());
return message;
return ChangeMessagesUtil.newMessage(ctx, msg.toString());
}
@Override
public void postUpdate(Context ctx) throws OrmException {
Account account = ctx.getUser().isIdentifiedUser()
? ctx.getUser().asIdentifiedUser().getAccount()
: null;
try {
ReplyToChangeSender cm =
abandonedSenderFactory.create(ctx.getProject(), change.getId());

View File

@@ -34,7 +34,6 @@ import com.google.gerrit.reviewdb.client.PatchSetInfo;
import com.google.gerrit.reviewdb.server.ReviewDb;
import com.google.gerrit.server.ApprovalsUtil;
import com.google.gerrit.server.ChangeMessagesUtil;
import com.google.gerrit.server.ChangeUtil;
import com.google.gerrit.server.IdentifiedUser;
import com.google.gerrit.server.PatchSetUtil;
import com.google.gerrit.server.events.CommitReceivedEvent;
@@ -364,11 +363,9 @@ public class ChangeInserter extends BatchUpdate.InsertChangeOp {
approvalsUtil.addApprovalsForNewPatchSet(
db, update, labelTypes, patchSet, ctx.getControl(), approvals);
if (message != null) {
changeMessage =
new ChangeMessage(new ChangeMessage.Key(change.getId(),
ChangeUtil.messageUUID(db)), ctx.getAccountId(),
patchSet.getCreatedOn(), patchSet.getId());
changeMessage.setMessage(message);
changeMessage = ChangeMessagesUtil.newMessage(
db, patchSet.getId(), ctx.getUser(), patchSet.getCreatedOn(),
message);
cmUtil.addChangeMessage(db, update, changeMessage);
}
return true;

View File

@@ -272,10 +272,6 @@ public class CherryPickChange {
@Override
public boolean updateChange(ChangeContext ctx) throws OrmException {
ChangeMessage changeMessage = new ChangeMessage(
new ChangeMessage.Key(
ctx.getChange().getId(), ChangeUtil.messageUUID(ctx.getDb())),
ctx.getAccountId(), ctx.getWhen(), psId);
StringBuilder sb = new StringBuilder("Patch Set ")
.append(psId.get())
.append(": Cherry Picked")
@@ -284,8 +280,8 @@ public class CherryPickChange {
.append(destBranch)
.append(" as commit ")
.append(cherryPickCommit.name());
changeMessage.setMessage(sb.toString());
ChangeMessage changeMessage = ChangeMessagesUtil.newMessage(
ctx.getDb(), psId, ctx.getUser(), ctx.getWhen(), sb.toString());
cmUtil.addChangeMessage(ctx.getDb(), ctx.getUpdate(psId), changeMessage);
return true;
}

View File

@@ -25,7 +25,6 @@ import com.google.gerrit.reviewdb.client.Change;
import com.google.gerrit.reviewdb.client.ChangeMessage;
import com.google.gerrit.reviewdb.server.ReviewDb;
import com.google.gerrit.server.ChangeMessagesUtil;
import com.google.gerrit.server.ChangeUtil;
import com.google.gerrit.server.account.AccountInfoCacheFactory;
import com.google.gerrit.server.account.AccountJson;
import com.google.gerrit.server.change.DeleteAssignee.Input;
@@ -115,14 +114,8 @@ public class DeleteAssignee implements RestModifyView<ChangeResource, Input> {
private void addMessage(BatchUpdate.ChangeContext ctx,
ChangeUpdate update, Account deleted) throws OrmException {
ChangeMessage cmsg = new ChangeMessage(
new ChangeMessage.Key(
ctx.getChange().getId(),
ChangeUtil.messageUUID(ctx.getDb())),
ctx.getAccountId(), ctx.getWhen(),
ctx.getChange().currentPatchSetId());
cmsg.setMessage(
"Assignee deleted: " + deleted.getName(anonymousCowardName));
ChangeMessage cmsg = ChangeMessagesUtil.newMessage(
ctx, "Assignee deleted: " + deleted.getName(anonymousCowardName));
cmUtil.addChangeMessage(ctx.getDb(), update, cmsg);
}

View File

@@ -36,7 +36,6 @@ import com.google.gerrit.reviewdb.server.ReviewDb;
import com.google.gerrit.reviewdb.server.ReviewDbUtil;
import com.google.gerrit.server.ApprovalsUtil;
import com.google.gerrit.server.ChangeMessagesUtil;
import com.google.gerrit.server.ChangeUtil;
import com.google.gerrit.server.IdentifiedUser;
import com.google.gerrit.server.PatchSetUtil;
import com.google.gerrit.server.extensions.events.ReviewerDeleted;
@@ -185,11 +184,7 @@ public class DeleteReviewer
ChangeUpdate update = ctx.getUpdate(currPs.getId());
update.removeReviewer(reviewerId);
changeMessage = new ChangeMessage(
new ChangeMessage.Key(currChange.getId(),
ChangeUtil.messageUUID(ctx.getDb())),
ctx.getAccountId(), ctx.getWhen(), currPs.getId());
changeMessage.setMessage(msg.toString());
changeMessage = ChangeMessagesUtil.newMessage(ctx, msg.toString());
cmUtil.addChangeMessage(ctx.getDb(), update, changeMessage);
return true;

View File

@@ -35,7 +35,6 @@ import com.google.gerrit.reviewdb.client.PatchSetApproval;
import com.google.gerrit.reviewdb.server.ReviewDb;
import com.google.gerrit.server.ApprovalsUtil;
import com.google.gerrit.server.ChangeMessagesUtil;
import com.google.gerrit.server.ChangeUtil;
import com.google.gerrit.server.IdentifiedUser;
import com.google.gerrit.server.PatchSetUtil;
import com.google.gerrit.server.extensions.events.VoteDeleted;
@@ -170,20 +169,13 @@ public class DeleteVote
ctx.getDb().patchSetApprovals().upsert(
Collections.singleton(deletedApproval(ctx)));
changeMessage =
new ChangeMessage(new ChangeMessage.Key(change.getId(),
ChangeUtil.messageUUID(ctx.getDb())),
ctx.getAccountId(),
ctx.getWhen(),
change.currentPatchSetId());
StringBuilder msg = new StringBuilder();
msg.append("Removed ");
LabelVote.appendTo(msg, label, checkNotNull(oldApprovals.get(label)));
changeMessage.setMessage(
msg.append(" by ")
.append(userFactory.create(accountId).getNameEmail())
.append("\n")
.toString());
msg.append(" by ")
.append(userFactory.create(accountId).getNameEmail())
.append("\n");
changeMessage = ChangeMessagesUtil.newMessage(ctx, msg.toString());
cmUtil.addChangeMessage(ctx.getDb(), ctx.getUpdate(psId),
changeMessage);

View File

@@ -33,8 +33,6 @@ 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.ChangeMessagesUtil;
import com.google.gerrit.server.ChangeUtil;
import com.google.gerrit.server.IdentifiedUser;
import com.google.gerrit.server.PatchSetUtil;
import com.google.gerrit.server.git.BatchUpdate;
import com.google.gerrit.server.git.BatchUpdate.ChangeContext;
@@ -94,7 +92,7 @@ public class Move implements RestModifyView<ChangeResource, MoveInput> {
try (BatchUpdate u = batchUpdateFactory.create(dbProvider.get(),
req.getChange().getProject(), control.getUser(), TimeUtil.nowTs())) {
u.addOp(req.getChange().getId(), new Op(control, input));
u.addOp(req.getChange().getId(), new Op(input));
u.execute();
}
@@ -103,14 +101,12 @@ public class Move implements RestModifyView<ChangeResource, MoveInput> {
private class Op extends BatchUpdate.Op {
private final MoveInput input;
private final IdentifiedUser caller;
private Change change;
private Branch.NameKey newDestKey;
Op(ChangeControl ctl, MoveInput input) {
Op(MoveInput input) {
this.input = input;
this.caller = ctl.getUser().asIdentifiedUser();
}
@Override
@@ -179,11 +175,8 @@ public class Move implements RestModifyView<ChangeResource, MoveInput> {
msgBuf.append("\n\n");
msgBuf.append(input.message);
}
ChangeMessage cmsg = new ChangeMessage(
new ChangeMessage.Key(change.getId(),
ChangeUtil.messageUUID(ctx.getDb())),
caller.getAccountId(), ctx.getWhen(), change.currentPatchSetId());
cmsg.setMessage(msgBuf.toString());
ChangeMessage cmsg =
ChangeMessagesUtil.newMessage(ctx, msgBuf.toString());
cmUtil.addChangeMessage(ctx.getDb(), update, cmsg);
return true;

View File

@@ -30,7 +30,6 @@ import com.google.gerrit.reviewdb.server.ReviewDb;
import com.google.gerrit.server.ApprovalCopier;
import com.google.gerrit.server.ApprovalsUtil;
import com.google.gerrit.server.ChangeMessagesUtil;
import com.google.gerrit.server.ChangeUtil;
import com.google.gerrit.server.PatchSetUtil;
import com.google.gerrit.server.ReviewerSet;
import com.google.gerrit.server.events.CommitReceivedEvent;
@@ -225,9 +224,8 @@ public class PatchSetInserter extends BatchUpdate.Op {
}
if (message != null) {
changeMessage = new ChangeMessage(
new ChangeMessage.Key(ctl.getId(), ChangeUtil.messageUUID(db)),
ctx.getAccountId(), ctx.getWhen(), patchSet.getId());
changeMessage = ChangeMessagesUtil.newMessage(
db, patchSet.getId(), ctx.getUser(), ctx.getWhen(), message);
changeMessage.setMessage(message);
}

View File

@@ -57,6 +57,7 @@ import com.google.gerrit.extensions.restapi.UnprocessableEntityException;
import com.google.gerrit.extensions.restapi.Url;
import com.google.gerrit.reviewdb.client.ChangeMessage;
import com.google.gerrit.reviewdb.client.Comment;
import com.google.gerrit.reviewdb.client.LabelId;
import com.google.gerrit.reviewdb.client.Patch;
import com.google.gerrit.reviewdb.client.PatchLineComment.Status;
import com.google.gerrit.reviewdb.client.PatchSet;
@@ -790,11 +791,8 @@ public class PostReview implements RestModifyView<RevisionResource, ReviewInput>
oldApprovals.put(normName, null);
approvals.put(normName, c.getValue());
} else if (c == null) {
c = new PatchSetApproval(new PatchSetApproval.Key(
psId,
user.getAccountId(),
lt.getLabelId()),
ent.getValue(), ctx.getWhen());
c = ApprovalsUtil.newApproval(
psId, user, lt.getLabelId(), ent.getValue(), ctx.getWhen());
c.setTag(in.tag);
c.setGranted(ctx.getWhen());
ups.add(c);
@@ -832,12 +830,10 @@ public class PostReview implements RestModifyView<RevisionResource, ReviewInput>
if (del.isEmpty()) {
// If no existing label is being set to 0, hack in the caller
// as a reviewer by picking the first server-wide LabelType.
PatchSetApproval c = new PatchSetApproval(new PatchSetApproval.Key(
psId,
user.getAccountId(),
ctx.getControl().getLabelTypes().getLabelTypes().get(0)
.getLabelId()),
(short) 0, ctx.getWhen());
LabelId labelId = ctx.getControl().getLabelTypes().getLabelTypes()
.get(0).getLabelId();
PatchSetApproval c = ApprovalsUtil.newApproval(
psId, user, labelId, 0, ctx.getWhen());
c.setTag(in.tag);
c.setGranted(ctx.getWhen());
ups.add(c);
@@ -896,17 +892,10 @@ public class PostReview implements RestModifyView<RevisionResource, ReviewInput>
return false;
}
message = new ChangeMessage(
new ChangeMessage.Key(
psId.getParentKey(), ChangeUtil.messageUUID(ctx.getDb())),
user.getAccountId(),
ctx.getWhen(),
psId);
message = ChangeMessagesUtil.newMessage(
ctx.getDb(), psId, user, ctx.getWhen(),
"Patch Set " + psId.get() + ":" + buf);
message.setTag(in.tag);
message.setMessage(String.format(
"Patch Set %d:%s",
psId.get(),
buf.toString()));
cmUtil.addChangeMessage(ctx.getDb(), ctx.getUpdate(psId), message);
return true;
}

View File

@@ -34,7 +34,7 @@ import com.google.gerrit.reviewdb.client.PatchSet;
import com.google.gerrit.reviewdb.client.PatchSetInfo;
import com.google.gerrit.reviewdb.server.ReviewDb;
import com.google.gerrit.server.ApprovalsUtil;
import com.google.gerrit.server.ChangeUtil;
import com.google.gerrit.server.ChangeMessagesUtil;
import com.google.gerrit.server.CurrentUser;
import com.google.gerrit.server.PatchSetUtil;
import com.google.gerrit.server.account.AccountResolver;
@@ -252,15 +252,12 @@ public class PublishDraftPatchSet implements RestModifyView<RevisionResource, In
private void sendReplacePatchSet(Context ctx)
throws EmailException, OrmException {
Account.Id accountId = ctx.getAccountId();
ChangeMessage msg =
new ChangeMessage(new ChangeMessage.Key(change.getId(),
ChangeUtil.messageUUID(ctx.getDb())), accountId,
ctx.getWhen(), psId);
msg.setMessage("Uploaded patch set " + psId.get() + ".");
ChangeMessage msg = ChangeMessagesUtil.newMessage(
ctx.getDb(), psId, ctx.getUser(), ctx.getWhen(),
"Uploaded patch set " + psId.get() + ".");
ReplacePatchSetSender cm =
replacePatchSetFactory.create(ctx.getProject(), change.getId());
cm.setFrom(accountId);
cm.setFrom(ctx.getAccountId());
cm.setPatchSet(patchSet, patchSetInfo);
cm.setChangeMessage(msg.getMessage(), ctx.getWhen());
cm.addReviewers(recipients.getReviewers());

View File

@@ -26,7 +26,6 @@ import com.google.gerrit.reviewdb.client.Change;
import com.google.gerrit.reviewdb.client.ChangeMessage;
import com.google.gerrit.reviewdb.server.ReviewDb;
import com.google.gerrit.server.ChangeMessagesUtil;
import com.google.gerrit.server.ChangeUtil;
import com.google.gerrit.server.change.PutTopic.Input;
import com.google.gerrit.server.extensions.events.TopicEdited;
import com.google.gerrit.server.git.BatchUpdate;
@@ -115,13 +114,7 @@ public class PutTopic implements RestModifyView<ChangeResource, Input>,
change.setTopic(Strings.emptyToNull(newTopicName));
update.setTopic(change.getTopic());
ChangeMessage cmsg = new ChangeMessage(
new ChangeMessage.Key(
change.getId(),
ChangeUtil.messageUUID(ctx.getDb())),
ctx.getAccountId(), ctx.getWhen(),
change.currentPatchSetId());
cmsg.setMessage(summary);
ChangeMessage cmsg = ChangeMessagesUtil.newMessage(ctx, summary);
cmUtil.addChangeMessage(ctx.getDb(), update, cmsg);
return true;
}

View File

@@ -29,7 +29,6 @@ import com.google.gerrit.reviewdb.client.ChangeMessage;
import com.google.gerrit.reviewdb.client.PatchSet;
import com.google.gerrit.reviewdb.server.ReviewDb;
import com.google.gerrit.server.ChangeMessagesUtil;
import com.google.gerrit.server.ChangeUtil;
import com.google.gerrit.server.PatchSetUtil;
import com.google.gerrit.server.extensions.events.ChangeRestored;
import com.google.gerrit.server.git.BatchUpdate;
@@ -131,16 +130,7 @@ public class Restore implements RestModifyView<ChangeResource, RestoreInput>,
msg.append("\n\n");
msg.append(input.message.trim());
}
ChangeMessage message = new ChangeMessage(
new ChangeMessage.Key(
change.getId(),
ChangeUtil.messageUUID(ctx.getDb())),
ctx.getAccountId(),
ctx.getWhen(),
change.currentPatchSetId());
message.setMessage(msg.toString());
return message;
return ChangeMessagesUtil.newMessage(ctx, msg.toString());
}
@Override

View File

@@ -34,7 +34,6 @@ import com.google.gerrit.reviewdb.client.Project;
import com.google.gerrit.reviewdb.server.ReviewDb;
import com.google.gerrit.server.ApprovalsUtil;
import com.google.gerrit.server.ChangeMessagesUtil;
import com.google.gerrit.server.ChangeUtil;
import com.google.gerrit.server.CurrentUser;
import com.google.gerrit.server.GerritPersonIdent;
import com.google.gerrit.server.PatchSetUtil;
@@ -274,14 +273,8 @@ public class Revert implements RestModifyView<ChangeResource, RevertInput>,
public boolean updateChange(ChangeContext ctx) throws Exception {
Change change = ctx.getChange();
PatchSet.Id patchSetId = change.currentPatchSetId();
ChangeMessage changeMessage = new ChangeMessage(
new ChangeMessage.Key(change.getId(),
ChangeUtil.messageUUID(db.get())),
ctx.getAccountId(), ctx.getWhen(), patchSetId);
StringBuilder msgBuf = new StringBuilder();
msgBuf.append("Created a revert of this change as ")
.append("I").append(computedChangeId.name());
changeMessage.setMessage(msgBuf.toString());
ChangeMessage changeMessage = ChangeMessagesUtil.newMessage(ctx,
"Created a revert of this change as I" + computedChangeId.name());
cmUtil.addChangeMessage(ctx.getDb(), ctx.getUpdate(patchSetId),
changeMessage);
return true;

View File

@@ -25,7 +25,6 @@ import com.google.gerrit.reviewdb.client.Account;
import com.google.gerrit.reviewdb.client.Change;
import com.google.gerrit.reviewdb.client.ChangeMessage;
import com.google.gerrit.server.ChangeMessagesUtil;
import com.google.gerrit.server.ChangeUtil;
import com.google.gerrit.server.IdentifiedUser;
import com.google.gerrit.server.account.AccountInfoCacheFactory;
import com.google.gerrit.server.account.AccountsCollection;
@@ -139,13 +138,7 @@ public class SetAssigneeOp extends BatchUpdate.Op {
msg.append(" to: ");
msg.append(newAssignee.getName(anonymousCowardName));
}
ChangeMessage cmsg = new ChangeMessage(
new ChangeMessage.Key(
change.getId(),
ChangeUtil.messageUUID(ctx.getDb())),
ctx.getAccountId(), ctx.getWhen(),
change.currentPatchSetId());
cmsg.setMessage(msg.toString());
ChangeMessage cmsg = ChangeMessagesUtil.newMessage(ctx, msg.toString());
cmUtil.addChangeMessage(ctx.getDb(), update, cmsg);
}

View File

@@ -28,7 +28,6 @@ import com.google.gerrit.extensions.restapi.BadRequestException;
import com.google.gerrit.reviewdb.client.Change;
import com.google.gerrit.reviewdb.client.ChangeMessage;
import com.google.gerrit.server.ChangeMessagesUtil;
import com.google.gerrit.server.ChangeUtil;
import com.google.gerrit.server.extensions.events.HashtagsEdited;
import com.google.gerrit.server.git.BatchUpdate;
import com.google.gerrit.server.git.BatchUpdate.ChangeContext;
@@ -129,18 +128,12 @@ public class SetHashtagsOp extends BatchUpdate.Op {
return true;
}
private void addMessage(Context ctx, ChangeUpdate update)
private void addMessage(ChangeContext ctx, ChangeUpdate update)
throws OrmException {
StringBuilder msg = new StringBuilder();
appendHashtagMessage(msg, "added", toAdd);
appendHashtagMessage(msg, "removed", toRemove);
ChangeMessage cmsg = new ChangeMessage(
new ChangeMessage.Key(
change.getId(),
ChangeUtil.messageUUID(ctx.getDb())),
ctx.getAccountId(), ctx.getWhen(),
change.currentPatchSetId());
cmsg.setMessage(msg.toString());
ChangeMessage cmsg = ChangeMessagesUtil.newMessage(ctx, msg.toString());
cmUtil.addChangeMessage(ctx.getDb(), update, cmsg);
}

View File

@@ -47,7 +47,6 @@ import com.google.gerrit.reviewdb.client.PatchSet;
import com.google.gerrit.reviewdb.client.Project;
import com.google.gerrit.reviewdb.server.ReviewDb;
import com.google.gerrit.server.ChangeMessagesUtil;
import com.google.gerrit.server.ChangeUtil;
import com.google.gerrit.server.IdentifiedUser;
import com.google.gerrit.server.InternalUser;
import com.google.gerrit.server.git.BatchUpdate.ChangeContext;
@@ -764,11 +763,10 @@ public class MergeOp implements AutoCloseable {
change.setStatus(Change.Status.ABANDONED);
ChangeMessage msg = new ChangeMessage(
new ChangeMessage.Key(change.getId(),
ChangeUtil.messageUUID(ctx.getDb())),
null, change.getLastUpdatedOn(), change.currentPatchSetId());
msg.setMessage("Project was deleted.");
ChangeMessage msg = ChangeMessagesUtil.newMessage(
ctx.getDb(), change.currentPatchSetId(),
internalUserFactory.create(), change.getLastUpdatedOn(),
"Project was deleted.");
cmUtil.addChangeMessage(ctx.getDb(),
ctx.getUpdate(change.currentPatchSetId()), msg);

View File

@@ -22,8 +22,8 @@ import com.google.gerrit.reviewdb.client.LabelId;
import com.google.gerrit.reviewdb.client.PatchSet;
import com.google.gerrit.reviewdb.client.PatchSetApproval;
import com.google.gerrit.reviewdb.client.PatchSetInfo;
import com.google.gerrit.server.ApprovalsUtil;
import com.google.gerrit.server.ChangeMessagesUtil;
import com.google.gerrit.server.ChangeUtil;
import com.google.gerrit.server.PatchSetUtil;
import com.google.gerrit.server.extensions.events.ChangeMerged;
import com.google.gerrit.server.git.BatchUpdate.ChangeContext;
@@ -149,19 +149,13 @@ public class MergedByPushOp extends BatchUpdate.Op {
}
}
msgBuf.append(".");
ChangeMessage msg = new ChangeMessage(
new ChangeMessage.Key(change.getId(),
ChangeUtil.messageUUID(ctx.getDb())),
ctx.getAccountId(), ctx.getWhen(), psId);
msg.setMessage(msgBuf.toString());
ChangeMessage msg = ChangeMessagesUtil.newMessage(
ctx.getDb(), psId, ctx.getUser(), ctx.getWhen(), msgBuf.toString());
cmUtil.addChangeMessage(ctx.getDb(), update, msg);
PatchSetApproval submitter = new PatchSetApproval(
new PatchSetApproval.Key(
change.currentPatchSetId(),
ctx.getAccountId(),
LabelId.legacySubmit()),
(short) 1, ctx.getWhen());
PatchSetApproval submitter = ApprovalsUtil.newApproval(
change.currentPatchSetId(), ctx.getUser(), LabelId.legacySubmit(),
1, ctx.getWhen());
update.putApproval(submitter.getLabel(), submitter.getValue());
ctx.getDb().patchSetApprovals().upsert(
Collections.singleton(submitter));

View File

@@ -34,7 +34,6 @@ import com.google.gerrit.reviewdb.client.PatchSetInfo;
import com.google.gerrit.server.ApprovalCopier;
import com.google.gerrit.server.ApprovalsUtil;
import com.google.gerrit.server.ChangeMessagesUtil;
import com.google.gerrit.server.ChangeUtil;
import com.google.gerrit.server.PatchSetUtil;
import com.google.gerrit.server.account.AccountResolver;
import com.google.gerrit.server.change.ChangeKindCache;
@@ -279,11 +278,8 @@ public class ReplaceOp extends BatchUpdate.Op {
if (!Strings.isNullOrEmpty(reviewMessage)) {
message.append("\n").append(reviewMessage);
}
msg = new ChangeMessage(
new ChangeMessage.Key(change.getId(),
ChangeUtil.messageUUID(ctx.getDb())),
ctx.getAccountId(), ctx.getWhen(), patchSetId);
msg.setMessage(message.toString());
msg = ChangeMessagesUtil.newMessage(ctx.getDb(), patchSetId, ctx.getUser(),
ctx.getWhen(), message.toString());
cmUtil.addChangeMessage(ctx.getDb(), update, msg);
if (mergedByPushOp == null) {

View File

@@ -33,7 +33,8 @@ 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.reviewdb.server.ReviewDbUtil;
import com.google.gerrit.server.ChangeUtil;
import com.google.gerrit.server.ApprovalsUtil;
import com.google.gerrit.server.ChangeMessagesUtil;
import com.google.gerrit.server.IdentifiedUser;
import com.google.gerrit.server.git.BatchUpdate;
import com.google.gerrit.server.git.BatchUpdate.ChangeContext;
@@ -329,15 +330,9 @@ abstract class SubmitStrategyOp extends BatchUpdate.Op {
byKey.put(psa.getKey(), psa);
}
submitter = new PatchSetApproval(
new PatchSetApproval.Key(
psId,
ctx.getAccountId(),
LabelId.legacySubmit()),
(short) 1, ctx.getWhen());
submitter = ApprovalsUtil.newApproval(
psId, ctx.getUser(), LabelId.legacySubmit(), 1, ctx.getWhen());
byKey.put(submitter.getKey(), submitter);
submitter.setValue((short) 1);
submitter.setGranted(ctx.getWhen());
// Flatten out existing approvals for this patch set based upon the current
// permissions. Once the change is closed the approvals are not updated at
@@ -415,7 +410,7 @@ abstract class SubmitStrategyOp extends BatchUpdate.Op {
}
private ChangeMessage message(ChangeContext ctx, CodeReviewCommit commit,
CommitMergeStatus s) {
CommitMergeStatus s) throws OrmException {
checkNotNull(s, "CommitMergeStatus may not be null");
String txt = s.getMessage();
if (s == CommitMergeStatus.CLEAN_MERGE) {
@@ -452,19 +447,9 @@ abstract class SubmitStrategyOp extends BatchUpdate.Op {
}
private ChangeMessage message(ChangeContext ctx, PatchSet.Id psId,
String body) {
checkNotNull(psId);
String uuid;
try {
uuid = ChangeUtil.messageUUID(ctx.getDb());
} catch (OrmException e) {
return null;
}
ChangeMessage m = new ChangeMessage(
new ChangeMessage.Key(psId.getParentKey(), uuid),
ctx.getAccountId(), ctx.getWhen(), psId);
m.setMessage(body);
return m;
String body) throws OrmException {
return ChangeMessagesUtil.newMessage(
ctx.getDb(), psId, ctx.getUser(), ctx.getWhen(), body);
}
private void setMerged(ChangeContext ctx, ChangeMessage msg)