Remove old EditCommitMessage RPC

Change-Id: Ic25c5d68f3bb27423b7c6b829169e33c8361eba5
This commit is contained in:
David Ostrovsky
2013-12-06 22:10:09 +01:00
parent 890dd340b8
commit 0561211396
6 changed files with 22 additions and 127 deletions

View File

@@ -25,11 +25,6 @@ import com.google.gwtjsonrpc.common.RpcImpl.Version;
@RpcImpl(version = Version.V2_0)
public interface ChangeManageService extends RemoteJsonService {
@Audit
@SignInRequired
void createNewPatchSet(final PatchSet.Id patchSetId, final String newCommitMessage,
final AsyncCallback<ChangeDetail> callback);
@Audit
@SignInRequired
void publish(PatchSet.Id patchSetId, AsyncCallback<ChangeDetail> callback);

View File

@@ -42,7 +42,7 @@ public class ChangeDescriptionBlock extends Composite {
SubmitTypeRecord submitTypeRecord,
CommentLinkProcessor commentLinkProcessor) {
infoBlock.display(changeDetail, acc, submitTypeRecord);
messageBlock.display(changeDetail.getChange().currentPatchSetId(), starred,
messageBlock.display(changeDetail.getChange().currentPatchSetId(), info.getRevId(), starred,
canEditCommitMessage, info.getMessage(), commentLinkProcessor);
}
}

View File

@@ -14,17 +14,17 @@
package com.google.gerrit.client.changes;
import com.google.gerrit.client.ErrorDialog;
import com.google.gerrit.client.Gerrit;
import com.google.gerrit.client.rpc.GerritCallback;
import com.google.gerrit.client.ui.ChangeLink;
import com.google.gerrit.client.ui.CommentLinkProcessor;
import com.google.gerrit.client.ui.CommentedActionDialog;
import com.google.gerrit.client.ui.TextBoxChangeListener;
import com.google.gerrit.common.PageLinks;
import com.google.gerrit.common.data.ChangeDetail;
import com.google.gerrit.reviewdb.client.Change;
import com.google.gerrit.reviewdb.client.PatchSet;
import com.google.gwt.core.client.GWT;
import com.google.gwt.core.client.JavaScriptObject;
import com.google.gwt.dom.client.PreElement;
import com.google.gwt.dom.client.Style.Display;
import com.google.gwt.event.dom.client.ClickEvent;
@@ -70,13 +70,14 @@ public class CommitMessageBlock extends Composite {
public void display(String commitMessage,
CommentLinkProcessor commentLinkProcessor) {
display(null, null, false, commitMessage, commentLinkProcessor);
display(null, null, null, false, commitMessage, commentLinkProcessor);
}
private abstract class CommitMessageEditDialog extends CommentedActionDialog<ChangeDetail> {
private abstract class CommitMessageEditDialog
extends CommentedActionDialog<JavaScriptObject> {
private final String originalMessage;
public CommitMessageEditDialog(final String title, final String heading,
final String commitMessage, AsyncCallback<ChangeDetail> callback) {
final String commitMessage, AsyncCallback<JavaScriptObject> callback) {
super(title, heading, callback);
originalMessage = commitMessage.trim();
message.setCharacterWidth(72);
@@ -103,7 +104,7 @@ public class CommitMessageBlock extends Composite {
}
}
public void display(final PatchSet.Id patchSetId,
public void display(final PatchSet.Id patchSetId, final String revision,
Boolean starred, Boolean canEditCommitMessage, final String commitMessage,
CommentLinkProcessor commentLinkProcessor) {
starPanel.clear();
@@ -119,7 +120,7 @@ public class CommitMessageBlock extends Composite {
}
permalinkPanel.clear();
if (patchSetId != null) {
if (patchSetId != null && revision != null) {
final Change.Id changeId = patchSetId.getParentKey();
permalinkPanel.add(new ChangeLink(Util.C.changePermalink(), changeId));
permalinkPanel.add(new CopyableLabel(ChangeLink.permalink(changeId),
@@ -134,23 +135,19 @@ public class CommitMessageBlock extends Composite {
new CommitMessageEditDialog(Util.C.titleEditCommitMessage(),
Util.C.headingEditCommitMessage(),
commitMessage,
new ChangeDetailCache.IgnoreErrorCallback() {}) {
new GerritCallback<JavaScriptObject>() {
@Override
public void onSuccess(JavaScriptObject result) {}
}) {
@Override
public void onSend() {
Util.MANAGE_SVC.createNewPatchSet(patchSetId, getMessageText(),
new AsyncCallback<ChangeDetail>() {
ChangeApi.message(changeId.get(), revision, getMessageText(),
new GerritCallback<JavaScriptObject>() {
@Override
public void onSuccess(ChangeDetail result) {
public void onSuccess(JavaScriptObject msg) {
Gerrit.display(PageLinks.toChange(changeId));
hide();
}
@Override
public void onFailure(Throwable caught) {
enableButtons(true);
new ErrorDialog(caught.getMessage()).center();
}
});
}
}.center();

View File

@@ -17,7 +17,6 @@ package com.google.gerrit.httpd.rpc.changedetail;
import com.google.gerrit.common.data.ChangeDetail;
import com.google.gerrit.common.data.ChangeManageService;
import com.google.gerrit.reviewdb.client.PatchSet;
import com.google.gerrit.reviewdb.client.PatchSet.Id;
import com.google.gwtjsonrpc.common.AsyncCallback;
import com.google.gwtjsonrpc.common.VoidResult;
import com.google.inject.Inject;
@@ -26,18 +25,15 @@ class ChangeManageServiceImpl implements ChangeManageService {
private final RebaseChangeHandler.Factory rebaseChangeFactory;
private final PublishAction.Factory publishAction;
private final DeleteDraftChange.Factory deleteDraftChangeFactory;
private final EditCommitMessageHandler.Factory editCommitMessageHandlerFactory;
@Inject
ChangeManageServiceImpl(
final RebaseChangeHandler.Factory rebaseChangeFactory,
final PublishAction.Factory publishAction,
final DeleteDraftChange.Factory deleteDraftChangeFactory,
final EditCommitMessageHandler.Factory editCommitMessageHandler) {
final DeleteDraftChange.Factory deleteDraftChangeFactory) {
this.rebaseChangeFactory = rebaseChangeFactory;
this.publishAction = publishAction;
this.deleteDraftChangeFactory = deleteDraftChangeFactory;
this.editCommitMessageHandlerFactory = editCommitMessageHandler;
}
public void rebaseChange(final PatchSet.Id patchSetId,
@@ -54,9 +50,4 @@ class ChangeManageServiceImpl implements ChangeManageService {
final AsyncCallback<VoidResult> callback) {
deleteDraftChangeFactory.create(patchSetId).to(callback);
}
public void createNewPatchSet(Id patchSetId, String message,
AsyncCallback<ChangeDetail> callback) {
editCommitMessageHandlerFactory.create(patchSetId, message).to(callback);
}
}

View File

@@ -28,7 +28,6 @@ public class ChangeModule extends RpcServletModule {
install(new FactoryModule() {
@Override
protected void configure() {
factory(EditCommitMessageHandler.Factory.class);
factory(RebaseChangeHandler.Factory.class);
factory(ChangeDetailFactory.Factory.class);
factory(IncludedInDetailFactory.Factory.class);

View File

@@ -1,87 +0,0 @@
// Copyright (C) 2012 The Android Open Source Project
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
package com.google.gerrit.httpd.rpc.changedetail;
import com.google.gerrit.common.Nullable;
import com.google.gerrit.common.data.ChangeDetail;
import com.google.gerrit.common.errors.EmailException;
import com.google.gerrit.common.errors.NoSuchEntityException;
import com.google.gerrit.httpd.rpc.Handler;
import com.google.gerrit.reviewdb.client.Change;
import com.google.gerrit.reviewdb.client.PatchSet;
import com.google.gerrit.server.ChangeUtil;
import com.google.gerrit.server.GerritPersonIdent;
import com.google.gerrit.server.change.PatchSetInserter;
import com.google.gerrit.server.mail.CommitMessageEditedSender;
import com.google.gerrit.server.patch.PatchSetInfoNotAvailableException;
import com.google.gerrit.server.project.ChangeControl;
import com.google.gerrit.server.project.InvalidChangeOperationException;
import com.google.gerrit.server.project.NoSuchChangeException;
import com.google.gerrit.server.project.NoSuchProjectException;
import com.google.gwtorm.server.OrmException;
import com.google.inject.Inject;
import com.google.inject.assistedinject.Assisted;
import org.eclipse.jgit.errors.IncorrectObjectTypeException;
import org.eclipse.jgit.errors.MissingObjectException;
import org.eclipse.jgit.lib.PersonIdent;
import java.io.IOException;
class EditCommitMessageHandler extends Handler<ChangeDetail> {
interface Factory {
EditCommitMessageHandler create(PatchSet.Id patchSetId, String message);
}
private final ChangeControl.Factory changeControlFactory;
private final ChangeDetailFactory.Factory changeDetailFactory;
private final ChangeUtil changeUtil;
private final PatchSet.Id patchSetId;
@Nullable
private final String message;
private final PersonIdent myIdent;
@Inject
EditCommitMessageHandler(ChangeControl.Factory changeControlFactory,
ChangeDetailFactory.Factory changeDetailFactory,
CommitMessageEditedSender.Factory commitMessageEditedSenderFactory,
@Assisted PatchSet.Id patchSetId,
@Assisted @Nullable String message,
ChangeUtil changeUtil,
@GerritPersonIdent PersonIdent myIdent,
PatchSetInserter.Factory patchSetInserterFactory) {
this.changeControlFactory = changeControlFactory;
this.changeDetailFactory = changeDetailFactory;
this.changeUtil = changeUtil;
this.patchSetId = patchSetId;
this.message = message;
this.myIdent = myIdent;
}
@Override
public ChangeDetail call() throws NoSuchChangeException, OrmException,
EmailException, NoSuchEntityException, PatchSetInfoNotAvailableException,
MissingObjectException, IncorrectObjectTypeException, IOException,
InvalidChangeOperationException, NoSuchProjectException {
Change.Id changeId = patchSetId.getParentKey();
ChangeControl control = changeControlFactory.validateFor(changeId);
if (!control.canAddPatchSet()) {
throw new InvalidChangeOperationException(
"Not allowed to add new Patch Sets to: " + changeId.toString());
}
changeUtil.editCommitMessage(control, patchSetId, message, myIdent);
return changeDetailFactory.create(changeId).call();
}
}