Refactor PublishDraft into gerrit-server

This change moves logic that was duplicated over the ssh command and the
rpc handler into a PublishDraft class in gerrit-server.

Change-Id: I1569b8272fcf1e488e532332061e6224bc728cb8
This commit is contained in:
Conley Owens
2012-01-23 13:22:29 -08:00
parent bb8f3b66a2
commit b308feb72b
6 changed files with 122 additions and 64 deletions

View File

@@ -27,6 +27,7 @@ import com.google.gerrit.reviewdb.ReviewDb;
import com.google.gerrit.server.ChangeUtil;
import com.google.gerrit.server.IdentifiedUser;
import com.google.gerrit.server.changedetail.AbandonChange;
import com.google.gerrit.server.changedetail.PublishDraft;
import com.google.gerrit.server.changedetail.RestoreChange;
import com.google.gerrit.server.changedetail.Submit;
import com.google.gerrit.server.git.GitRepositoryManager;
@@ -131,6 +132,9 @@ public class ReviewCommand extends BaseCommand {
@Inject
private PublishComments.Factory publishCommentsFactory;
@Inject
private PublishDraft.Factory publishDraftFactory;
@Inject
private RestoreChange.Factory restoreChangeFactory;
@@ -248,13 +252,9 @@ public class ReviewCommand extends BaseCommand {
}
if (publishPatchSet) {
if (changeControl.canPublish(db)) {
ChangeUtil.publishDraftPatchSet(db, patchSetId);
} else {
throw error("Not permitted to publish draft patchset");
}
}
if (deleteDraftPatchSet) {
ReviewResult result = publishDraftFactory.create(patchSetId).call();
handleReviewResultErrors(result);
} else if (deleteDraftPatchSet) {
if (changeControl.isOwner() && changeControl.isVisible(db)) {
try {
ChangeUtil.deleteDraftPatchSet(patchSetId, gitManager, replication, patchSetInfoFactory, db);
@@ -288,6 +288,9 @@ public class ReviewCommand extends BaseCommand {
case CHANGE_IS_CLOSED:
errMsg += "change is closed";
break;
case PUBLISH_NOT_PERMITTED:
errMsg += "not permitted to publish change";
break;
case RULE_ERROR:
errMsg += "rule error";
break;