You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by ol...@apache.org on 2016/04/26 11:32:44 UTC

svn commit: r1740978 - in /sling/trunk/bundles/commons/org.apache.sling.commons.messaging.mail/src/main/java/org/apache/sling/commons/messaging/mail/internal: SimpleMailBuilder.java SimpleMailBuilderConfiguration.java

Author: olli
Date: Tue Apr 26 09:32:44 2016
New Revision: 1740978

URL: http://svn.apache.org/viewvc?rev=1740978&view=rev
Log:
SLING-5644 Provide an messaging implementation based on Commons Email

make charset configurable

Modified:
    sling/trunk/bundles/commons/org.apache.sling.commons.messaging.mail/src/main/java/org/apache/sling/commons/messaging/mail/internal/SimpleMailBuilder.java
    sling/trunk/bundles/commons/org.apache.sling.commons.messaging.mail/src/main/java/org/apache/sling/commons/messaging/mail/internal/SimpleMailBuilderConfiguration.java

Modified: sling/trunk/bundles/commons/org.apache.sling.commons.messaging.mail/src/main/java/org/apache/sling/commons/messaging/mail/internal/SimpleMailBuilder.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/commons/org.apache.sling.commons.messaging.mail/src/main/java/org/apache/sling/commons/messaging/mail/internal/SimpleMailBuilder.java?rev=1740978&r1=1740977&r2=1740978&view=diff
==============================================================================
--- sling/trunk/bundles/commons/org.apache.sling.commons.messaging.mail/src/main/java/org/apache/sling/commons/messaging/mail/internal/SimpleMailBuilder.java (original)
+++ sling/trunk/bundles/commons/org.apache.sling.commons.messaging.mail/src/main/java/org/apache/sling/commons/messaging/mail/internal/SimpleMailBuilder.java Tue Apr 26 09:32:44 2016
@@ -51,22 +51,14 @@ public class SimpleMailBuilder implement
 
     // 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 implement
     @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);

Modified: sling/trunk/bundles/commons/org.apache.sling.commons.messaging.mail/src/main/java/org/apache/sling/commons/messaging/mail/internal/SimpleMailBuilderConfiguration.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/commons/org.apache.sling.commons.messaging.mail/src/main/java/org/apache/sling/commons/messaging/mail/internal/SimpleMailBuilderConfiguration.java?rev=1740978&r1=1740977&r2=1740978&view=diff
==============================================================================
--- sling/trunk/bundles/commons/org.apache.sling.commons.messaging.mail/src/main/java/org/apache/sling/commons/messaging/mail/internal/SimpleMailBuilderConfiguration.java (original)
+++ sling/trunk/bundles/commons/org.apache.sling.commons.messaging.mail/src/main/java/org/apache/sling/commons/messaging/mail/internal/SimpleMailBuilderConfiguration.java Tue Apr 26 09:32:44 2016
@@ -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.annotat
     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"
     )