]> git.mxchange.org Git - addressbook-mailer-ejb.git/blobdiff - src/java/org/mxchange/jusercore/model/email_address/AddressbookEmailChangeSessionBean.java
Continued:
[addressbook-mailer-ejb.git] / src / java / org / mxchange / jusercore / model / email_address / AddressbookEmailChangeSessionBean.java
index f63a0ff636bb123c2478a29c782ee5f6e9545cb3..f65a2ee4fdc40ae158860a87905d446fa363fbac 100644 (file)
@@ -19,6 +19,8 @@ package org.mxchange.jusercore.model.email_address;
 import java.text.MessageFormat;
 import java.util.GregorianCalendar;
 import java.util.List;
+import java.util.Locale;
+import java.util.Properties;
 import javax.annotation.PostConstruct;
 import javax.ejb.EJB;
 import javax.ejb.EJBException;
@@ -31,13 +33,14 @@ import javax.jms.ObjectMessage;
 import javax.jms.Queue;
 import javax.jms.QueueConnectionFactory;
 import javax.jms.Session;
+import javax.mail.Address;
+import javax.mail.internet.AddressException;
+import javax.mail.internet.InternetAddress;
 import javax.naming.Context;
 import javax.naming.InitialContext;
 import javax.naming.NamingException;
 import javax.persistence.NoResultException;
 import javax.persistence.Query;
-import org.mxchange.addressbook.mailer.model.delivery.AddressbookMailer;
-import org.mxchange.addressbook.mailer.model.delivery.DeliverableAddressbookEmail;
 import org.mxchange.jcoreee.database.BaseDatabaseBean;
 import org.mxchange.jusercore.model.user.UserSessionBeanRemote;
 import org.mxchange.jusercore.model.user.UserUtils;
@@ -146,11 +149,42 @@ public class AddressbookEmailChangeSessionBean extends BaseDatabaseBean implemen
 
                // Persist it
                //this.getEntityManager().persist(emailChange);
-               // Get mailer instance
-               DeliverableAddressbookEmail mailer = new AddressbookMailer();
 
-               // Send out email change
-               mailer.sendEmailChangeMail(this.messageProducer, this.message, emailChange);
+               // Prepare mail wrapper
+               WrapableEmailDelivery emailWrapper = new EmailDeliveryWrapper();
+
+               try {
+                       // Create email address and set
+                       Address emailAddress = new InternetAddress(emailChange.getEmailAddress());
+                       emailWrapper.setRecipient(emailAddress);
+               } catch (final AddressException ex) {
+                       // Throw again
+                       throw new EJBException(ex);
+               }
+
+               // Set all values
+               Properties variables = UserUtils.getAllUserFields(emailChange.getEmailChangeUser());
+
+               // Set all
+               // @TODO Get locale from user + language from message bundle
+               emailWrapper.setLocale(Locale.GERMAN);
+               emailWrapper.setSubjectLine("Email change");
+               emailWrapper.setTemplateName("email_change"); //NOI18N
+               emailWrapper.setTemplateVariables(variables);
+
+               try {
+                       // Send out email change
+                       this.message.setObject(emailWrapper);
+
+                       // Send message
+                       this.sendMessage(this.message);
+               } catch (final JMSException ex) {
+                       // Throw again
+                       throw new EJBException(ex);
+               }
+
+               // Trace message
+               this.getLoggerBeanLocal().logTrace("enqueueEmailAddressForChange - EXIT!"); //NOI18N
        }
 
        /**
@@ -158,15 +192,18 @@ public class AddressbookEmailChangeSessionBean extends BaseDatabaseBean implemen
         */
        @PostConstruct
        public void init () {
+               // Trace message
+               this.getLoggerBeanLocal().logTrace("init: CALLED!"); //NOI18N
+
                try {
                        // Get initial context
                        Context context = new InitialContext();
 
                        // Get factory from JMS resource
-                       QueueConnectionFactory connectionFactory = (QueueConnectionFactory) context.lookup("jms/addressbook-queue-factory"); //NOI18N
+                       QueueConnectionFactory connectionFactory = (QueueConnectionFactory) context.lookup("jms/jlandingpage-queue-factory"); //NOI18N
 
                        // Lookup queue
-                       this.queue = (Queue) context.lookup("jms/addressbook-email-queue"); //NOI18N
+                       this.queue = (Queue) context.lookup("jms/jlandingpage-email-queue"); //NOI18N
 
                        // Create connection
                        this.connection = connectionFactory.createConnection();
@@ -298,4 +335,22 @@ public class AddressbookEmailChangeSessionBean extends BaseDatabaseBean implemen
                emailAddress.setEmailChangeHash(hash);
        }
 
+       /**
+        * Sends given message to configured queue
+        * <p>
+        * @param message Message to send
+        * <p>
+        * @throws JMSException if something went wrong
+        */
+       private void sendMessage (final ObjectMessage message) throws JMSException {
+               // The parameter should be valid
+               if (null == message) {
+                       // Throw NPE
+                       throw new NullPointerException("message is null"); //NOI18N
+               }
+
+               // Send it
+               this.messageProducer.send(message);
+       }
+
 }