From: Roland Häder Date: Tue, 17 May 2016 16:00:22 +0000 (+0200) Subject: Initialization can be done here, much lesser code to maintain X-Git-Url: https://git.mxchange.org/?a=commitdiff_plain;h=2d695bd1b3744d9cdc662b75d2a085dce3ef9000;p=addressbook-core.git Initialization can be done here, much lesser code to maintain --- diff --git a/src/org/mxchange/addressbook/database/BaseAddressbookDatabaseBean.java b/src/org/mxchange/addressbook/database/BaseAddressbookDatabaseBean.java index b970892..ff9cd33 100644 --- a/src/org/mxchange/addressbook/database/BaseAddressbookDatabaseBean.java +++ b/src/org/mxchange/addressbook/database/BaseAddressbookDatabaseBean.java @@ -22,11 +22,18 @@ import java.util.Locale; 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; @@ -50,12 +57,55 @@ public abstract class BaseAddressbookDatabaseBean extends BaseDatabaseBean { */ 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); + } } /** @@ -410,12 +460,10 @@ public abstract class BaseAddressbookDatabaseBean extends BaseDatabaseBean { * @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) { @@ -451,11 +499,11 @@ public abstract class BaseAddressbookDatabaseBean extends BaseDatabaseBean { 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);