This is an automated email from the ASF dual-hosted git repository. rcordier pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/james-project.git
commit c584f7b0372680a379e4e26d1f9418ec16f78991 Author: LanKhuat <[email protected]> AuthorDate: Tue May 5 15:28:39 2020 +0700 JAMES-3143 Add listMessages method --- .../java/org/apache/james/modules/MailboxProbeImpl.java | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/server/container/guice/mailbox/src/main/java/org/apache/james/modules/MailboxProbeImpl.java b/server/container/guice/mailbox/src/main/java/org/apache/james/modules/MailboxProbeImpl.java index 0ca9380..5e890f9 100644 --- a/server/container/guice/mailbox/src/main/java/org/apache/james/modules/MailboxProbeImpl.java +++ b/server/container/guice/mailbox/src/main/java/org/apache/james/modules/MailboxProbeImpl.java @@ -35,15 +35,20 @@ import org.apache.james.mailbox.MessageManager; import org.apache.james.mailbox.SubscriptionManager; import org.apache.james.mailbox.exception.MailboxException; import org.apache.james.mailbox.model.ComposedMessageId; +import org.apache.james.mailbox.model.FetchGroup; import org.apache.james.mailbox.model.MailboxCounters; import org.apache.james.mailbox.model.MailboxId; import org.apache.james.mailbox.model.MailboxMetaData; import org.apache.james.mailbox.model.MailboxPath; +import org.apache.james.mailbox.model.MessageRange; import org.apache.james.mailbox.model.search.MailboxQuery; import org.apache.james.mailbox.model.search.Wildcard; import org.apache.james.mailbox.probe.MailboxProbe; +import org.apache.james.util.streams.Iterators; import org.apache.james.utils.GuiceProbe; +import com.github.steveash.guavate.Guavate; + public class MailboxProbeImpl implements GuiceProbe, MailboxProbe { private final MailboxManager mailboxManager; private final SubscriptionManager subscriptionManager; @@ -60,6 +65,17 @@ public class MailboxProbeImpl implements GuiceProbe, MailboxProbe { return createMailbox(new MailboxPath(namespace, Username.of(user), name)); } + public List<ComposedMessageId> listMessages(MailboxId mailboxId, Username username) { + MailboxSession session = mailboxManager.createSystemSession(username); + try { + return Iterators.toStream(mailboxManager.getMailbox(mailboxId, session).getMessages(MessageRange.all(), FetchGroup.MINIMAL, session)) + .map(messageResult -> new ComposedMessageId(mailboxId, messageResult.getMessageId(), messageResult.getUid())) + .collect(Guavate.toImmutableList()); + } catch (MailboxException e) { + throw new RuntimeException(e); + } + } + public MailboxId createMailbox(MailboxPath mailboxPath) { MailboxSession mailboxSession = null; try { --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
