]> git.mxchange.org Git - jjobs-ejb.git/commitdiff
Please cherry-pick:
authorRoland Häder <roland@mxchange.org>
Fri, 7 Jul 2017 22:27:02 +0000 (00:27 +0200)
committerRoland Häder <roland@mxchange.org>
Fri, 7 Jul 2017 22:39:31 +0000 (00:39 +0200)
- rewrote email delivery as EmailDeliveryWrapper() has now a constructor with all required fields
- also saved one parameter (one lesser = easier code)

Signed-off-by: Roland Häder <roland@mxchange.org>
src/java/org/mxchange/jjobs/database/BaseJobsDatabaseBean.java
src/java/org/mxchange/jmailee/model/delivery/JobsEmailDeliveryMessageBean.java
src/java/org/mxchange/jusercore/model/user/JobsAdminUserSessionBean.java
src/java/org/mxchange/jusercore/model/user/JobsUserSessionBean.java
src/java/org/mxchange/jusercore/model/user/email_address/JobsUserEmailChangeSessionBean.java
src/java/org/mxchange/jusercore/model/user/register/JobsUserRegistrationSessionBean.java
src/java/org/mxchange/jusercore/model/user/resendlink/JobsResendLinkSessionBean.java

index 181a0c58a19c4efdb238e2b9340d77982ca19512..df1ffe34c323a444d8a98260e7f1cf66235a91dd 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 BaseJobsDatabaseBean 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 BaseJobsDatabaseBean (final String factoryJndi, final String queueJndi) {
                // Call super constructor
@@ -470,15 +472,14 @@ public abstract class BaseJobsDatabaseBean 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 BaseJobsDatabaseBean 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 BaseJobsDatabaseBean 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 BaseJobsDatabaseBean 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
index a032ca06f0883a50b045e3792b7dfa2963a2ea8c..c68f430d30d4aaf8bcfec427cd9eab4c92f17012 100644 (file)
@@ -28,6 +28,7 @@ import javax.jms.Message;
 import javax.jms.MessageListener;
 import javax.jms.ObjectMessage;
 import javax.mail.MessagingException;
+import javax.naming.NamingException;
 import org.mxchange.jjobs.database.BaseJobsDatabaseBean;
 import org.mxchange.jjobsmailer.model.delivery.DeliverableJobsEmail;
 import org.mxchange.jjobsmailer.model.delivery.JobsMailer;
@@ -64,8 +65,10 @@ public class JobsEmailDeliveryMessageBean extends BaseJobsDatabaseBean implement
 
        /**
         * Default constructor
+        * <p>
+        * @throws javax.naming.NamingException If a JNDI name could not be found
         */
-       public JobsEmailDeliveryMessageBean () {
+       public JobsEmailDeliveryMessageBean () throws NamingException {
                // Call super constructor
                super();
 
@@ -163,9 +166,9 @@ public class JobsEmailDeliveryMessageBean extends BaseJobsDatabaseBean implement
                if (wrapper.getLocale() == null) {
                        // Throw NPE
                        throw new NullPointerException("wrapper.locale is null"); //NOI18N
-               } else if (wrapper.getRecipient() == null) {
+               } else if (wrapper.getRecipientAddress()== null) {
                        // Throw again ...
-                       throw new NullPointerException("wrapper.recipient is null"); //NOI18N
+                       throw new NullPointerException("wrapper.recipientAddress is null"); //NOI18N
                } else if (wrapper.getSubjectLine() == null) {
                        // ... and again
                        throw new NullPointerException("wrapper.subjectLine is null"); //NOI18N
index 62b9e9ace22c737e03dd3b7b73e255e4da1e017a..29bf99dd0be9fb4b833f353b02d07bd7a0062c68 100644 (file)
@@ -19,11 +19,7 @@ package org.mxchange.jusercore.model.user;
 import java.text.MessageFormat;
 import java.util.GregorianCalendar;
 import javax.ejb.EJB;
-import javax.ejb.EJBException;
 import javax.ejb.Stateless;
-import javax.mail.Address;
-import javax.mail.internet.AddressException;
-import javax.mail.internet.InternetAddress;
 import org.mxchange.jcontacts.contact.Contact;
 import org.mxchange.jjobs.database.BaseJobsDatabaseBean;
 import org.mxchange.jusercore.exceptions.EmailAddressAlreadyRegisteredException;
@@ -265,20 +261,11 @@ public class JobsAdminUserSessionBean extends BaseJobsDatabaseBean implements Ad
                // Update user
                User updatedUser = this.userBean.updateUserData(user);
 
-               // Init variable
-               Address emailAddress;
-
-               try {
-                       // Create email address and set
-                       emailAddress = new InternetAddress(updatedUser.getUserContact().getContactEmailAddress());
-               } catch (final AddressException ex) {
-                       // Throw again
-                       throw new EJBException(ex);
-               }
+               // @TODO Create user lock history entry
 
                // Send out email
                // @TODO externalize subject line
-               this.sendEmail("User account locked", "user_account_locked", emailAddress, updatedUser, baseUrl, null); //NOI18N
+               this.sendEmail("User account locked", "user_account_locked", updatedUser, baseUrl, null); //NOI18N
 
                // Trace message
                this.getLoggerBeanLocal().logTrace(MessageFormat.format("{0}.lockUserAccount: updatedUser={1} - EXIT!", this.getClass().getSimpleName(), updatedUser)); //NOI18N
@@ -334,20 +321,11 @@ public class JobsAdminUserSessionBean extends BaseJobsDatabaseBean implements Ad
                // Update user
                User updatedUser = this.userBean.updateUserData(user);
 
-               // Init variable
-               Address emailAddress;
-
-               try {
-                       // Create email address and set
-                       emailAddress = new InternetAddress(updatedUser.getUserContact().getContactEmailAddress());
-               } catch (final AddressException ex) {
-                       // Throw again
-                       throw new EJBException(ex);
-               }
+               // @TODO Create user lock history entry
 
                // Send out email
                // @TODO externalize subject line
-               this.sendEmail("User account unlocked", "user_account_unlocked", emailAddress, updatedUser, baseUrl, null); //NOI18N
+               this.sendEmail("User account unlocked", "user_account_unlocked", updatedUser, baseUrl, null); //NOI18N
 
                // Trace message
                this.getLoggerBeanLocal().logTrace(MessageFormat.format("{0}.lockUserAccount: updatedUser={1} - EXIT!", this.getClass().getSimpleName(), updatedUser)); //NOI18N
index 45ee75785c5a8d38a0a3990c504f930905920c0c..1272d39724d79452539c462ffef370fec04e1034 100644 (file)
@@ -22,9 +22,6 @@ import java.util.List;
 import javax.ejb.EJB;
 import javax.ejb.EJBException;
 import javax.ejb.Stateless;
-import javax.mail.Address;
-import javax.mail.internet.AddressException;
-import javax.mail.internet.InternetAddress;
 import javax.persistence.NoResultException;
 import javax.persistence.PersistenceException;
 import javax.persistence.Query;
@@ -180,19 +177,8 @@ public class JobsUserSessionBean extends BaseJobsDatabaseBean implements UserSes
                // Update user account
                User updatedUser = this.updateUserData(user);
 
-               // Init variable
-               Address emailAddress;
-
-               try {
-                       // Create email address and set
-                       emailAddress = new InternetAddress(updatedUser.getUserContact().getContactEmailAddress());
-               } catch (final AddressException ex) {
-                       // Throw again
-                       throw new EJBException(ex);
-               }
-
                // Send out email
-               this.sendEmail("User account confirmed", "user_account_confirmed", emailAddress, updatedUser, baseUrl, null); //NOI18N
+               this.sendEmail("User account confirmed", "user_account_confirmed", updatedUser, baseUrl, null); //NOI18N
 
                // Trace message
                this.getLoggerBeanLocal().logTrace(MessageFormat.format("{0}.confirmAccount: updatedUser={1} - EXIT!", this.getClass().getSimpleName(), updatedUser)); //NOI18N
@@ -666,19 +652,8 @@ public class JobsUserSessionBean extends BaseJobsDatabaseBean implements UserSes
                // Flush it to get id number back
                this.getEntityManager().flush();
 
-               // Init variable
-               Address emailAddress;
-
-               try {
-                       // Create email address and set
-                       emailAddress = new InternetAddress(managedUser.getUserContact().getContactEmailAddress());
-               } catch (final AddressException ex) {
-                       // Throw again
-                       throw new EJBException(ex);
-               }
-
                // Send email to user
-               this.sendEmail("User password change", "user_password_change", emailAddress, user, baseUrl, null); //NOI18N
+               this.sendEmail("User password change", "user_password_change", user, baseUrl, null); //NOI18N
 
                // Trace message
                this.getLoggerBeanLocal().logTrace(MessageFormat.format("{0}.updateUserPassword: entry.userPasswordHistoryId={1} - EXIT!", this.getClass().getSimpleName(), entry.getUserPasswordHistoryId())); //NOI18N
index 238aa579571a5aca95b7c39c78e044bfee8587e3..cefd8a33c6da4739cec633af15373b00f016516e 100644 (file)
@@ -22,9 +22,6 @@ import java.util.List;
 import javax.ejb.EJB;
 import javax.ejb.EJBException;
 import javax.ejb.Stateless;
-import javax.mail.Address;
-import javax.mail.internet.AddressException;
-import javax.mail.internet.InternetAddress;
 import javax.persistence.NoResultException;
 import javax.persistence.Query;
 import org.mxchange.jjobs.database.BaseJobsDatabaseBean;
@@ -117,19 +114,9 @@ public class JobsUserEmailChangeSessionBean extends BaseJobsDatabaseBean impleme
 
                // Persist it
                //@TODO Fix email delivery then allow this: this.getEntityManager().persist(emailChange);
-               // Init variable
-               Address emailAddress;
-
-               try {
-                       // Create email address and set
-                       emailAddress = new InternetAddress(emailChange.getEmailAddress());
-               } catch (final AddressException ex) {
-                       // Throw again
-                       throw new EJBException(ex);
-               }
 
                // Send email
-               this.sendEmail("User email change", "user_email_change", emailAddress, emailChange.getEmailChangeUser(), baseUrl, null); //NOI18N
+               this.sendEmail("User email change", "user_email_change", emailChange.getEmailChangeUser(), baseUrl, null); //NOI18N
 
                // Trace message
                this.getLoggerBeanLocal().logTrace(MessageFormat.format("{0}.enqueueEmailAddressForChange - EXIT!", this.getClass().getSimpleName())); //NOI18N
index ef3b4d06b65f5015509dafa73b98b9d2662bd243..0408d1613d04d0d77429450b8a63b7a2d1d51feb 100644 (file)
@@ -19,11 +19,7 @@ package org.mxchange.jusercore.model.user.register;
 import java.text.MessageFormat;
 import java.util.Objects;
 import javax.ejb.EJB;
-import javax.ejb.EJBException;
 import javax.ejb.Stateless;
-import javax.mail.Address;
-import javax.mail.internet.AddressException;
-import javax.mail.internet.InternetAddress;
 import javax.persistence.NoResultException;
 import javax.persistence.Query;
 import org.mxchange.jcontacts.contact.Contact;
@@ -183,17 +179,6 @@ public class JobsUserRegistrationSessionBean extends BaseJobsDatabaseBean implem
                // Call other EJB
                User addedUser = this.adminUserBean.addUser(user);
 
-               // Init variable
-               Address emailAddress;
-
-               try {
-                       // Create email address and set
-                       emailAddress = new InternetAddress(addedUser.getUserContact().getContactEmailAddress());
-               } catch (final AddressException ex) {
-                       // Throw again
-                       throw new EJBException(ex);
-               }
-
                // Default template is with no random password
                String templateName = "user_registration"; //NOI18N
 
@@ -205,7 +190,7 @@ public class JobsUserRegistrationSessionBean extends BaseJobsDatabaseBean implem
 
                // Send email
                // @TODO: Internationlize the subject line somehow
-               this.sendEmail("Registration", templateName, emailAddress, addedUser, baseUrl, randomPassword); //NOI18N
+               this.sendEmail("Registration", templateName, addedUser, baseUrl, randomPassword); //NOI18N
 
                // Trace message
                this.getLoggerBeanLocal().logTrace(MessageFormat.format("{0}.registerUser: addedUser={1},addedUser.userId={2} - EXIT!", this.getClass().getSimpleName(), addedUser, addedUser.getUserId())); //NOI18N
index 0b5478bbe5e7602c3795ffaf8565e8491ef02a03..357e0a2b14e30946daffd6450c4dad6f0bb40038 100644 (file)
@@ -19,11 +19,7 @@ package org.mxchange.jusercore.model.user.resendlink;
 import java.text.MessageFormat;
 import java.util.Locale;
 import javax.ejb.EJB;
-import javax.ejb.EJBException;
 import javax.ejb.Stateless;
-import javax.mail.Address;
-import javax.mail.internet.AddressException;
-import javax.mail.internet.InternetAddress;
 import org.mxchange.jjobs.database.BaseJobsDatabaseBean;
 import org.mxchange.jusercore.exceptions.UserNotFoundException;
 import org.mxchange.jusercore.exceptions.UserStatusConfirmedException;
@@ -108,20 +104,9 @@ public class JobsResendLinkSessionBean extends BaseJobsDatabaseBean implements R
                // Set it in user
                managedUser.setUserConfirmKey(confirmationKey);
 
-               // Init variable
-               Address emailAddress;
-
-               try {
-                       // Create email address and set
-                       emailAddress = new InternetAddress(managedUser.getUserContact().getContactEmailAddress());
-               } catch (final AddressException ex) {
-                       // Throw again
-                       throw new EJBException(ex);
-               }
-
                // Send email
                // @TODO: Internationlize the subject line somehow
-               this.sendEmail("Resend user confirmation link", "user_resend_confirmation_link", emailAddress, user, baseUrl, null); //NOI18N
+               this.sendEmail("Resend user confirmation link", "user_resend_confirmation_link",  user, baseUrl, null); //NOI18N
 
                // Log trace message
                this.getLoggerBeanLocal().logTrace(MessageFormat.format("{0}.resendConfirmationLink: EXIT!", this.getClass().getSimpleName())); //NOI18N