From 4b3878fa606a209c3735d947a7583ad42643f84d Mon Sep 17 00:00:00 2001 From: =?utf8?q?Roland=20H=C3=A4der?= Date: Wed, 18 May 2016 11:01:48 +0200 Subject: [PATCH] Continued a bit: - Fixed mail delivery (opps) MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Signed-off-by: Roland Häder --- .../JobsEmailDeliveryMessageBean.java | 124 ++++++++++++------ 1 file changed, 85 insertions(+), 39 deletions(-) diff --git a/src/java/org/mxchange/jmailee/model/delivery/JobsEmailDeliveryMessageBean.java b/src/java/org/mxchange/jmailee/model/delivery/JobsEmailDeliveryMessageBean.java index 1f32581..48c4ec9 100644 --- a/src/java/org/mxchange/jmailee/model/delivery/JobsEmailDeliveryMessageBean.java +++ b/src/java/org/mxchange/jmailee/model/delivery/JobsEmailDeliveryMessageBean.java @@ -27,9 +27,11 @@ import javax.jms.JMSException; import javax.jms.Message; import javax.jms.MessageListener; import javax.jms.ObjectMessage; +import javax.mail.MessagingException; import org.mxchange.jjobs.database.BaseJobsDatabaseBean; import org.mxchange.jjobsmailer.model.delivery.DeliverableJobsEmail; import org.mxchange.jjobsmailer.model.delivery.JobsMailer; +import org.mxchange.jmailee.model.delivery.wrapper.WrapableEmailDelivery; /** * A message queue for sending out emails @@ -51,14 +53,14 @@ public class JobsEmailDeliveryMessageBean extends BaseJobsDatabaseBean implement private static final long serialVersionUID = 75_638_176_619_024L; /** - * Mailer instance + * Configuration file */ - private final DeliverableJobsEmail mailer; + private final String configFile = "org.mxchange.jmailer.config"; //NOI18N /** - * Configuration file + * Mailer instance */ - private final String configFile = "org.mxchange.jmailer.config"; //NOI18N + private final DeliverableJobsEmail mailer; /** * Default constructor @@ -68,41 +70,6 @@ public class JobsEmailDeliveryMessageBean extends BaseJobsDatabaseBean implement this.mailer = new JobsMailer(); } - @Override - public void onMessage (final Message message) { - // Trace message - this.getLoggerBeanLocal().logTrace(MessageFormat.format("onMessage: message={0} - CALLED!", message)); //NOI18N - // The parameter should be valid - if (null == message) { - // Throw NPE - throw new NullPointerException("message is null"); //NOI18N - } else if (!(message instanceof ObjectMessage)) { - // Not implementing right interface - throw new IllegalArgumentException(MessageFormat.format("message={0} does not implemented ObjectMessage", message)); //NOI18N - } - - // Securely cast it - ObjectMessage objectMessage = (ObjectMessage) message; - - // Init variable - Serializable serializable; - - try { - // Get object from message - serializable = objectMessage.getObject(); - } catch (final JMSException ex) { - // Log it and don't continue any further - this.getLoggerBeanLocal().logException(ex); - return; - } - - // Debug message - this.getLoggerBeanLocal().logDebug(MessageFormat.format("onMessage: serializable={0}", serializable)); //NOI18N - - // Trace message - this.getLoggerBeanLocal().logTrace("onMessage - EXIT!"); //NOI18N - } - /** * Post-construction */ @@ -144,4 +111,83 @@ public class JobsEmailDeliveryMessageBean extends BaseJobsDatabaseBean implement // Trace message this.getLoggerBeanLocal().logTrace("init: EXIT!"); //NOI18N } + + @Override + public void onMessage (final Message message) { + // Trace message + this.getLoggerBeanLocal().logTrace(MessageFormat.format("onMessage: message={0} - CALLED!", message)); //NOI18N + + // The parameter should be valid + if (null == message) { + // Throw NPE + throw new NullPointerException("message is null"); //NOI18N + } else if (!(message instanceof ObjectMessage)) { + // Not implementing right interface + throw new IllegalArgumentException(MessageFormat.format("message={0} does not implemented ObjectMessage", message)); //NOI18N + } + + // Securely cast it + ObjectMessage objectMessage = (ObjectMessage) message; + + // Init variable + Serializable serializable; + + try { + // Get object from message + serializable = objectMessage.getObject(); + } catch (final JMSException ex) { + // Log it and don't continue any further + this.getLoggerBeanLocal().logException(ex); + return; + } + + // Debug message + this.getLoggerBeanLocal().logDebug(MessageFormat.format("onMessage: serializable={0}", serializable)); //NOI18N + + // Okay, is it the right interface? + if (null == serializable) { + // Throw NPE + throw new NullPointerException("serializable is null"); //NOI18N + } else if (!(serializable instanceof WrapableEmailDelivery)) { + // Not correct object send + throw new IllegalArgumentException(MessageFormat.format("serializable={0} does not implement WrapableEmailDelivery", serializable)); //NOI18N + } + + // Securely cast it + WrapableEmailDelivery wrapper = (WrapableEmailDelivery) serializable; + + // Is all required set? + if (wrapper.getLocale() == null) { + // Throw NPE + throw new NullPointerException("wrapper.locale is null"); //NOI18N + } else if (wrapper.getRecipient() == null) { + // Throw again ... + throw new NullPointerException("wrapper.recipient is null"); //NOI18N + } else if (wrapper.getSubjectLine() == null) { + // ... and again + throw new NullPointerException("wrapper.subjectLine is null"); //NOI18N + } else if (wrapper.getSubjectLine().isEmpty()) { + // Is empty + throw new IllegalArgumentException("wrapper.subjectLine is empty"); //NOI18N + } else if (wrapper.getTemplateName() == null) { + // Throw NPE again + throw new NullPointerException("wrapper.templateName is null"); //NOI18N + } else if (wrapper.getTemplateName().isEmpty()) { + // Is empty + throw new IllegalArgumentException("wrapper.templateName is empty"); //NOI18N + } + + try { + // Send email out + this.mailer.sendDeliverableMail(wrapper); + } catch (final MessagingException ex) { + // Opps, something went wrong + this.getLoggerBeanLocal().logException(ex); + return; + } + + // Trace message + this.getLoggerBeanLocal().logTrace("onMessage - EXIT!"); //NOI18N + } + } -- 2.39.5