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:10 UTC
[james-project] 01/30: JAMES-2704 Solve major performance issue for
RandomStoring mailet
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 8440e83176c84e74695d7909289a151a6a870c13
Author: Benoit Tellier <bt...@linagora.com>
AuthorDate: Wed Nov 6 16:53:40 2019 +0700
JAMES-2704 Solve major performance issue for RandomStoring mailet
This mailet was unnecessarily list all mailboxes of all users, for each user.
What we should do is listing all mailboxes of a user, for each user.
---
.../java/org/apache/james/transport/mailets/RandomStoring.java | 7 +++++--
1 file changed, 5 insertions(+), 2 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 8115a23..adac9e4 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
@@ -26,6 +26,7 @@ import java.util.Objects;
import java.util.concurrent.ThreadLocalRandom;
import java.util.function.Supplier;
import java.util.stream.Stream;
+
import javax.inject.Inject;
import javax.mail.MessagingException;
@@ -33,6 +34,7 @@ import org.apache.james.core.MailAddress;
import org.apache.james.core.Username;
import org.apache.james.mailbox.MailboxManager;
import org.apache.james.mailbox.MailboxSession;
+import org.apache.james.mailbox.model.search.MailboxQuery;
import org.apache.james.transport.mailets.delivery.MailStore;
import org.apache.james.user.api.UsersRepository;
import org.apache.james.user.api.UsersRepositoryException;
@@ -43,6 +45,7 @@ import org.apache.mailet.base.GenericMailet;
import com.github.steveash.guavate.Guavate;
import com.google.common.base.MoreObjects;
import com.google.common.collect.Streams;
+
import reactor.core.publisher.Mono;
/**
@@ -115,9 +118,9 @@ public class RandomStoring extends GenericMailet {
MailboxSession session = mailboxManager.createSystemSession(username.asString());
return mailboxManager
- .list(session)
+ .search(MailboxQuery.privateMailboxesBuilder(session).build(), session)
.stream()
- .map(mailboxPath -> new ReroutingInfos(mailAddress, mailboxPath.getName(), username.asString()));
+ .map(metaData -> new ReroutingInfos(mailAddress, metaData.getPath().getName(), username.asString()));
} catch (Exception e) {
throw new RuntimeException(e);
}
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org