]> git.mxchange.org Git - pizzaservice-mailer-ejb.git/blobdiff - src/java/org/mxchange/addressbook/database/BaseAddressbookDatabaseBean.java
Please cherry-pick:
[pizzaservice-mailer-ejb.git] / src / java / org / mxchange / addressbook / database / BaseAddressbookDatabaseBean.java
index 13f251eea9b6a25c3524ebae1eb8ab583a80ff8e..b74a841dcbfe23b70e3d35fb87970bdafd267a9b 100644 (file)
@@ -24,6 +24,8 @@ import javax.ejb.EJBException;
 import javax.jms.JMSException;
 import javax.jms.ObjectMessage;
 import javax.mail.Address;
+import javax.mail.internet.AddressException;
+import javax.mail.internet.InternetAddress;
 import org.mxchange.jcontacts.contact.Contact;
 import org.mxchange.jcontacts.contact.ContactUtils;
 import org.mxchange.jcoreee.database.BaseDatabaseBean;
@@ -63,8 +65,8 @@ public abstract class BaseAddressbookDatabaseBean extends BaseDatabaseBean {
        /**
         * Constructor with queue factory JNDI and queue JNDI names
         * <p>
-        * @param factoryJndi    JNDI name for queue factory
-        * @param queueJndi JNDI name for email queue
+        * @param factoryJndi JNDI name for queue factory
+        * @param queueJndi   JNDI name for email queue
         */
        protected BaseAddressbookDatabaseBean (final String factoryJndi, final String queueJndi) {
                // Call super constructor
@@ -470,15 +472,14 @@ public abstract class BaseAddressbookDatabaseBean extends BaseDatabaseBean {
         * <p>
         * @param subjectLine    Subject line
         * @param templateName   Template name
-        * @param emailAddress   Recipient's email address
         * @param user           User instance
         * @param baseUrl        Base URL
         * @param randomPassword A randomly-generated password or NULL if user had
         *                       to enter it.
         */
-       protected void sendEmail (final String subjectLine, final String templateName, final Address emailAddress, final User user, final String baseUrl, final String randomPassword) {
+       protected void sendEmail (final String subjectLine, final String templateName, final User user, final String baseUrl, final String randomPassword) {
                // Trace message
-               this.getLoggerBeanLocal().logTrace(MessageFormat.format("sendEmail: subjectLine={0},templateName={1},emailAddress={2},user={3},baseUrl={4} - CALLED!", subjectLine, templateName, emailAddress, user, baseUrl)); //NOI18N
+               this.getLoggerBeanLocal().logTrace(MessageFormat.format("sendEmail: subjectLine={0},templateName={1},user={2},baseUrl={3} - CALLED!", subjectLine, templateName, user, baseUrl)); //NOI18N
 
                // All should be set
                if (null == subjectLine) {
@@ -493,9 +494,6 @@ public abstract class BaseAddressbookDatabaseBean extends BaseDatabaseBean {
                } else if (templateName.isEmpty()) {
                        // No template name
                        throw new IllegalArgumentException("templateName is empty"); //NOI18N
-               } else if (null == emailAddress) {
-                       // Throw NPE
-                       throw new NullPointerException("emailAddress is null"); //NOI18N
                } else if (null == user) {
                        // Throw NPE
                        throw new NullPointerException("user is null"); //NOI18N
@@ -534,9 +532,6 @@ public abstract class BaseAddressbookDatabaseBean extends BaseDatabaseBean {
                        throw new NullPointerException("this.session is not set. Have you forgotten to call super(String, String) and called only super() ?"); //NOI18N
                }
 
-               // Prepare mail wrapper
-               WrapableEmailDelivery emailWrapper = new EmailDeliveryWrapper();
-
                // Set all values
                Properties variables = UserUtils.getAllUserFields(user);
 
@@ -549,13 +544,20 @@ public abstract class BaseAddressbookDatabaseBean extends BaseDatabaseBean {
                        variables.put("randomPassword", randomPassword); //NOI18N
                }
 
-               // Set all
+               // Init addresss
+               Address recipientAddress;
+
+               try {
+                       // Create email address and set
+                       recipientAddress = new InternetAddress(user.getUserContact().getContactEmailAddress());
+               } catch (final AddressException ex) {
+                       // Throw again
+                       throw new EJBException(ex);
+               }
+
+               // Prepare mail wrapper
                // @TODO Language from message bundle
-               emailWrapper.setRecipient(emailAddress);
-               emailWrapper.setLocale(user.getUserLocale());
-               emailWrapper.setSubjectLine(subjectLine);
-               emailWrapper.setTemplateName(templateName);
-               emailWrapper.setTemplateVariables(variables);
+               WrapableEmailDelivery emailWrapper = new EmailDeliveryWrapper(recipientAddress, subjectLine, templateName, variables, user.getUserLocale());
 
                try {
                        // Send out email change