You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by da...@apache.org on 2015/01/07 00:25:58 UTC

[20/47] isis git commit: ISIS-987: no longer inject applicationName into EmailNotificationServiceDefault

ISIS-987: no longer inject applicationName into EmailNotificationServiceDefault

... because we don't (yet) support this for Isis-managed services.  Instead, pass the application name as part of the event.

Also:
- minor tweaks to HTML templates


Project: http://git-wip-us.apache.org/repos/asf/isis/repo
Commit: http://git-wip-us.apache.org/repos/asf/isis/commit/ef48bd0d
Tree: http://git-wip-us.apache.org/repos/asf/isis/tree/ef48bd0d
Diff: http://git-wip-us.apache.org/repos/asf/isis/diff/ef48bd0d

Branch: refs/heads/ISIS-985
Commit: ef48bd0d894d66e0a43779b066db3eb0a47336d3
Parents: 6d8de64
Author: Dan Haywood <da...@haywood-associates.co.uk>
Authored: Sun Jan 4 15:47:04 2015 +0000
Committer: Dan Haywood <da...@haywood-associates.co.uk>
Committed: Sun Jan 4 15:47:04 2015 +0000

----------------------------------------------------------------------
 .../password_reset/PasswordResetEmailPanel.java |  9 ++++-
 .../password_reset/PasswordResetPanel.java      |  4 +++
 .../accmngt/signup/RegistrationFormPanel.java   |  9 ++++-
 .../email/events/EmailEventAbstract.java        |  8 ++++-
 .../email/events/EmailRegistrationEvent.java    |  7 ++--
 .../email/events/PasswordResetEvent.java        |  7 ++--
 .../email/EmailNotificationServiceDefault.java  | 36 ++++++++++----------
 .../email/EmailVerificationTemplate.html        |  8 +++--
 .../services/email/PasswordResetTemplate.html   |  8 +++--
 9 files changed, 65 insertions(+), 31 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/isis/blob/ef48bd0d/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/accmngt/password_reset/PasswordResetEmailPanel.java
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/accmngt/password_reset/PasswordResetEmailPanel.java b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/accmngt/password_reset/PasswordResetEmailPanel.java
index 804b2df..e7a1899 100644
--- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/accmngt/password_reset/PasswordResetEmailPanel.java
+++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/accmngt/password_reset/PasswordResetEmailPanel.java
@@ -23,6 +23,7 @@ import java.util.HashMap;
 import java.util.Map;
 import java.util.UUID;
 import javax.inject.Inject;
+import com.google.inject.name.Named;
 import org.apache.wicket.markup.html.form.Button;
 import org.apache.wicket.markup.html.form.RequiredTextField;
 import org.apache.wicket.markup.html.form.StatelessForm;
@@ -76,7 +77,8 @@ public class PasswordResetEmailPanel extends Panel {
 
                 String confirmationUrl = createUrl(email);
 
-                boolean emailSent = emailService.send(new PasswordResetEvent(email, confirmationUrl));
+                final PasswordResetEvent passwordResetEvent = new PasswordResetEvent(email, confirmationUrl, applicationName);
+                boolean emailSent = emailService.send(passwordResetEvent);
                 if (emailSent) {
                     Map<String, String> map = new HashMap<>();
                     map.put("email", email);
@@ -109,4 +111,9 @@ public class PasswordResetEmailPanel extends Panel {
 
     @Inject
     private EmailNotificationService emailService;
+
+    @com.google.inject.Inject
+    @Named("applicationName")
+    private String applicationName;
+
 }

http://git-wip-us.apache.org/repos/asf/isis/blob/ef48bd0d/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/accmngt/password_reset/PasswordResetPanel.java
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/accmngt/password_reset/PasswordResetPanel.java b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/accmngt/password_reset/PasswordResetPanel.java
index 2373af1..a49429f 100644
--- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/accmngt/password_reset/PasswordResetPanel.java
+++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/accmngt/password_reset/PasswordResetPanel.java
@@ -26,6 +26,7 @@ import java.util.HashMap;
 import java.util.Map;
 import java.util.concurrent.Callable;
 import javax.inject.Inject;
+import com.google.inject.name.Named;
 import org.apache.wicket.Page;
 import org.apache.wicket.markup.html.form.Button;
 import org.apache.wicket.markup.html.form.PasswordTextField;
@@ -111,4 +112,7 @@ public class PasswordResetPanel extends Panel {
 
     @Inject
     private PageClassRegistry pageClassRegistry;
+
 }
+
+

http://git-wip-us.apache.org/repos/asf/isis/blob/ef48bd0d/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/accmngt/signup/RegistrationFormPanel.java
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/accmngt/signup/RegistrationFormPanel.java b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/accmngt/signup/RegistrationFormPanel.java
index e233732..c1a55b4 100644
--- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/accmngt/signup/RegistrationFormPanel.java
+++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/accmngt/signup/RegistrationFormPanel.java
@@ -25,6 +25,7 @@ import java.util.HashMap;
 import java.util.Map;
 import java.util.UUID;
 import javax.inject.Inject;
+import com.google.inject.name.Named;
 import org.apache.wicket.markup.html.form.Button;
 import org.apache.wicket.markup.html.form.RequiredTextField;
 import org.apache.wicket.markup.html.form.StatelessForm;
@@ -87,7 +88,8 @@ public class RegistrationFormPanel extends Panel {
                  */
                 emailService.init();
 
-                boolean emailSent = emailService.send(new EmailRegistrationEvent(email, confirmationUrl));
+                final EmailRegistrationEvent emailRegistrationEvent = new EmailRegistrationEvent(email, confirmationUrl, applicationName);
+                boolean emailSent = emailService.send(emailRegistrationEvent);
                 if (emailSent) {
                     Map<String, String> map = new HashMap<>();
                     map.put("email", email);
@@ -119,4 +121,9 @@ public class RegistrationFormPanel extends Panel {
 
     @Inject
     private EmailNotificationService emailService;
+
+    @com.google.inject.Inject
+    @Named("applicationName")
+    private String applicationName;
+
 }

http://git-wip-us.apache.org/repos/asf/isis/blob/ef48bd0d/core/applib/src/main/java/org/apache/isis/applib/services/email/events/EmailEventAbstract.java
----------------------------------------------------------------------
diff --git a/core/applib/src/main/java/org/apache/isis/applib/services/email/events/EmailEventAbstract.java b/core/applib/src/main/java/org/apache/isis/applib/services/email/events/EmailEventAbstract.java
index d9371ee..36949aa 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/services/email/events/EmailEventAbstract.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/services/email/events/EmailEventAbstract.java
@@ -7,12 +7,15 @@ public abstract class EmailEventAbstract {
 
     private final String email;
     private final String confirmationUrl;
+    private final String applicationName;
 
     public EmailEventAbstract(
             final String email,
-            final String confirmationUrl) {
+            final String confirmationUrl,
+            final String applicationName) {
         this.email = email;
         this.confirmationUrl = confirmationUrl;
+        this.applicationName = applicationName;
     }
 
     public String getEmail() {
@@ -23,4 +26,7 @@ public abstract class EmailEventAbstract {
         return confirmationUrl;
     }
 
+    public String getApplicationName() {
+        return applicationName;
+    }
 }

http://git-wip-us.apache.org/repos/asf/isis/blob/ef48bd0d/core/applib/src/main/java/org/apache/isis/applib/services/email/events/EmailRegistrationEvent.java
----------------------------------------------------------------------
diff --git a/core/applib/src/main/java/org/apache/isis/applib/services/email/events/EmailRegistrationEvent.java b/core/applib/src/main/java/org/apache/isis/applib/services/email/events/EmailRegistrationEvent.java
index 075dd15..fb430b8 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/services/email/events/EmailRegistrationEvent.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/services/email/events/EmailRegistrationEvent.java
@@ -6,9 +6,10 @@ package org.apache.isis.applib.services.email.events;
 public class EmailRegistrationEvent extends EmailEventAbstract {
     
     public EmailRegistrationEvent(
-        final String email,
-        final String confirmationUrl) {
-        super(email, confirmationUrl);
+            final String email,
+            final String confirmationUrl,
+            final String applicationName) {
+        super(email, confirmationUrl, applicationName);
     }
 
 }

http://git-wip-us.apache.org/repos/asf/isis/blob/ef48bd0d/core/applib/src/main/java/org/apache/isis/applib/services/email/events/PasswordResetEvent.java
----------------------------------------------------------------------
diff --git a/core/applib/src/main/java/org/apache/isis/applib/services/email/events/PasswordResetEvent.java b/core/applib/src/main/java/org/apache/isis/applib/services/email/events/PasswordResetEvent.java
index b08e096..3a09b4a 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/services/email/events/PasswordResetEvent.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/services/email/events/PasswordResetEvent.java
@@ -6,9 +6,10 @@ package org.apache.isis.applib.services.email.events;
 public class PasswordResetEvent extends EmailEventAbstract {
 
     public PasswordResetEvent(
-        final String email,
-        final String confirmationUrl) {
-        super(email, confirmationUrl);
+            final String email,
+            final String confirmationUrl,
+            final String applicationName) {
+        super(email, confirmationUrl, applicationName);
     }
 
 }

http://git-wip-us.apache.org/repos/asf/isis/blob/ef48bd0d/core/runtime/src/main/java/org/apache/isis/core/runtime/services/email/EmailNotificationServiceDefault.java
----------------------------------------------------------------------
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/services/email/EmailNotificationServiceDefault.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/services/email/EmailNotificationServiceDefault.java
index a4bbddc..1c31780 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/services/email/EmailNotificationServiceDefault.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/services/email/EmailNotificationServiceDefault.java
@@ -8,7 +8,6 @@ import javax.annotation.PostConstruct;
 import com.google.common.base.Charsets;
 import com.google.common.base.Strings;
 import com.google.common.io.Resources;
-import com.google.inject.name.Named;
 import org.apache.commons.mail.DefaultAuthenticator;
 import org.apache.commons.mail.Email;
 import org.apache.commons.mail.EmailException;
@@ -93,7 +92,13 @@ public class EmailNotificationServiceDefault implements EmailNotificationService
 
     protected boolean send(final EmailEventAbstract emailEvent, final String body) {
 
-        boolean mailSent = true;
+        final String subject = buildSubject(emailEvent);
+        final String to = emailEvent.getEmail();
+
+        return send(subject, to, body);
+    }
+
+    private boolean send(final String subject, final String to, final String body) {
         try {
 
             final Email email = new HtmlEmail();
@@ -115,36 +120,34 @@ public class EmailNotificationServiceDefault implements EmailNotificationService
 
             email.setFrom(senderEmailAddress);
 
-            email.setSubject(calculateSubject(emailEvent));
+            email.setSubject(subject);
             email.setMsg(body);
 
-            email.addTo(emailEvent.getEmail());
+            email.addTo(to);
             email.send();
 
         } catch (EmailException ex) {
             LOG.error("An error occurred while trying to send an email about user email verification", ex);
-            mailSent = false;
+            return false;
         }
 
-        return mailSent;
+        return true;
     }
 
     private String replace(final String template, final EmailEventAbstract emailEvent) {
         String message = template;
         message = EMAIL_PATTERN.matcher(message).replaceFirst(emailEvent.getEmail());
         message = CONFIRMATION_URL_PATTERN.matcher(message).replaceFirst(emailEvent.getConfirmationUrl());
-        message = APPLICATION_NAME_PATTERN.matcher(message).replaceAll(applicationName);
+        message = APPLICATION_NAME_PATTERN.matcher(message).replaceAll(emailEvent.getApplicationName());
         return message;
     }
 
-    protected String calculateSubject(Object event) {
-        String subject;
-        if (event instanceof EmailRegistrationEvent) {
-            subject = "["+applicationName+"] Please confirm your identity";
-        } else if (event instanceof PasswordResetEvent) {
-            subject = "["+applicationName+"] Password reset request";
-        } else {
-            subject = "[" + applicationName + "]";
+    protected String buildSubject(final EmailEventAbstract emailEvent) {
+        String subject = "["+emailEvent.getApplicationName()+"]";
+        if (emailEvent instanceof EmailRegistrationEvent) {
+            subject += " Please confirm your identity";
+        } else if (emailEvent instanceof PasswordResetEvent) {
+            subject += " Password reset request";
         }
         return subject;
     }
@@ -182,7 +185,4 @@ public class EmailNotificationServiceDefault implements EmailNotificationService
     }
 
 
-    @com.google.inject.Inject
-    @Named("applicationName")
-    protected String applicationName;
 }

http://git-wip-us.apache.org/repos/asf/isis/blob/ef48bd0d/core/runtime/src/main/java/org/apache/isis/core/runtime/services/email/EmailVerificationTemplate.html
----------------------------------------------------------------------
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/services/email/EmailVerificationTemplate.html b/core/runtime/src/main/java/org/apache/isis/core/runtime/services/email/EmailVerificationTemplate.html
index b6a12dc..d31ae30 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/services/email/EmailVerificationTemplate.html
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/services/email/EmailVerificationTemplate.html
@@ -770,11 +770,15 @@
                                             <table class="twelve columns">
                                                 <tr>
                                                     <td>
-                                                        <h1>Hi, ${email}!</h1>
+                                                        <p>Hi, ${email}!</p>
 
                                                         <h3>Account creation request.</h3>
 
-                                                        <p>It seems someone has requested creation of an account at <strong>${applicationName}</strong>.  If this was you then please follow this <a href="${confirmationUrl}">link</a> where you can set a new password.  Otherwise please just ignore this email.</p>
+                                                        <p>It seems someone has requested creation of an account at <strong>${applicationName}</strong>.  </p>
+
+                                                        <p>If this was you then please follow this <a href="${confirmationUrl}">link</a> where you can set specify a username and new password.  </p>
+
+                                                        <p>Otherwise please just ignore this email.</p>
                                                     </td>
                                                 </tr>
                                             </table>

http://git-wip-us.apache.org/repos/asf/isis/blob/ef48bd0d/core/runtime/src/main/java/org/apache/isis/core/runtime/services/email/PasswordResetTemplate.html
----------------------------------------------------------------------
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/services/email/PasswordResetTemplate.html b/core/runtime/src/main/java/org/apache/isis/core/runtime/services/email/PasswordResetTemplate.html
index b8c1bde..4cf3c27 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/services/email/PasswordResetTemplate.html
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/services/email/PasswordResetTemplate.html
@@ -792,11 +792,15 @@
                                                 <table class="twelve columns">
                                                     <tr>
                                                         <td>
-                                                            <h1>Hi, ${email}!</h1>
+                                                            <p>Hi, ${email}!</p>
 
                                                             <h3>Password reset request.</h3>
 
-                                                            <p>It seems someone has requested reset of your password for <strong>${applicationName}</strong>.  If this was you then please follow this <a href="${confirmationUrl}">link</a> where you can set a new password.  Otherwise please just ignore this email.</p>
+                                                            <p>It seems someone has requested reset of your password for <strong>${applicationName}</strong>.  </p>
+
+                                                            <p>If this was you then please follow this <a href="${confirmationUrl}">link</a> where you can set a new password.  </p>
+
+                                                            <p>Otherwise please just ignore this email.</p>
                                                         </td>
                                                     </tr>
                                                 </table>