import java.util.Objects;
import java.util.Properties;
import javax.ejb.EJBException;
+import javax.faces.FacesException;
+import javax.jms.Connection;
import javax.jms.JMSException;
import javax.jms.MessageProducer;
import javax.jms.ObjectMessage;
+import javax.jms.Queue;
+import javax.jms.QueueConnectionFactory;
import javax.jms.Session;
import javax.mail.Address;
+import javax.naming.Context;
+import javax.naming.InitialContext;
+import javax.naming.NamingException;
import org.mxchange.jcontacts.contact.Contact;
import org.mxchange.jcoreee.database.BaseDatabaseBean;
import org.mxchange.jmailee.model.delivery.wrapper.EmailDeliveryWrapper;
*/
private static final long serialVersionUID = 12_895_410_275_811_963L;
+ /**
+ * Connection
+ */
+ private Connection connection;
+
+ /**
+ * Message producer
+ */
+ private MessageProducer messageProducer;
+
+ /**
+ * Mailer message queue
+ */
+ private Queue queue;
+
+ /**
+ * Session instance
+ */
+ private Session session;
+
/**
* Protected constructor
*/
protected BaseAddressbookDatabaseBean () {
// Call super constructor
super();
+
+ try {
+ // Get initial context
+ Context context = new InitialContext();
+
+ // Get factory from JMS resource
+ QueueConnectionFactory connectionFactory = (QueueConnectionFactory) context.lookup("jms/jlandingpage-queue-factory"); //NOI18N
+
+ // Lookup queue
+ this.queue = (Queue) context.lookup("jms/jlandingpage-email-queue"); //NOI18N
+
+ // Create connection
+ this.connection = connectionFactory.createConnection();
+
+ // Init session instance
+ this.session = this.connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
+
+ // And message producer
+ this.messageProducer = this.session.createProducer(this.queue);
+ } catch (final NamingException | JMSException e) {
+ // Continued to throw
+ throw new FacesException(e);
+ }
}
/**
* @param templateName Template name
* @param emailAddress Recipient's email address
* @param user User instance
- * @param session JMS Session
- * @param messageProducer Message producer
*/
- protected void sendEmail (final String subjectLine, final String templateName, final Address emailAddress, final User user, final Session session, final MessageProducer messageProducer) {
+ protected void sendEmail (final String subjectLine, final String templateName, final Address emailAddress, final User user) {
// Trace message
- this.getLoggerBeanLocal().logTrace(MessageFormat.format("sendEmail: subjectLine={0},templateName={1},emailAddress={3},user={4},session={5},messageProducer={6} - CALLED!", subjectLine, templateName, emailAddress, user, session, messageProducer));
+ this.getLoggerBeanLocal().logTrace(MessageFormat.format("sendEmail: subjectLine={0},templateName={1},emailAddress={3},user={4} - CALLED!", subjectLine, templateName, emailAddress, user));
// All should be set
if (null == subjectLine) {
try {
// Send out email change
- ObjectMessage message = session.createObjectMessage();
+ ObjectMessage message = this.session.createObjectMessage();
message.setObject(emailWrapper);
// Send message
- this.sendMessage(message, messageProducer);
+ this.sendMessage(message, this.messageProducer);
} catch (final JMSException ex) {
// Throw again
throw new EJBException(ex);