You are viewing a plain text version of this content. The canonical link for it is here.
Posted to server-dev@james.apache.org by bt...@apache.org on 2019/11/15 02:41:11 UTC

[james-project] 02/30: JAMES-2704 Improve ReroutingInformation

This is an automated email from the ASF dual-hosted git repository.

btellier pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/james-project.git

commit 9ab4f5124140d7ebb478a582e803342b2759d45f
Author: Benoit Tellier <bt...@linagora.com>
AuthorDate: Wed Nov 6 16:56:18 2019 +0700

    JAMES-2704 Improve ReroutingInformation
    
     - The class should be static
     - MailAddress and User represent duplicated information
     - user should be strongly typed
---
 .../james/transport/mailets/RandomStoring.java     | 37 ++++++++--------------
 1 file changed, 14 insertions(+), 23 deletions(-)

diff --git a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/RandomStoring.java b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/RandomStoring.java
index adac9e4..2c56f6f 100644
--- a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/RandomStoring.java
+++ b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/RandomStoring.java
@@ -42,6 +42,7 @@ import org.apache.mailet.Attribute;
 import org.apache.mailet.Mail;
 import org.apache.mailet.base.GenericMailet;
 
+import com.github.fge.lambdas.Throwing;
 import com.github.steveash.guavate.Guavate;
 import com.google.common.base.MoreObjects;
 import com.google.common.collect.Streams;
@@ -75,12 +76,12 @@ public class RandomStoring extends GenericMailet {
         Collection<ReroutingInfos> reroutingInfos = generateRandomMailboxes();
         Collection<MailAddress> mailAddresses = reroutingInfos
             .stream()
-            .map(ReroutingInfos::getMailAddress)
+            .map(Throwing.function(info -> info.getUser().asMailAddress()))
             .collect(Guavate.toImmutableList());
 
         mail.setRecipients(mailAddresses);
         reroutingInfos.forEach(reroutingInfo ->
-            mail.setAttribute(Attribute.convertToAttribute(MailStore.DELIVERY_PATH_PREFIX + reroutingInfo.getUser(), reroutingInfo.getMailbox())));
+            mail.setAttribute(Attribute.convertToAttribute(MailStore.DELIVERY_PATH_PREFIX + reroutingInfo.getUser().asString(), reroutingInfo.getMailbox())));
     }
 
     @Override
@@ -114,39 +115,31 @@ public class RandomStoring extends GenericMailet {
 
     private Stream<ReroutingInfos> buildReRoutingInfos(Username username) {
         try {
-            MailAddress mailAddress = usersRepository.getMailAddressFor(username);
-
             MailboxSession session = mailboxManager.createSystemSession(username.asString());
             return mailboxManager
                 .search(MailboxQuery.privateMailboxesBuilder(session).build(), session)
                 .stream()
-                .map(metaData -> new ReroutingInfos(mailAddress, metaData.getPath().getName(), username.asString()));
+                .map(metaData -> new ReroutingInfos(metaData.getPath().getName(), username));
         } catch (Exception e) {
             throw new RuntimeException(e);
         }
     }
 
-    private class ReroutingInfos {
-        private final MailAddress mailAddress;
+    private static class ReroutingInfos {
         private final String mailbox;
-        private final String user;
+        private final Username username;
 
-        ReroutingInfos(MailAddress mailAddress, String mailbox, String user) {
-            this.mailAddress = mailAddress;
+        ReroutingInfos(String mailbox, Username username) {
             this.mailbox = mailbox;
-            this.user = user;
-        }
-
-        public MailAddress getMailAddress() {
-            return mailAddress;
+            this.username = username;
         }
 
         public String getMailbox() {
             return mailbox;
         }
 
-        public String getUser() {
-            return user;
+        public Username getUser() {
+            return username;
         }
 
         @Override
@@ -154,24 +147,22 @@ public class RandomStoring extends GenericMailet {
             if (o instanceof ReroutingInfos) {
                 ReroutingInfos that = (ReroutingInfos) o;
 
-                return Objects.equals(this.mailAddress, that.mailAddress)
-                    && Objects.equals(this.mailbox, that.mailbox)
-                    && Objects.equals(this.user, that.user);
+                return Objects.equals(this.mailbox, that.mailbox)
+                    && Objects.equals(this.username, that.username);
             }
             return false;
         }
 
         @Override
         public int hashCode() {
-            return Objects.hash(mailAddress, mailbox, user);
+            return Objects.hash(mailbox, username);
         }
 
         @Override
         public String toString() {
             return MoreObjects.toStringHelper(this)
-                .add("user", mailAddress.asString())
                 .add("mailbox", mailbox)
-                .add("user", user)
+                .add("username", username)
                 .toString();
         }
     }


---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org