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:17 UTC

[05/22] james-project git commit: JAMES-2127 No more OptionalConverter

JAMES-2127 No more OptionalConverter


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

Branch: refs/heads/master
Commit: 4ce918b8857b2065042115ca51a4592acf777b59
Parents: 1629c5a
Author: quynhn <qn...@linagora.com>
Authored: Wed Aug 23 10:58:21 2017 +0700
Committer: quynhn <qn...@linagora.com>
Committed: Wed Aug 30 11:08:48 2017 +0700

----------------------------------------------------------------------
 .../cassandra/mail/AttachmentLoader.java        |   5 +-
 .../mail/CassandraAttachmentMapper.java         |  12 +-
 .../cassandra/mail/CassandraBlobsDAO.java       |  14 +-
 .../cassandra/mail/CassandraMailboxMapper.java  |  11 +-
 .../cassandra/mail/CassandraMessageDAO.java     |   4 +-
 .../cassandra/mail/CassandraMessageMapper.java  |   4 +-
 .../cassandra/mail/CassandraUidProvider.java    |   3 +-
 .../mail/MessageAttachmentRepresentation.java   |   3 +-
 .../cassandra/mail/AttachmentLoaderTest.java    |  17 +--
 .../search/ElasticSearchSearcher.java           |   5 +-
 .../mailbox/store/StoreMessageIdManager.java    |  22 ++--
 .../store/mail/model/impl/MessageParser.java    |   3 +-
 .../apache/james/util/FluentFutureStream.java   |   2 +-
 .../apache/james/util/OptionalConverter.java    |  50 --------
 .../org/apache/james/util/OptionalUtils.java    |  42 ++++++
 .../james/util/OptionalConverterTest.java       | 127 -------------------
 .../apache/james/util/OptionalUtilsTest.java    |  85 +++++++++++++
 .../james/jmap/methods/GetMailboxesMethod.java  |   7 +-
 .../methods/SetMailboxesCreationProcessor.java  |   9 +-
 .../methods/SetMessagesCreationProcessor.java   |   4 +-
 .../SetMessagesCreationProcessorTest.java       |   9 +-
 21 files changed, 180 insertions(+), 258 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/4ce918b8/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/AttachmentLoader.java
----------------------------------------------------------------------
diff --git a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/AttachmentLoader.java b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/AttachmentLoader.java
index 17c4539..c7eeb46 100644
--- a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/AttachmentLoader.java
+++ b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/AttachmentLoader.java
@@ -25,14 +25,13 @@ import java.util.concurrent.CompletableFuture;
 import java.util.function.Function;
 import java.util.stream.Stream;
 
-import org.apache.commons.lang3.tuple.Pair;
 import org.apache.james.mailbox.model.Attachment;
 import org.apache.james.mailbox.model.AttachmentId;
 import org.apache.james.mailbox.model.MessageAttachment;
 import org.apache.james.mailbox.store.mail.MessageMapper;
 import org.apache.james.mailbox.store.mail.model.impl.SimpleMailboxMessage;
 import org.apache.james.util.FluentFutureStream;
-import org.apache.james.util.OptionalConverter;
+import org.apache.commons.lang3.tuple.Pair;
 
 import com.github.steveash.guavate.Guavate;
 import com.google.common.annotations.VisibleForTesting;
@@ -80,7 +79,7 @@ public class AttachmentLoader {
         return MessageAttachment.builder()
                 .attachment(attachment)
                 .name(messageAttachmentRepresentation.getName().orElse(null))
-                .cid(OptionalConverter.toGuava(messageAttachmentRepresentation.getCid()))
+                .cid(messageAttachmentRepresentation.getCid())
                 .isInline(messageAttachmentRepresentation.isInline())
                 .build();
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/4ce918b8/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraAttachmentMapper.java
----------------------------------------------------------------------
diff --git a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraAttachmentMapper.java b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraAttachmentMapper.java
index 6c15999..f1e79d5 100644
--- a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraAttachmentMapper.java
+++ b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraAttachmentMapper.java
@@ -28,7 +28,6 @@ import static org.apache.james.mailbox.cassandra.table.CassandraAttachmentTable.
 import static org.apache.james.mailbox.cassandra.table.CassandraAttachmentTable.SIZE;
 import static org.apache.james.mailbox.cassandra.table.CassandraAttachmentTable.TABLE_NAME;
 import static org.apache.james.mailbox.cassandra.table.CassandraAttachmentTable.TYPE;
-
 import java.io.IOException;
 import java.nio.ByteBuffer;
 import java.util.Collection;
@@ -36,7 +35,6 @@ import java.util.List;
 import java.util.Optional;
 import java.util.concurrent.CompletableFuture;
 import java.util.stream.Stream;
-
 import javax.inject.Inject;
 
 import org.apache.james.backends.cassandra.utils.CassandraAsyncExecutor;
@@ -46,9 +44,7 @@ import org.apache.james.mailbox.model.Attachment;
 import org.apache.james.mailbox.model.AttachmentId;
 import org.apache.james.mailbox.store.mail.AttachmentMapper;
 import org.apache.james.util.FluentFutureStream;
-import org.apache.james.util.OptionalConverter;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
+import org.apache.james.util.OptionalUtils;
 
 import com.datastax.driver.core.Row;
 import com.datastax.driver.core.Session;
@@ -56,6 +52,8 @@ import com.github.fge.lambdas.Throwing;
 import com.github.fge.lambdas.ThrownByLambdaException;
 import com.github.steveash.guavate.Guavate;
 import com.google.common.base.Preconditions;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 public class CassandraAttachmentMapper implements AttachmentMapper {
 
@@ -111,7 +109,7 @@ public class CassandraAttachmentMapper implements AttachmentMapper {
 
         return FluentFutureStream
             .of(attachments)
-            .flatMap(OptionalConverter::toStream)
+            .flatMap(OptionalUtils::toStream)
             .completableFuture()
             .thenApply(stream ->
                 stream.collect(Guavate.toImmutableList()));
@@ -125,7 +123,7 @@ public class CassandraAttachmentMapper implements AttachmentMapper {
                 .from(TABLE_NAME)
                 .where(eq(ID, id)))
             .thenApply(optional ->
-                OptionalConverter.ifEmpty(
+                OptionalUtils.ifEmpty(
                     optional.map(this::attachment),
                     () -> LOGGER.warn("Failed retrieving attachment {}", attachmentId)));
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/4ce918b8/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraBlobsDAO.java
----------------------------------------------------------------------
diff --git a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraBlobsDAO.java b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraBlobsDAO.java
index 819d427..89173a7 100644
--- a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraBlobsDAO.java
+++ b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraBlobsDAO.java
@@ -23,16 +23,13 @@ import static com.datastax.driver.core.querybuilder.QueryBuilder.bindMarker;
 import static com.datastax.driver.core.querybuilder.QueryBuilder.eq;
 import static com.datastax.driver.core.querybuilder.QueryBuilder.insertInto;
 import static com.datastax.driver.core.querybuilder.QueryBuilder.select;
-
 import java.nio.ByteBuffer;
 import java.util.Optional;
 import java.util.concurrent.CompletableFuture;
 import java.util.stream.IntStream;
 import java.util.stream.Stream;
-
 import javax.inject.Inject;
 
-import org.apache.commons.lang3.tuple.Pair;
 import org.apache.james.backends.cassandra.CassandraConfiguration;
 import org.apache.james.backends.cassandra.utils.CassandraAsyncExecutor;
 import org.apache.james.mailbox.cassandra.ids.BlobId;
@@ -40,9 +37,8 @@ import org.apache.james.mailbox.cassandra.mail.utils.DataChunker;
 import org.apache.james.mailbox.cassandra.table.BlobTable;
 import org.apache.james.mailbox.cassandra.table.BlobTable.BlobParts;
 import org.apache.james.util.FluentFutureStream;
-import org.apache.james.util.OptionalConverter;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
+import org.apache.james.util.OptionalUtils;
+import org.apache.commons.lang3.tuple.Pair;
 
 import com.datastax.driver.core.PreparedStatement;
 import com.datastax.driver.core.Row;
@@ -52,6 +48,8 @@ import com.google.common.annotations.VisibleForTesting;
 import com.google.common.base.Preconditions;
 import com.google.common.collect.ImmutableList;
 import com.google.common.primitives.Bytes;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 public class CassandraBlobsDAO {
     private static final Logger LOGGER = LoggerFactory.getLogger(CassandraBlobsDAO.class);
@@ -169,10 +167,10 @@ public class CassandraBlobsDAO {
 
     private byte[] concatenateDataParts(Stream<BlobPart> blobParts) {
         ImmutableList<byte[]> parts = blobParts
-            .map(blobPart -> OptionalConverter.ifEmpty(
+            .map(blobPart -> OptionalUtils.ifEmpty(
                 blobPart.row,
                 () -> LOGGER.warn("Missing blob part for blobId {} and position {}", blobPart.blobId, blobPart.position)))
-            .flatMap(OptionalConverter::toStream)
+            .flatMap(OptionalUtils::toStream)
             .map(this::rowToData)
             .collect(Guavate.toImmutableList());
 

http://git-wip-us.apache.org/repos/asf/james-project/blob/4ce918b8/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraMailboxMapper.java
----------------------------------------------------------------------
diff --git a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraMailboxMapper.java b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraMailboxMapper.java
index 13feba8..2e407ec 100644
--- a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraMailboxMapper.java
+++ b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraMailboxMapper.java
@@ -27,10 +27,8 @@ import java.util.concurrent.CompletableFuture;
 import java.util.concurrent.CompletionException;
 import java.util.regex.Pattern;
 import java.util.stream.Collectors;
-
 import javax.inject.Inject;
 
-import org.apache.commons.lang3.StringUtils;
 import org.apache.james.backends.cassandra.CassandraConfiguration;
 import org.apache.james.backends.cassandra.utils.CassandraAsyncExecutor;
 import org.apache.james.mailbox.cassandra.ids.CassandraId;
@@ -46,14 +44,15 @@ import org.apache.james.mailbox.store.mail.model.Mailbox;
 import org.apache.james.mailbox.store.mail.model.impl.SimpleMailbox;
 import org.apache.james.util.CompletableFutureUtil;
 import org.apache.james.util.FluentFutureStream;
-import org.apache.james.util.OptionalConverter;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
+import org.apache.james.util.OptionalUtils;
+import org.apache.commons.lang3.StringUtils;
 
 import com.datastax.driver.core.Session;
 import com.datastax.driver.core.exceptions.InvalidQueryException;
 import com.github.steveash.guavate.Guavate;
 import com.google.common.base.Preconditions;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 public class CassandraMailboxMapper implements MailboxMapper {
 
@@ -128,7 +127,7 @@ public class CassandraMailboxMapper implements MailboxMapper {
 
     private CompletableFuture<Optional<SimpleMailbox>> retrieveMailbox(CassandraMailboxPathDAO.CassandraIdAndPath idAndPath) {
         return mailboxDAO.retrieveMailbox(idAndPath.getCassandraId())
-            .thenApply(optional -> OptionalConverter.ifEmpty(optional,
+            .thenApply(optional -> OptionalUtils.ifEmpty(optional,
                 () -> LOGGER.warn("Could not retrieve mailbox {} with path {} in mailbox table.", idAndPath.getCassandraId(), idAndPath.getMailboxPath())));
     }
 

http://git-wip-us.apache.org/repos/asf/james-project/blob/4ce918b8/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraMessageDAO.java
----------------------------------------------------------------------
diff --git a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraMessageDAO.java b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraMessageDAO.java
index 2fe0daf..e2a63f4 100644
--- a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraMessageDAO.java
+++ b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraMessageDAO.java
@@ -70,7 +70,6 @@ import org.apache.james.mailbox.store.mail.model.impl.PropertyBuilder;
 import org.apache.james.mailbox.store.mail.model.impl.SimpleProperty;
 import org.apache.james.util.CompletableFutureUtil;
 import org.apache.james.util.FluentFutureStream;
-import org.apache.james.util.OptionalConverter;
 import org.apache.james.util.streams.JamesCollectors;
 import org.apache.commons.io.IOUtils;
 import org.apache.commons.lang3.tuple.Pair;
@@ -292,8 +291,7 @@ public class CassandraMessageDAO {
         return MessageAttachmentRepresentation.builder()
             .attachmentId(AttachmentId.from(udtValue.getString(Attachments.ID)))
             .name(udtValue.getString(Attachments.NAME))
-            .cid(OptionalConverter.fromGuava(
-                cidParser.parse(udtValue.getString(CassandraMessageV2Table.Attachments.CID))))
+            .cid(cidParser.parse(udtValue.getString(CassandraMessageV2Table.Attachments.CID)))
             .isInline(udtValue.getBool(Attachments.IS_INLINE))
             .build();
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/4ce918b8/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraMessageMapper.java
----------------------------------------------------------------------
diff --git a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraMessageMapper.java b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraMessageMapper.java
index 445660b..2ae4928 100644
--- a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraMessageMapper.java
+++ b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraMessageMapper.java
@@ -53,7 +53,7 @@ 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.SimpleMailboxMessage;
 import org.apache.james.util.FluentFutureStream;
-import org.apache.james.util.OptionalConverter;
+import org.apache.james.util.OptionalUtils;
 import org.apache.james.util.streams.JamesCollectors;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -225,7 +225,7 @@ public class CassandraMessageMapper implements MessageMapper {
 
     private CompletableFuture<Optional<ComposedMessageIdWithMetaData>> retrieveComposedId(CassandraId mailboxId, MessageUid uid) {
         return messageIdDAO.retrieve(mailboxId, uid)
-            .thenApply(optional -> OptionalConverter.ifEmpty(optional,
+            .thenApply(optional -> OptionalUtils.ifEmpty(optional,
                 () -> LOGGER.warn("Could not retrieve message {} {}", mailboxId, uid)));
     }
 

http://git-wip-us.apache.org/repos/asf/james-project/blob/4ce918b8/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraUidProvider.java
----------------------------------------------------------------------
diff --git a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraUidProvider.java b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraUidProvider.java
index 6f3fa25..4f061c2 100644
--- a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraUidProvider.java
+++ b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraUidProvider.java
@@ -42,7 +42,6 @@ import org.apache.james.mailbox.exception.MailboxException;
 import org.apache.james.mailbox.model.MailboxId;
 import org.apache.james.mailbox.store.mail.UidProvider;
 import org.apache.james.mailbox.store.mail.model.Mailbox;
-import org.apache.james.util.OptionalConverter;
 
 import com.datastax.driver.core.PreparedStatement;
 import com.datastax.driver.core.Session;
@@ -124,7 +123,7 @@ public class CassandraUidProvider implements UidProvider {
 
     @Override
     public Optional<MessageUid> lastUid(MailboxSession mailboxSession, Mailbox mailbox) throws MailboxException {
-        return OptionalConverter.toGuava(findHighestUid((CassandraId) mailbox.getMailboxId()).join());
+        return findHighestUid((CassandraId) mailbox.getMailboxId()).join();
     }
 
     private CompletableFuture<Optional<MessageUid>> findHighestUid(CassandraId mailboxId) {

http://git-wip-us.apache.org/repos/asf/james-project/blob/4ce918b8/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/MessageAttachmentRepresentation.java
----------------------------------------------------------------------
diff --git a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/MessageAttachmentRepresentation.java b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/MessageAttachmentRepresentation.java
index 1eb3f0b..af33569 100644
--- a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/MessageAttachmentRepresentation.java
+++ b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/MessageAttachmentRepresentation.java
@@ -24,7 +24,6 @@ import java.util.Optional;
 import org.apache.james.mailbox.model.AttachmentId;
 import org.apache.james.mailbox.model.Cid;
 import org.apache.james.mailbox.model.MessageAttachment;
-import org.apache.james.util.OptionalConverter;
 
 import com.google.common.annotations.VisibleForTesting;
 import com.google.common.base.MoreObjects;
@@ -40,7 +39,7 @@ public class MessageAttachmentRepresentation {
     public static MessageAttachmentRepresentation fromAttachment(MessageAttachment attachment) {
         return builder()
             .attachmentId(attachment.getAttachmentId())
-            .cid(OptionalConverter.fromGuava(attachment.getCid()))
+            .cid(attachment.getCid())
             .isInline(attachment.isInline())
             .name(attachment.getName().orElse(null))
             .build();

http://git-wip-us.apache.org/repos/asf/james-project/blob/4ce918b8/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/AttachmentLoaderTest.java
----------------------------------------------------------------------
diff --git a/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/AttachmentLoaderTest.java b/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/AttachmentLoaderTest.java
index 048ef7b..f667729 100644
--- a/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/AttachmentLoaderTest.java
+++ b/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/AttachmentLoaderTest.java
@@ -21,7 +21,6 @@ package org.apache.james.mailbox.cassandra.mail;
 import static org.assertj.core.api.Assertions.assertThat;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.when;
-
 import java.util.Collection;
 import java.util.Map;
 import java.util.Optional;
@@ -32,15 +31,13 @@ import org.apache.james.mailbox.model.Attachment;
 import org.apache.james.mailbox.model.AttachmentId;
 import org.apache.james.mailbox.model.Cid;
 import org.apache.james.mailbox.model.MessageAttachment;
-import org.apache.james.util.OptionalConverter;
 
+import com.google.common.collect.ImmutableList;
+import com.google.common.collect.ImmutableSet;
 import org.assertj.core.data.MapEntry;
 import org.junit.Before;
 import org.junit.Test;
 
-import com.google.common.collect.ImmutableList;
-import com.google.common.collect.ImmutableSet;
-
 public class AttachmentLoaderTest {
 
     private CassandraAttachmentMapper attachmentMapper;
@@ -73,7 +70,7 @@ public class AttachmentLoaderTest {
         Collection<MessageAttachment> attachments = testee.getAttachments(ImmutableList.of(attachmentRepresentation, attachmentRepresentation))
             .join();
 
-        MessageAttachment expectedAttachment = new MessageAttachment(attachment, OptionalConverter.toGuava(name), OptionalConverter.toGuava(cid), isInlined);
+        MessageAttachment expectedAttachment = new MessageAttachment(attachment, name, cid, isInlined);
         assertThat(attachments).hasSize(2)
             .containsOnly(expectedAttachment, expectedAttachment);
     }
@@ -102,8 +99,8 @@ public class AttachmentLoaderTest {
             .join();
 
         assertThat(attachments).hasSize(2)
-            .containsOnly(new MessageAttachment(attachment, OptionalConverter.toGuava(name1), OptionalConverter.toGuava(cid), isInlined),
-                new MessageAttachment(attachment, OptionalConverter.toGuava(name2), OptionalConverter.toGuava(cid), isInlined));
+            .containsOnly(new MessageAttachment(attachment, name1, cid, isInlined),
+                new MessageAttachment(attachment, name2, cid, isInlined));
     }
 
     @Test
@@ -136,8 +133,8 @@ public class AttachmentLoaderTest {
             .join();
 
         assertThat(attachments).hasSize(2)
-            .containsOnly(new MessageAttachment(attachment1, OptionalConverter.toGuava(name1), OptionalConverter.toGuava(cid), isInlined),
-                new MessageAttachment(attachment2, OptionalConverter.toGuava(name2), OptionalConverter.toGuava(cid), isInlined));
+            .containsOnly(new MessageAttachment(attachment1, name1, cid, isInlined),
+                new MessageAttachment(attachment2, name2, cid, isInlined));
     }
 
     @Test

http://git-wip-us.apache.org/repos/asf/james-project/blob/4ce918b8/mailbox/elasticsearch/src/main/java/org/apache/james/mailbox/elasticsearch/search/ElasticSearchSearcher.java
----------------------------------------------------------------------
diff --git a/mailbox/elasticsearch/src/main/java/org/apache/james/mailbox/elasticsearch/search/ElasticSearchSearcher.java b/mailbox/elasticsearch/src/main/java/org/apache/james/mailbox/elasticsearch/search/ElasticSearchSearcher.java
index 726980c..eb35456 100644
--- a/mailbox/elasticsearch/src/main/java/org/apache/james/mailbox/elasticsearch/search/ElasticSearchSearcher.java
+++ b/mailbox/elasticsearch/src/main/java/org/apache/james/mailbox/elasticsearch/search/ElasticSearchSearcher.java
@@ -23,7 +23,6 @@ import java.util.List;
 import java.util.Optional;
 import java.util.stream.Stream;
 import java.util.stream.StreamSupport;
-
 import javax.inject.Inject;
 
 import org.apache.james.backends.es.search.ScrollIterable;
@@ -38,7 +37,7 @@ import org.apache.james.mailbox.model.MailboxId;
 import org.apache.james.mailbox.model.MessageId;
 import org.apache.james.mailbox.model.MultimailboxesSearchQuery;
 import org.apache.james.mailbox.store.search.MessageSearchIndex;
-import org.apache.james.util.OptionalConverter;
+
 import org.elasticsearch.action.search.SearchRequestBuilder;
 import org.elasticsearch.action.search.SearchResponse;
 import org.elasticsearch.client.Client;
@@ -114,7 +113,7 @@ public class ElasticSearchSearcher {
             Number uidAsNumber = uid.getValue();
             return Optional.of(
                 new MessageSearchIndex.SearchResult(
-                    OptionalConverter.toGuava(id.map(field -> messageIdFactory.fromString(field.getValue()))),
+                    id.map(field -> messageIdFactory.fromString(field.getValue())),
                     mailboxIdFactory.fromString(mailboxId.getValue()),
                     MessageUid.of(uidAsNumber.longValue())));
         } else {

http://git-wip-us.apache.org/repos/asf/james-project/blob/4ce918b8/mailbox/store/src/main/java/org/apache/james/mailbox/store/StoreMessageIdManager.java
----------------------------------------------------------------------
diff --git a/mailbox/store/src/main/java/org/apache/james/mailbox/store/StoreMessageIdManager.java b/mailbox/store/src/main/java/org/apache/james/mailbox/store/StoreMessageIdManager.java
index 16dab9d..46b65bc 100644
--- a/mailbox/store/src/main/java/org/apache/james/mailbox/store/StoreMessageIdManager.java
+++ b/mailbox/store/src/main/java/org/apache/james/mailbox/store/StoreMessageIdManager.java
@@ -60,7 +60,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.ImmutableList;
 import com.google.common.collect.ImmutableSet;
 import com.google.common.collect.Sets;
@@ -112,12 +111,12 @@ public class StoreMessageIdManager implements MessageIdManager {
             MessageIdMapper messageIdMapper = mailboxSessionMapperFactory.getMessageIdMapper(mailboxSession);
             final MailboxMapper mailboxMapper = mailboxSessionMapperFactory.getMailboxMapper(mailboxSession);
             List<MailboxMessage> messageList = messageIdMapper.find(messageIds, MessageMapper.FetchType.Full);
-            ImmutableSet<MailboxId> mailboxIds = FluentIterable.from(messageList)
-                .transform(MailboxMessage::getMailboxId)
-                .toSet();
-            final ImmutableSet<MailboxId> allowedMailboxIds = mailboxIds.stream()
+
+            final ImmutableSet<MailboxId> allowedMailboxIds = messageList.stream()
+                .map(MailboxMessage::getMailboxId)
                 .filter(mailboxBelongsToUser(mailboxSession, mailboxMapper))
                 .collect(Guavate.toImmutableSet());
+
             return messageList.stream()
                 .filter(inMailboxes(allowedMailboxIds))
                 .map(messageResultConverter(fetchGroup))
@@ -158,19 +157,14 @@ public class StoreMessageIdManager implements MessageIdManager {
 
         List<MailboxMessage> mailboxMessages = messageIdMapper.find(ImmutableList.of(messageId), MessageMapper.FetchType.Full)
             .stream()
-            .filter(new Predicate<MailboxMessage>() {
-                @Override
-                public boolean test(MailboxMessage message) {
-                    return false;
-                }
-            })
             .filter(messageBelongsToUser(mailboxSession, mailboxMapper))
             .collect(Guavate.toImmutableList());
 
         if (!mailboxMessages.isEmpty()) {
-            ImmutableSet<MailboxId> currentMailboxes = FluentIterable.from(mailboxMessages)
-                .transform(MailboxMessage::getMailboxId)
-                .toSet();
+            ImmutableSet<MailboxId> currentMailboxes = mailboxMessages
+                .stream()
+                .map(MailboxMessage::getMailboxId)
+                .collect(Guavate.toImmutableSet());
             HashSet<MailboxId> targetMailboxes = Sets.newHashSet(mailboxIds);
             List<MailboxId> mailboxesToRemove = ImmutableList.copyOf(Sets.difference(currentMailboxes, targetMailboxes));
             SetView<MailboxId> mailboxesToAdd = Sets.difference(targetMailboxes, currentMailboxes);

http://git-wip-us.apache.org/repos/asf/james-project/blob/4ce918b8/mailbox/store/src/main/java/org/apache/james/mailbox/store/mail/model/impl/MessageParser.java
----------------------------------------------------------------------
diff --git a/mailbox/store/src/main/java/org/apache/james/mailbox/store/mail/model/impl/MessageParser.java b/mailbox/store/src/main/java/org/apache/james/mailbox/store/mail/model/impl/MessageParser.java
index 000dc08..529442e 100644
--- a/mailbox/store/src/main/java/org/apache/james/mailbox/store/mail/model/impl/MessageParser.java
+++ b/mailbox/store/src/main/java/org/apache/james/mailbox/store/mail/model/impl/MessageParser.java
@@ -46,7 +46,6 @@ import org.apache.james.mime4j.message.DefaultMessageWriter;
 import org.apache.james.mime4j.stream.Field;
 import org.apache.james.mime4j.stream.MimeConfig;
 import org.apache.james.mime4j.util.MimeUtil;
-import org.apache.james.util.OptionalConverter;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -188,7 +187,7 @@ public class MessageParser {
     }
 
     private Function<ContentIdField, Optional<Cid>> toCid() {
-        return contentIdField -> OptionalConverter.fromGuava(cidParser.parse(contentIdField.getId()));
+        return contentIdField -> cidParser.parse(contentIdField.getId());
     }
 
     private boolean isMultipart(Entity entity) {

http://git-wip-us.apache.org/repos/asf/james-project/blob/4ce918b8/server/container/util-java8/src/main/java/org/apache/james/util/FluentFutureStream.java
----------------------------------------------------------------------
diff --git a/server/container/util-java8/src/main/java/org/apache/james/util/FluentFutureStream.java b/server/container/util-java8/src/main/java/org/apache/james/util/FluentFutureStream.java
index fbdd1c2..530bc09 100644
--- a/server/container/util-java8/src/main/java/org/apache/james/util/FluentFutureStream.java
+++ b/server/container/util-java8/src/main/java/org/apache/james/util/FluentFutureStream.java
@@ -109,7 +109,7 @@ public class FluentFutureStream<T> {
      */
     public <U> FluentFutureStream<U> flatMapOptional(Function<T, Optional<U>> function) {
         return map(function)
-            .flatMap(OptionalConverter::toStream);
+            .flatMap(OptionalUtils::toStream);
     }
 
     /**

http://git-wip-us.apache.org/repos/asf/james-project/blob/4ce918b8/server/container/util-java8/src/main/java/org/apache/james/util/OptionalConverter.java
----------------------------------------------------------------------
diff --git a/server/container/util-java8/src/main/java/org/apache/james/util/OptionalConverter.java b/server/container/util-java8/src/main/java/org/apache/james/util/OptionalConverter.java
deleted file mode 100644
index 528268e..0000000
--- a/server/container/util-java8/src/main/java/org/apache/james/util/OptionalConverter.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/****************************************************************
- * Licensed to the Apache Software Foundation (ASF) under one   *
- * or more contributor license agreements.  See the NOTICE file *
- * distributed with this work for additional information        *
- * regarding copyright ownership.  The ASF licenses this file   *
- * to you under the Apache License, Version 2.0 (the            *
- * "License"); you may not use this file except in compliance   *
- * with the License.  You may obtain a copy of the License at   *
- *                                                              *
- *   http://www.apache.org/licenses/LICENSE-2.0                 *
- *                                                              *
- * Unless required by applicable law or agreed to in writing,   *
- * software distributed under the License is distributed on an  *
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY       *
- * KIND, either express or implied.  See the License for the    *
- * specific language governing permissions and limitations      *
- * under the License.                                           *
- ****************************************************************/
-package org.apache.james.util;
-
-import java.util.Optional;
-import java.util.stream.Stream;
-
-public class OptionalConverter {
-
-    @FunctionalInterface
-    public interface Operation {
-        void perform();
-    }
-
-    public static <T> Optional<T> ifEmpty(Optional<T> optional, Operation operation) {
-        if (!optional.isPresent()) {
-            operation.perform();
-        }
-        return optional;
-    }
-
-    public static <T> Optional<T> fromGuava(Optional<T> guava) {
-        return Optional.ofNullable(guava.orElse(null));
-    }
-
-    public static <T> Optional<T> toGuava(Optional<T> java) {
-        return Optional.ofNullable(java.orElse(null));
-    }
-
-    public static <T> Stream<T> toStream(Optional<T> optional) {
-        return optional.map(Stream::of)
-            .orElse(Stream.of());
-    }
-}

http://git-wip-us.apache.org/repos/asf/james-project/blob/4ce918b8/server/container/util-java8/src/main/java/org/apache/james/util/OptionalUtils.java
----------------------------------------------------------------------
diff --git a/server/container/util-java8/src/main/java/org/apache/james/util/OptionalUtils.java b/server/container/util-java8/src/main/java/org/apache/james/util/OptionalUtils.java
new file mode 100644
index 0000000..709981b
--- /dev/null
+++ b/server/container/util-java8/src/main/java/org/apache/james/util/OptionalUtils.java
@@ -0,0 +1,42 @@
+/****************************************************************
+ * Licensed to the Apache Software Foundation (ASF) under one   *
+ * or more contributor license agreements.  See the NOTICE file *
+ * distributed with this work for additional information        *
+ * regarding copyright ownership.  The ASF licenses this file   *
+ * to you under the Apache License, Version 2.0 (the            *
+ * "License"); you may not use this file except in compliance   *
+ * with the License.  You may obtain a copy of the License at   *
+ *                                                              *
+ *   http://www.apache.org/licenses/LICENSE-2.0                 *
+ *                                                              *
+ * Unless required by applicable law or agreed to in writing,   *
+ * software distributed under the License is distributed on an  *
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY       *
+ * KIND, either express or implied.  See the License for the    *
+ * specific language governing permissions and limitations      *
+ * under the License.                                           *
+ ****************************************************************/
+package org.apache.james.util;
+
+import java.util.Optional;
+import java.util.stream.Stream;
+
+public class OptionalUtils {
+
+    @FunctionalInterface
+    public interface Operation {
+        void perform();
+    }
+
+    public static <T> Optional<T> ifEmpty(Optional<T> optional, Operation operation) {
+        if (!optional.isPresent()) {
+            operation.perform();
+        }
+        return optional;
+    }
+
+    public static <T> Stream<T> toStream(Optional<T> optional) {
+        return optional.map(Stream::of)
+            .orElse(Stream.of());
+    }
+}

http://git-wip-us.apache.org/repos/asf/james-project/blob/4ce918b8/server/container/util-java8/src/test/java/org/apache/james/util/OptionalConverterTest.java
----------------------------------------------------------------------
diff --git a/server/container/util-java8/src/test/java/org/apache/james/util/OptionalConverterTest.java b/server/container/util-java8/src/test/java/org/apache/james/util/OptionalConverterTest.java
deleted file mode 100644
index 63f68e9..0000000
--- a/server/container/util-java8/src/test/java/org/apache/james/util/OptionalConverterTest.java
+++ /dev/null
@@ -1,127 +0,0 @@
-/****************************************************************
- * Licensed to the Apache Software Foundation (ASF) under one   *
- * or more contributor license agreements.  See the NOTICE file *
- * distributed with this work for additional information        *
- * regarding copyright ownership.  The ASF licenses this file   *
- * to you under the Apache License, Version 2.0 (the            *
- * "License"); you may not use this file except in compliance   *
- * with the License.  You may obtain a copy of the License at   *
- *                                                              *
- *   http://www.apache.org/licenses/LICENSE-2.0                 *
- *                                                              *
- * Unless required by applicable law or agreed to in writing,   *
- * software distributed under the License is distributed on an  *
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY       *
- * KIND, either express or implied.  See the License for the    *
- * specific language governing permissions and limitations      *
- * under the License.                                           *
- ****************************************************************/
-package org.apache.james.util;
-
-import static org.assertj.core.api.Assertions.assertThat;
-import java.util.Optional;
-import java.util.concurrent.atomic.AtomicInteger;
-
-import org.junit.Rule;
-import org.junit.Test;
-import org.junit.rules.ExpectedException;
-
-import com.github.steveash.guavate.Guavate;
-
-public class OptionalConverterTest {
-
-    @Rule
-    public ExpectedException expectedException = ExpectedException.none();
-
-    @Test
-    public void ifEmptyShouldPreserveValueOfEmptyOptionals() {
-        Optional<Object> expected = OptionalConverter.ifEmpty(Optional.empty(), () -> { });
-
-        assertThat(expected).isEmpty();
-    }
-
-    @Test
-    public void ifEmptyShouldPreserveValueOfPresentOptionals() {
-        String value = "value";
-        Optional<String> expected = OptionalConverter.ifEmpty(Optional.of(value), () -> { });
-
-        assertThat(expected).contains(value);
-    }
-
-    @Test
-    public void ifEmptyShouldPerformOperationIfEmpty() {
-        AtomicInteger operationCounter = new AtomicInteger(0);
-
-        OptionalConverter.ifEmpty(Optional.empty(), operationCounter::incrementAndGet);
-
-        assertThat(operationCounter.get()).isEqualTo(1);
-    }
-
-    @Test
-    public void ifEmptyShouldNotPerformOperationIfPresent() {
-        AtomicInteger operationCounter = new AtomicInteger(0);
-
-        OptionalConverter.ifEmpty(Optional.of("value"), operationCounter::incrementAndGet);
-
-        assertThat(operationCounter.get()).isEqualTo(0);
-    }
-
-    @Test
-    public void toStreamShouldConvertEmptyOptionalToEmptyStream() {
-        assertThat(
-            OptionalConverter.toStream(Optional.empty())
-                .collect(Guavate.toImmutableList()))
-            .isEmpty();
-    }
-
-    @Test
-    public void toStreamShouldConvertFullOptionalToStream() {
-        long value = 18L;
-        assertThat(
-            OptionalConverter.toStream(Optional.of(value))
-                .collect(Guavate.toImmutableList()))
-            .containsExactly(value);
-    }
-
-    @Test
-    public void fromGuavaShouldThrowWhenGuavaIsNull() {
-        expectedException.expect(NullPointerException.class);
-        OptionalConverter.fromGuava(null);
-    }
-
-    @Test
-    public void fromGuavaShouldReturnEmptyWhenGuavaIsEmpty() {
-        Optional<String> fromGuava = OptionalConverter.fromGuava(Optional.<String> empty());
-
-        assertThat(fromGuava).isEmpty();
-    }
-
-    @Test
-    public void fromGuavaShouldReturnNonEmptyWhenGuavaIsNonEmpty() {
-        String value = "my string";
-        Optional<String> fromGuava = OptionalConverter.fromGuava(Optional.of(value));
-
-        assertThat(fromGuava).contains(value);
-    }
-
-    @Test
-    public void toGuavaShouldThrowWhenGuavaIsNull() {
-        expectedException.expect(NullPointerException.class);
-        OptionalConverter.toGuava(null);
-    }
-
-    @Test
-    public void toGuavaShouldReturnEmptyWhenGuavaIsEmpty() {
-        Optional<String> toGuava = OptionalConverter.toGuava(Optional.<String> empty());
-
-        assertThat(toGuava.isPresent()).isFalse();
-    }
-
-    @Test
-    public void toGuavaShouldReturnNonEmptyWhenGuavaIsNonEmpty() {
-        String value = "my string";
-        Optional<String> toGuava = OptionalConverter.toGuava(Optional.of(value));
-
-        assertThat(toGuava.get()).isEqualTo(value);
-    }
-}

http://git-wip-us.apache.org/repos/asf/james-project/blob/4ce918b8/server/container/util-java8/src/test/java/org/apache/james/util/OptionalUtilsTest.java
----------------------------------------------------------------------
diff --git a/server/container/util-java8/src/test/java/org/apache/james/util/OptionalUtilsTest.java b/server/container/util-java8/src/test/java/org/apache/james/util/OptionalUtilsTest.java
new file mode 100644
index 0000000..79b993c
--- /dev/null
+++ b/server/container/util-java8/src/test/java/org/apache/james/util/OptionalUtilsTest.java
@@ -0,0 +1,85 @@
+/****************************************************************
+ * Licensed to the Apache Software Foundation (ASF) under one   *
+ * or more contributor license agreements.  See the NOTICE file *
+ * distributed with this work for additional information        *
+ * regarding copyright ownership.  The ASF licenses this file   *
+ * to you under the Apache License, Version 2.0 (the            *
+ * "License"); you may not use this file except in compliance   *
+ * with the License.  You may obtain a copy of the License at   *
+ *                                                              *
+ *   http://www.apache.org/licenses/LICENSE-2.0                 *
+ *                                                              *
+ * Unless required by applicable law or agreed to in writing,   *
+ * software distributed under the License is distributed on an  *
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY       *
+ * KIND, either express or implied.  See the License for the    *
+ * specific language governing permissions and limitations      *
+ * under the License.                                           *
+ ****************************************************************/
+package org.apache.james.util;
+
+import static org.assertj.core.api.Assertions.assertThat;
+import java.util.Optional;
+import java.util.concurrent.atomic.AtomicInteger;
+
+import org.junit.Rule;
+import org.junit.Test;
+import org.junit.rules.ExpectedException;
+
+import com.github.steveash.guavate.Guavate;
+
+public class OptionalUtilsTest {
+
+    @Rule
+    public ExpectedException expectedException = ExpectedException.none();
+
+    @Test
+    public void ifEmptyShouldPreserveValueOfEmptyOptionals() {
+        Optional<Object> expected = OptionalUtils.ifEmpty(Optional.empty(), () -> { });
+
+        assertThat(expected).isEmpty();
+    }
+
+    @Test
+    public void ifEmptyShouldPreserveValueOfPresentOptionals() {
+        String value = "value";
+        Optional<String> expected = OptionalUtils.ifEmpty(Optional.of(value), () -> { });
+
+        assertThat(expected).contains(value);
+    }
+
+    @Test
+    public void ifEmptyShouldPerformOperationIfEmpty() {
+        AtomicInteger operationCounter = new AtomicInteger(0);
+
+        OptionalUtils.ifEmpty(Optional.empty(), operationCounter::incrementAndGet);
+
+        assertThat(operationCounter.get()).isEqualTo(1);
+    }
+
+    @Test
+    public void ifEmptyShouldNotPerformOperationIfPresent() {
+        AtomicInteger operationCounter = new AtomicInteger(0);
+
+        OptionalUtils.ifEmpty(Optional.of("value"), operationCounter::incrementAndGet);
+
+        assertThat(operationCounter.get()).isEqualTo(0);
+    }
+
+    @Test
+    public void toStreamShouldConvertEmptyOptionalToEmptyStream() {
+        assertThat(
+            OptionalUtils.toStream(Optional.empty())
+                .collect(Guavate.toImmutableList()))
+            .isEmpty();
+    }
+
+    @Test
+    public void toStreamShouldConvertFullOptionalToStream() {
+        long value = 18L;
+        assertThat(
+            OptionalUtils.toStream(Optional.of(value))
+                .collect(Guavate.toImmutableList()))
+            .containsExactly(value);
+    }
+}

http://git-wip-us.apache.org/repos/asf/james-project/blob/4ce918b8/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/GetMailboxesMethod.java
----------------------------------------------------------------------
diff --git a/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/GetMailboxesMethod.java b/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/GetMailboxesMethod.java
index b15a17e..1b042af 100644
--- a/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/GetMailboxesMethod.java
+++ b/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/GetMailboxesMethod.java
@@ -26,7 +26,6 @@ import java.util.List;
 import java.util.Optional;
 import java.util.Set;
 import java.util.stream.Stream;
-
 import javax.inject.Inject;
 
 import org.apache.james.jmap.model.ClientId;
@@ -44,7 +43,7 @@ import org.apache.james.mailbox.model.MailboxQuery;
 import org.apache.james.metrics.api.MetricFactory;
 import org.apache.james.metrics.api.TimeMetric;
 import org.apache.james.util.MDCBuilder;
-import org.apache.james.util.OptionalConverter;
+import org.apache.james.util.OptionalUtils;
 
 import com.google.common.annotations.VisibleForTesting;
 import com.google.common.base.Preconditions;
@@ -128,7 +127,7 @@ public class GetMailboxesMethod implements Method {
                         .id(mailboxId)
                         .session(mailboxSession)
                         .build())
-                .flatMap(OptionalConverter::toStream);
+                .flatMap(OptionalUtils::toStream);
         } else {
             List<MailboxMetaData> userMailboxes = mailboxManager.search(
                 MailboxQuery.builder(mailboxSession).privateUserMailboxes().build(),
@@ -141,7 +140,7 @@ public class GetMailboxesMethod implements Method {
                         .session(mailboxSession)
                         .usingPreloadedMailboxesMetadata(userMailboxes)
                         .build())
-                .flatMap(OptionalConverter::toStream);
+                .flatMap(OptionalUtils::toStream);
         }
     }
 }

http://git-wip-us.apache.org/repos/asf/james-project/blob/4ce918b8/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/SetMailboxesCreationProcessor.java
----------------------------------------------------------------------
diff --git a/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/SetMailboxesCreationProcessor.java b/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/SetMailboxesCreationProcessor.java
index b88f282..071eefd 100644
--- a/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/SetMailboxesCreationProcessor.java
+++ b/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/SetMailboxesCreationProcessor.java
@@ -20,11 +20,9 @@
 package org.apache.james.jmap.methods;
 
 import static org.apache.james.jmap.methods.Method.JMAP_PREFIX;
-
 import java.util.HashMap;
 import java.util.Map;
 import java.util.Optional;
-
 import javax.inject.Inject;
 
 import org.apache.james.jmap.exceptions.MailboxParentNotFoundException;
@@ -50,13 +48,12 @@ import org.apache.james.mailbox.model.MailboxId.Factory;
 import org.apache.james.mailbox.model.MailboxPath;
 import org.apache.james.metrics.api.MetricFactory;
 import org.apache.james.metrics.api.TimeMetric;
-import org.apache.james.util.OptionalConverter;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
 
 import com.github.fge.lambdas.Throwing;
 import com.github.fge.lambdas.functions.ThrowingFunction;
 import com.google.common.annotations.VisibleForTesting;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 public class SetMailboxesCreationProcessor implements SetMailboxesProcessor {
 
@@ -115,7 +112,7 @@ public class SetMailboxesCreationProcessor implements SetMailboxesProcessor {
         try {
             ensureValidMailboxName(mailboxRequest, mailboxSession);
             MailboxPath mailboxPath = getMailboxPath(mailboxRequest, creationIdsToCreatedMailboxId, mailboxSession);
-            Optional<MailboxId> mailboxId = OptionalConverter.fromGuava(mailboxManager.createMailbox(mailboxPath, mailboxSession));
+            Optional<MailboxId> mailboxId = mailboxManager.createMailbox(mailboxPath, mailboxSession);
             Optional<Mailbox> mailbox = mailboxId.flatMap(id -> mailboxFactory.builder()
                     .id(id)
                     .session(mailboxSession)

http://git-wip-us.apache.org/repos/asf/james-project/blob/4ce918b8/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/SetMessagesCreationProcessor.java
----------------------------------------------------------------------
diff --git a/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/SetMessagesCreationProcessor.java b/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/SetMessagesCreationProcessor.java
index bb9f189..d89b050 100644
--- a/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/SetMessagesCreationProcessor.java
+++ b/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/SetMessagesCreationProcessor.java
@@ -67,7 +67,7 @@ import org.apache.james.mailbox.model.ComposedMessageId;
 import org.apache.james.mailbox.model.MessageAttachment;
 import org.apache.james.metrics.api.MetricFactory;
 import org.apache.james.metrics.api.TimeMetric;
-import org.apache.james.util.OptionalConverter;
+import org.apache.james.util.OptionalUtils;
 import org.apache.mailet.Mail;
 
 import org.slf4j.Logger;
@@ -315,7 +315,7 @@ public class SetMessagesCreationProcessor implements SetMessagesProcessor {
         ThrowingFunction<Attachment, Optional<MessageAttachment>> toMessageAttachment = att -> messageAttachment(session, att);
         return attachments.stream()
             .map(Throwing.function(toMessageAttachment).sneakyThrow())
-            .flatMap(OptionalConverter::toStream)
+            .flatMap(OptionalUtils::toStream)
             .collect(Guavate.toImmutableList());
     }
 

http://git-wip-us.apache.org/repos/asf/james-project/blob/4ce918b8/server/protocols/jmap/src/test/java/org/apache/james/jmap/methods/SetMessagesCreationProcessorTest.java
----------------------------------------------------------------------
diff --git a/server/protocols/jmap/src/test/java/org/apache/james/jmap/methods/SetMessagesCreationProcessorTest.java b/server/protocols/jmap/src/test/java/org/apache/james/jmap/methods/SetMessagesCreationProcessorTest.java
index c2c36e6..84bf14d 100644
--- a/server/protocols/jmap/src/test/java/org/apache/james/jmap/methods/SetMessagesCreationProcessorTest.java
+++ b/server/protocols/jmap/src/test/java/org/apache/james/jmap/methods/SetMessagesCreationProcessorTest.java
@@ -26,13 +26,11 @@ import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.never;
 import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
-
 import java.io.InputStream;
 import java.sql.Date;
 import java.util.Optional;
 import java.util.function.Supplier;
 import java.util.stream.Stream;
-
 import javax.mail.Flags;
 
 import org.apache.james.jmap.exceptions.AttachmentsNotFoundException;
@@ -42,7 +40,6 @@ import org.apache.james.jmap.model.BlobId;
 import org.apache.james.jmap.model.CreationMessage;
 import org.apache.james.jmap.model.CreationMessage.DraftEmailer;
 import org.apache.james.jmap.model.CreationMessageId;
-import org.apache.james.jmap.model.Keyword;
 import org.apache.james.jmap.model.MessageFactory;
 import org.apache.james.jmap.model.MessagePreviewGenerator;
 import org.apache.james.jmap.model.MessageProperties.MessageProperty;
@@ -68,7 +65,7 @@ import org.apache.james.mailbox.model.ComposedMessageId;
 import org.apache.james.mailbox.model.MailboxPath;
 import org.apache.james.mailbox.model.TestMessageId;
 import org.apache.james.metrics.api.NoopMetricFactory;
-import org.apache.james.util.OptionalConverter;
+import org.apache.james.util.OptionalUtils;
 import org.apache.james.util.mime.MessageContentExtractor;
 import org.apache.mailet.Mail;
 import org.junit.Before;
@@ -360,9 +357,9 @@ public class SetMessagesCreationProcessorTest {
         @Override
         public Stream<MessageManager> getMailboxByRole(Role aRole, MailboxSession session) {
             if (aRole.equals(Role.OUTBOX)) {
-                return OptionalConverter.toStream(outboxSupplier.get());
+                return OptionalUtils.toStream(outboxSupplier.get());
             } else if (aRole.equals(Role.DRAFTS)) {
-                return OptionalConverter.toStream(draftsSupplier.get());
+                return OptionalUtils.toStream(draftsSupplier.get());
             }
             return Stream.empty();
         }


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