Revert "Simplify [ReceivePack]MessageSender logic"
This reverts commit 7c4f0c3f30
.
Reason for revert: Google uses a different MessageSender implementation
internally.
The rebased version of this revert keeps the cosmetic variable
renamings.
Change-Id: Ieda44268c38819dd887e9563effc794e278e6810
This commit is contained in:
@@ -331,7 +331,7 @@ class InProcessProtocol extends TestProtocol<Context> {
|
||||
}
|
||||
|
||||
AsyncReceiveCommits arc =
|
||||
factory.create(projectState, identifiedUser, db, ImmutableSetMultimap.of());
|
||||
factory.create(projectState, identifiedUser, db, null, ImmutableSetMultimap.of());
|
||||
if (arc.canUpload() != Capable.OK) {
|
||||
throw new ServiceNotAuthorizedException();
|
||||
}
|
||||
|
@@ -309,7 +309,7 @@ public class GitOverHttpServlet extends GitServlet {
|
||||
|
||||
AsyncReceiveCommits arc =
|
||||
factory.create(
|
||||
state, userProvider.get().asIdentifiedUser(), db, ImmutableSetMultimap.of());
|
||||
state, userProvider.get().asIdentifiedUser(), db, null, ImmutableSetMultimap.of());
|
||||
ReceivePack rp = arc.getReceivePack();
|
||||
req.setAttribute(ATT_ARC, arc);
|
||||
return rp;
|
||||
|
@@ -16,6 +16,7 @@ package com.google.gerrit.server.git.receive;
|
||||
|
||||
import com.google.common.collect.SetMultimap;
|
||||
import com.google.common.flogger.FluentLogger;
|
||||
import com.google.gerrit.common.Nullable;
|
||||
import com.google.gerrit.common.data.Capable;
|
||||
import com.google.gerrit.extensions.restapi.AuthException;
|
||||
import com.google.gerrit.extensions.restapi.ResourceConflictException;
|
||||
@@ -81,6 +82,7 @@ public class AsyncReceiveCommits implements PreReceiveHook {
|
||||
ProjectState projectState,
|
||||
IdentifiedUser user,
|
||||
Repository repository,
|
||||
@Nullable MessageSender messageSender,
|
||||
SetMultimap<ReviewerStateInternal, Account.Id> extraReviewers);
|
||||
}
|
||||
|
||||
@@ -114,6 +116,7 @@ public class AsyncReceiveCommits implements PreReceiveHook {
|
||||
receiveCommits =
|
||||
factory.create(projectState, user, receivePack, allRefsWatcher, extraReviewers);
|
||||
receiveCommits.init();
|
||||
receiveCommits.setMessageSender(messageSender);
|
||||
progress = new MultiProgressMonitor(new MessageSenderOutputStream(), "Processing changes");
|
||||
}
|
||||
|
||||
@@ -180,6 +183,7 @@ public class AsyncReceiveCommits implements PreReceiveHook {
|
||||
private final ProjectState projectState;
|
||||
private final IdentifiedUser user;
|
||||
private final Repository repo;
|
||||
private final MessageSender messageSender;
|
||||
private final SetMultimap<ReviewerStateInternal, Account.Id> extraReviewers;
|
||||
private final AllRefsWatcher allRefsWatcher;
|
||||
|
||||
@@ -198,6 +202,7 @@ public class AsyncReceiveCommits implements PreReceiveHook {
|
||||
@Assisted ProjectState projectState,
|
||||
@Assisted IdentifiedUser user,
|
||||
@Assisted Repository repo,
|
||||
@Assisted @Nullable MessageSender messageSender,
|
||||
@Assisted SetMultimap<ReviewerStateInternal, Account.Id> extraReviewers)
|
||||
throws PermissionBackendException {
|
||||
this.factory = factory;
|
||||
@@ -209,6 +214,7 @@ public class AsyncReceiveCommits implements PreReceiveHook {
|
||||
this.projectState = projectState;
|
||||
this.user = user;
|
||||
this.repo = repo;
|
||||
this.messageSender = messageSender;
|
||||
this.extraReviewers = extraReviewers;
|
||||
|
||||
Project.NameKey projectName = projectState.getNameKey();
|
||||
|
@@ -256,19 +256,23 @@ class ReceiveCommits {
|
||||
SetMultimap<ReviewerStateInternal, Account.Id> extraReviewers);
|
||||
}
|
||||
|
||||
public class MessageSender {
|
||||
private class ReceivePackMessageSender implements MessageSender {
|
||||
@Override
|
||||
public void sendMessage(String what) {
|
||||
receivePack.sendMessage(what);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void sendError(String what) {
|
||||
receivePack.sendError(what);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void sendBytes(byte[] what) {
|
||||
sendBytes(what, 0, what.length);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void sendBytes(byte[] what, int off, int len) {
|
||||
try {
|
||||
receivePack.getMessageOutputStream().write(what, off, len);
|
||||
@@ -277,6 +281,7 @@ class ReceiveCommits {
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void flush() {
|
||||
try {
|
||||
receivePack.getMessageOutputStream().flush();
|
||||
@@ -510,7 +515,7 @@ class ReceiveCommits {
|
||||
projectState.is(BooleanProjectConfig.CREATE_NEW_CHANGE_FOR_ALL_NOT_IN_TARGET);
|
||||
|
||||
// Handles for outputting back over the wire to the end user.
|
||||
messageSender = new MessageSender();
|
||||
messageSender = new ReceivePackMessageSender();
|
||||
}
|
||||
|
||||
void init() {
|
||||
@@ -519,7 +524,15 @@ class ReceiveCommits {
|
||||
}
|
||||
}
|
||||
|
||||
/** Set a message sender for this operation. */
|
||||
void setMessageSender(MessageSender ms) {
|
||||
messageSender = ms != null ? ms : new ReceivePackMessageSender();
|
||||
}
|
||||
|
||||
MessageSender getMessageSender() {
|
||||
if (messageSender == null) {
|
||||
setMessageSender(null);
|
||||
}
|
||||
return messageSender;
|
||||
}
|
||||
|
||||
|
@@ -88,7 +88,7 @@ final class Receive extends AbstractGitCommand {
|
||||
throw new Failure(1, "fatal: unable to check permissions " + e);
|
||||
}
|
||||
|
||||
AsyncReceiveCommits arc = factory.create(projectState, currentUser, repo, reviewers);
|
||||
AsyncReceiveCommits arc = factory.create(projectState, currentUser, repo, null, reviewers);
|
||||
|
||||
try {
|
||||
Capable r = arc.canUpload();
|
||||
|
Reference in New Issue
Block a user