summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTomas Ljunggren <tomas.ljunggren@tieto.com>2012-03-13 07:56:44 +0100
committerTomas Ljunggren <tomas.ljunggren@tieto.com>2012-03-13 07:57:37 +0100
commit63b9d6e194daccaeedf7f8c221c7f60fc3fcbe18 (patch)
tree4b46cd0fa2cb05a938a4ff35492878ba68d237d0
parentd50800422f5cfd99015600125b4e6467c9a2eca0 (diff)
parentf8501d6f1301789482a8d67d98c43e7a9adde9cb (diff)
Integration release of NQt GerritRC-V2.2.1-INT-013
Fixed JIRA issues: 167 Fixed gerrit email verification link requires insecure login 195 Added support for European style dates 220 Added a check to prevent NumberFormatException 270 Fixed review database update from StagingApprove 335 Fixed automatic update of reviewer list 340 Don't send mail for publishing comments for stage approved 347 Fixed late removal of review approvals 348 Fixed cherry pick footer settings 350 Consider sanity review column 352 Fix typo in project config's topic review checkbox label 355 Hide review panel also on diff and topic pages 372 Validate topic current change set 375 Topic permalink copy to clipboard corrected 381 Do not permit trailing slash when pushing 382 Added a check to prevent NullPointerException Added a check to prevent ArrayIndexOutOfBoundsException 385 Keep highlight on review request 389 Set patch approval changeOpen to false 411 Updated to use current patch id in loadFileList method. 456 Remove leading and trailing whitespace in username when creating a request 462 Updated for eclipse 3.7, m2e and fixed the full name of the MAVEN2_CLASSPATH_CONTAINER 468 Fixed the Review score put on wrong change Change-Id: I582efb8b60f5bd1df72462d326a051d0dc27b047
-rw-r--r--gerrit-httpd/src/main/java/com/google/gerrit/httpd/rpc/patch/PatchDetailServiceImpl.java2
-rw-r--r--gerrit-server/src/main/java/com/google/gerrit/server/mail/BuildApprovedSender.java38
-rw-r--r--gerrit-server/src/main/java/com/google/gerrit/server/patch/PublishComments.java11
-rw-r--r--gerrit-server/src/main/resources/com/google/gerrit/server/mail/BuildApproved.vm2
-rw-r--r--gerrit-server/src/test/java/com/google/gerrit/server/mail/BuildApprovedSenderTest.java22
-rw-r--r--gerrit-sshd/src/main/java/com/google/gerrit/sshd/commands/ReviewCommand.java2
-rw-r--r--gerrit-sshd/src/main/java/com/google/gerrit/sshd/commands/StagingApprove.java9
7 files changed, 76 insertions, 10 deletions
diff --git a/gerrit-httpd/src/main/java/com/google/gerrit/httpd/rpc/patch/PatchDetailServiceImpl.java b/gerrit-httpd/src/main/java/com/google/gerrit/httpd/rpc/patch/PatchDetailServiceImpl.java
index 300d1ae0d9..b3730cd216 100644
--- a/gerrit-httpd/src/main/java/com/google/gerrit/httpd/rpc/patch/PatchDetailServiceImpl.java
+++ b/gerrit-httpd/src/main/java/com/google/gerrit/httpd/rpc/patch/PatchDetailServiceImpl.java
@@ -129,7 +129,7 @@ class PatchDetailServiceImpl extends BaseServiceImplementation implements
public void publishComments(final PatchSet.Id psid, final String msg,
final Set<ApprovalCategoryValue.Id> tags,
final AsyncCallback<VoidResult> cb) {
- Handler.wrap(publishCommentsFactory.create(psid, msg, tags)).to(cb);
+ Handler.wrap(publishCommentsFactory.create(psid, msg, tags, true)).to(cb);
}
/**
diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/mail/BuildApprovedSender.java b/gerrit-server/src/main/java/com/google/gerrit/server/mail/BuildApprovedSender.java
index f4ec23f166..b56b4ef49e 100644
--- a/gerrit-server/src/main/java/com/google/gerrit/server/mail/BuildApprovedSender.java
+++ b/gerrit-server/src/main/java/com/google/gerrit/server/mail/BuildApprovedSender.java
@@ -27,6 +27,9 @@ import com.google.gwtorm.client.OrmException;
import com.google.inject.Inject;
import com.google.inject.assistedinject.Assisted;
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.io.StringReader;
import java.util.HashMap;
import java.util.Map;
@@ -37,6 +40,7 @@ public class BuildApprovedSender extends ReplyToChangeSender {
}
private final ApprovalTypes approvalTypes;
+ private String buildApprovedMessage;
@Inject
public BuildApprovedSender(EmailArguments ea, ApprovalTypes at, @Assisted Change c) {
@@ -44,6 +48,10 @@ public class BuildApprovedSender extends ReplyToChangeSender {
approvalTypes = at;
}
+ public void setBuildApprovedMessage(final String m) {
+ buildApprovedMessage = m;
+ }
+
@Override
protected void init() throws EmailException {
super.init();
@@ -83,6 +91,36 @@ public class BuildApprovedSender extends ReplyToChangeSender {
return "";
}
+ public String getBuildApprovedMessage() {
+ if (buildApprovedMessage == null) {
+ return "";
+ }
+ StringBuilder txt = new StringBuilder();
+ txt.append("Message:");
+ txt.append('\n');
+ BufferedReader r = new BufferedReader(new StringReader(buildApprovedMessage));
+ String l;
+ try {
+ l = r.readLine();
+ while (l != null) {
+ txt.append(" "); // Indent 2 spaces for each line in message
+ txt.append(l);
+ txt.append('\n');
+ l = r.readLine();
+ }
+ } catch (IOException e) {
+ // Ignore
+ } finally {
+ try {
+ r.close();
+ } catch (IOException e) {
+ // Ignore
+ }
+ }
+ txt.append('\n');
+ return txt.toString();
+ }
+
private String format(final String type,
final Map<Account.Id, Map<ApprovalCategory.Id, PatchSetApproval>> list) {
StringBuilder txt = new StringBuilder();
diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/patch/PublishComments.java b/gerrit-server/src/main/java/com/google/gerrit/server/patch/PublishComments.java
index ce2e796d4d..686f0fb0c4 100644
--- a/gerrit-server/src/main/java/com/google/gerrit/server/patch/PublishComments.java
+++ b/gerrit-server/src/main/java/com/google/gerrit/server/patch/PublishComments.java
@@ -67,7 +67,7 @@ public class PublishComments implements Callable<VoidResult> {
public interface Factory {
PublishComments create(PatchSet.Id patchSetId, String messageText,
- Set<ApprovalCategoryValue.Id> approvals);
+ Set<ApprovalCategoryValue.Id> approvals, boolean sendMail);
}
private final ReviewDb db;
@@ -92,6 +92,7 @@ public class PublishComments implements Callable<VoidResult> {
private PatchSet patchSet;
private ChangeMessage message;
private List<PatchLineComment> drafts;
+ private boolean sendMail = true;
@Inject
PublishComments(final ReviewDb db, final IdentifiedUser user,
@@ -107,7 +108,8 @@ public class PublishComments implements Callable<VoidResult> {
@GerritServerConfig final Config config,
@Assisted final PatchSet.Id patchSetId,
@Assisted final String messageText,
- @Assisted final Set<ApprovalCategoryValue.Id> approvals) {
+ @Assisted final Set<ApprovalCategoryValue.Id> approvals,
+ @Assisted final boolean sendMail) {
this.db = db;
this.user = user;
this.types = approvalTypes;
@@ -123,6 +125,7 @@ public class PublishComments implements Callable<VoidResult> {
this.patchSetId = patchSetId;
this.messageText = messageText;
this.approvals = approvals;
+ this.sendMail = sendMail;
}
@Override
@@ -156,7 +159,9 @@ public class PublishComments implements Callable<VoidResult> {
}
touchChange();
- email();
+ if (sendMail) {
+ email();
+ }
fireHook();
return VoidResult.INSTANCE;
}
diff --git a/gerrit-server/src/main/resources/com/google/gerrit/server/mail/BuildApproved.vm b/gerrit-server/src/main/resources/com/google/gerrit/server/mail/BuildApproved.vm
index 4d05422c9e..75fbdb2dee 100644
--- a/gerrit-server/src/main/resources/com/google/gerrit/server/mail/BuildApproved.vm
+++ b/gerrit-server/src/main/resources/com/google/gerrit/server/mail/BuildApproved.vm
@@ -41,4 +41,4 @@ Change subject: $change.subject
......................................................................
-$email.changeDetail$email.approvals
+$email.changeDetail$email.approvals$email.buildApprovedMessage
diff --git a/gerrit-server/src/test/java/com/google/gerrit/server/mail/BuildApprovedSenderTest.java b/gerrit-server/src/test/java/com/google/gerrit/server/mail/BuildApprovedSenderTest.java
new file mode 100644
index 0000000000..290a9f19ab
--- /dev/null
+++ b/gerrit-server/src/test/java/com/google/gerrit/server/mail/BuildApprovedSenderTest.java
@@ -0,0 +1,22 @@
+package com.google.gerrit.server.mail;
+
+import static org.junit.Assert.*;
+
+import org.junit.Test;
+
+public class BuildApprovedSenderTest {
+
+ @Test
+ public void testGetBuildApprovedMessage() {
+
+ String message = "This is a\nmessage\nover several\nlines with indented\nrows";
+ String expected = "Message:\n This is a\n message\n over several\n lines with indented\n rows\n\n";
+
+
+ BuildApprovedSender sender = new BuildApprovedSender(null, null, null);
+ assertEquals("", sender.getBuildApprovedMessage());
+ sender.setBuildApprovedMessage(message);
+ assertEquals(expected, sender.getBuildApprovedMessage());
+ }
+
+}
diff --git a/gerrit-sshd/src/main/java/com/google/gerrit/sshd/commands/ReviewCommand.java b/gerrit-sshd/src/main/java/com/google/gerrit/sshd/commands/ReviewCommand.java
index 7085a0466b..a50441d95b 100644
--- a/gerrit-sshd/src/main/java/com/google/gerrit/sshd/commands/ReviewCommand.java
+++ b/gerrit-sshd/src/main/java/com/google/gerrit/sshd/commands/ReviewCommand.java
@@ -292,7 +292,7 @@ public class ReviewCommand extends BaseCommand {
}
}
- publishCommentsFactory.create(patchSetId, changeComment, aps).call();
+ publishCommentsFactory.create(patchSetId, changeComment, aps, true).call();
try {
if (abandonChange) {
diff --git a/gerrit-sshd/src/main/java/com/google/gerrit/sshd/commands/StagingApprove.java b/gerrit-sshd/src/main/java/com/google/gerrit/sshd/commands/StagingApprove.java
index 9cc6fe3bd8..c0830c27c7 100644
--- a/gerrit-sshd/src/main/java/com/google/gerrit/sshd/commands/StagingApprove.java
+++ b/gerrit-sshd/src/main/java/com/google/gerrit/sshd/commands/StagingApprove.java
@@ -218,6 +218,9 @@ public class StagingApprove extends BaseCommand {
// Validate change status and destination branch.
validateChanges();
+ // Use current message or read it from stdin.
+ prepareMessage();
+
// If result is passed, check that the user has required access rights
// to submit changes.
if (passed) {
@@ -237,9 +240,6 @@ public class StagingApprove extends BaseCommand {
merger, hooks);
}
- // Use current message or read it from stdin.
- prepareMessage();
-
// Iterate through each open change and publish message.
for (PatchSet patchSet : toApprove) {
final PatchSet.Id patchSetId = patchSet.getId();
@@ -345,7 +345,7 @@ public class StagingApprove extends BaseCommand {
IOException, InvalidChangeOperationException {
if (message != null && message.length() > 0) {
publishCommentsFactory.create(patchSetId, message,
- new HashSet<ApprovalCategoryValue.Id>()).call();
+ new HashSet<ApprovalCategoryValue.Id>(), false).call();
}
}
@@ -493,6 +493,7 @@ public class StagingApprove extends BaseCommand {
final Change change = db.changes().get(changeId);
final BuildApprovedSender sender = buildApprovedFactory.create(change);
+ sender.setBuildApprovedMessage(message);
sender.setFrom(currentUser.getAccountId());
sender.setPatchSet(patchSet);
sender.send();