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]

Reply via email to