JAMES-2305 MailQueueItemView should be a class
Project: http://git-wip-us.apache.org/repos/asf/james-project/repo Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/8f367fe4 Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/8f367fe4 Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/8f367fe4 Branch: refs/heads/master Commit: 8f367fe417093c9d4f2178252aa38d9db8105656 Parents: 92da741 Author: benwa <[email protected]> Authored: Tue Jan 16 11:05:05 2018 +0700 Committer: benwa <[email protected]> Committed: Thu Jan 18 09:48:49 2018 +0700 ---------------------------------------------------------------------- .../james/queue/api/ManageableMailQueue.java | 18 +++++++++++--- .../apache/james/queue/file/FileMailQueue.java | 26 ++++++++------------ .../apache/james/queue/jms/JMSMailQueue.java | 16 ++---------- 3 files changed, 27 insertions(+), 33 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/james-project/blob/8f367fe4/server/queue/queue-api/src/main/java/org/apache/james/queue/api/ManageableMailQueue.java ---------------------------------------------------------------------- diff --git a/server/queue/queue-api/src/main/java/org/apache/james/queue/api/ManageableMailQueue.java b/server/queue/queue-api/src/main/java/org/apache/james/queue/api/ManageableMailQueue.java index 155d843..a89154f 100644 --- a/server/queue/queue-api/src/main/java/org/apache/james/queue/api/ManageableMailQueue.java +++ b/server/queue/queue-api/src/main/java/org/apache/james/queue/api/ManageableMailQueue.java @@ -89,14 +89,24 @@ public interface ManageableMailQueue extends MailQueue { /** * Represent a View over a queue {@link MailQueue.MailQueueItem} */ - interface MailQueueItemView { + class MailQueueItemView { + + private final Mail mail; + private final long nextDelivery; + + public MailQueueItemView(Mail mail, long nextDelivery) { + this.mail = mail; + this.nextDelivery = nextDelivery; + } /** * Return the Mail * * @return mail */ - Mail getMail(); + public Mail getMail() { + return mail; + } /** * Return the timestamp when the mail will be ready for dequeuing or -1 @@ -104,7 +114,9 @@ public interface ManageableMailQueue extends MailQueue { * * @return nextDelivery */ - long getNextDelivery(); + public long getNextDelivery() { + return nextDelivery; + } } } http://git-wip-us.apache.org/repos/asf/james-project/blob/8f367fe4/server/queue/queue-file/src/main/java/org/apache/james/queue/file/FileMailQueue.java ---------------------------------------------------------------------- diff --git a/server/queue/queue-file/src/main/java/org/apache/james/queue/file/FileMailQueue.java b/server/queue/queue-file/src/main/java/org/apache/james/queue/file/FileMailQueue.java index 599be33..c971d6f 100644 --- a/server/queue/queue-file/src/main/java/org/apache/james/queue/file/FileMailQueue.java +++ b/server/queue/queue-file/src/main/java/org/apache/james/queue/file/FileMailQueue.java @@ -105,10 +105,7 @@ public class FileMailQueue implements ManageableMailQueue { oin = new ObjectInputStream(new FileInputStream(item.getObjectFile())); Mail mail = (Mail) oin.readObject(); - Long next = (Long) mail.getAttribute(NEXT_DELIVERY); - if (next == null) { - next = 0L; - } + Long next = getNextDelivery(mail); final String key = mail.getName(); keyMappings.put(key, item); @@ -149,6 +146,14 @@ public class FileMailQueue implements ManageableMailQueue { } } + private Long getNextDelivery(Mail mail) { + Long next = (Long) mail.getAttribute(NEXT_DELIVERY); + if (next == null) { + next = 0L; + } + return next; + } + @Override public void enQueue(Mail mail, long delay, TimeUnit unit) throws MailQueueException { final String key = mail.getName() + "-" + COUNTER.incrementAndGet(); @@ -460,18 +465,7 @@ public class FileMailQueue implements ManageableMailQueue { try { in = new ObjectInputStream(new FileInputStream(items.next().getObjectFile())); final Mail mail = (Mail) in.readObject(); - item = new MailQueueItemView() { - - @Override - public long getNextDelivery() { - return (Long) mail.getAttribute(NEXT_DELIVERY); - } - - @Override - public Mail getMail() { - return mail; - } - }; + item = new MailQueueItemView(mail, getNextDelivery(mail)); return true; } catch (IOException | ClassNotFoundException e) { LOGGER.info("Unable to load mail", e); http://git-wip-us.apache.org/repos/asf/james-project/blob/8f367fe4/server/queue/queue-jms/src/main/java/org/apache/james/queue/jms/JMSMailQueue.java ---------------------------------------------------------------------- diff --git a/server/queue/queue-jms/src/main/java/org/apache/james/queue/jms/JMSMailQueue.java b/server/queue/queue-jms/src/main/java/org/apache/james/queue/jms/JMSMailQueue.java index 462e750..2352bc5 100644 --- a/server/queue/queue-jms/src/main/java/org/apache/james/queue/jms/JMSMailQueue.java +++ b/server/queue/queue-jms/src/main/java/org/apache/james/queue/jms/JMSMailQueue.java @@ -673,20 +673,8 @@ public class JMSMailQueue implements ManageableMailQueue, JMSSupport, MailPriori while (hasNext()) { try { Message m = messages.nextElement(); - final Mail mail = createMail(m); - final long nextDelivery = m.getLongProperty(JAMES_NEXT_DELIVERY); - return new MailQueueItemView() { - - @Override - public long getNextDelivery() { - return nextDelivery; - } - - @Override - public Mail getMail() { - return mail; - } - }; + return new MailQueueItemView(createMail(m), + m.getLongProperty(JAMES_NEXT_DELIVERY)); } catch (MessagingException | JMSException e) { LOGGER.error("Unable to browse queue", e); } --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
