From 6d28ded562a72e620eb6b4230e65bfe32c19b4a4 Mon Sep 17 00:00:00 2001 From: Martin Fick Date: Tue, 20 Jul 2010 14:16:20 -0600 Subject: [PATCH] Use internal templates to simplify minor formatting commands. Use internal templates in getChangeMessageThreadId, and to set the listId headers. These are not admin editable templates (they are not in files), they simply make the code a bit more readable and editable at very little cost since we already support velocity templating in emails. Additionaly, factor out the fromline creation to its own function. Change-Id: I197b239e657e1dd604b07510c4430675f05d84eb --- .../gerrit/server/mail/ChangeEmail.java | 35 ++++++------------ .../gerrit/server/mail/OutgoingEmail.java | 36 +++++++++++-------- 2 files changed, 32 insertions(+), 39 deletions(-) diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/mail/ChangeEmail.java b/gerrit-server/src/main/java/com/google/gerrit/server/mail/ChangeEmail.java index 664fb00fa9..6e641a2561 100644 --- a/gerrit-server/src/main/java/com/google/gerrit/server/mail/ChangeEmail.java +++ b/gerrit-server/src/main/java/com/google/gerrit/server/mail/ChangeEmail.java @@ -137,23 +137,19 @@ public abstract class ChangeEmail extends OutgoingEmail { setCommitIdHeader(); } - private void setListIdHeader() { + private void setListIdHeader() throws EmailException { // Set a reasonable list id so that filters can be used to sort messages - // - final StringBuilder listid = new StringBuilder(); - listid.append("gerrit-"); - listid.append(projectName.replace('/', '-')); - listid.append("@"); - listid.append(getGerritHost()); - - final String listidStr = listid.toString(); - setHeader("Mailing-List", "list " + listidStr); - setHeader("List-Id", "<" + listidStr.replace('@', '.') + ">"); + setVHeader("Mailing-List", "list $email.listId"); + setVHeader("List-Id", "<$email.listId.replace('@', '.')>"); if (getSettingsUrl() != null) { - setHeader("List-Unsubscribe", "<" + getSettingsUrl() + ">"); + setVHeader("List-Unsubscribe", "<$email.settingsUrl>"); } } + public String getListId() throws EmailException { + return velocify("gerrit-$projectName.replace('/', '-')@$email.gerritHost"); + } + private void setChangeUrlHeader() { final String u = getChangeUrl(); if (u != null) { @@ -184,18 +180,9 @@ public abstract class ChangeEmail extends OutgoingEmail { return null; } - protected String getChangeMessageThreadId() { - final StringBuilder r = new StringBuilder(); - r.append('<'); - r.append("gerrit"); - r.append('.'); - r.append(change.getCreatedOn().getTime()); - r.append('.'); - r.append(change.getKey().get()); - r.append('@'); - r.append(getGerritHost()); - r.append('>'); - return r.toString(); + public String getChangeMessageThreadId() throws EmailException { + return velocify(""); } /** Format the sender's "cover letter", {@link #getCoverLetter()}. */ diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/mail/OutgoingEmail.java b/gerrit-server/src/main/java/com/google/gerrit/server/mail/OutgoingEmail.java index 44e1063c2b..913e352828 100644 --- a/gerrit-server/src/main/java/com/google/gerrit/server/mail/OutgoingEmail.java +++ b/gerrit-server/src/main/java/com/google/gerrit/server/mail/OutgoingEmail.java @@ -150,24 +150,30 @@ public abstract class OutgoingEmail { body = new StringBuilder(); if (fromId != null && args.fromAddressGenerator.isGenericAddress(fromId)) { - final Account account = args.accountCache.get(fromId).getAccount(); - final String name = account.getFullName(); - final String email = account.getPreferredEmail(); - - if ((name != null && !name.isEmpty()) - || (email != null && !email.isEmpty())) { - body.append("From"); - if (name != null && !name.isEmpty()) { - body.append(" ").append(name); - } - if (email != null && !email.isEmpty()) { - body.append(" <").append(email).append(">"); - } - body.append(":\n\n"); - } + appendText(getFromLine()); } } + protected String getFromLine() { + final Account account = args.accountCache.get(fromId).getAccount(); + final String name = account.getFullName(); + final String email = account.getPreferredEmail(); + StringBuilder f = new StringBuilder(); + + if ((name != null && !name.isEmpty()) + || (email != null && !email.isEmpty())) { + f.append("From"); + if (name != null && !name.isEmpty()) { + f.append(" ").append(name); + } + if (email != null && !email.isEmpty()) { + f.append(" <").append(email).append(">"); + } + f.append(":\n\n"); + } + return f.toString(); + } + public String getGerritHost() { if (getGerritUrl() != null) { try {