diff options
Diffstat (limited to 'gerrit-server/src/main/java/com/google/gerrit/server')
-rw-r--r-- | gerrit-server/src/main/java/com/google/gerrit/server/mail/BuildApprovedSender.java | 38 | ||||
-rw-r--r-- | gerrit-server/src/main/java/com/google/gerrit/server/patch/PublishComments.java | 11 |
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; } |