JAMES-2183 GetMessages should combine keywords

Project: http://git-wip-us.apache.org/repos/asf/james-project/repo
Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/c93ffe68
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/c93ffe68
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/c93ffe68

Branch: refs/heads/master
Commit: c93ffe68bf4b3dcdd07a5125cb04f9a0b4aa2c56
Parents: ce13804
Author: quynhn <qngu...@linagora.com>
Authored: Fri Oct 13 10:41:48 2017 +0700
Committer: benwa <btell...@linagora.com>
Committed: Wed Oct 18 09:00:56 2017 +0700

----------------------------------------------------------------------
 .../org/apache/james/jmap/methods/GetMessagesMethod.java  | 10 +++++++++-
 1 file changed, 9 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/c93ffe68/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/GetMessagesMethod.java
----------------------------------------------------------------------
diff --git 
a/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/GetMessagesMethod.java
 
b/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/GetMessagesMethod.java
index 47a501a..f0313ed 100644
--- 
a/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/GetMessagesMethod.java
+++ 
b/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/GetMessagesMethod.java
@@ -38,11 +38,13 @@ import org.apache.james.jmap.model.MessageFactory;
 import org.apache.james.jmap.model.MessageFactory.MetaDataWithContent;
 import org.apache.james.jmap.model.MessageProperties;
 import org.apache.james.jmap.model.MessageProperties.HeaderProperty;
+import org.apache.james.jmap.utils.KeywordsCombiner;
 import org.apache.james.mailbox.MailboxSession;
 import org.apache.james.mailbox.MessageIdManager;
 import org.apache.james.mailbox.exception.MailboxException;
 import org.apache.james.mailbox.model.FetchGroupImpl;
 import org.apache.james.mailbox.model.MailboxId;
+import org.apache.james.mailbox.model.MessageMetaData;
 import org.apache.james.mailbox.model.MessageResult;
 import org.apache.james.metrics.api.MetricFactory;
 import org.apache.james.util.MDCBuilder;
@@ -63,6 +65,7 @@ public class GetMessagesMethod implements Method {
     private static final Logger LOGGER = 
LoggerFactory.getLogger(GetMessagesMethod.class);
     private static final Method.Request.Name METHOD_NAME = 
Method.Request.name("getMessages");
     private static final Method.Response.Name RESPONSE_NAME = 
Method.Response.name("messages");
+    private static final KeywordsCombiner ACCUMULATOR = new KeywordsCombiner();
     private final MessageFactory messageFactory;
     private final MessageIdManager messageIdManager;
     private final MetricFactory metricFactory;
@@ -167,11 +170,16 @@ public class GetMessagesMethod implements Method {
                 .distinct()
                 .collect(Guavate.toImmutableList());
             try {
+                Keywords keywords = messageResults.stream()
+                    .map(MessageMetaData::getFlags)
+                    .map(keywordsFactory::fromFlags)
+                    .reduce(ACCUMULATOR)
+                    .get();
                 return Stream.of(
                     
MetaDataWithContent.builderFromMessageResult(firstMessageResult)
                         .messageId(firstMessageResult.getMessageId())
                         .mailboxIds(mailboxIds)
-                        
.keywords(keywordsFactory.fromFlags(firstMessageResult.getFlags()))
+                        .keywords(keywords)
                         .build());
             } catch (Exception e) {
                 LOGGER.error("Can not convert MessageResults to MetaData with 
content for messageId " + firstMessageResult.getMessageId() + " in " + 
mailboxIds, e);


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

Reply via email to