summaryrefslogtreecommitdiffstats
path: root/gerrit-server/src/main/java
diff options
context:
space:
mode:
Diffstat (limited to 'gerrit-server/src/main/java')
-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
2 files changed, 46 insertions, 3 deletions
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;
}