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

[02/22] james-project git commit: JAMES-2127 MailboxAPI: Replaced guava's Optional by java.util.Optional and it's related

JAMES-2127 MailboxAPI: Replaced guava's Optional by java.util.Optional and it's related


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

Branch: refs/heads/master
Commit: aa1920b94d31a283239ef3a53e68fdc519c90eed
Parents: 4b334fc
Author: quynhn <qn...@linagora.com>
Authored: Fri Aug 25 15:19:50 2017 +0700
Committer: quynhn <qn...@linagora.com>
Committed: Wed Aug 30 11:08:47 2017 +0700

----------------------------------------------------------------------
 .../apache/james/mailbox/MailboxManager.java    |  3 +-
 .../org/apache/james/mailbox/model/Cid.java     | 13 ++--
 .../james/mailbox/model/MailboxAnnotation.java  |  5 +-
 .../james/mailbox/model/MailboxCounters.java    |  7 ++-
 .../james/mailbox/model/MailboxQuery.java       |  8 +--
 .../james/mailbox/model/MessageAttachment.java  | 17 +++---
 .../james/mailbox/model/UpdatedFlags.java       |  5 +-
 .../james/mailbox/MailboxManagerTest.java       |  4 +-
 .../org/apache/james/mailbox/model/CidTest.java | 20 +++---
 .../mailbox/model/MailboxAnnotationTest.java    |  7 +--
 .../mailbox/model/MessageAttachmentTest.java    |  5 +-
 .../mailbox/caching/CachingMessageMapper.java   |  4 +-
 .../mailbox/caching/MailboxMetadataCache.java   |  4 +-
 .../guava/GuavaMailboxMetadataCache.java        |  3 +-
 .../cassandra/mail/CassandraMessageDAO.java     | 10 ++-
 .../cassandra/mail/CassandraMessageMapper.java  |  3 +-
 .../cassandra/mail/CassandraUidProvider.java    |  4 +-
 .../mail/MessageAttachmentRepresentation.java   |  2 +-
 .../mail/CassandraUidProviderTest.java          |  6 +-
 ...lasticSearchListeningMessageSearchIndex.java |  4 +-
 .../mailbox/hbase/mail/HBaseMessageMapper.java  | 30 +++++----
 .../mailbox/hbase/mail/HBaseUidProvider.java    | 16 +++--
 .../mail/HBaseUidAndModSeqProviderTest.java     |  8 +--
 .../james/mailbox/jcr/mail/JCRUidProvider.java  |  5 +-
 .../jcr/JCRMailboxManagerStressTest.java        |  9 ++-
 .../mailbox/jcr/JCRMailboxManagerTest.java      |  9 ++-
 .../mailbox/jpa/mail/JPAAnnotationMapper.java   |  9 ++-
 .../mailbox/jpa/mail/JPAMessageMapper.java      |  3 +-
 .../james/mailbox/jpa/mail/JPAUidProvider.java  |  5 +-
 .../jpa/quota/JpaCurrentQuotaManager.java       | 10 +--
 .../mailbox/jpa/JPAMailboxManagerTest.java      |  6 +-
 .../jpa/JpaMailboxManagerStressTest.java        |  6 +-
 .../jpa/mail/TransactionalMessageMapper.java    |  6 +-
 .../lucene/search/LuceneMessageSearchIndex.java |  7 +--
 .../james/mailbox/maildir/MaildirFolder.java    | 17 +++---
 .../james/mailbox/maildir/MaildirStore.java     |  9 ++-
 .../inmemory/InMemoryMessageIdManager.java      | 15 +++--
 .../inmemory/mail/InMemoryUidProvider.java      |  5 +-
 .../InMemoryMessageIdManagerTestSystem.java     | 13 ++--
 .../apache/james/mailbox/store/BatchSizes.java  | 27 +++++----
 .../james/mailbox/store/FakeAuthorizator.java   |  4 +-
 .../mailbox/store/StoreMailboxManager.java      |  7 +--
 .../mailbox/store/StoreMessageIdManager.java    | 64 ++++++++++++--------
 .../mailbox/store/StoreMessageManager.java      |  9 ++-
 .../store/mail/AbstractMessageMapper.java       |  3 +-
 .../james/mailbox/store/mail/MessageMapper.java |  4 +-
 .../james/mailbox/store/mail/MessageUtils.java  |  3 +-
 .../james/mailbox/store/mail/UidProvider.java   |  4 +-
 .../mail/model/impl/SimpleMailboxMessage.java   |  9 ++-
 .../search/ListeningMessageSearchIndex.java     |  7 +--
 .../store/search/MessageSearchIndex.java        |  3 +-
 .../mailbox/store/search/MessageSearches.java   |  3 +-
 .../AbstractMailboxManagerAttachmentTest.java   |  5 +-
 .../StoreMailboxMessageResultIteratorTest.java  |  6 +-
 .../store/mail/model/MessageMapperTest.java     |  8 +--
 .../mail/model/impl/MessageParserTest.java      |  7 +--
 .../james/mailbox/indexer/ReIndexerImpl.java    |  3 +-
 .../registrations/GlobalRegistration.java       |  7 +--
 .../registrations/GlobalRegistrationTest.java   |  5 +-
 .../mailbox/store/mail/ZooUidProvider.java      |  7 ++-
 .../mailbox/store/mail/ZooUidProviderTest.java  |  7 +--
 61 files changed, 242 insertions(+), 282 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/aa1920b9/mailbox/api/src/main/java/org/apache/james/mailbox/MailboxManager.java
----------------------------------------------------------------------
diff --git a/mailbox/api/src/main/java/org/apache/james/mailbox/MailboxManager.java b/mailbox/api/src/main/java/org/apache/james/mailbox/MailboxManager.java
index f93befa..4e8d2a7 100644
--- a/mailbox/api/src/main/java/org/apache/james/mailbox/MailboxManager.java
+++ b/mailbox/api/src/main/java/org/apache/james/mailbox/MailboxManager.java
@@ -21,6 +21,7 @@ package org.apache.james.mailbox;
 
 import java.util.EnumSet;
 import java.util.List;
+import java.util.Optional;
 import java.util.Set;
 
 import org.apache.james.mailbox.exception.AnnotationException;
@@ -41,8 +42,6 @@ import org.apache.james.mailbox.model.MessageRange;
 import org.apache.james.mailbox.model.MultimailboxesSearchQuery;
 import org.apache.james.mailbox.model.SimpleMailboxACL;
 
-import com.google.common.base.Optional;
-
 /**
  * <p>
  * Central MailboxManager which creates, lists, provides, renames and deletes

http://git-wip-us.apache.org/repos/asf/james-project/blob/aa1920b9/mailbox/api/src/main/java/org/apache/james/mailbox/model/Cid.java
----------------------------------------------------------------------
diff --git a/mailbox/api/src/main/java/org/apache/james/mailbox/model/Cid.java b/mailbox/api/src/main/java/org/apache/james/mailbox/model/Cid.java
index 612ee32..c6694ce 100644
--- a/mailbox/api/src/main/java/org/apache/james/mailbox/model/Cid.java
+++ b/mailbox/api/src/main/java/org/apache/james/mailbox/model/Cid.java
@@ -20,10 +20,11 @@
 package org.apache.james.mailbox.model;
 
 
+import java.util.Optional;
+
 import org.apache.commons.lang.StringUtils;
 
 import com.google.common.base.Objects;
-import com.google.common.base.Optional;
 import com.google.common.base.Preconditions;
 import com.google.common.base.Strings;
 
@@ -89,8 +90,8 @@ public class Cid {
         private Optional<CidTransformation> transformation;
 
         private CidParser() {
-            validator = Optional.absent();
-            transformation = Optional.absent();
+            validator = Optional.empty();
+            transformation = Optional.empty();
         }
 
         public CidParser relaxed() {
@@ -109,8 +110,8 @@ public class Cid {
         }
 
         public Optional<Cid> parse(String value) {
-            CidValidator cidValidator = validator.or(DEFAULT_VALIDATOR);
-            CidTransformation cidTransformation = transformation.or(new Identity());
+            CidValidator cidValidator = validator.orElse(DEFAULT_VALIDATOR);
+            CidTransformation cidTransformation = transformation.orElse(new Identity());
             return cidTransformation.apply(cidValidator, value);
         }
     }
@@ -134,7 +135,7 @@ public class Cid {
 
     private static Optional<Cid> toCid(String cidAsString) {
         if (Strings.isNullOrEmpty(cidAsString) || StringUtils.isBlank(cidAsString)) {
-            return Optional.absent();
+            return Optional.empty();
         }
         return Optional.of(new Cid(cidAsString));
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/aa1920b9/mailbox/api/src/main/java/org/apache/james/mailbox/model/MailboxAnnotation.java
----------------------------------------------------------------------
diff --git a/mailbox/api/src/main/java/org/apache/james/mailbox/model/MailboxAnnotation.java b/mailbox/api/src/main/java/org/apache/james/mailbox/model/MailboxAnnotation.java
index 9150d04..94fc839 100644
--- a/mailbox/api/src/main/java/org/apache/james/mailbox/model/MailboxAnnotation.java
+++ b/mailbox/api/src/main/java/org/apache/james/mailbox/model/MailboxAnnotation.java
@@ -19,14 +19,15 @@
 
 package org.apache.james.mailbox.model;
 
+import java.util.Optional;
+
 import com.google.common.base.MoreObjects;
 import com.google.common.base.Objects;
-import com.google.common.base.Optional;
 import com.google.common.base.Preconditions;
 
 public class MailboxAnnotation {
     public static MailboxAnnotation nil(MailboxAnnotationKey key) {
-        return new MailboxAnnotation(key, Optional.<String> absent());
+        return new MailboxAnnotation(key, Optional.<String> empty());
     }
 
     public static MailboxAnnotation newInstance(MailboxAnnotationKey key, String value) {

http://git-wip-us.apache.org/repos/asf/james-project/blob/aa1920b9/mailbox/api/src/main/java/org/apache/james/mailbox/model/MailboxCounters.java
----------------------------------------------------------------------
diff --git a/mailbox/api/src/main/java/org/apache/james/mailbox/model/MailboxCounters.java b/mailbox/api/src/main/java/org/apache/james/mailbox/model/MailboxCounters.java
index d86e14a..324149d 100644
--- a/mailbox/api/src/main/java/org/apache/james/mailbox/model/MailboxCounters.java
+++ b/mailbox/api/src/main/java/org/apache/james/mailbox/model/MailboxCounters.java
@@ -19,15 +19,16 @@
 
 package org.apache.james.mailbox.model;
 
+import java.util.Optional;
+
 import com.google.common.base.Objects;
-import com.google.common.base.Optional;
 import com.google.common.base.Preconditions;
 
 public class MailboxCounters {
 
     public static class Builder {
-        private Optional<Long> count = Optional.absent();
-        private Optional<Long> unseen = Optional.absent();
+        private Optional<Long> count = Optional.empty();
+        private Optional<Long> unseen = Optional.empty();
 
         public Builder count(long count) {
             this.count = Optional.of(count);

http://git-wip-us.apache.org/repos/asf/james-project/blob/aa1920b9/mailbox/api/src/main/java/org/apache/james/mailbox/model/MailboxQuery.java
----------------------------------------------------------------------
diff --git a/mailbox/api/src/main/java/org/apache/james/mailbox/model/MailboxQuery.java b/mailbox/api/src/main/java/org/apache/james/mailbox/model/MailboxQuery.java
index ee5c43d..e32c9be 100644
--- a/mailbox/api/src/main/java/org/apache/james/mailbox/model/MailboxQuery.java
+++ b/mailbox/api/src/main/java/org/apache/james/mailbox/model/MailboxQuery.java
@@ -19,13 +19,13 @@
 
 package org.apache.james.mailbox.model;
 
+import java.util.Optional;
 import java.util.StringTokenizer;
 import java.util.regex.Pattern;
 
 import org.apache.james.mailbox.MailboxSession;
 
 import com.google.common.annotations.VisibleForTesting;
-import com.google.common.base.Optional;
 import com.google.common.base.Preconditions;
 
 
@@ -71,8 +71,8 @@ public final class MailboxQuery {
         @VisibleForTesting Optional<String> namespace;
         
         private Builder() {
-            this.pathName = Optional.absent();
-            this.namespace = Optional.absent();
+            this.pathName = Optional.empty();
+            this.namespace = Optional.empty();
         }
         
         public Builder base(MailboxPath base) {
@@ -121,7 +121,7 @@ public final class MailboxQuery {
             if (base != null) {
                 return base;
             } else {
-                return new MailboxPath(namespace.or(MailboxConstants.USER_NAMESPACE), username, pathName.or(EMPTY_PATH_NAME));
+                return new MailboxPath(namespace.orElse(MailboxConstants.USER_NAMESPACE), username, pathName.orElse(EMPTY_PATH_NAME));
             }
         }
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/aa1920b9/mailbox/api/src/main/java/org/apache/james/mailbox/model/MessageAttachment.java
----------------------------------------------------------------------
diff --git a/mailbox/api/src/main/java/org/apache/james/mailbox/model/MessageAttachment.java b/mailbox/api/src/main/java/org/apache/james/mailbox/model/MessageAttachment.java
index 770efc7..9dda554 100644
--- a/mailbox/api/src/main/java/org/apache/james/mailbox/model/MessageAttachment.java
+++ b/mailbox/api/src/main/java/org/apache/james/mailbox/model/MessageAttachment.java
@@ -19,9 +19,10 @@
 
 package org.apache.james.mailbox.model;
 
+import java.util.Optional;
+
 import com.google.common.base.MoreObjects;
 import com.google.common.base.Objects;
-import com.google.common.base.Optional;
 import com.google.common.base.Preconditions;
 
 public class MessageAttachment {
@@ -35,11 +36,11 @@ public class MessageAttachment {
         private Attachment attachment;
         private Optional<String> name;
         private Optional<Cid> cid;
-        private Optional<Boolean> isInline = Optional.absent();
+        private Optional<Boolean> isInline = Optional.empty();
 
         private Builder() {
-            name = Optional.absent();
-            cid = Optional.absent();
+            name = Optional.empty();
+            cid = Optional.empty();
         }
 
         public Builder attachment(Attachment attachment) {
@@ -49,7 +50,7 @@ public class MessageAttachment {
         }
 
         public Builder name(String name) {
-            this.name = Optional.fromNullable(name);
+            this.name = Optional.ofNullable(name);
             return this;
         }
 
@@ -61,18 +62,18 @@ public class MessageAttachment {
 
         
         public Builder cid(Cid cid) {
-            this.cid = Optional.fromNullable(cid);
+            this.cid = Optional.ofNullable(cid);
             return this;
         }
 
         public Builder isInline(Boolean isInline) {
-            this.isInline = Optional.fromNullable(isInline);
+            this.isInline = Optional.ofNullable(isInline);
             return this;
         }
 
         public MessageAttachment build() {
             Preconditions.checkState(attachment != null, "'attachment' is mandatory");
-            return new MessageAttachment(attachment, name, cid, isInline.or(false));
+            return new MessageAttachment(attachment, name, cid, isInline.orElse(false));
         }
     }
 

http://git-wip-us.apache.org/repos/asf/james-project/blob/aa1920b9/mailbox/api/src/main/java/org/apache/james/mailbox/model/UpdatedFlags.java
----------------------------------------------------------------------
diff --git a/mailbox/api/src/main/java/org/apache/james/mailbox/model/UpdatedFlags.java b/mailbox/api/src/main/java/org/apache/james/mailbox/model/UpdatedFlags.java
index 9b7a7ef..11b94af 100644
--- a/mailbox/api/src/main/java/org/apache/james/mailbox/model/UpdatedFlags.java
+++ b/mailbox/api/src/main/java/org/apache/james/mailbox/model/UpdatedFlags.java
@@ -21,14 +21,13 @@ package org.apache.james.mailbox.model;
 
 import java.util.Arrays;
 import java.util.Iterator;
-
+import java.util.Optional;
 import javax.mail.Flags;
 
 import org.apache.james.mailbox.MessageUid;
 
 import com.google.common.base.MoreObjects;
 import com.google.common.base.Objects;
-import com.google.common.base.Optional;
 import com.google.common.base.Preconditions;
 
 /**
@@ -46,7 +45,7 @@ public class UpdatedFlags {
         private MessageUid uid;
         private Flags oldFlags;
         private Flags newFlags;
-        private Optional<Long> modSeq = Optional.absent();
+        private Optional<Long> modSeq = Optional.empty();
 
         private Builder() {
         }

http://git-wip-us.apache.org/repos/asf/james-project/blob/aa1920b9/mailbox/api/src/test/java/org/apache/james/mailbox/MailboxManagerTest.java
----------------------------------------------------------------------
diff --git a/mailbox/api/src/test/java/org/apache/james/mailbox/MailboxManagerTest.java b/mailbox/api/src/test/java/org/apache/james/mailbox/MailboxManagerTest.java
index 0ccd355..4e9f02d 100644
--- a/mailbox/api/src/test/java/org/apache/james/mailbox/MailboxManagerTest.java
+++ b/mailbox/api/src/test/java/org/apache/james/mailbox/MailboxManagerTest.java
@@ -19,12 +19,11 @@
 package org.apache.james.mailbox;
 
 import static org.assertj.core.api.Assertions.assertThat;
-
 import java.io.ByteArrayInputStream;
 import java.io.UnsupportedEncodingException;
 import java.util.Date;
 import java.util.List;
-
+import java.util.Optional;
 import javax.mail.Flags;
 
 import org.apache.james.mailbox.MailboxManager.MailboxCapabilities;
@@ -46,7 +45,6 @@ import org.junit.Rule;
 import org.junit.Test;
 import org.junit.rules.ExpectedException;
 
-import com.google.common.base.Optional;
 import com.google.common.collect.ImmutableList;
 import com.google.common.collect.ImmutableSet;
 

http://git-wip-us.apache.org/repos/asf/james-project/blob/aa1920b9/mailbox/api/src/test/java/org/apache/james/mailbox/model/CidTest.java
----------------------------------------------------------------------
diff --git a/mailbox/api/src/test/java/org/apache/james/mailbox/model/CidTest.java b/mailbox/api/src/test/java/org/apache/james/mailbox/model/CidTest.java
index ef05548..81643ef 100644
--- a/mailbox/api/src/test/java/org/apache/james/mailbox/model/CidTest.java
+++ b/mailbox/api/src/test/java/org/apache/james/mailbox/model/CidTest.java
@@ -20,14 +20,12 @@
 package org.apache.james.mailbox.model;
 
 import static org.assertj.core.api.Assertions.assertThat;
-import static org.assertj.guava.api.Assertions.assertThat;
+import java.util.Optional;
 
 import org.junit.Rule;
 import org.junit.Test;
 import org.junit.rules.ExpectedException;
 
-import com.google.common.base.Optional;
-
 import nl.jqno.equalsverifier.EqualsVerifier;
 
 public class CidTest {
@@ -93,7 +91,7 @@ public class CidTest {
         assertThat(Cid.parser()
             .relaxed()
             .parse(null))
-            .isAbsent();
+            .isEmpty();
     }
 
     @Test
@@ -101,7 +99,7 @@ public class CidTest {
         assertThat(Cid.parser()
             .relaxed()
             .parse(""))
-            .isAbsent();
+            .isEmpty();
     }
 
     @Test
@@ -109,7 +107,7 @@ public class CidTest {
         assertThat(Cid.parser()
             .relaxed()
             .parse("     "))
-            .isAbsent();
+            .isEmpty();
     }
 
     @Test
@@ -170,7 +168,7 @@ public class CidTest {
             .relaxed()
             .unwrap()
             .parse(null))
-            .isAbsent();
+            .isEmpty();
     }
 
     @Test
@@ -179,7 +177,7 @@ public class CidTest {
             .relaxed()
             .unwrap()
             .parse(""))
-            .isAbsent();
+            .isEmpty();
     }
 
     @Test
@@ -188,7 +186,7 @@ public class CidTest {
             .relaxed()
             .unwrap()
             .parse("     "))
-            .isAbsent();
+            .isEmpty();
     }
 
     @Test
@@ -197,7 +195,7 @@ public class CidTest {
             .relaxed()
             .unwrap()
             .parse("<>"))
-            .isAbsent();
+            .isEmpty();
     }
 
     @Test
@@ -206,7 +204,7 @@ public class CidTest {
             .relaxed()
             .unwrap()
             .parse("<   >"))
-            .isAbsent();
+            .isEmpty();
     }
 
     @Test

http://git-wip-us.apache.org/repos/asf/james-project/blob/aa1920b9/mailbox/api/src/test/java/org/apache/james/mailbox/model/MailboxAnnotationTest.java
----------------------------------------------------------------------
diff --git a/mailbox/api/src/test/java/org/apache/james/mailbox/model/MailboxAnnotationTest.java b/mailbox/api/src/test/java/org/apache/james/mailbox/model/MailboxAnnotationTest.java
index 10d7c62..439d434 100644
--- a/mailbox/api/src/test/java/org/apache/james/mailbox/model/MailboxAnnotationTest.java
+++ b/mailbox/api/src/test/java/org/apache/james/mailbox/model/MailboxAnnotationTest.java
@@ -19,10 +19,9 @@
 
 package org.apache.james.mailbox.model;
 
-import org.junit.Test;
-
 import static org.assertj.core.api.Assertions.assertThat;
-import static org.assertj.guava.api.Assertions.assertThat;
+
+import org.junit.Test;
 
 public class MailboxAnnotationTest {
     private static final MailboxAnnotationKey ANNOTATION_KEY = new MailboxAnnotationKey("/private/comment");
@@ -55,7 +54,7 @@ public class MailboxAnnotationTest {
     public void nilInstanceShouldReturnAbsentValue() throws Exception {
         MailboxAnnotation annotation = MailboxAnnotation.nil(ANNOTATION_KEY);
 
-        assertThat(annotation.getValue()).isAbsent();
+        assertThat(annotation.getValue()).isEmpty();
     }
 
     @Test

http://git-wip-us.apache.org/repos/asf/james-project/blob/aa1920b9/mailbox/api/src/test/java/org/apache/james/mailbox/model/MessageAttachmentTest.java
----------------------------------------------------------------------
diff --git a/mailbox/api/src/test/java/org/apache/james/mailbox/model/MessageAttachmentTest.java b/mailbox/api/src/test/java/org/apache/james/mailbox/model/MessageAttachmentTest.java
index 949a926..45933e2 100644
--- a/mailbox/api/src/test/java/org/apache/james/mailbox/model/MessageAttachmentTest.java
+++ b/mailbox/api/src/test/java/org/apache/james/mailbox/model/MessageAttachmentTest.java
@@ -20,11 +20,10 @@
 package org.apache.james.mailbox.model;
 
 import static org.assertj.core.api.Assertions.assertThat;
+import java.util.Optional;
 
 import org.junit.Test;
 
-import com.google.common.base.Optional;
-
 public class MessageAttachmentTest {
 
     @Test(expected=IllegalStateException.class)
@@ -45,7 +44,7 @@ public class MessageAttachmentTest {
                 .bytes("content".getBytes())
                 .type("type")
                 .build();
-        MessageAttachment expectedMessageAttachment = new MessageAttachment(attachment, Optional.<String> absent(), Optional.<Cid> absent(), false);
+        MessageAttachment expectedMessageAttachment = new MessageAttachment(attachment, Optional.empty(), Optional.empty(), false);
 
         MessageAttachment messageAttachment = MessageAttachment.builder()
             .attachment(attachment)

http://git-wip-us.apache.org/repos/asf/james-project/blob/aa1920b9/mailbox/caching/src/main/java/org/apache/james/mailbox/caching/CachingMessageMapper.java
----------------------------------------------------------------------
diff --git a/mailbox/caching/src/main/java/org/apache/james/mailbox/caching/CachingMessageMapper.java b/mailbox/caching/src/main/java/org/apache/james/mailbox/caching/CachingMessageMapper.java
index 0e1f4d5..3224a50 100644
--- a/mailbox/caching/src/main/java/org/apache/james/mailbox/caching/CachingMessageMapper.java
+++ b/mailbox/caching/src/main/java/org/apache/james/mailbox/caching/CachingMessageMapper.java
@@ -3,7 +3,7 @@ package org.apache.james.mailbox.caching;
 import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
-
+import java.util.Optional;
 import javax.mail.Flags;
 
 import org.apache.james.mailbox.MessageUid;
@@ -17,8 +17,6 @@ import org.apache.james.mailbox.store.mail.MessageMapper;
 import org.apache.james.mailbox.store.mail.model.Mailbox;
 import org.apache.james.mailbox.store.mail.model.MailboxMessage;
 
-import com.google.common.base.Optional;
-
 /**
  * A MessageMapper implementation that uses a MailboxMetadataCache to cache the information
  * from the underlying MessageMapper

http://git-wip-us.apache.org/repos/asf/james-project/blob/aa1920b9/mailbox/caching/src/main/java/org/apache/james/mailbox/caching/MailboxMetadataCache.java
----------------------------------------------------------------------
diff --git a/mailbox/caching/src/main/java/org/apache/james/mailbox/caching/MailboxMetadataCache.java b/mailbox/caching/src/main/java/org/apache/james/mailbox/caching/MailboxMetadataCache.java
index e634ec7..f40e486 100644
--- a/mailbox/caching/src/main/java/org/apache/james/mailbox/caching/MailboxMetadataCache.java
+++ b/mailbox/caching/src/main/java/org/apache/james/mailbox/caching/MailboxMetadataCache.java
@@ -1,12 +1,12 @@
 package org.apache.james.mailbox.caching;
 
+import java.util.Optional;
+
 import org.apache.james.mailbox.MessageUid;
 import org.apache.james.mailbox.exception.MailboxException;
 import org.apache.james.mailbox.store.mail.MessageMapper;
 import org.apache.james.mailbox.store.mail.model.Mailbox;
 
-import com.google.common.base.Optional;
-
 /**
  * Caches the simple yet possibly expensive to compute metadata info 
  * about a Mailbox like all/unseen messages count and similar

http://git-wip-us.apache.org/repos/asf/james-project/blob/aa1920b9/mailbox/caching/src/main/java/org/apache/james/mailbox/caching/guava/GuavaMailboxMetadataCache.java
----------------------------------------------------------------------
diff --git a/mailbox/caching/src/main/java/org/apache/james/mailbox/caching/guava/GuavaMailboxMetadataCache.java b/mailbox/caching/src/main/java/org/apache/james/mailbox/caching/guava/GuavaMailboxMetadataCache.java
index 42212c4..80728ca 100644
--- a/mailbox/caching/src/main/java/org/apache/james/mailbox/caching/guava/GuavaMailboxMetadataCache.java
+++ b/mailbox/caching/src/main/java/org/apache/james/mailbox/caching/guava/GuavaMailboxMetadataCache.java
@@ -1,5 +1,7 @@
 package org.apache.james.mailbox.caching.guava;
 
+import java.util.Optional;
+
 import org.apache.james.mailbox.MessageUid;
 import org.apache.james.mailbox.caching.MailboxMetadataCache;
 import org.apache.james.mailbox.exception.MailboxException;
@@ -7,7 +9,6 @@ import org.apache.james.mailbox.model.MailboxId;
 import org.apache.james.mailbox.store.mail.MessageMapper;
 import org.apache.james.mailbox.store.mail.model.Mailbox;
 
-import com.google.common.base.Optional;
 import com.google.common.cache.Cache;
 /**
  * Guava-based implementation of MailboxMetadataCache.

http://git-wip-us.apache.org/repos/asf/james-project/blob/aa1920b9/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 5b62ef0..2fe0daf 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
@@ -38,7 +38,6 @@ import static org.apache.james.mailbox.cassandra.table.CassandraMessageV2Table.M
 import static org.apache.james.mailbox.cassandra.table.CassandraMessageV2Table.PROPERTIES;
 import static org.apache.james.mailbox.cassandra.table.CassandraMessageV2Table.TABLE_NAME;
 import static org.apache.james.mailbox.cassandra.table.CassandraMessageV2Table.TEXTUAL_LINE_COUNT;
-
 import java.io.IOException;
 import java.util.Collection;
 import java.util.List;
@@ -47,12 +46,9 @@ import java.util.concurrent.CompletableFuture;
 import java.util.function.Function;
 import java.util.stream.Collectors;
 import java.util.stream.Stream;
-
 import javax.inject.Inject;
 import javax.mail.util.SharedByteArrayInputStream;
 
-import org.apache.commons.io.IOUtils;
-import org.apache.commons.lang3.tuple.Pair;
 import org.apache.james.backends.cassandra.CassandraConfiguration;
 import org.apache.james.backends.cassandra.init.CassandraTypesProvider;
 import org.apache.james.backends.cassandra.utils.CassandraAsyncExecutor;
@@ -76,6 +72,8 @@ 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;
 
 import com.datastax.driver.core.BoundStatement;
 import com.datastax.driver.core.PreparedStatement;
@@ -197,8 +195,8 @@ public class CassandraMessageDAO {
         return typesProvider.getDefinedUserType(ATTACHMENTS)
             .newValue()
             .setString(Attachments.ID, messageAttachment.getAttachmentId().getId())
-            .setString(Attachments.NAME, messageAttachment.getName().orNull())
-            .setString(Attachments.CID, messageAttachment.getCid().transform(Cid::getValue).orNull())
+            .setString(Attachments.NAME, messageAttachment.getName().orElse(null))
+            .setString(Attachments.CID, messageAttachment.getCid().map(Cid::getValue).orElse(null))
             .setBool(Attachments.IS_INLINE, messageAttachment.isInline());
     }
 

http://git-wip-us.apache.org/repos/asf/james-project/blob/aa1920b9/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 cb3c583..445660b 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
@@ -27,7 +27,6 @@ import java.util.Map;
 import java.util.Optional;
 import java.util.concurrent.CompletableFuture;
 import java.util.stream.Stream;
-
 import javax.mail.Flags;
 import javax.mail.Flags.Flag;
 
@@ -349,7 +348,7 @@ public class CassandraMessageMapper implements MessageMapper {
     }
 
     @Override
-    public com.google.common.base.Optional<MessageUid> getLastUid(Mailbox mailbox) throws MailboxException {
+    public Optional<MessageUid> getLastUid(Mailbox mailbox) throws MailboxException {
         return uidProvider.lastUid(mailboxSession, mailbox);
     }
 

http://git-wip-us.apache.org/repos/asf/james-project/blob/aa1920b9/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 e6a854a..6f3fa25 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
@@ -28,10 +28,8 @@ import static com.datastax.driver.core.querybuilder.QueryBuilder.update;
 import static org.apache.james.mailbox.cassandra.table.CassandraMessageUidTable.MAILBOX_ID;
 import static org.apache.james.mailbox.cassandra.table.CassandraMessageUidTable.NEXT_UID;
 import static org.apache.james.mailbox.cassandra.table.CassandraMessageUidTable.TABLE_NAME;
-
 import java.util.Optional;
 import java.util.concurrent.CompletableFuture;
-
 import javax.inject.Inject;
 
 import org.apache.james.backends.cassandra.CassandraConfiguration;
@@ -125,7 +123,7 @@ public class CassandraUidProvider implements UidProvider {
     }
 
     @Override
-    public com.google.common.base.Optional<MessageUid> lastUid(MailboxSession mailboxSession, Mailbox mailbox) throws MailboxException {
+    public Optional<MessageUid> lastUid(MailboxSession mailboxSession, Mailbox mailbox) throws MailboxException {
         return OptionalConverter.toGuava(findHighestUid((CassandraId) mailbox.getMailboxId()).join());
     }
 

http://git-wip-us.apache.org/repos/asf/james-project/blob/aa1920b9/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 172c550..1eb3f0b 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
@@ -42,7 +42,7 @@ public class MessageAttachmentRepresentation {
             .attachmentId(attachment.getAttachmentId())
             .cid(OptionalConverter.fromGuava(attachment.getCid()))
             .isInline(attachment.isInline())
-            .name(attachment.getName().orNull())
+            .name(attachment.getName().orElse(null))
             .build();
     }
 

http://git-wip-us.apache.org/repos/asf/james-project/blob/aa1920b9/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraUidProviderTest.java
----------------------------------------------------------------------
diff --git a/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraUidProviderTest.java b/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraUidProviderTest.java
index 9faddfb..c6b27d9 100644
--- a/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraUidProviderTest.java
+++ b/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraUidProviderTest.java
@@ -19,8 +19,7 @@
 package org.apache.james.mailbox.cassandra.mail;
 
 import static org.assertj.core.api.Assertions.assertThat;
-import static org.assertj.guava.api.Assertions.assertThat;
-
+import java.util.Optional;
 import java.util.stream.LongStream;
 
 import org.apache.james.backends.cassandra.CassandraCluster;
@@ -37,7 +36,6 @@ import org.junit.Before;
 import org.junit.Test;
 
 import com.github.fge.lambdas.Throwing;
-import com.google.common.base.Optional;
 
 public class CassandraUidProviderTest {
 
@@ -72,7 +70,7 @@ public class CassandraUidProviderTest {
     public void lastUidShouldRetrieveValueStoredByNextUid() throws Exception {
         int nbEntries = 100;
         Optional<MessageUid> result = uidProvider.lastUid(null, mailbox);
-        assertThat(result).isAbsent();
+        assertThat(result).isEmpty();
         LongStream.range(0, nbEntries)
             .forEach(Throwing.longConsumer(value -> {
                         MessageUid uid = uidProvider.nextUid(null, mailbox);

http://git-wip-us.apache.org/repos/asf/james-project/blob/aa1920b9/mailbox/elasticsearch/src/main/java/org/apache/james/mailbox/elasticsearch/events/ElasticSearchListeningMessageSearchIndex.java
----------------------------------------------------------------------
diff --git a/mailbox/elasticsearch/src/main/java/org/apache/james/mailbox/elasticsearch/events/ElasticSearchListeningMessageSearchIndex.java b/mailbox/elasticsearch/src/main/java/org/apache/james/mailbox/elasticsearch/events/ElasticSearchListeningMessageSearchIndex.java
index aca1dc7..ec9f1b4 100644
--- a/mailbox/elasticsearch/src/main/java/org/apache/james/mailbox/elasticsearch/events/ElasticSearchListeningMessageSearchIndex.java
+++ b/mailbox/elasticsearch/src/main/java/org/apache/james/mailbox/elasticsearch/events/ElasticSearchListeningMessageSearchIndex.java
@@ -19,13 +19,11 @@
 package org.apache.james.mailbox.elasticsearch.events;
 
 import static org.elasticsearch.index.query.QueryBuilders.termQuery;
-
 import java.util.EnumSet;
 import java.util.Iterator;
 import java.util.List;
 import java.util.Optional;
 import java.util.stream.Collectors;
-
 import javax.inject.Inject;
 
 import org.apache.james.backends.es.ElasticSearchIndexer;
@@ -100,7 +98,7 @@ public class ElasticSearchListeningMessageSearchIndex extends ListeningMessageSe
         return searcher.search(ImmutableList.of(session.getUser()), searchQuery, Optional.empty())
             .peek(this::logIfNoMessageId)
             .map(SearchResult::getMessageId)
-            .map(com.google.common.base.Optional::get)
+            .map(Optional::get)
             .distinct()
             .limit(limit)
             .collect(Guavate.toImmutableList());

http://git-wip-us.apache.org/repos/asf/james-project/blob/aa1920b9/mailbox/hbase/src/main/java/org/apache/james/mailbox/hbase/mail/HBaseMessageMapper.java
----------------------------------------------------------------------
diff --git a/mailbox/hbase/src/main/java/org/apache/james/mailbox/hbase/mail/HBaseMessageMapper.java b/mailbox/hbase/src/main/java/org/apache/james/mailbox/hbase/mail/HBaseMessageMapper.java
index 326275d..a6a82d4 100644
--- a/mailbox/hbase/src/main/java/org/apache/james/mailbox/hbase/mail/HBaseMessageMapper.java
+++ b/mailbox/hbase/src/main/java/org/apache/james/mailbox/hbase/mail/HBaseMessageMapper.java
@@ -38,7 +38,6 @@ import static org.apache.james.mailbox.hbase.HBaseUtils.messageMetaFromResult;
 import static org.apache.james.mailbox.hbase.HBaseUtils.messageRowKey;
 import static org.apache.james.mailbox.hbase.HBaseUtils.metadataToPut;
 import static org.apache.james.mailbox.hbase.HBaseUtils.minMessageRowKey;
-
 import java.io.BufferedInputStream;
 import java.io.IOException;
 import java.util.ArrayList;
@@ -47,22 +46,9 @@ import java.util.HashMap;
 import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
-
+import java.util.Optional;
 import javax.mail.Flags;
 
-import org.apache.hadoop.conf.Configuration;
-import org.apache.hadoop.hbase.client.Delete;
-import org.apache.hadoop.hbase.client.Get;
-import org.apache.hadoop.hbase.client.HTable;
-import org.apache.hadoop.hbase.client.Put;
-import org.apache.hadoop.hbase.client.Result;
-import org.apache.hadoop.hbase.client.ResultScanner;
-import org.apache.hadoop.hbase.client.Scan;
-import org.apache.hadoop.hbase.filter.CompareFilter.CompareOp;
-import org.apache.hadoop.hbase.filter.PrefixFilter;
-import org.apache.hadoop.hbase.filter.SingleColumnValueExcludeFilter;
-import org.apache.hadoop.hbase.filter.SingleColumnValueFilter;
-import org.apache.hadoop.hbase.util.Bytes;
 import org.apache.james.mailbox.MailboxSession;
 import org.apache.james.mailbox.MessageUid;
 import org.apache.james.mailbox.exception.MailboxException;
@@ -84,8 +70,20 @@ 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.utils.ApplicableFlagCalculator;
 import org.apache.james.mailbox.store.transaction.NonTransactionalMapper;
+import org.apache.hadoop.conf.Configuration;
+import org.apache.hadoop.hbase.client.Delete;
+import org.apache.hadoop.hbase.client.Get;
+import org.apache.hadoop.hbase.client.HTable;
+import org.apache.hadoop.hbase.client.Put;
+import org.apache.hadoop.hbase.client.Result;
+import org.apache.hadoop.hbase.client.ResultScanner;
+import org.apache.hadoop.hbase.client.Scan;
+import org.apache.hadoop.hbase.filter.CompareFilter.CompareOp;
+import org.apache.hadoop.hbase.filter.PrefixFilter;
+import org.apache.hadoop.hbase.filter.SingleColumnValueExcludeFilter;
+import org.apache.hadoop.hbase.filter.SingleColumnValueFilter;
+import org.apache.hadoop.hbase.util.Bytes;
 
-import com.google.common.base.Optional;
 import com.google.common.collect.Iterables;
 import com.google.common.collect.Iterators;
 

http://git-wip-us.apache.org/repos/asf/james-project/blob/aa1920b9/mailbox/hbase/src/main/java/org/apache/james/mailbox/hbase/mail/HBaseUidProvider.java
----------------------------------------------------------------------
diff --git a/mailbox/hbase/src/main/java/org/apache/james/mailbox/hbase/mail/HBaseUidProvider.java b/mailbox/hbase/src/main/java/org/apache/james/mailbox/hbase/mail/HBaseUidProvider.java
index d26a16c..d0f2ca4 100644
--- a/mailbox/hbase/src/main/java/org/apache/james/mailbox/hbase/mail/HBaseUidProvider.java
+++ b/mailbox/hbase/src/main/java/org/apache/james/mailbox/hbase/mail/HBaseUidProvider.java
@@ -21,14 +21,9 @@ package org.apache.james.mailbox.hbase.mail;
 import static org.apache.james.mailbox.hbase.HBaseNames.MAILBOXES_TABLE;
 import static org.apache.james.mailbox.hbase.HBaseNames.MAILBOX_CF;
 import static org.apache.james.mailbox.hbase.HBaseNames.MAILBOX_LASTUID;
-
 import java.io.IOException;
+import java.util.Optional;
 
-import org.apache.hadoop.conf.Configuration;
-import org.apache.hadoop.hbase.client.Get;
-import org.apache.hadoop.hbase.client.HTable;
-import org.apache.hadoop.hbase.client.Result;
-import org.apache.hadoop.hbase.util.Bytes;
 import org.apache.james.mailbox.MailboxSession;
 import org.apache.james.mailbox.MessageUid;
 import org.apache.james.mailbox.exception.MailboxException;
@@ -36,8 +31,11 @@ import org.apache.james.mailbox.hbase.HBaseId;
 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 com.google.common.base.Optional;
+import org.apache.hadoop.conf.Configuration;
+import org.apache.hadoop.hbase.client.Get;
+import org.apache.hadoop.hbase.client.HTable;
+import org.apache.hadoop.hbase.client.Result;
+import org.apache.hadoop.hbase.util.Bytes;
 /**
  * Message UidProvider for HBase.
  * 
@@ -73,7 +71,7 @@ public class HBaseUidProvider implements UidProvider {
             }
             long rawUid = Bytes.toLong(result.getValue(MAILBOX_CF, MAILBOX_LASTUID));
             if (rawUid == 0) {
-                return Optional.absent();
+                return Optional.empty();
             }
             return Optional.of(MessageUid.of(rawUid));
         } catch (IOException e) {

http://git-wip-us.apache.org/repos/asf/james-project/blob/aa1920b9/mailbox/hbase/src/test/java/org/apache/james/mailbox/hbase/mail/HBaseUidAndModSeqProviderTest.java
----------------------------------------------------------------------
diff --git a/mailbox/hbase/src/test/java/org/apache/james/mailbox/hbase/mail/HBaseUidAndModSeqProviderTest.java b/mailbox/hbase/src/test/java/org/apache/james/mailbox/hbase/mail/HBaseUidAndModSeqProviderTest.java
index 6b6f995..3ff0103 100644
--- a/mailbox/hbase/src/test/java/org/apache/james/mailbox/hbase/mail/HBaseUidAndModSeqProviderTest.java
+++ b/mailbox/hbase/src/test/java/org/apache/james/mailbox/hbase/mail/HBaseUidAndModSeqProviderTest.java
@@ -30,24 +30,22 @@ import static org.apache.james.mailbox.hbase.HBaseNames.SUBSCRIPTIONS;
 import static org.apache.james.mailbox.hbase.HBaseNames.SUBSCRIPTIONS_TABLE;
 import static org.apache.james.mailbox.hbase.HBaseNames.SUBSCRIPTION_CF;
 import static org.junit.Assert.assertEquals;
-
 import java.io.IOException;
 import java.util.ArrayList;
 import java.util.List;
+import java.util.Optional;
 
-import org.apache.hadoop.conf.Configuration;
 import org.apache.james.mailbox.MailboxSession;
 import org.apache.james.mailbox.MessageUid;
 import org.apache.james.mailbox.hbase.HBaseClusterSingleton;
 import org.apache.james.mailbox.hbase.mail.model.HBaseMailbox;
 import org.apache.james.mailbox.model.MailboxPath;
+import org.apache.hadoop.conf.Configuration;
 import org.junit.Before;
 import org.junit.Test;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import com.google.common.base.Optional;
-
 /**
  * Unit tests for UidProvider and ModSeqProvider.
  *
@@ -131,7 +129,7 @@ public class HBaseUidAndModSeqProviderTest {
         pathsList.add(path);
         MailboxSession session = null;
         Optional<MessageUid> result = uidProvider.lastUid(session, newBox);
-        assertEquals(Optional.absent(), result);
+        assertEquals(Optional.empty(), result);
         for (int i = 1; i < 10; i++) {
             MessageUid uid = uidProvider.nextUid(session, newBox);
             assertEquals(uid, uidProvider.lastUid(session, newBox).get());

http://git-wip-us.apache.org/repos/asf/james-project/blob/aa1920b9/mailbox/jcr/src/main/java/org/apache/james/mailbox/jcr/mail/JCRUidProvider.java
----------------------------------------------------------------------
diff --git a/mailbox/jcr/src/main/java/org/apache/james/mailbox/jcr/mail/JCRUidProvider.java b/mailbox/jcr/src/main/java/org/apache/james/mailbox/jcr/mail/JCRUidProvider.java
index 824f953..f26e187 100644
--- a/mailbox/jcr/src/main/java/org/apache/james/mailbox/jcr/mail/JCRUidProvider.java
+++ b/mailbox/jcr/src/main/java/org/apache/james/mailbox/jcr/mail/JCRUidProvider.java
@@ -18,6 +18,7 @@
  ****************************************************************/
 package org.apache.james.mailbox.jcr.mail;
 
+import java.util.Optional;
 import javax.jcr.Node;
 import javax.jcr.RepositoryException;
 import javax.jcr.Session;
@@ -31,8 +32,6 @@ import org.apache.james.mailbox.jcr.mail.model.JCRMailbox;
 import org.apache.james.mailbox.store.mail.AbstractLockingUidProvider;
 import org.apache.james.mailbox.store.mail.model.Mailbox;
 
-import com.google.common.base.Optional;
-
 public class JCRUidProvider extends AbstractLockingUidProvider {
 
     private final MailboxSessionJCRRepository repository;
@@ -49,7 +48,7 @@ public class JCRUidProvider extends AbstractLockingUidProvider {
             Node node = s.getNodeByIdentifier(mailbox.getMailboxId().serialize());
             long rawUid = node.getProperty(JCRMailbox.LASTUID_PROPERTY).getLong();
             if (rawUid == 0) {
-                return Optional.absent();
+                return Optional.empty();
             }
             return Optional.of(MessageUid.of(rawUid));
         } catch (RepositoryException e) {

http://git-wip-us.apache.org/repos/asf/james-project/blob/aa1920b9/mailbox/jcr/src/test/java/org/apache/james/mailbox/jcr/JCRMailboxManagerStressTest.java
----------------------------------------------------------------------
diff --git a/mailbox/jcr/src/test/java/org/apache/james/mailbox/jcr/JCRMailboxManagerStressTest.java b/mailbox/jcr/src/test/java/org/apache/james/mailbox/jcr/JCRMailboxManagerStressTest.java
index cf7ade7..5a9c27c 100644
--- a/mailbox/jcr/src/test/java/org/apache/james/mailbox/jcr/JCRMailboxManagerStressTest.java
+++ b/mailbox/jcr/src/test/java/org/apache/james/mailbox/jcr/JCRMailboxManagerStressTest.java
@@ -20,22 +20,21 @@
 package org.apache.james.mailbox.jcr;
 
 import static org.apache.james.mailbox.jcr.JCRMailboxManagerProvider.JACKRABBIT_HOME;
-
 import java.io.File;
 import java.io.IOException;
+import java.util.Optional;
 
-import org.apache.commons.io.FileUtils;
-import org.apache.jackrabbit.core.RepositoryImpl;
 import org.apache.james.mailbox.MailboxManager;
 import org.apache.james.mailbox.MailboxManagerStressTest;
+import org.apache.commons.io.FileUtils;
+import org.apache.jackrabbit.core.RepositoryImpl;
 import org.junit.After;
 
-import com.google.common.base.Optional;
 import com.google.common.base.Throwables;
 
 public class JCRMailboxManagerStressTest extends MailboxManagerStressTest {
 
-    private Optional<RepositoryImpl> repository = Optional.absent();
+    private Optional<RepositoryImpl> repository = Optional.empty();
 
     @Override
     protected MailboxManager provideManager() {

http://git-wip-us.apache.org/repos/asf/james-project/blob/aa1920b9/mailbox/jcr/src/test/java/org/apache/james/mailbox/jcr/JCRMailboxManagerTest.java
----------------------------------------------------------------------
diff --git a/mailbox/jcr/src/test/java/org/apache/james/mailbox/jcr/JCRMailboxManagerTest.java b/mailbox/jcr/src/test/java/org/apache/james/mailbox/jcr/JCRMailboxManagerTest.java
index 64852a7..4970196 100644
--- a/mailbox/jcr/src/test/java/org/apache/james/mailbox/jcr/JCRMailboxManagerTest.java
+++ b/mailbox/jcr/src/test/java/org/apache/james/mailbox/jcr/JCRMailboxManagerTest.java
@@ -19,22 +19,21 @@
 package org.apache.james.mailbox.jcr;
 
 import static org.apache.james.mailbox.jcr.JCRMailboxManagerProvider.JACKRABBIT_HOME;
-
 import java.io.File;
 import java.io.IOException;
+import java.util.Optional;
 
-import org.apache.commons.io.FileUtils;
-import org.apache.jackrabbit.core.RepositoryImpl;
 import org.apache.james.mailbox.MailboxManager;
 import org.apache.james.mailbox.MailboxManagerTest;
+import org.apache.commons.io.FileUtils;
+import org.apache.jackrabbit.core.RepositoryImpl;
 import org.junit.After;
 
-import com.google.common.base.Optional;
 import com.google.common.base.Throwables;
 
 public class JCRMailboxManagerTest extends MailboxManagerTest {
 
-    private Optional<RepositoryImpl> repository = Optional.absent();
+    private Optional<RepositoryImpl> repository = Optional.empty();
 
     @Override
     protected MailboxManager provideMailboxManager() {

http://git-wip-us.apache.org/repos/asf/james-project/blob/aa1920b9/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 84a78c6..b0ce1ed 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
@@ -20,8 +20,8 @@
 package org.apache.james.mailbox.jpa.mail;
 
 import java.util.List;
+import java.util.Optional;
 import java.util.Set;
-
 import javax.persistence.EntityManagerFactory;
 import javax.persistence.NoResultException;
 import javax.persistence.PersistenceException;
@@ -38,7 +38,6 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 import com.google.common.base.Function;
-import com.google.common.base.Optional;
 import com.google.common.base.Preconditions;
 import com.google.common.base.Predicate;
 import com.google.common.base.Throwables;
@@ -147,18 +146,18 @@ public class JPAAnnotationMapper extends JPATransactionalMapper implements Annot
             getEntityManager().persist(
                 new JPAMailboxAnnotation(jpaId.getRawId(),
                     mailboxAnnotation.getKey().asString(),
-                    mailboxAnnotation.getValue().orNull()));
+                    mailboxAnnotation.getValue().orElse(null)));
         } else {
             getEntityManager().find(JPAMailboxAnnotation.class,
                 new JPAMailboxAnnotationId(jpaId.getRawId(), mailboxAnnotation.getKey().asString()))
-                .setValue(mailboxAnnotation.getValue().orNull());
+                .setValue(mailboxAnnotation.getValue().orElse(null));
         }
     }
 
     @Override
     public boolean exist(MailboxId mailboxId, MailboxAnnotation mailboxAnnotation) {
         JPAId jpaId = (JPAId) mailboxId;
-        Optional<JPAMailboxAnnotation> row = Optional.fromNullable(getEntityManager().find(JPAMailboxAnnotation.class,
+        Optional<JPAMailboxAnnotation> row = Optional.ofNullable(getEntityManager().find(JPAMailboxAnnotation.class,
             new JPAMailboxAnnotationId(jpaId.getRawId(), mailboxAnnotation.getKey().asString())));
         return row.isPresent();
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/aa1920b9/mailbox/jpa/src/main/java/org/apache/james/mailbox/jpa/mail/JPAMessageMapper.java
----------------------------------------------------------------------
diff --git a/mailbox/jpa/src/main/java/org/apache/james/mailbox/jpa/mail/JPAMessageMapper.java b/mailbox/jpa/src/main/java/org/apache/james/mailbox/jpa/mail/JPAMessageMapper.java
index 8e59765..32d33e4 100644
--- a/mailbox/jpa/src/main/java/org/apache/james/mailbox/jpa/mail/JPAMessageMapper.java
+++ b/mailbox/jpa/src/main/java/org/apache/james/mailbox/jpa/mail/JPAMessageMapper.java
@@ -22,7 +22,7 @@ import java.util.HashMap;
 import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
-
+import java.util.Optional;
 import javax.mail.Flags;
 import javax.persistence.EntityManagerFactory;
 import javax.persistence.PersistenceException;
@@ -55,7 +55,6 @@ import org.apache.james.mailbox.store.mail.model.MailboxMessage;
 import org.apache.james.mailbox.store.mail.utils.ApplicableFlagCalculator;
 import org.apache.openjpa.persistence.ArgumentException;
 
-import com.google.common.base.Optional;
 import com.google.common.collect.ImmutableList;
 import com.google.common.collect.Iterators;
 

http://git-wip-us.apache.org/repos/asf/james-project/blob/aa1920b9/mailbox/jpa/src/main/java/org/apache/james/mailbox/jpa/mail/JPAUidProvider.java
----------------------------------------------------------------------
diff --git a/mailbox/jpa/src/main/java/org/apache/james/mailbox/jpa/mail/JPAUidProvider.java b/mailbox/jpa/src/main/java/org/apache/james/mailbox/jpa/mail/JPAUidProvider.java
index 08d391d..bbf9f9b 100644
--- a/mailbox/jpa/src/main/java/org/apache/james/mailbox/jpa/mail/JPAUidProvider.java
+++ b/mailbox/jpa/src/main/java/org/apache/james/mailbox/jpa/mail/JPAUidProvider.java
@@ -18,6 +18,7 @@
  ****************************************************************/
 package org.apache.james.mailbox.jpa.mail;
 
+import java.util.Optional;
 import javax.inject.Inject;
 import javax.persistence.EntityManager;
 import javax.persistence.EntityManagerFactory;
@@ -32,8 +33,6 @@ import org.apache.james.mailbox.jpa.mail.model.JPAMailbox;
 import org.apache.james.mailbox.store.mail.AbstractLockingUidProvider;
 import org.apache.james.mailbox.store.mail.model.Mailbox;
 
-import com.google.common.base.Optional;
-
 public class JPAUidProvider extends AbstractLockingUidProvider {
 
     private final EntityManagerFactory factory;
@@ -55,7 +54,7 @@ public class JPAUidProvider extends AbstractLockingUidProvider {
             long uid = (Long) manager.createNamedQuery("findLastUid").setParameter("idParam", mailboxId.getRawId()).getSingleResult();
             manager.getTransaction().commit();
             if (uid == 0) {
-                return Optional.absent();
+                return Optional.empty();
             }
             return Optional.of(MessageUid.of(uid));
         } catch (PersistenceException e) {

http://git-wip-us.apache.org/repos/asf/james-project/blob/aa1920b9/mailbox/jpa/src/main/java/org/apache/james/mailbox/jpa/quota/JpaCurrentQuotaManager.java
----------------------------------------------------------------------
diff --git a/mailbox/jpa/src/main/java/org/apache/james/mailbox/jpa/quota/JpaCurrentQuotaManager.java b/mailbox/jpa/src/main/java/org/apache/james/mailbox/jpa/quota/JpaCurrentQuotaManager.java
index 27db807..af334b4 100644
--- a/mailbox/jpa/src/main/java/org/apache/james/mailbox/jpa/quota/JpaCurrentQuotaManager.java
+++ b/mailbox/jpa/src/main/java/org/apache/james/mailbox/jpa/quota/JpaCurrentQuotaManager.java
@@ -19,6 +19,7 @@
 
 package org.apache.james.mailbox.jpa.quota;
 
+import java.util.Optional;
 import javax.inject.Inject;
 import javax.persistence.EntityManager;
 import javax.persistence.EntityManagerFactory;
@@ -29,7 +30,6 @@ import org.apache.james.mailbox.jpa.quota.model.JpaCurrentQuota;
 import org.apache.james.mailbox.model.QuotaRoot;
 import org.apache.james.mailbox.store.quota.StoreCurrentQuotaManager;
 
-import com.google.common.base.Optional;
 import com.google.common.base.Preconditions;
 
 public class JpaCurrentQuotaManager implements StoreCurrentQuotaManager {
@@ -74,8 +74,8 @@ public class JpaCurrentQuotaManager implements StoreCurrentQuotaManager {
         Preconditions.checkArgument(count > 0, "Counts should be positive");
         Preconditions.checkArgument(size > 0, "Size should be positive");
 
-        JpaCurrentQuota jpaCurrentQuota = Optional.fromNullable(retrieveUserQuota(quotaRoot))
-            .or(new JpaCurrentQuota(quotaRoot.getValue(), NO_MESSAGES, NO_STORED_BYTES));
+        JpaCurrentQuota jpaCurrentQuota = Optional.ofNullable(retrieveUserQuota(quotaRoot))
+            .orElse(new JpaCurrentQuota(quotaRoot.getValue(), NO_MESSAGES, NO_STORED_BYTES));
 
         entityManager.merge(new JpaCurrentQuota(quotaRoot.getValue(),
             jpaCurrentQuota.getMessageCount() + count,
@@ -87,8 +87,8 @@ public class JpaCurrentQuotaManager implements StoreCurrentQuotaManager {
         Preconditions.checkArgument(count > 0, "Counts should be positive");
         Preconditions.checkArgument(size > 0, "Counts should be positive");
 
-        JpaCurrentQuota jpaCurrentQuota = Optional.fromNullable(retrieveUserQuota(quotaRoot))
-            .or(new JpaCurrentQuota(quotaRoot.getValue(), NO_MESSAGES, NO_STORED_BYTES));
+        JpaCurrentQuota jpaCurrentQuota = Optional.ofNullable(retrieveUserQuota(quotaRoot))
+            .orElse(new JpaCurrentQuota(quotaRoot.getValue(), NO_MESSAGES, NO_STORED_BYTES));
 
         entityManager.merge(new JpaCurrentQuota(quotaRoot.getValue(),
             jpaCurrentQuota.getMessageCount() - count,

http://git-wip-us.apache.org/repos/asf/james-project/blob/aa1920b9/mailbox/jpa/src/test/java/org/apache/james/mailbox/jpa/JPAMailboxManagerTest.java
----------------------------------------------------------------------
diff --git a/mailbox/jpa/src/test/java/org/apache/james/mailbox/jpa/JPAMailboxManagerTest.java b/mailbox/jpa/src/test/java/org/apache/james/mailbox/jpa/JPAMailboxManagerTest.java
index 6a53323..c6b5fda 100644
--- a/mailbox/jpa/src/test/java/org/apache/james/mailbox/jpa/JPAMailboxManagerTest.java
+++ b/mailbox/jpa/src/test/java/org/apache/james/mailbox/jpa/JPAMailboxManagerTest.java
@@ -18,6 +18,8 @@
  ****************************************************************/
 package org.apache.james.mailbox.jpa;
 
+import java.util.Optional;
+
 import org.apache.james.backends.jpa.JpaTestCluster;
 import org.apache.james.mailbox.MailboxManager;
 import org.apache.james.mailbox.MailboxManagerTest;
@@ -25,12 +27,10 @@ import org.apache.james.mailbox.exception.MailboxException;
 import org.apache.james.mailbox.jpa.openjpa.OpenJPAMailboxManager;
 import org.junit.After;
 
-import com.google.common.base.Optional;
-
 public class JPAMailboxManagerTest extends MailboxManagerTest {
 
     private static final JpaTestCluster JPA_TEST_CLUSTER = JpaTestCluster.create(JPAMailboxFixture.MAILBOX_PERSISTANCE_CLASSES);
-    private Optional<OpenJPAMailboxManager> openJPAMailboxManager = Optional.absent();
+    private Optional<OpenJPAMailboxManager> openJPAMailboxManager = Optional.empty();
 
     @Override
     protected MailboxManager provideMailboxManager() {

http://git-wip-us.apache.org/repos/asf/james-project/blob/aa1920b9/mailbox/jpa/src/test/java/org/apache/james/mailbox/jpa/JpaMailboxManagerStressTest.java
----------------------------------------------------------------------
diff --git a/mailbox/jpa/src/test/java/org/apache/james/mailbox/jpa/JpaMailboxManagerStressTest.java b/mailbox/jpa/src/test/java/org/apache/james/mailbox/jpa/JpaMailboxManagerStressTest.java
index fc05755..a3ed58c 100644
--- a/mailbox/jpa/src/test/java/org/apache/james/mailbox/jpa/JpaMailboxManagerStressTest.java
+++ b/mailbox/jpa/src/test/java/org/apache/james/mailbox/jpa/JpaMailboxManagerStressTest.java
@@ -19,6 +19,8 @@
 
 package org.apache.james.mailbox.jpa;
 
+import java.util.Optional;
+
 import org.apache.james.backends.jpa.JpaTestCluster;
 import org.apache.james.mailbox.MailboxManager;
 import org.apache.james.mailbox.MailboxManagerStressTest;
@@ -26,12 +28,10 @@ import org.apache.james.mailbox.exception.MailboxException;
 import org.apache.james.mailbox.jpa.openjpa.OpenJPAMailboxManager;
 import org.junit.After;
 
-import com.google.common.base.Optional;
-
 public class JpaMailboxManagerStressTest extends MailboxManagerStressTest {
 
     private static final JpaTestCluster JPA_TEST_CLUSTER = JpaTestCluster.create(JPAMailboxFixture.MAILBOX_PERSISTANCE_CLASSES);
-    private Optional<OpenJPAMailboxManager> openJPAMailboxManager = Optional.absent();
+    private Optional<OpenJPAMailboxManager> openJPAMailboxManager = Optional.empty();
 
     @Override
     protected MailboxManager provideManager() {

http://git-wip-us.apache.org/repos/asf/james-project/blob/aa1920b9/mailbox/jpa/src/test/java/org/apache/james/mailbox/jpa/mail/TransactionalMessageMapper.java
----------------------------------------------------------------------
diff --git a/mailbox/jpa/src/test/java/org/apache/james/mailbox/jpa/mail/TransactionalMessageMapper.java b/mailbox/jpa/src/test/java/org/apache/james/mailbox/jpa/mail/TransactionalMessageMapper.java
index 8b57d05..0bfd7f5 100644
--- a/mailbox/jpa/src/test/java/org/apache/james/mailbox/jpa/mail/TransactionalMessageMapper.java
+++ b/mailbox/jpa/src/test/java/org/apache/james/mailbox/jpa/mail/TransactionalMessageMapper.java
@@ -22,10 +22,9 @@ package org.apache.james.mailbox.jpa.mail;
 import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
-
+import java.util.Optional;
 import javax.mail.Flags;
 
-import org.apache.commons.lang.NotImplementedException;
 import org.apache.james.mailbox.MessageUid;
 import org.apache.james.mailbox.exception.MailboxException;
 import org.apache.james.mailbox.model.MailboxCounters;
@@ -36,8 +35,7 @@ import org.apache.james.mailbox.store.FlagsUpdateCalculator;
 import org.apache.james.mailbox.store.mail.MessageMapper;
 import org.apache.james.mailbox.store.mail.model.Mailbox;
 import org.apache.james.mailbox.store.mail.model.MailboxMessage;
-
-import com.google.common.base.Optional;
+import org.apache.commons.lang.NotImplementedException;
 
 public class TransactionalMessageMapper implements MessageMapper {
     private final JPAMessageMapper messageMapper;

http://git-wip-us.apache.org/repos/asf/james-project/blob/aa1920b9/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 3227bef..99fab8d 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
@@ -33,9 +33,9 @@ import java.util.HashSet;
 import java.util.Iterator;
 import java.util.List;
 import java.util.Locale;
+import java.util.Optional;
 import java.util.Set;
 import java.util.TimeZone;
-
 import javax.inject.Inject;
 import javax.mail.Flags;
 import javax.mail.Flags.Flag;
@@ -122,7 +122,6 @@ import org.apache.lucene.util.Version;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import com.google.common.base.Optional;
 import com.google.common.base.Preconditions;
 import com.google.common.collect.FluentIterable;
 import com.google.common.collect.ImmutableList;
@@ -506,7 +505,7 @@ public class LuceneMessageSearchIndex extends ListeningMessageSearchIndex {
                 Document doc = searcher.doc(sDoc.doc);
                 MessageUid uid = MessageUid.of(Long.valueOf(doc.get(UID_FIELD)));
                 MailboxId mailboxId = mailboxIdFactory.fromString(doc.get(MAILBOX_ID_FIELD));
-                Optional<MessageId> messageId = toMessageId(Optional.fromNullable(doc.get(MESSAGE_ID_FIELD)));
+                Optional<MessageId> messageId = toMessageId(Optional.ofNullable(doc.get(MESSAGE_ID_FIELD)));
                 results.add(new SearchResult(messageId, mailboxId, uid));
             }
         } catch (IOException e) {
@@ -527,7 +526,7 @@ public class LuceneMessageSearchIndex extends ListeningMessageSearchIndex {
         if (messageIdField.isPresent()) {
             return Optional.of(messageIdFactory.fromString(messageIdField.get()));
         }
-        return Optional.absent();
+        return Optional.empty();
     }
 
     private Query buildQueryFromMailboxes(ImmutableSet<MailboxId> mailboxIds) {

http://git-wip-us.apache.org/repos/asf/james-project/blob/aa1920b9/mailbox/maildir/src/main/java/org/apache/james/mailbox/maildir/MaildirFolder.java
----------------------------------------------------------------------
diff --git a/mailbox/maildir/src/main/java/org/apache/james/mailbox/maildir/MaildirFolder.java b/mailbox/maildir/src/main/java/org/apache/james/mailbox/maildir/MaildirFolder.java
index dd1ee8e..03e6b8f 100644
--- a/mailbox/maildir/src/main/java/org/apache/james/mailbox/maildir/MaildirFolder.java
+++ b/mailbox/maildir/src/main/java/org/apache/james/mailbox/maildir/MaildirFolder.java
@@ -35,13 +35,11 @@ import java.util.LinkedList;
 import java.util.Map;
 import java.util.Map.Entry;
 import java.util.NoSuchElementException;
+import java.util.Optional;
 import java.util.Properties;
 import java.util.SortedMap;
 import java.util.TreeMap;
 
-import org.apache.commons.io.FileUtils;
-import org.apache.commons.io.IOUtils;
-import org.apache.commons.lang.ArrayUtils;
 import org.apache.james.mailbox.MailboxPathLocker;
 import org.apache.james.mailbox.MailboxPathLocker.LockAwareExecution;
 import org.apache.james.mailbox.MailboxSession;
@@ -52,11 +50,12 @@ import org.apache.james.mailbox.model.MailboxACL.MailboxACLEntryKey;
 import org.apache.james.mailbox.model.MailboxACL.MailboxACLRights;
 import org.apache.james.mailbox.model.MailboxPath;
 import org.apache.james.mailbox.model.SimpleMailboxACL;
+import org.apache.commons.io.FileUtils;
+import org.apache.commons.io.IOUtils;
+import org.apache.commons.lang.ArrayUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import com.google.common.base.Optional;
-
 public class MaildirFolder {
     private static final Logger LOGGER = LoggerFactory.getLogger(MaildirFolder.class);
 
@@ -98,7 +97,7 @@ public class MaildirFolder {
         this.aclFile = new File(rootFolder, ACL_FILE);
         this.locker = locker;
         this.path = path;
-        this.lastUid = Optional.absent();
+        this.lastUid = Optional.empty();
     }
 
     private MaildirMessageName newMaildirMessageName(MaildirFolder folder, String fullName) {
@@ -189,7 +188,7 @@ public class MaildirFolder {
      * Returns the nextUid value and increases it.
      */
     private MessageUid getNextUid() {
-        MessageUid nextUid = lastUid.transform(MessageUid::next).or(MessageUid.MIN_VALUE);
+        MessageUid nextUid = lastUid.map(MessageUid::next).orElse(MessageUid.MIN_VALUE);
         lastUid = Optional.of(nextUid);
         return nextUid;
     }
@@ -546,7 +545,7 @@ public class MaildirFolder {
         try {
             if (!uidList.createNewFile())
                 throw new IOException("Could not create file " + uidList);
-            lastUid = Optional.absent();
+            lastUid = Optional.empty();
             String[] curFiles = curFolder.list();
             String[] newFiles = newFolder.list();
             messageCount = curFiles.length + newFiles.length;
@@ -708,7 +707,7 @@ public class MaildirFolder {
      * @return the line which ought to be the header
      */
     private String createUidListHeader() {
-        Long last = lastUid.transform(MessageUid::asLong).or(0L);
+        Long last = lastUid.map(MessageUid::asLong).orElse(0L);
         return "1 " + String.valueOf(last) + " " + String.valueOf(messageCount);
     }
     

http://git-wip-us.apache.org/repos/asf/james-project/blob/aa1920b9/mailbox/maildir/src/main/java/org/apache/james/mailbox/maildir/MaildirStore.java
----------------------------------------------------------------------
diff --git a/mailbox/maildir/src/main/java/org/apache/james/mailbox/maildir/MaildirStore.java b/mailbox/maildir/src/main/java/org/apache/james/mailbox/maildir/MaildirStore.java
index bdc0c15..2ebb5e6 100644
--- a/mailbox/maildir/src/main/java/org/apache/james/mailbox/maildir/MaildirStore.java
+++ b/mailbox/maildir/src/main/java/org/apache/james/mailbox/maildir/MaildirStore.java
@@ -21,8 +21,8 @@ package org.apache.james.mailbox.maildir;
 import java.io.File;
 import java.io.IOException;
 import java.util.Locale;
+import java.util.Optional;
 
-import org.apache.commons.lang.NotImplementedException;
 import org.apache.james.mailbox.MailboxPathLocker;
 import org.apache.james.mailbox.MailboxSession;
 import org.apache.james.mailbox.MessageUid;
@@ -36,8 +36,7 @@ import org.apache.james.mailbox.store.mail.ModSeqProvider;
 import org.apache.james.mailbox.store.mail.UidProvider;
 import org.apache.james.mailbox.store.mail.model.Mailbox;
 import org.apache.james.mailbox.store.mail.model.impl.SimpleMailbox;
-
-import com.google.common.base.Optional;
+import org.apache.commons.lang.NotImplementedException;
 
 public class MaildirStore implements UidProvider, ModSeqProvider {
 
@@ -246,8 +245,8 @@ public class MaildirStore implements UidProvider, ModSeqProvider {
     public MessageUid nextUid(MailboxSession session, Mailbox mailbox) throws MailboxException {
         try {
             return createMaildirFolder(mailbox).getLastUid(session)
-                .transform(MessageUid::next)
-                .or(MessageUid.MIN_VALUE);
+                .map(MessageUid::next)
+                .orElse(MessageUid.MIN_VALUE);
         } catch (MailboxException e) {
             throw new MailboxException("Unable to generate next uid", e);
         }

http://git-wip-us.apache.org/repos/asf/james-project/blob/aa1920b9/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 da4c730..6246af9 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
@@ -21,7 +21,8 @@ package org.apache.james.mailbox.inmemory;
 
 import java.util.HashSet;
 import java.util.List;
-
+import java.util.Optional;
+import java.util.function.Predicate;
 import javax.inject.Inject;
 import javax.mail.Flags;
 
@@ -42,8 +43,6 @@ 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.base.Optional;
-import com.google.common.base.Predicate;
 import com.google.common.collect.FluentIterable;
 import com.google.common.collect.ImmutableList;
 import com.google.common.collect.ImmutableSet;
@@ -146,9 +145,8 @@ public class InMemoryMessageIdManager implements MessageIdManager {
     }
 
     private void filterOnMailboxSession(List<MailboxId> mailboxIds, MailboxSession mailboxSession) throws MailboxNotFoundException {
-        boolean isForbidden = FluentIterable.from(mailboxIds)
-            .firstMatch(findMailboxBelongsToAnotherSession(mailboxSession))
-            .isPresent();
+        boolean isForbidden = mailboxIds.stream()
+            .anyMatch(findMailboxBelongsToAnotherSession(mailboxSession));
 
         if (isForbidden) {
             throw new MailboxNotFoundException("Mailbox does not belong to session");
@@ -172,9 +170,10 @@ public class InMemoryMessageIdManager implements MessageIdManager {
     }
 
     private Optional<MessageResult> findMessageWithId(MailboxId mailboxId, MessageId messageId, FetchGroup fetchGroup, MailboxSession mailboxSession) throws MailboxException {
-        return FluentIterable.from(retrieveAllMessages(mailboxId, fetchGroup, mailboxSession))
+        return retrieveAllMessages(mailboxId, fetchGroup, mailboxSession)
+            .stream()
             .filter(filterByMessageId(messageId))
-            .first();
+            .findFirst();
     }
 
     private Predicate<MessageResult> filterByMessageId(final MessageId messageId) {

http://git-wip-us.apache.org/repos/asf/james-project/blob/aa1920b9/mailbox/memory/src/main/java/org/apache/james/mailbox/inmemory/mail/InMemoryUidProvider.java
----------------------------------------------------------------------
diff --git a/mailbox/memory/src/main/java/org/apache/james/mailbox/inmemory/mail/InMemoryUidProvider.java b/mailbox/memory/src/main/java/org/apache/james/mailbox/inmemory/mail/InMemoryUidProvider.java
index d3f4637..e396880 100644
--- a/mailbox/memory/src/main/java/org/apache/james/mailbox/inmemory/mail/InMemoryUidProvider.java
+++ b/mailbox/memory/src/main/java/org/apache/james/mailbox/inmemory/mail/InMemoryUidProvider.java
@@ -19,6 +19,7 @@
 
 package org.apache.james.mailbox.inmemory.mail;
 
+import java.util.Optional;
 import java.util.concurrent.ConcurrentHashMap;
 import java.util.concurrent.ConcurrentMap;
 import java.util.concurrent.atomic.AtomicLong;
@@ -31,8 +32,6 @@ 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 com.google.common.base.Optional;
-
 public class InMemoryUidProvider implements UidProvider{
 
     private final ConcurrentMap<InMemoryId, AtomicLong> map = new ConcurrentHashMap<>();
@@ -62,7 +61,7 @@ public class InMemoryUidProvider implements UidProvider{
     public Optional<MessageUid> lastUid(MailboxSession session, Mailbox mailbox) throws MailboxException {
         AtomicLong last = getLast((InMemoryId) mailbox.getMailboxId());
         if (last == null) {
-            return Optional.absent();
+            return Optional.empty();
         }
         return Optional.of(MessageUid.of(last.get()));
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/aa1920b9/mailbox/memory/src/test/java/org/apache/james/mailbox/inmemory/InMemoryMessageIdManagerTestSystem.java
----------------------------------------------------------------------
diff --git a/mailbox/memory/src/test/java/org/apache/james/mailbox/inmemory/InMemoryMessageIdManagerTestSystem.java b/mailbox/memory/src/test/java/org/apache/james/mailbox/inmemory/InMemoryMessageIdManagerTestSystem.java
index 5e823ef..7c0b77e 100644
--- a/mailbox/memory/src/test/java/org/apache/james/mailbox/inmemory/InMemoryMessageIdManagerTestSystem.java
+++ b/mailbox/memory/src/test/java/org/apache/james/mailbox/inmemory/InMemoryMessageIdManagerTestSystem.java
@@ -20,7 +20,7 @@ package org.apache.james.mailbox.inmemory;
 
 import java.io.ByteArrayInputStream;
 import java.util.Date;
-
+import java.util.Optional;
 import javax.mail.Flags;
 
 import org.apache.james.mailbox.MailboxManager;
@@ -38,9 +38,7 @@ import org.apache.james.mailbox.store.mail.model.Mailbox;
 import org.apache.james.mailbox.store.mail.model.impl.SimpleMailbox;
 
 import com.google.common.base.Charsets;
-import com.google.common.base.Optional;
 import com.google.common.base.Throwables;
-import com.google.common.collect.FluentIterable;
 
 public class InMemoryMessageIdManagerTestSystem extends MessageIdManagerTestSystem {
 
@@ -55,7 +53,7 @@ public class InMemoryMessageIdManagerTestSystem extends MessageIdManagerTestSyst
     public InMemoryMessageIdManagerTestSystem(MailboxManager mailboxManager) {
         super(new InMemoryMessageIdManager(mailboxManager));
         this.mailboxManager = mailboxManager;
-        this.lastMessageIdUsed = Optional.absent();
+        this.lastMessageIdUsed = Optional.empty();
     }
 
     @Override
@@ -80,7 +78,7 @@ public class InMemoryMessageIdManagerTestSystem extends MessageIdManagerTestSyst
 
     @Override
     public MessageId createNotUsedMessageId() {
-        return InMemoryMessageId.of(Long.valueOf(lastMessageIdUsed.or(FIRST_MESSAGE_ID).serialize()) + ONE_HUNDRED);
+        return InMemoryMessageId.of(Long.valueOf(lastMessageIdUsed.orElse(FIRST_MESSAGE_ID).serialize()) + ONE_HUNDRED);
     }
 
     @Override
@@ -97,9 +95,10 @@ public class InMemoryMessageIdManagerTestSystem extends MessageIdManagerTestSyst
 
     private Optional<MailboxMetaData> retrieveMailbox(final MailboxId mailboxId, MailboxSession mailboxSession) throws MailboxException {
         MailboxQuery userMailboxesQuery = MailboxQuery.builder(mailboxSession).expression("*").build();
-        return FluentIterable.from(mailboxManager.search(userMailboxesQuery, mailboxSession))
+        return mailboxManager.search(userMailboxesQuery, mailboxSession)
+            .stream()
             .filter(mailboxMetaData -> mailboxMetaData.getId().equals(mailboxId))
-            .first();
+            .findFirst();
     }
 
     @Override

http://git-wip-us.apache.org/repos/asf/james-project/blob/aa1920b9/mailbox/store/src/main/java/org/apache/james/mailbox/store/BatchSizes.java
----------------------------------------------------------------------
diff --git a/mailbox/store/src/main/java/org/apache/james/mailbox/store/BatchSizes.java b/mailbox/store/src/main/java/org/apache/james/mailbox/store/BatchSizes.java
index 8b079b7..ec07b52 100644
--- a/mailbox/store/src/main/java/org/apache/james/mailbox/store/BatchSizes.java
+++ b/mailbox/store/src/main/java/org/apache/james/mailbox/store/BatchSizes.java
@@ -19,9 +19,10 @@
 package org.apache.james.mailbox.store;
 
 
+import java.util.Optional;
+
 import com.google.common.base.MoreObjects;
 import com.google.common.base.Objects;
-import com.google.common.base.Optional;
 import com.google.common.base.Preconditions;
 
 public class BatchSizes {
@@ -57,12 +58,12 @@ public class BatchSizes {
         private Optional<Integer> moveBatchSize;
 
         private Builder() {
-            fetchMetadata = Optional.absent();
-            fetchHeaders = Optional.absent();
-            fetchBody = Optional.absent();
-            fetchFull = Optional.absent();
-            copyBatchSize = Optional.absent();
-            moveBatchSize = Optional.absent();
+            fetchMetadata = Optional.empty();
+            fetchHeaders = Optional.empty();
+            fetchBody = Optional.empty();
+            fetchFull = Optional.empty();
+            copyBatchSize = Optional.empty();
+            moveBatchSize = Optional.empty();
         }
 
         public Builder fetchMetadata(int batchSize) {
@@ -103,12 +104,12 @@ public class BatchSizes {
 
         public BatchSizes build() {
             return new BatchSizes(
-                    fetchMetadata.or(DEFAULT_BATCH_SIZE),
-                    fetchHeaders.or(DEFAULT_BATCH_SIZE),
-                    fetchBody.or(DEFAULT_BATCH_SIZE),
-                    fetchFull.or(DEFAULT_BATCH_SIZE),
-                    copyBatchSize.or(DEFAULT_BATCH_SIZE),
-                    moveBatchSize.or(DEFAULT_BATCH_SIZE));
+                    fetchMetadata.orElse(DEFAULT_BATCH_SIZE),
+                    fetchHeaders.orElse(DEFAULT_BATCH_SIZE),
+                    fetchBody.orElse(DEFAULT_BATCH_SIZE),
+                    fetchFull.orElse(DEFAULT_BATCH_SIZE),
+                    copyBatchSize.orElse(DEFAULT_BATCH_SIZE),
+                    moveBatchSize.orElse(DEFAULT_BATCH_SIZE));
         }
     }
 

http://git-wip-us.apache.org/repos/asf/james-project/blob/aa1920b9/mailbox/store/src/main/java/org/apache/james/mailbox/store/FakeAuthorizator.java
----------------------------------------------------------------------
diff --git a/mailbox/store/src/main/java/org/apache/james/mailbox/store/FakeAuthorizator.java b/mailbox/store/src/main/java/org/apache/james/mailbox/store/FakeAuthorizator.java
index 948ed55..556affe 100644
--- a/mailbox/store/src/main/java/org/apache/james/mailbox/store/FakeAuthorizator.java
+++ b/mailbox/store/src/main/java/org/apache/james/mailbox/store/FakeAuthorizator.java
@@ -18,12 +18,12 @@
  ****************************************************************/
 package org.apache.james.mailbox.store;
 
-import com.google.common.base.Optional;
+import java.util.Optional;
 
 public class FakeAuthorizator implements Authorizator {
 
     public static FakeAuthorizator defaultReject() {
-        return new FakeAuthorizator(Optional.<String>absent(), Optional.<String>absent());
+        return new FakeAuthorizator(Optional.empty(), Optional.empty());
     }
 
     public static FakeAuthorizator forUserAndAdmin(String admin, String user) {

http://git-wip-us.apache.org/repos/asf/james-project/blob/aa1920b9/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 c51bd2b..dff2799 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
@@ -23,9 +23,9 @@ import java.util.ArrayList;
 import java.util.Collections;
 import java.util.EnumSet;
 import java.util.List;
+import java.util.Optional;
 import java.util.Random;
 import java.util.Set;
-
 import javax.annotation.PostConstruct;
 import javax.inject.Inject;
 
@@ -85,7 +85,6 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 import com.github.steveash.guavate.Guavate;
-import com.google.common.base.Optional;
 import com.google.common.collect.FluentIterable;
 import com.google.common.collect.Iterables;
 
@@ -568,10 +567,10 @@ public class StoreMailboxManager implements MailboxManager {
                 }, true);
 
             if (!mailboxIds.isEmpty()) {
-                return Optional.fromNullable(Iterables.getLast(mailboxIds));
+                return Optional.ofNullable(Iterables.getLast(mailboxIds));
             }
         }
-        return Optional.absent();
+        return Optional.empty();
     }
 
     @Override

http://git-wip-us.apache.org/repos/asf/james-project/blob/aa1920b9/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 4643fc1..16dab9d 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
@@ -25,7 +25,9 @@ import java.util.HashMap;
 import java.util.HashSet;
 import java.util.List;
 import java.util.Map;
-
+import java.util.Optional;
+import java.util.function.Function;
+import java.util.function.Predicate;
 import javax.inject.Inject;
 import javax.mail.Flags;
 import javax.mail.internet.SharedInputStream;
@@ -57,10 +59,7 @@ import org.apache.james.mailbox.store.quota.QuotaChecker;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import com.google.common.base.Function;
-import com.google.common.base.Optional;
-import com.google.common.base.Predicate;
-import com.google.common.base.Predicates;
+import com.github.steveash.guavate.Guavate;
 import com.google.common.collect.FluentIterable;
 import com.google.common.collect.ImmutableList;
 import com.google.common.collect.ImmutableSet;
@@ -69,6 +68,14 @@ import com.google.common.collect.Sets.SetView;
 
 public class StoreMessageIdManager implements MessageIdManager {
     private static final Logger LOGGER = LoggerFactory.getLogger(StoreMessageIdManager.class);
+    public static <T, S> Predicate<T> compose(Predicate<S> predicate, Function<T, S> function) {
+        return input -> predicate.test(function.apply(input));
+    }
+
+    static<T> Predicate<T> not(Predicate<T> p) {
+        return t -> !p.test(t);
+    }
+
     private final MailboxSessionMapperFactory mailboxSessionMapperFactory;
     private final MailboxEventDispatcher dispatcher;
     private final MessageId.Factory messageIdFactory;
@@ -108,13 +115,13 @@ public class StoreMessageIdManager implements MessageIdManager {
             ImmutableSet<MailboxId> mailboxIds = FluentIterable.from(messageList)
                 .transform(MailboxMessage::getMailboxId)
                 .toSet();
-            final ImmutableSet<MailboxId> allowedMailboxIds = FluentIterable.from(mailboxIds)
+            final ImmutableSet<MailboxId> allowedMailboxIds = mailboxIds.stream()
                 .filter(mailboxBelongsToUser(mailboxSession, mailboxMapper))
-                .toSet();
-            return FluentIterable.from(messageList)
+                .collect(Guavate.toImmutableSet());
+            return messageList.stream()
                 .filter(inMailboxes(allowedMailboxIds))
-                .transform(messageResultConverter(fetchGroup))
-                .toList();
+                .map(messageResultConverter(fetchGroup))
+                .collect(Guavate.toImmutableList());
         } catch (WrappedException wrappedException) {
             throw wrappedException.unwrap();
         }
@@ -127,12 +134,13 @@ public class StoreMessageIdManager implements MessageIdManager {
 
         allowOnMailboxSession(mailboxIds, mailboxSession, mailboxMapper);
 
-        Iterable<MetadataWithMailboxId> metadatasWithMailbox = FluentIterable
-            .from(messageIdMapper.find(ImmutableList.of(messageId), MessageMapper.FetchType.Metadata))
+        ImmutableList<MetadataWithMailboxId> metadatasWithMailbox = messageIdMapper.find(ImmutableList.of(messageId), MessageMapper.FetchType.Metadata)
+            .stream()
             .filter(inMailboxes(mailboxIds))
-            .transform(mailboxMessage -> new MetadataWithMailboxId(
+            .map(mailboxMessage -> new MetadataWithMailboxId(
                 new SimpleMessageMetaData(mailboxMessage),
-                mailboxMessage.getMailboxId()));
+                mailboxMessage.getMailboxId()))
+            .collect(Guavate.toImmutableList());
 
         messageIdMapper.delete(messageId, mailboxIds);
 
@@ -148,9 +156,16 @@ public class StoreMessageIdManager implements MessageIdManager {
 
         allowOnMailboxSession(mailboxIds, mailboxSession, mailboxMapper);
 
-        List<MailboxMessage> mailboxMessages = FluentIterable.from(messageIdMapper.find(ImmutableList.of(messageId), MessageMapper.FetchType.Full))
+        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))
-            .toList();
+            .collect(Guavate.toImmutableList());
 
         if (!mailboxMessages.isEmpty()) {
             ImmutableSet<MailboxId> currentMailboxes = FluentIterable.from(mailboxMessages)
@@ -209,12 +224,14 @@ public class StoreMessageIdManager implements MessageIdManager {
         Map<QuotaRoot, Integer> messageCountByQuotaRoot = new HashMap<>();
         for (MailboxId mailboxId : mailboxIdsToBeAdded) {
             QuotaRoot quotaRoot = retrieveQuotaRoot(mailboxMapper, mailboxId);
-            int currentCount = Optional.fromNullable(messageCountByQuotaRoot.get(quotaRoot)).or(0);
+            int currentCount = Optional.ofNullable(messageCountByQuotaRoot.get(quotaRoot))
+                .orElse(0);
             messageCountByQuotaRoot.put(quotaRoot, currentCount + 1);
         }
         for (MailboxId mailboxId : mailboxIdsToBeRemove) {
             QuotaRoot quotaRoot = retrieveQuotaRoot(mailboxMapper, mailboxId);
-            int currentCount = Optional.fromNullable(messageCountByQuotaRoot.get(quotaRoot)).or(0);
+            int currentCount = Optional.ofNullable(messageCountByQuotaRoot.get(quotaRoot))
+                .orElse(0);
             messageCountByQuotaRoot.put(quotaRoot, currentCount - 1);
         }
         return messageCountByQuotaRoot;
@@ -269,15 +286,14 @@ public class StoreMessageIdManager implements MessageIdManager {
     }
 
     private Predicate<MailboxMessage> messageBelongsToUser(MailboxSession mailboxSession, MailboxMapper mailboxMapper) {
-        return Predicates.compose(
-            mailboxBelongsToUser(mailboxSession, mailboxMapper),
+        return compose(mailboxBelongsToUser(mailboxSession, mailboxMapper),
             MailboxMessage::getMailboxId);
     }
 
     private void allowOnMailboxSession(List<MailboxId> mailboxIds, MailboxSession mailboxSession, MailboxMapper mailboxMapper) throws MailboxNotFoundException {
-        Optional<MailboxId> mailboxForbidden = FluentIterable.from(mailboxIds)
-            .firstMatch(isMailboxOfOtherUser(mailboxSession, mailboxMapper))
-            .or(Optional.<MailboxId>absent());
+        Optional<MailboxId> mailboxForbidden = mailboxIds.stream()
+            .filter(isMailboxOfOtherUser(mailboxSession, mailboxMapper))
+            .findFirst();
 
         if (mailboxForbidden.isPresent()) {
             throw new MailboxNotFoundException("Mailbox with Id " + mailboxForbidden.get() + " does not belong to session");
@@ -285,7 +301,7 @@ public class StoreMessageIdManager implements MessageIdManager {
     }
 
     private Predicate<MailboxId> isMailboxOfOtherUser(MailboxSession mailboxSession, MailboxMapper mailboxMapper) {
-        return Predicates.not(mailboxBelongsToUser(mailboxSession, mailboxMapper));
+        return not(mailboxBelongsToUser(mailboxSession, mailboxMapper));
     }
 
     private boolean belongsToCurrentUser(Mailbox mailbox, MailboxSession session) {


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