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;
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;
// 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
}
/**
*/
@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();
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);
+ }
+
}