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]

Reply via email to