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"
)