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 <[email protected]>
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
"[email protected]" <[email protected]>.

Reply via email to