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 2017/08/31 01:32:15 UTC
[03/22] james-project git commit: JAMES-2127 MailboxAPI: Stream
instead of FluentIterable.from
JAMES-2127 MailboxAPI: Stream instead of FluentIterable.from
Project: http://git-wip-us.apache.org/repos/asf/james-project/repo
Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/b3864f35
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/b3864f35
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/b3864f35
Branch: refs/heads/master
Commit: b3864f352323c4bf273d392f55d710226637cfd1
Parents: 4ce918b
Author: quynhn <qn...@linagora.com>
Authored: Fri Aug 25 15:46:05 2017 +0700
Committer: quynhn <qn...@linagora.com>
Committed: Wed Aug 30 11:08:48 2017 +0700
----------------------------------------------------------------------
.../cassandra/mail/CassandraModSeqProvider.java | 4 +-
.../mailbox/jpa/mail/JPAAnnotationMapper.java | 44 ++++----
.../lucene/search/LuceneMessageSearchIndex.java | 16 +--
.../inmemory/InMemoryMessageIdManager.java | 18 ++--
.../inmemory/mail/InMemoryAnnotationMapper.java | 21 ++--
.../mailbox/store/StoreMailboxManager.java | 3 +-
.../mailbox/store/StoreMessageManager.java | 3 +-
.../store/mail/model/impl/PropertyBuilder.java | 3 +-
.../mail/utils/ApplicableFlagCalculator.java | 11 +-
.../mailbox/store/search/MessageSearches.java | 12 +--
.../james/mailbox/store/search/SearchUtil.java | 5 +-
.../store/search/SimpleMessageSearchIndex.java | 54 +++++-----
.../search/comparator/CombinedComparator.java | 13 +--
.../store/AbstractCombinationManagerTest.java | 17 ++--
.../AbstractMessageIdManagerStorageTest.java | 102 ++++++++-----------
.../store/TestMailboxSessionMapperFactory.java | 34 +++----
.../store/mail/model/ListMailboxAssert.java | 9 +-
.../store/mail/model/ListMessageAssert.java | 26 ++---
.../mail/model/ListMessagePropertiesAssert.java | 12 +--
19 files changed, 195 insertions(+), 212 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/james-project/blob/b3864f35/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraModSeqProvider.java
----------------------------------------------------------------------
diff --git a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraModSeqProvider.java b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraModSeqProvider.java
index 1959d01..d07a607 100644
--- a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraModSeqProvider.java
+++ b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraModSeqProvider.java
@@ -28,11 +28,10 @@ import static com.datastax.driver.core.querybuilder.QueryBuilder.update;
import static org.apache.james.mailbox.cassandra.table.CassandraMessageModseqTable.MAILBOX_ID;
import static org.apache.james.mailbox.cassandra.table.CassandraMessageModseqTable.NEXT_MODSEQ;
import static org.apache.james.mailbox.cassandra.table.CassandraMessageModseqTable.TABLE_NAME;
-
import java.util.Optional;
import java.util.concurrent.CompletableFuture;
import java.util.concurrent.CompletionException;
-
+import java.util.function.Supplier;
import javax.inject.Inject;
import org.apache.james.backends.cassandra.CassandraConfiguration;
@@ -48,7 +47,6 @@ import org.apache.james.mailbox.store.mail.model.Mailbox;
import com.datastax.driver.core.PreparedStatement;
import com.datastax.driver.core.Session;
import com.google.common.annotations.VisibleForTesting;
-import com.google.common.base.Supplier;
public class CassandraModSeqProvider implements ModSeqProvider {
http://git-wip-us.apache.org/repos/asf/james-project/blob/b3864f35/mailbox/jpa/src/main/java/org/apache/james/mailbox/jpa/mail/JPAAnnotationMapper.java
----------------------------------------------------------------------
diff --git a/mailbox/jpa/src/main/java/org/apache/james/mailbox/jpa/mail/JPAAnnotationMapper.java b/mailbox/jpa/src/main/java/org/apache/james/mailbox/jpa/mail/JPAAnnotationMapper.java
index b0ce1ed..08566a1 100644
--- a/mailbox/jpa/src/main/java/org/apache/james/mailbox/jpa/mail/JPAAnnotationMapper.java
+++ b/mailbox/jpa/src/main/java/org/apache/james/mailbox/jpa/mail/JPAAnnotationMapper.java
@@ -22,6 +22,8 @@ package org.apache.james.mailbox.jpa.mail;
import java.util.List;
import java.util.Optional;
import java.util.Set;
+import java.util.function.Function;
+import java.util.function.Predicate;
import javax.persistence.EntityManagerFactory;
import javax.persistence.NoResultException;
import javax.persistence.PersistenceException;
@@ -37,14 +39,12 @@ import org.apache.james.mailbox.store.mail.AnnotationMapper;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import com.google.common.base.Function;
+import com.github.steveash.guavate.Guavate;
import com.google.common.base.Preconditions;
-import com.google.common.base.Predicate;
import com.google.common.base.Throwables;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableSet;
import com.google.common.collect.Iterables;
-import com.google.common.collect.Lists;
public class JPAAnnotationMapper extends JPATransactionalMapper implements AnnotationMapper {
@@ -60,9 +60,12 @@ public class JPAAnnotationMapper extends JPATransactionalMapper implements Annot
@Override
public List<MailboxAnnotation> getAllAnnotations(MailboxId mailboxId) {
JPAId jpaId = (JPAId) mailboxId;
- return Lists.transform(getEntityManager().createNamedQuery("retrieveAllAnnotations", JPAMailboxAnnotation.class)
- .setParameter("idParam", jpaId.getRawId()).getResultList(),
- READ_ROW);
+ return getEntityManager().createNamedQuery("retrieveAllAnnotations", JPAMailboxAnnotation.class)
+ .setParameter("idParam", jpaId.getRawId())
+ .getResultList()
+ .stream()
+ .map(READ_ROW)
+ .collect(Guavate.toImmutableList());
}
@Override
@@ -100,30 +103,21 @@ public class JPAAnnotationMapper extends JPATransactionalMapper implements Annot
private List<MailboxAnnotation> getFilteredLikes(final JPAId jpaId, Set<MailboxAnnotationKey> keys, final Function<MailboxAnnotationKey, Predicate<MailboxAnnotation>> predicateFunction) {
try {
- return flatMapToList(Iterables.transform(keys,
- key -> ImmutableList.copyOf(
- Iterables.filter(
- Iterables.transform(
- getEntityManager()
- .createNamedQuery("retrieveByKeyLike", JPAMailboxAnnotation.class)
- .setParameter("idParam", jpaId.getRawId())
- .setParameter("keyParam", key.asString() + '%')
- .getResultList(),
- READ_ROW),
- predicateFunction.apply(key)))));
+ return keys.stream()
+ .flatMap(key -> getEntityManager()
+ .createNamedQuery("retrieveByKeyLike", JPAMailboxAnnotation.class)
+ .setParameter("idParam", jpaId.getRawId())
+ .setParameter("keyParam", key.asString() + '%')
+ .getResultList()
+ .stream()
+ .map(READ_ROW)
+ .filter(predicateFunction.apply(key)))
+ .collect(Guavate.toImmutableList());
} catch (NoResultException e) {
return ImmutableList.of();
}
}
- private List<MailboxAnnotation> flatMapToList(Iterable<List<MailboxAnnotation>> likes) {
- ImmutableList.Builder<MailboxAnnotation> resultBuilder = ImmutableList.builder();
- for (List<MailboxAnnotation> mailboxAnnotations: likes) {
- resultBuilder.addAll(mailboxAnnotations);
- }
- return resultBuilder.build();
- }
-
@Override
public void deleteAnnotation(MailboxId mailboxId, MailboxAnnotationKey key) {
try {
http://git-wip-us.apache.org/repos/asf/james-project/blob/b3864f35/mailbox/lucene/src/main/java/org/apache/james/mailbox/lucene/search/LuceneMessageSearchIndex.java
----------------------------------------------------------------------
diff --git a/mailbox/lucene/src/main/java/org/apache/james/mailbox/lucene/search/LuceneMessageSearchIndex.java b/mailbox/lucene/src/main/java/org/apache/james/mailbox/lucene/search/LuceneMessageSearchIndex.java
index 99fab8d..dcf9abc 100644
--- a/mailbox/lucene/src/main/java/org/apache/james/mailbox/lucene/search/LuceneMessageSearchIndex.java
+++ b/mailbox/lucene/src/main/java/org/apache/james/mailbox/lucene/search/LuceneMessageSearchIndex.java
@@ -122,8 +122,8 @@ import org.apache.lucene.util.Version;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import com.github.steveash.guavate.Guavate;
import com.google.common.base.Preconditions;
-import com.google.common.collect.FluentIterable;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableSet;
@@ -465,19 +465,21 @@ public class LuceneMessageSearchIndex extends ListeningMessageSearchIndex {
.inMailboxes(mailboxId)
.build();
- return FluentIterable.from(searchMultimap(multimailboxesSearchQuery, session))
- .transform(SearchResult::getMessageUid)
+ return searchMultimap(multimailboxesSearchQuery, session)
+ .stream()
+ .map(SearchResult::getMessageUid)
.iterator();
}
@Override
public List<MessageId> search(MailboxSession session, MultimailboxesSearchQuery searchQuery, long limit) throws MailboxException {
Preconditions.checkArgument(session != null, "'session' is mandatory");
- return FluentIterable.from(searchMultimap(searchQuery, session))
- .transform(searchResult -> searchResult.getMessageId().get())
+ return searchMultimap(searchQuery, session)
+ .stream()
+ .map(searchResult -> searchResult.getMessageId().get())
.filter(SearchUtil.distinct())
.limit(Long.valueOf(limit).intValue())
- .toList();
+ .collect(Guavate.toImmutableList());
}
private List<SearchResult> searchMultimap(MultimailboxesSearchQuery searchQuery, MailboxSession session) throws MailboxException {
@@ -758,7 +760,7 @@ public class LuceneMessageSearchIndex extends ListeningMessageSearchIndex {
}
private static boolean hasAttachment(MailboxMessage membership) {
- return FluentIterable.from(membership.getProperties())
+ return membership.getProperties().stream()
.anyMatch(PropertyBuilder.isHasAttachmentProperty());
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/b3864f35/mailbox/memory/src/main/java/org/apache/james/mailbox/inmemory/InMemoryMessageIdManager.java
----------------------------------------------------------------------
diff --git a/mailbox/memory/src/main/java/org/apache/james/mailbox/inmemory/InMemoryMessageIdManager.java b/mailbox/memory/src/main/java/org/apache/james/mailbox/inmemory/InMemoryMessageIdManager.java
index 6246af9..6d63a64 100644
--- a/mailbox/memory/src/main/java/org/apache/james/mailbox/inmemory/InMemoryMessageIdManager.java
+++ b/mailbox/memory/src/main/java/org/apache/james/mailbox/inmemory/InMemoryMessageIdManager.java
@@ -43,7 +43,7 @@ import org.apache.james.mailbox.model.MessageRange;
import org.apache.james.mailbox.model.MessageResult;
import org.apache.james.mailbox.model.MessageResult.FetchGroup;
-import com.google.common.collect.FluentIterable;
+import com.github.steveash.guavate.Guavate;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableSet;
import com.google.common.collect.Iterables;
@@ -100,7 +100,9 @@ public class InMemoryMessageIdManager implements MessageIdManager {
filterOnMailboxSession(mailboxIds, mailboxSession);
if (!messages.isEmpty()) {
- ImmutableSet<MailboxId> currentMailboxes = currentMailboxes(messages).toSet();
+ ImmutableSet<MailboxId> currentMailboxes = messages.stream()
+ .map(MessageResult::getMailboxId)
+ .collect(Guavate.toImmutableSet());
HashSet<MailboxId> targetMailboxes = Sets.newHashSet(mailboxIds);
List<MailboxId> mailboxesToRemove = ImmutableList.copyOf(Sets.difference(currentMailboxes, targetMailboxes));
@@ -121,9 +123,10 @@ public class InMemoryMessageIdManager implements MessageIdManager {
}
private List<MailboxId> getUsersMailboxIds(final MailboxSession mailboxSession) throws MailboxException {
- return FluentIterable.from(mailboxManager.search(userMailboxes(mailboxSession), mailboxSession))
- .transform(MailboxMetaData::getId)
- .toList();
+ return mailboxManager.search(userMailboxes(mailboxSession), mailboxSession)
+ .stream()
+ .map(MailboxMetaData::getId)
+ .collect(Guavate.toImmutableList());
}
private MailboxQuery userMailboxes(MailboxSession mailboxSession) {
@@ -164,11 +167,6 @@ public class InMemoryMessageIdManager implements MessageIdManager {
};
}
- private FluentIterable<MailboxId> currentMailboxes(List<MessageResult> messages) {
- return FluentIterable.from(messages)
- .transform(MessageResult::getMailboxId);
- }
-
private Optional<MessageResult> findMessageWithId(MailboxId mailboxId, MessageId messageId, FetchGroup fetchGroup, MailboxSession mailboxSession) throws MailboxException {
return retrieveAllMessages(mailboxId, fetchGroup, mailboxSession)
.stream()
http://git-wip-us.apache.org/repos/asf/james-project/blob/b3864f35/mailbox/memory/src/main/java/org/apache/james/mailbox/inmemory/mail/InMemoryAnnotationMapper.java
----------------------------------------------------------------------
diff --git a/mailbox/memory/src/main/java/org/apache/james/mailbox/inmemory/mail/InMemoryAnnotationMapper.java b/mailbox/memory/src/main/java/org/apache/james/mailbox/inmemory/mail/InMemoryAnnotationMapper.java
index 514578e..fe3b41c 100644
--- a/mailbox/memory/src/main/java/org/apache/james/mailbox/inmemory/mail/InMemoryAnnotationMapper.java
+++ b/mailbox/memory/src/main/java/org/apache/james/mailbox/inmemory/mail/InMemoryAnnotationMapper.java
@@ -23,17 +23,19 @@ import java.util.List;
import java.util.Set;
import java.util.concurrent.locks.ReadWriteLock;
import java.util.concurrent.locks.ReentrantReadWriteLock;
+import java.util.function.Predicate;
+import java.util.stream.StreamSupport;
-import org.apache.commons.lang.StringUtils;
import org.apache.james.mailbox.exception.MailboxException;
import org.apache.james.mailbox.inmemory.InMemoryId;
import org.apache.james.mailbox.model.MailboxAnnotation;
import org.apache.james.mailbox.model.MailboxAnnotationKey;
import org.apache.james.mailbox.model.MailboxId;
import org.apache.james.mailbox.store.mail.AnnotationMapper;
+import org.apache.commons.lang.StringUtils;
+import com.github.steveash.guavate.Guavate;
import com.google.common.base.Preconditions;
-import com.google.common.base.Predicate;
import com.google.common.collect.HashBasedTable;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.Iterables;
@@ -82,20 +84,27 @@ public class InMemoryAnnotationMapper implements AnnotationMapper {
@Override
public List<MailboxAnnotation> getAnnotationsByKeysWithAllDepth(MailboxId mailboxId, final Set<MailboxAnnotationKey> keys) {
- return ImmutableList.copyOf(Iterables.filter(retrieveAllAnnotations((InMemoryId)mailboxId), getPredicateFilterByAll(keys)));
+ boolean parallel = true;
+
+ return StreamSupport.stream(retrieveAllAnnotations((InMemoryId)mailboxId).spliterator(), parallel)
+ .filter(getPredicateFilterByAll(keys))
+ .collect(Guavate.toImmutableList());
}
@Override
public List<MailboxAnnotation> getAnnotationsByKeysWithOneDepth(MailboxId mailboxId, final Set<MailboxAnnotationKey> keys) {
- return ImmutableList.copyOf(Iterables.filter(getAnnotationsByKeysWithAllDepth(mailboxId, keys), getPredicateFilterByOne(keys)));
+ return getAnnotationsByKeysWithAllDepth(mailboxId, keys)
+ .stream()
+ .filter(getPredicateFilterByOne(keys))
+ .collect(Guavate.toImmutableList());
}
private Predicate<MailboxAnnotation> getPredicateFilterByAll(final Set<MailboxAnnotationKey> keys) {
- return input -> Iterables.tryFind(keys, filterAnnotationsByPrefix(input)).isPresent();
+ return input -> keys.stream().anyMatch(filterAnnotationsByPrefix(input));
}
private Predicate<MailboxAnnotation> getPredicateFilterByOne(final Set<MailboxAnnotationKey> keys) {
- return input -> Iterables.tryFind(keys, filterAnnotationsByParentKey(input.getKey())).isPresent();
+ return input -> keys.stream().anyMatch(filterAnnotationsByParentKey(input.getKey()));
}
private Predicate<MailboxAnnotationKey> filterAnnotationsByParentKey(final MailboxAnnotationKey input) {
http://git-wip-us.apache.org/repos/asf/james-project/blob/b3864f35/mailbox/store/src/main/java/org/apache/james/mailbox/store/StoreMailboxManager.java
----------------------------------------------------------------------
diff --git a/mailbox/store/src/main/java/org/apache/james/mailbox/store/StoreMailboxManager.java b/mailbox/store/src/main/java/org/apache/james/mailbox/store/StoreMailboxManager.java
index dff2799..8bdebb2 100644
--- a/mailbox/store/src/main/java/org/apache/james/mailbox/store/StoreMailboxManager.java
+++ b/mailbox/store/src/main/java/org/apache/james/mailbox/store/StoreMailboxManager.java
@@ -85,7 +85,6 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.github.steveash.guavate.Guavate;
-import com.google.common.collect.FluentIterable;
import com.google.common.collect.Iterables;
/**
@@ -720,7 +719,7 @@ public class StoreMailboxManager implements MailboxManager {
}
private boolean hasChildIn(Mailbox parentMailbox, List<Mailbox> mailboxesWithPathLike, MailboxSession mailboxSession) {
- return FluentIterable.from(mailboxesWithPathLike)
+ return mailboxesWithPathLike.stream()
.anyMatch(mailbox -> mailbox.isChildOf(parentMailbox, mailboxSession));
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/b3864f35/mailbox/store/src/main/java/org/apache/james/mailbox/store/StoreMessageManager.java
----------------------------------------------------------------------
diff --git a/mailbox/store/src/main/java/org/apache/james/mailbox/store/StoreMessageManager.java b/mailbox/store/src/main/java/org/apache/james/mailbox/store/StoreMessageManager.java
index 6d4fbde..85a1282 100644
--- a/mailbox/store/src/main/java/org/apache/james/mailbox/store/StoreMessageManager.java
+++ b/mailbox/store/src/main/java/org/apache/james/mailbox/store/StoreMessageManager.java
@@ -93,7 +93,6 @@ import org.apache.commons.io.input.TeeInputStream;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import com.google.common.collect.FluentIterable;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableMap;
@@ -443,7 +442,7 @@ public class StoreMessageManager implements org.apache.james.mailbox.MessageMana
}
private boolean hasNonInlinedAttachment(List<MessageAttachment> attachments) {
- return FluentIterable.from(attachments)
+ return attachments.stream()
.anyMatch(messageAttachment -> !messageAttachment.isInlinedWithCid());
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/b3864f35/mailbox/store/src/main/java/org/apache/james/mailbox/store/mail/model/impl/PropertyBuilder.java
----------------------------------------------------------------------
diff --git a/mailbox/store/src/main/java/org/apache/james/mailbox/store/mail/model/impl/PropertyBuilder.java b/mailbox/store/src/main/java/org/apache/james/mailbox/store/mail/model/impl/PropertyBuilder.java
index 6667a37..33ee262 100644
--- a/mailbox/store/src/main/java/org/apache/james/mailbox/store/mail/model/impl/PropertyBuilder.java
+++ b/mailbox/store/src/main/java/org/apache/james/mailbox/store/mail/model/impl/PropertyBuilder.java
@@ -39,7 +39,6 @@ import static org.apache.james.mailbox.store.mail.model.StandardNames.MIME_CONTE
import static org.apache.james.mailbox.store.mail.model.StandardNames.MIME_MEDIA_TYPE_NAME;
import static org.apache.james.mailbox.store.mail.model.StandardNames.MIME_MIME_TYPE_SPACE;
import static org.apache.james.mailbox.store.mail.model.StandardNames.MIME_SUB_TYPE_NAME;
-
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
@@ -47,11 +46,11 @@ import java.util.Locale;
import java.util.Map;
import java.util.SortedMap;
import java.util.TreeMap;
+import java.util.function.Predicate;
import org.apache.james.mailbox.store.mail.model.Property;
import com.github.steveash.guavate.Guavate;
-import com.google.common.base.Predicate;
/**
* Builds properties
http://git-wip-us.apache.org/repos/asf/james-project/blob/b3864f35/mailbox/store/src/main/java/org/apache/james/mailbox/store/mail/utils/ApplicableFlagCalculator.java
----------------------------------------------------------------------
diff --git a/mailbox/store/src/main/java/org/apache/james/mailbox/store/mail/utils/ApplicableFlagCalculator.java b/mailbox/store/src/main/java/org/apache/james/mailbox/store/mail/utils/ApplicableFlagCalculator.java
index b95e153..ef21d47 100644
--- a/mailbox/store/src/main/java/org/apache/james/mailbox/store/mail/utils/ApplicableFlagCalculator.java
+++ b/mailbox/store/src/main/java/org/apache/james/mailbox/store/mail/utils/ApplicableFlagCalculator.java
@@ -19,13 +19,14 @@
package org.apache.james.mailbox.store.mail.utils;
+import java.util.stream.StreamSupport;
import javax.mail.Flags;
import org.apache.james.mailbox.ApplicableFlagBuilder;
import org.apache.james.mailbox.store.mail.model.MailboxMessage;
import com.google.common.base.Preconditions;
-import com.google.common.collect.FluentIterable;
+
public class ApplicableFlagCalculator {
@@ -37,10 +38,12 @@ public class ApplicableFlagCalculator {
}
public Flags computeApplicableFlags() {
+ boolean isParallel = true;
+
return ApplicableFlagBuilder.builder()
- .add(FluentIterable.from(mailboxMessages)
- .transform(MailboxMessage::createFlags)
- .toArray(Flags.class))
+ .add(StreamSupport.stream(mailboxMessages.spliterator(), isParallel)
+ .map(MailboxMessage::createFlags)
+ .toArray(Flags[]::new))
.build();
}
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/b3864f35/mailbox/store/src/main/java/org/apache/james/mailbox/store/search/MessageSearches.java
----------------------------------------------------------------------
diff --git a/mailbox/store/src/main/java/org/apache/james/mailbox/store/search/MessageSearches.java b/mailbox/store/src/main/java/org/apache/james/mailbox/store/search/MessageSearches.java
index 47a8f2f..87e6c24 100644
--- a/mailbox/store/src/main/java/org/apache/james/mailbox/store/search/MessageSearches.java
+++ b/mailbox/store/src/main/java/org/apache/james/mailbox/store/search/MessageSearches.java
@@ -72,7 +72,6 @@ import org.apache.james.mime4j.utils.search.MessageMatcher;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import com.google.common.collect.FluentIterable;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.Lists;
@@ -118,10 +117,10 @@ public class MessageSearches implements Iterable<SimpleMessageSearchIndex.Search
LOGGER.error("Unable to search message " + m.getUid(), e);
}
}
- List<MailboxMessage> sortedResults = FluentIterable.from(builder.build())
- .toSortedList(CombinedComparator.create(query.getSorts()));
- return FluentIterable.from(sortedResults)
- .transform(mailboxMessage -> new SimpleMessageSearchIndex.SearchResult(
+ return builder.build()
+ .stream()
+ .sorted(CombinedComparator.create(query.getSorts()))
+ .map(mailboxMessage -> new SimpleMessageSearchIndex.SearchResult(
Optional.of(mailboxMessage.getMessageId()),
mailboxMessage.getMailboxId(),
mailboxMessage.getUid()))
@@ -498,7 +497,8 @@ public class MessageSearches implements Iterable<SimpleMessageSearchIndex.Search
private boolean matches(SearchQuery.AttachmentCriterion criterion, MailboxMessage message) throws UnsupportedSearchException {
- boolean mailHasAttachments = FluentIterable.from(message.getProperties())
+ boolean mailHasAttachments = message.getProperties()
+ .stream()
.anyMatch(PropertyBuilder.isHasAttachmentProperty());
return mailHasAttachments == criterion.getOperator().isSet();
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/b3864f35/mailbox/store/src/main/java/org/apache/james/mailbox/store/search/SearchUtil.java
----------------------------------------------------------------------
diff --git a/mailbox/store/src/main/java/org/apache/james/mailbox/store/search/SearchUtil.java b/mailbox/store/src/main/java/org/apache/james/mailbox/store/search/SearchUtil.java
index a51a7ff..1b7249a 100644
--- a/mailbox/store/src/main/java/org/apache/james/mailbox/store/search/SearchUtil.java
+++ b/mailbox/store/src/main/java/org/apache/james/mailbox/store/search/SearchUtil.java
@@ -22,6 +22,7 @@ import java.nio.charset.Charset;
import java.util.HashSet;
import java.util.Locale;
import java.util.Set;
+import java.util.function.Predicate;
import org.apache.james.mailbox.model.MessageId;
import org.apache.james.mailbox.store.mail.model.MailboxMessage;
@@ -35,8 +36,6 @@ import org.apache.james.mime4j.dom.address.MailboxList;
import org.apache.james.mime4j.field.address.LenientAddressParser;
import org.apache.james.mime4j.util.MimeUtil;
-import com.google.common.base.Predicate;
-
/**
* Utility class which helps with extracting of data for searches
*
@@ -478,7 +477,7 @@ public class SearchUtil {
private final Set<MessageId> set = new HashSet<>();
@Override
- public boolean apply(MessageId input) {
+ public boolean test(MessageId input) {
return set.add(input);
}
};
http://git-wip-us.apache.org/repos/asf/james-project/blob/b3864f35/mailbox/store/src/main/java/org/apache/james/mailbox/store/search/SimpleMessageSearchIndex.java
----------------------------------------------------------------------
diff --git a/mailbox/store/src/main/java/org/apache/james/mailbox/store/search/SimpleMessageSearchIndex.java b/mailbox/store/src/main/java/org/apache/james/mailbox/store/search/SimpleMessageSearchIndex.java
index a716105..bc9a931 100644
--- a/mailbox/store/src/main/java/org/apache/james/mailbox/store/search/SimpleMessageSearchIndex.java
+++ b/mailbox/store/src/main/java/org/apache/james/mailbox/store/search/SimpleMessageSearchIndex.java
@@ -18,13 +18,12 @@
****************************************************************/
package org.apache.james.mailbox.store.search;
-import java.util.ArrayList;
import java.util.EnumSet;
import java.util.Iterator;
import java.util.List;
import java.util.SortedSet;
import java.util.TreeSet;
-
+import java.util.stream.Stream;
import javax.inject.Inject;
import org.apache.james.mailbox.MailboxManager.SearchCapabilities;
@@ -47,8 +46,9 @@ import org.apache.james.mailbox.store.mail.MessageMapperFactory;
import org.apache.james.mailbox.store.mail.model.Mailbox;
import org.apache.james.mailbox.store.mail.model.MailboxMessage;
+import com.github.steveash.guavate.Guavate;
import com.google.common.base.Preconditions;
-import com.google.common.collect.FluentIterable;
+import com.google.common.base.Throwables;
import com.google.common.collect.ImmutableList;
/**
@@ -98,21 +98,13 @@ public class SimpleMessageSearchIndex implements MessageSearchIndex {
@Override
public Iterator<MessageUid> search(MailboxSession session, final Mailbox mailbox, SearchQuery query) throws MailboxException {
Preconditions.checkArgument(session != null, "'session' is mandatory");
- return FluentIterable.from(searchResults(session, ImmutableList.of(mailbox), query))
- .filter(searchResult -> searchResult.getMailboxId().equals(mailbox.getMailboxId()))
- .transform(SearchResult::getMessageUid)
- .iterator();
+ return searchResults(session, ImmutableList.of(mailbox).stream(), query)
+ .stream()
+ .filter(searchResult -> searchResult.getMailboxId().equals(mailbox.getMailboxId()))
+ .map(SearchResult::getMessageUid)
+ .iterator();
}
- private List<SearchResult> searchResults(MailboxSession session, Iterable<Mailbox> mailboxes, SearchQuery query) throws MailboxException {
- ImmutableList.Builder<SearchResult> builder = ImmutableList.builder();
- for (Mailbox mailbox: mailboxes) {
- builder.addAll(searchResults(session, mailbox, query));
- }
- return builder.build();
-
- }
-
private List<SearchResult> searchResults(MailboxSession session, Mailbox mailbox, SearchQuery query) throws MailboxException {
if (!isMatchingUser(session, mailbox)) {
return ImmutableList.of();
@@ -151,27 +143,35 @@ public class SimpleMessageSearchIndex implements MessageSearchIndex {
public List<MessageId> search(MailboxSession session, final MultimailboxesSearchQuery searchQuery, long limit) throws MailboxException {
List<Mailbox> allUserMailboxes = mailboxMapperFactory.getMailboxMapper(session)
.findMailboxWithPathLike(new MailboxPath(session.getPersonalSpace(), session.getUser().getUserName(), WILDCARD));
- FluentIterable<Mailbox> filteredMailboxes = FluentIterable
- .from(allUserMailboxes)
+ Stream<Mailbox> filteredMailboxes = allUserMailboxes.stream()
.filter(mailbox -> !searchQuery.getNotInMailboxes().contains(mailbox.getMailboxId()));
+
if (searchQuery.getInMailboxes().isEmpty()) {
return getAsMessageIds(searchResults(session, filteredMailboxes, searchQuery.getSearchQuery()), limit);
}
- List<Mailbox> queriedMailboxes = new ArrayList<>();
- for (Mailbox mailbox: filteredMailboxes) {
- if (searchQuery.getInMailboxes().contains(mailbox.getMailboxId())) {
- queriedMailboxes.add(mailbox);
+ List<Mailbox> queriedMailboxes = filteredMailboxes
+ .filter(mailbox -> searchQuery.getInMailboxes().contains(mailbox.getMailboxId()))
+ .collect(Guavate.toImmutableList());
+
+ return getAsMessageIds(searchResults(session, queriedMailboxes.stream(), searchQuery.getSearchQuery()), limit);
+ }
+
+ private List<SearchResult> searchResults(MailboxSession session, Stream<Mailbox> mailboxes, SearchQuery query) throws MailboxException {
+ return mailboxes.flatMap(mailbox -> {
+ try {
+ return searchResults(session, mailbox, query).stream();
+ } catch (MailboxException e) {
+ throw Throwables.propagate(e);
}
- }
- return getAsMessageIds(searchResults(session, queriedMailboxes, searchQuery.getSearchQuery()), limit);
+ }).collect(Guavate.toImmutableList());
}
private List<MessageId> getAsMessageIds(List<SearchResult> temp, long limit) {
- return FluentIterable.from(temp)
- .transform(searchResult -> searchResult.getMessageId().get())
+ return temp.stream()
+ .map(searchResult -> searchResult.getMessageId().get())
.filter(SearchUtil.distinct())
.limit(Long.valueOf(limit).intValue())
- .toList();
+ .collect(Guavate.toImmutableList());
}
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/b3864f35/mailbox/store/src/main/java/org/apache/james/mailbox/store/search/comparator/CombinedComparator.java
----------------------------------------------------------------------
diff --git a/mailbox/store/src/main/java/org/apache/james/mailbox/store/search/comparator/CombinedComparator.java b/mailbox/store/src/main/java/org/apache/james/mailbox/store/search/comparator/CombinedComparator.java
index 53d270f..bb98fb7 100644
--- a/mailbox/store/src/main/java/org/apache/james/mailbox/store/search/comparator/CombinedComparator.java
+++ b/mailbox/store/src/main/java/org/apache/james/mailbox/store/search/comparator/CombinedComparator.java
@@ -20,14 +20,15 @@ package org.apache.james.mailbox.store.search.comparator;
import java.util.Comparator;
import java.util.List;
+import java.util.function.Function;
-import org.apache.commons.lang.NotImplementedException;
import org.apache.james.mailbox.model.SearchQuery.Sort;
import org.apache.james.mailbox.store.mail.model.MailboxMessage;
+import org.apache.commons.lang.NotImplementedException;
-import com.google.common.base.Function;
+import com.github.steveash.guavate.Guavate;
import com.google.common.base.Preconditions;
-import com.google.common.collect.FluentIterable;
+
/**
* {@link Comparator} which takes a Array of other {@link Comparator}'s and use them to compare two {@link MailboxMessage} instances till one of them
@@ -38,9 +39,9 @@ public class CombinedComparator implements Comparator<MailboxMessage>{
public static CombinedComparator create(List<Sort> sorts) {
Preconditions.checkNotNull(sorts);
Preconditions.checkArgument(!sorts.isEmpty());
- return new CombinedComparator(FluentIterable.from(sorts)
- .transform(toComparator())
- .toList());
+ return new CombinedComparator(sorts.stream()
+ .map(toComparator())
+ .collect(Guavate.toImmutableList()));
}
private static Function<Sort, Comparator<MailboxMessage>> toComparator() {
http://git-wip-us.apache.org/repos/asf/james-project/blob/b3864f35/mailbox/store/src/test/java/org/apache/james/mailbox/store/AbstractCombinationManagerTest.java
----------------------------------------------------------------------
diff --git a/mailbox/store/src/test/java/org/apache/james/mailbox/store/AbstractCombinationManagerTest.java b/mailbox/store/src/test/java/org/apache/james/mailbox/store/AbstractCombinationManagerTest.java
index a78e7c0..61b51e6 100644
--- a/mailbox/store/src/test/java/org/apache/james/mailbox/store/AbstractCombinationManagerTest.java
+++ b/mailbox/store/src/test/java/org/apache/james/mailbox/store/AbstractCombinationManagerTest.java
@@ -20,11 +20,10 @@
package org.apache.james.mailbox.store;
import static org.assertj.core.api.Assertions.assertThat;
-
import java.io.ByteArrayInputStream;
import java.util.Date;
import java.util.List;
-
+import java.util.function.Predicate;
import javax.mail.Flags;
import javax.mail.Flags.Flag;
@@ -52,8 +51,6 @@ import org.junit.After;
import org.junit.Before;
import org.junit.Test;
-import com.google.common.base.Predicate;
-import com.google.common.collect.FluentIterable;
import com.google.common.collect.ImmutableList;
public abstract class AbstractCombinationManagerTest {
@@ -287,9 +284,10 @@ public abstract class AbstractCombinationManagerTest {
List<MessageResult> listMessages = messageIdManager.getMessages(ImmutableList.of(messageId.getMessageId()), FetchGroupImpl.MINIMAL, session);
- long uid2 = FluentIterable.from(listMessages)
+ long uid2 = listMessages.stream()
.filter(messageInMailbox2())
- .get(0)
+ .findFirst()
+ .get()
.getUid()
.asLong();
@@ -450,10 +448,11 @@ public abstract class AbstractCombinationManagerTest {
messageIdManager.setInMailboxes(messageId, ImmutableList.of(mailbox1.getMailboxId(), mailbox2.getMailboxId()), session);
- List<MessageResult> listMessages = messageIdManager.getMessages(ImmutableList.of(messageId), FetchGroupImpl.MINIMAL, session);
- MessageUid uid2 = FluentIterable.from(listMessages)
+ MessageUid uid2 = messageIdManager.getMessages(ImmutableList.of(messageId), FetchGroupImpl.MINIMAL, session)
+ .stream()
.filter(messageInMailbox2())
- .get(0)
+ .findFirst()
+ .get()
.getUid();
SearchQuery searchQuery = new SearchQuery(SearchQuery.all());
http://git-wip-us.apache.org/repos/asf/james-project/blob/b3864f35/mailbox/store/src/test/java/org/apache/james/mailbox/store/AbstractMessageIdManagerStorageTest.java
----------------------------------------------------------------------
diff --git a/mailbox/store/src/test/java/org/apache/james/mailbox/store/AbstractMessageIdManagerStorageTest.java b/mailbox/store/src/test/java/org/apache/james/mailbox/store/AbstractMessageIdManagerStorageTest.java
index 0e6bdd8..626c9a7 100644
--- a/mailbox/store/src/test/java/org/apache/james/mailbox/store/AbstractMessageIdManagerStorageTest.java
+++ b/mailbox/store/src/test/java/org/apache/james/mailbox/store/AbstractMessageIdManagerStorageTest.java
@@ -20,11 +20,9 @@
package org.apache.james.mailbox.store;
import static org.assertj.core.api.Assertions.assertThat;
-
-import java.util.AbstractMap;
import java.util.List;
import java.util.Map;
-
+import java.util.function.Predicate;
import javax.mail.Flags;
import org.apache.james.mailbox.MailboxSession;
@@ -46,11 +44,8 @@ import org.junit.Rule;
import org.junit.Test;
import org.junit.rules.ExpectedException;
-import com.google.common.base.Function;
-import com.google.common.base.Predicate;
-import com.google.common.collect.FluentIterable;
+import com.github.steveash.guavate.Guavate;
import com.google.common.collect.ImmutableList;
-import com.google.common.collect.ImmutableMap;
public abstract class AbstractMessageIdManagerStorageTest {
public static final Flags FLAGS = new Flags();
@@ -58,11 +53,6 @@ public abstract class AbstractMessageIdManagerStorageTest {
private static final MessageUid messageUid1 = MessageUid.of(111);
private static final MessageUid messageUid2 = MessageUid.of(222);
- private static final Function<MessageResult, Map.Entry<MessageId, Flags>> toMapEntryOfFlags() {
- return messageResult -> new AbstractMap.SimpleEntry<>(messageResult.getMessageId(), messageResult.getFlags());
- }
-
-
private MessageIdManagerTestSystem testingData;
private MessageIdManager messageIdManager;
private Mailbox mailbox1;
@@ -172,11 +162,11 @@ public abstract class AbstractMessageIdManagerStorageTest {
MessageUid uidMessage1Mailbox1 = messageIdManager.getMessages(ImmutableList.of(messageId1), FetchGroupImpl.MINIMAL, session)
.get(0)
.getUid();
- MessageUid uidMessage2Mailbox1 = FluentIterable
- .from(messageIdManager.getMessages(ImmutableList.of(messageId2), FetchGroupImpl.MINIMAL, session))
+ MessageUid uidMessage2Mailbox1 = messageIdManager.getMessages(ImmutableList.of(messageId2), FetchGroupImpl.MINIMAL, session)
+ .stream()
.filter(inMailbox(mailbox1.getMailboxId()))
- .toList()
- .get(0)
+ .findFirst()
+ .get()
.getUid();
assertThat(uidMessage2Mailbox1).isGreaterThan(uidMessage1Mailbox1);
@@ -192,11 +182,11 @@ public abstract class AbstractMessageIdManagerStorageTest {
long modSeqMessage1Mailbox1 = messageIdManager.getMessages(ImmutableList.of(messageId1), FetchGroupImpl.MINIMAL, session)
.get(0)
.getModSeq();
- long modSeqMessage2Mailbox1 = FluentIterable
- .from(messageIdManager.getMessages(ImmutableList.of(messageId2), FetchGroupImpl.MINIMAL, session))
+ long modSeqMessage2Mailbox1 = messageIdManager.getMessages(ImmutableList.of(messageId2), FetchGroupImpl.MINIMAL, session)
+ .stream()
.filter(inMailbox(mailbox1.getMailboxId()))
- .toList()
- .get(0)
+ .findFirst()
+ .get()
.getModSeq();
assertThat(modSeqMessage2Mailbox1).isGreaterThan(modSeqMessage1Mailbox1);
@@ -211,11 +201,11 @@ public abstract class AbstractMessageIdManagerStorageTest {
messageIdManager.setInMailboxes(messageId, ImmutableList.of(mailbox1.getMailboxId(), mailbox2.getMailboxId()), session);
- MessageResult messageResult2 = FluentIterable
- .from(messageIdManager.getMessages(ImmutableList.of(messageId), FetchGroupImpl.MINIMAL, session))
+ MessageResult messageResult2 = messageIdManager.getMessages(ImmutableList.of(messageId), FetchGroupImpl.MINIMAL, session)
+ .stream()
.filter(inMailbox(mailbox1.getMailboxId()))
- .toList()
- .get(0);
+ .findFirst()
+ .get();
MessageUid messageUid2 = messageResult2.getUid();
long modSeq2 = messageResult2.getModSeq();
@@ -229,9 +219,10 @@ public abstract class AbstractMessageIdManagerStorageTest {
messageIdManager.setInMailboxes(messageId, ImmutableList.of(mailbox1.getMailboxId(), mailbox2.getMailboxId()), session);
messageIdManager.setInMailboxes(messageId, ImmutableList.of(mailbox1.getMailboxId(), mailbox3.getMailboxId()), session);
- List<MailboxId> messageMailboxIds = FluentIterable.from(messageIdManager.getMessages(ImmutableList.of(messageId), FetchGroupImpl.MINIMAL, session))
- .transform(MessageResult::getMailboxId)
- .toList();
+ List<MailboxId> messageMailboxIds = messageIdManager.getMessages(ImmutableList.of(messageId), FetchGroupImpl.MINIMAL, session)
+ .stream()
+ .map(MessageResult::getMailboxId)
+ .collect(Guavate.toImmutableList());
assertThat(messageMailboxIds).containsOnly(mailbox1.getMailboxId(), mailbox3.getMailboxId());
}
@@ -245,11 +236,11 @@ public abstract class AbstractMessageIdManagerStorageTest {
messageIdManager.setInMailboxes(messageId, ImmutableList.of(mailbox1.getMailboxId(), mailbox3.getMailboxId()), session);
- MessageResult messageResult3 = FluentIterable
- .from(messageIdManager.getMessages(ImmutableList.of(messageId), FetchGroupImpl.MINIMAL, session))
+ MessageResult messageResult3 = messageIdManager.getMessages(ImmutableList.of(messageId), FetchGroupImpl.MINIMAL, session)
+ .stream()
.filter(inMailbox(mailbox3.getMailboxId()))
- .toList()
- .get(0);
+ .findFirst()
+ .get();
assertThat(messageResult3.getFlags()).isEqualTo(newFlags);
}
@@ -389,11 +380,11 @@ public abstract class AbstractMessageIdManagerStorageTest {
messageIdManager.setInMailboxes(messageId, ImmutableList.of(mailbox1.getMailboxId(), mailbox2.getMailboxId()), session);
messageIdManager.setFlags(newFlags, MessageManager.FlagsUpdateMode.ADD, messageId, ImmutableList.of(mailbox1.getMailboxId(), mailbox2.getMailboxId()), session);
-
- List<Flags> flags = FluentIterable
- .from(messageIdManager.getMessages(ImmutableList.of(messageId), FetchGroupImpl.MINIMAL, session))
- .transform(MessageResult::getFlags)
- .toList();
+
+ List<Flags> flags = messageIdManager.getMessages(ImmutableList.of(messageId), FetchGroupImpl.MINIMAL, session)
+ .stream()
+ .map(MessageResult::getFlags)
+ .collect(Guavate.toImmutableList());
assertThat(flags).hasSize(2);
assertThat(flags.get(0)).isEqualTo(newFlags);
@@ -407,11 +398,11 @@ public abstract class AbstractMessageIdManagerStorageTest {
MessageId messageId2 = testingData.persist(mailbox1.getMailboxId(), messageUid2, FLAGS, session);
messageIdManager.setFlags(newFlags, MessageManager.FlagsUpdateMode.ADD, messageId2, ImmutableList.of(mailbox1.getMailboxId()), session);
-
- List<Flags> flags = FluentIterable
- .from(messageIdManager.getMessages(ImmutableList.of(messageId1), FetchGroupImpl.MINIMAL, session))
- .transform(MessageResult::getFlags)
- .toList();
+
+ List<Flags> flags = messageIdManager.getMessages(ImmutableList.of(messageId1), FetchGroupImpl.MINIMAL, session)
+ .stream()
+ .map(MessageResult::getFlags)
+ .collect(Guavate.toImmutableList());
assertThat(flags).hasSize(1);
assertThat(flags.get(0)).isEqualTo(FLAGS);
@@ -422,12 +413,12 @@ public abstract class AbstractMessageIdManagerStorageTest {
Flags newFlags = new Flags(Flags.Flag.SEEN);
MessageId messageId1 = testingData.persist(mailbox1.getMailboxId(), messageUid1, FLAGS, session);
- messageIdManager.setFlags(newFlags, MessageManager.FlagsUpdateMode.ADD, messageId1, ImmutableList.<MailboxId>of(), session);
+ messageIdManager.setFlags(newFlags, MessageManager.FlagsUpdateMode.ADD, messageId1, ImmutableList.of(), session);
- List<Flags> flags = FluentIterable
- .from(messageIdManager.getMessages(ImmutableList.of(messageId1), FetchGroupImpl.MINIMAL, session))
- .transform(MessageResult::getFlags)
- .toList();
+ List<Flags> flags = messageIdManager.getMessages(ImmutableList.of(messageId1), FetchGroupImpl.MINIMAL, session)
+ .stream()
+ .map(MessageResult::getFlags)
+ .collect(Guavate.toImmutableList());
assertThat(flags).hasSize(1);
assertThat(flags.get(0)).isEqualTo(FLAGS);
@@ -440,10 +431,10 @@ public abstract class AbstractMessageIdManagerStorageTest {
messageIdManager.setFlags(newFlags, MessageManager.FlagsUpdateMode.ADD, messageId1, ImmutableList.of(mailbox2.getMailboxId()), session);
- List<Flags> flags = FluentIterable
- .from(messageIdManager.getMessages(ImmutableList.of(messageId1), FetchGroupImpl.MINIMAL, session))
- .transform(MessageResult::getFlags)
- .toList();
+ List<Flags> flags = messageIdManager.getMessages(ImmutableList.of(messageId1), FetchGroupImpl.MINIMAL, session)
+ .stream()
+ .map(MessageResult::getFlags)
+ .collect(Guavate.toImmutableList());
assertThat(flags).hasSize(1);
assertThat(flags.get(0)).isEqualTo(FLAGS);
@@ -457,14 +448,9 @@ public abstract class AbstractMessageIdManagerStorageTest {
messageIdManager.setFlags(newFlags, MessageManager.FlagsUpdateMode.ADD, messageId1, ImmutableList.of(mailbox1.getMailboxId(), mailbox2.getMailboxId()), session);
- final List<Map.Entry<MessageId, Flags>> entries = FluentIterable.from(messageIdManager.getMessages(ImmutableList.of(messageId1, messageId2), FetchGroupImpl.MINIMAL, session))
- .transform(toMapEntryOfFlags())
- .toList();
- ImmutableMap.Builder<MessageId, Flags> builder = ImmutableMap.builder();
- for (Map.Entry<MessageId, Flags> entry : entries) {
- builder.put(entry);
- }
- Map<MessageId, Flags> flags = builder.build();
+ Map<MessageId, Flags> flags = messageIdManager.getMessages(ImmutableList.of(messageId1, messageId2), FetchGroupImpl.MINIMAL, session)
+ .stream()
+ .collect(Guavate.toImmutableMap(MessageResult::getMessageId, MessageResult::getFlags));
assertThat(flags).hasSize(2);
assertThat(flags.get(messageId1)).isEqualTo(newFlags);
http://git-wip-us.apache.org/repos/asf/james-project/blob/b3864f35/mailbox/store/src/test/java/org/apache/james/mailbox/store/TestMailboxSessionMapperFactory.java
----------------------------------------------------------------------
diff --git a/mailbox/store/src/test/java/org/apache/james/mailbox/store/TestMailboxSessionMapperFactory.java b/mailbox/store/src/test/java/org/apache/james/mailbox/store/TestMailboxSessionMapperFactory.java
index bd86c44..7a93597 100644
--- a/mailbox/store/src/test/java/org/apache/james/mailbox/store/TestMailboxSessionMapperFactory.java
+++ b/mailbox/store/src/test/java/org/apache/james/mailbox/store/TestMailboxSessionMapperFactory.java
@@ -22,15 +22,14 @@ package org.apache.james.mailbox.store;
import static org.mockito.Matchers.any;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
-
import java.util.AbstractMap;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
-
+import java.util.function.Function;
+import java.util.function.Predicate;
import javax.mail.Flags;
-import org.apache.commons.lang.NotImplementedException;
import org.apache.james.mailbox.MailboxSession;
import org.apache.james.mailbox.MessageManager;
import org.apache.james.mailbox.MessageUid;
@@ -55,12 +54,11 @@ import org.apache.james.mailbox.store.mail.model.Mailbox;
import org.apache.james.mailbox.store.mail.model.MailboxMessage;
import org.apache.james.mailbox.store.mail.model.impl.SimpleMailbox;
import org.apache.james.mailbox.store.user.SubscriptionMapper;
+import org.apache.commons.lang.NotImplementedException;
-import com.google.common.base.Function;
+import com.github.steveash.guavate.Guavate;
import com.google.common.base.Preconditions;
-import com.google.common.base.Predicate;
import com.google.common.base.Throwables;
-import com.google.common.collect.FluentIterable;
import com.google.common.collect.ImmutableMap;
public class TestMailboxSessionMapperFactory extends MailboxSessionMapperFactory {
@@ -162,17 +160,17 @@ public class TestMailboxSessionMapperFactory extends MailboxSessionMapperFactory
@Override
public List<MailboxMessage> find(final List<MessageId> messageIds, MessageMapper.FetchType fetchType) {
- return FluentIterable.from(messages)
+ return messages.stream()
.filter(withMessageIdOneOf(messageIds))
- .toList();
+ .collect(Guavate.toImmutableList());
}
@Override
public List<MailboxId> findMailboxes(final MessageId messageId) {
- return FluentIterable.from(messages)
+ return messages.stream()
.filter(withMessageId(messageId))
- .transform(MailboxMessage::getMailboxId)
- .toList();
+ .map(MailboxMessage::getMailboxId)
+ .collect(Guavate.toImmutableList());
}
@Override
@@ -188,28 +186,28 @@ public class TestMailboxSessionMapperFactory extends MailboxSessionMapperFactory
@Override
public void delete(final MessageId messageId) {
messages.removeAll(
- FluentIterable.from(messages)
+ messages.stream()
.filter(withMessageId(messageId))
- .toList());
+ .collect(Guavate.toImmutableList()));
}
@Override
public void delete(final MessageId messageId, final List<MailboxId> mailboxIds) {
messages.removeAll(
- FluentIterable.from(messages)
+ messages.stream()
.filter(withMessageId(messageId))
.filter(inMailboxes(mailboxIds))
- .toList());
+ .collect(Guavate.toImmutableList()));
}
@Override
public Map<MailboxId, UpdatedFlags> setFlags(MessageId messageId, List<MailboxId> mailboxIds, Flags newState, MessageManager.FlagsUpdateMode updateMode) throws MailboxException {
- final List<Map.Entry<MailboxId, UpdatedFlags>> entries = FluentIterable.from(messages)
+ final List<Map.Entry<MailboxId, UpdatedFlags>> entries = messages.stream()
.filter(withMessageId(messageId))
.filter(inMailboxes(mailboxIds))
- .transform(toMapEntryOfUpdatedFlags(newState, updateMode))
+ .map(toMapEntryOfUpdatedFlags(newState, updateMode))
.filter(isChanged())
- .toList();
+ .collect(Guavate.toImmutableList());
ImmutableMap.Builder<MailboxId, UpdatedFlags> builder = ImmutableMap.builder();
for (Map.Entry<MailboxId, UpdatedFlags> entry : entries) {
builder.put(entry);
http://git-wip-us.apache.org/repos/asf/james-project/blob/b3864f35/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/ListMailboxAssert.java
----------------------------------------------------------------------
diff --git a/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/ListMailboxAssert.java b/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/ListMailboxAssert.java
index 74c6e85..69439ca 100644
--- a/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/ListMailboxAssert.java
+++ b/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/ListMailboxAssert.java
@@ -20,13 +20,12 @@
package org.apache.james.mailbox.store.mail.model;
import static org.assertj.core.api.Assertions.assertThat;
-
import java.util.List;
import org.apache.james.mailbox.model.MailboxId;
+import com.github.steveash.guavate.Guavate;
import com.google.common.base.Objects;
-import com.google.common.collect.FluentIterable;
import com.google.common.collect.Lists;
public class ListMailboxAssert {
@@ -34,10 +33,10 @@ public class ListMailboxAssert {
private final List<Mailbox> actual;
private final List<InnerMailbox> mailboxtoInnerMailbox(List<Mailbox> mailboxes) {
- return FluentIterable.from(mailboxes)
- .transform(mailbox ->
+ return mailboxes.stream()
+ .map(mailbox ->
new InnerMailbox(mailbox.getMailboxId(), mailbox.getUser(), mailbox.getName(), mailbox.getNamespace()))
- .toList();
+ .collect(Guavate.toImmutableList());
}
private ListMailboxAssert(List<Mailbox> actual) {
http://git-wip-us.apache.org/repos/asf/james-project/blob/b3864f35/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/ListMessageAssert.java
----------------------------------------------------------------------
diff --git a/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/ListMessageAssert.java b/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/ListMessageAssert.java
index b54b423..215b8c1 100644
--- a/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/ListMessageAssert.java
+++ b/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/ListMessageAssert.java
@@ -20,35 +20,35 @@
package org.apache.james.mailbox.store.mail.model;
import static org.assertj.core.api.Assertions.assertThat;
-
import java.io.IOException;
import java.util.Date;
import java.util.List;
-import org.apache.commons.io.IOUtils;
import org.apache.james.mailbox.MessageUid;
import org.apache.james.mailbox.model.MailboxId;
import org.apache.james.mailbox.model.MessageId;
+import org.apache.commons.io.IOUtils;
-import com.google.common.base.Charsets;
+import com.github.steveash.guavate.Guavate;
import com.google.common.base.Objects;
import com.google.common.base.Throwables;
-import com.google.common.collect.FluentIterable;
import com.google.common.collect.Lists;
public class ListMessageAssert {
private final List<MailboxMessage> actual;
private final List<InnerMessage> messageToInnerMessage(List<MailboxMessage> messages) {
- return FluentIterable.from(messages).transform(message -> {
- try {
- return new InnerMessage(message.getMessageId(), message.getUid(), message.getMailboxId(), message.getInternalDate(), message.getBodyOctets(),
- message.getFullContentOctets(), message.getMediaType(), message.getSubType(), IOUtils.toString(message.getFullContent(), Charsets.UTF_8));
- } catch (IOException e) {
- Throwables.propagate(e);
- return null;
- }
- }).toList();
+ return messages.stream()
+ .map(message -> {
+ try {
+ return new InnerMessage(message.getMessageId(), message.getUid(), message.getMailboxId(), message.getInternalDate(), message.getBodyOctets(),
+ message.getFullContentOctets(), message.getMediaType(), message.getSubType(), IOUtils.toString(message.getFullContent()));
+ } catch (IOException e) {
+ Throwables.propagate(e);
+ return null;
+ }
+ })
+ .collect(Guavate.toImmutableList());
}
private ListMessageAssert(List<MailboxMessage> actual) {
http://git-wip-us.apache.org/repos/asf/james-project/blob/b3864f35/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/ListMessagePropertiesAssert.java
----------------------------------------------------------------------
diff --git a/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/ListMessagePropertiesAssert.java b/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/ListMessagePropertiesAssert.java
index 7d974ff..11153b8 100644
--- a/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/ListMessagePropertiesAssert.java
+++ b/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/ListMessagePropertiesAssert.java
@@ -20,18 +20,18 @@
package org.apache.james.mailbox.store.mail.model;
import static org.assertj.core.api.Assertions.assertThat;
-
import java.util.List;
+import java.util.function.Function;
-import com.google.common.base.Function;
+import com.github.steveash.guavate.Guavate;
import com.google.common.base.Objects;
-import com.google.common.collect.FluentIterable;
+
public class ListMessagePropertiesAssert {
private final List<InnerProperty> propertiesToInnerProperties(List<Property> properties) {
- return FluentIterable.from(properties)
- .transform(propertyToInnerProperty())
- .toList();
+ return properties.stream()
+ .map(propertyToInnerProperty())
+ .collect(Guavate.toImmutableList());
}
private final Function<Property, InnerProperty> propertyToInnerProperty() {
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org