You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by ro...@apache.org on 2017/10/20 14:36:00 UTC
[sling-org-apache-sling-commons-messaging-mail] 06/12: SLING-5644
Provide an messaging implementation based on Commons Email
This is an automated email from the ASF dual-hosted git repository.
rombert pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-commons-messaging-mail.git
commit eb1c93b34ad94af8eef4f74c116b8919bc2f928e
Author: Oliver Lietz <ol...@apache.org>
AuthorDate: Tue Apr 26 09:32:44 2016 +0000
SLING-5644 Provide an messaging implementation based on Commons Email
make charset configurable
git-svn-id: https://svn.apache.org/repos/asf/sling/trunk@1740978 13f79535-47bb-0310-9956-ffa450edef68
---
.../messaging/mail/internal/SimpleMailBuilder.java | 41 +++++++---------------
.../internal/SimpleMailBuilderConfiguration.java | 7 ++++
2 files changed, 20 insertions(+), 28 deletions(-)
diff --git a/src/main/java/org/apache/sling/commons/messaging/mail/internal/SimpleMailBuilder.java b/src/main/java/org/apache/sling/commons/messaging/mail/internal/SimpleMailBuilder.java
index e26ea71..1c04f0b 100644
--- a/src/main/java/org/apache/sling/commons/messaging/mail/internal/SimpleMailBuilder.java
+++ b/src/main/java/org/apache/sling/commons/messaging/mail/internal/SimpleMailBuilder.java
@@ -51,22 +51,14 @@ public class SimpleMailBuilder implements MailBuilder {
// TODO use encryption and support more configuration options
- private String subject;
-
- private String from;
-
- private String smtpHostname;
-
- private int smtpPort;
-
- private String smtpUsername;
-
- private String smtpPassword;
+ private SimpleMailBuilderConfiguration configuration;
private static final String SUBJECT_KEY = "mail.subject";
private static final String FROM_KEY = "mail.from";
+ private static final String CHARSET_KEY = "mail.charset";
+
private static final String SMTP_HOSTNAME_KEY = "mail.smtp.hostname";
private static final String SMTP_PORT_KEY = "mail.smtp.port";
@@ -83,35 +75,28 @@ public class SimpleMailBuilder implements MailBuilder {
@Activate
private void activate(final SimpleMailBuilderConfiguration configuration) {
logger.debug("activate");
- configure(configuration);
+ this.configuration = configuration;
}
@Modified
private void modified(final SimpleMailBuilderConfiguration configuration) {
logger.debug("modified");
- configure(configuration);
- }
-
- private void configure(final SimpleMailBuilderConfiguration configuration) {
- subject = configuration.subject();
- from = configuration.from();
- smtpHostname = configuration.smtpHostname();
- smtpPort = configuration.smtpPort();
- smtpUsername = configuration.smtpUsername();
- smtpPassword = configuration.smtpPassword();
+ this.configuration = configuration;
}
@Override
public Email build(@Nonnull final String message, @Nonnull final String recipient, @Nonnull final Map data) throws EmailException {
final Map configuration = (Map) data.getOrDefault("mail", Collections.EMPTY_MAP);
- final String subject = (String) configuration.getOrDefault(SUBJECT_KEY, this.subject);
- final String from = (String) configuration.getOrDefault(FROM_KEY, this.from);
- final String smtpHostname = (String) configuration.getOrDefault(SMTP_HOSTNAME_KEY, this.smtpHostname);
- final int smtpPort = (Integer) configuration.getOrDefault(SMTP_PORT_KEY, this.smtpPort);
- final String smtpUsername = (String) configuration.getOrDefault(SMTP_USERNAME_KEY, this.smtpUsername);
- final String smtpPassword = (String) configuration.getOrDefault(SMTP_PASSWORD_KEY, this.smtpPassword);
+ final String subject = (String) configuration.getOrDefault(SUBJECT_KEY, this.configuration.subject());
+ final String from = (String) configuration.getOrDefault(FROM_KEY, this.configuration.from());
+ final String charset = (String) configuration.getOrDefault(CHARSET_KEY, this.configuration.charset());
+ final String smtpHostname = (String) configuration.getOrDefault(SMTP_HOSTNAME_KEY, this.configuration.smtpHostname());
+ final int smtpPort = (Integer) configuration.getOrDefault(SMTP_PORT_KEY, this.configuration.smtpPort());
+ final String smtpUsername = (String) configuration.getOrDefault(SMTP_USERNAME_KEY, this.configuration.smtpUsername());
+ final String smtpPassword = (String) configuration.getOrDefault(SMTP_PASSWORD_KEY, this.configuration.smtpPassword());
final Email email = new SimpleEmail();
+ email.setCharset(charset);
email.setMsg(message);
email.addTo(recipient);
email.setSubject(subject);
diff --git a/src/main/java/org/apache/sling/commons/messaging/mail/internal/SimpleMailBuilderConfiguration.java b/src/main/java/org/apache/sling/commons/messaging/mail/internal/SimpleMailBuilderConfiguration.java
index 5b63185..4801453 100644
--- a/src/main/java/org/apache/sling/commons/messaging/mail/internal/SimpleMailBuilderConfiguration.java
+++ b/src/main/java/org/apache/sling/commons/messaging/mail/internal/SimpleMailBuilderConfiguration.java
@@ -18,6 +18,7 @@
*/
package org.apache.sling.commons.messaging.mail.internal;
+import org.apache.commons.mail.EmailConstants;
import org.osgi.service.metatype.annotations.AttributeDefinition;
import org.osgi.service.metatype.annotations.ObjectClassDefinition;
@@ -40,6 +41,12 @@ import org.osgi.service.metatype.annotations.ObjectClassDefinition;
String from();
@AttributeDefinition(
+ name = "charset",
+ description = "charset to use for mails"
+ )
+ String charset() default EmailConstants.UTF_8;
+
+ @AttributeDefinition(
name = "SMTP hostname",
description = "hostname of SMTP server"
)
--
To stop receiving notification emails like this one, please contact
"commits@sling.apache.org" <co...@sling.apache.org>.