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

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

JAMES-2127 Server: 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/3de14014
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/3de14014
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/3de14014

Branch: refs/heads/master
Commit: 3de14014578ab45a42e2e2cf29695ec417cea456
Parents: a50cd62
Author: quynhn <qn...@linagora.com>
Authored: Fri Aug 25 15:23:57 2017 +0700
Committer: quynhn <qn...@linagora.com>
Committed: Wed Aug 30 11:08:48 2017 +0700

----------------------------------------------------------------------
 .../apache/james/core/filesystem/SimpleUrl.java |  6 ++---
 .../apache/james/util/OptionalConverter.java    |  8 +++---
 .../james/util/OptionalConverterTest.java       |  9 +++----
 .../java/org/apache/james/rrt/lib/Mappings.java |  4 +--
 .../CassandraRecipientRewriteTable.java         | 12 ++++-----
 .../rrt/file/XMLRecipientRewriteTableTest.java  |  7 +++--
 .../rrt/hbase/HBaseRecipientRewriteTable.java   | 19 +++++++------
 .../user/ldap/ReadOnlyUsersLDAPRepository.java  | 11 ++++----
 .../org/apache/james/rrt/lib/MappingsImpl.java  |  4 +--
 .../james/user/lib/AbstractUsersRepository.java |  8 +++---
 .../apache/james/rrt/lib/MappingsImplTest.java  |  3 +--
 .../user/lib/AbstractUsersRepositoryTest.java   |  6 ++---
 .../rrt/memory/MemoryRecipientRewriteTable.java | 10 +++----
 .../user/memory/MemoryUsersRepository.java      | 13 +++++----
 .../mailetcontainer/impl/matchers/Not.java      |  5 ++--
 .../mailetcontainer/impl/matchers/Xor.java      |  5 ++--
 .../apache/james/transport/mailets/Bounce.java  |  3 +--
 .../james/transport/mailets/DSNBounce.java      |  5 ++--
 .../apache/james/transport/mailets/Forward.java | 15 +++++------
 .../transport/mailets/NotifyPostmaster.java     |  7 +++--
 .../james/transport/mailets/NotifySender.java   |  7 +++--
 .../mailets/RecipientRewriteTableProcessor.java | 15 +++++------
 .../james/transport/mailets/Redirect.java       | 12 ++++-----
 .../apache/james/transport/mailets/Resend.java  | 15 +++++------
 .../mailets/delivery/MailDispatcher.java        | 11 ++++----
 .../mailets/jsieve/CommonsLoggingAdapter.java   | 11 ++++----
 .../transport/mailets/jsieve/VacationReply.java | 13 +++++----
 .../mailets/redirect/AddressExtractor.java      |  9 +++----
 .../mailets/redirect/InitParameters.java        |  2 +-
 .../redirect/LoadedOnceInitParameters.java      |  2 +-
 .../mailets/redirect/MailModifier.java          |  3 +--
 .../redirect/NotifyMailetInitParameters.java    |  5 ++--
 .../redirect/RedirectMailetInitParameters.java  | 11 ++++----
 .../mailets/redirect/RedirectNotify.java        |  3 +--
 ...ddressesArrayToMailAddressListConverter.java |  5 ++--
 .../remoteDelivery/DeliveryRunnable.java        |  4 +--
 .../EnhancedMessagingException.java             | 19 +++++++------
 .../mailets/remoteDelivery/ExecutionResult.java |  7 ++---
 .../mailets/remoteDelivery/MessageComposer.java |  3 +--
 .../RemoteDeliveryConfiguration.java            | 24 ++++++++---------
 .../james/transport/util/ReplyToUtils.java      | 11 ++++----
 .../james/transport/util/SenderUtils.java       |  5 ++--
 .../transport/util/SpecialAddressesUtils.java   | 15 ++++++-----
 .../james/transport/mailets/ForwardTest.java    |  9 +++----
 .../james/transport/mailets/RedirectTest.java   |  7 ++---
 .../mailets/redirect/AddressExtractorTest.java  | 13 ++++-----
 .../redirect/LoadedOnceInitParametersTest.java  |  3 +--
 .../NotifyMailetInitParametersTest.java         | 25 ++++++++---------
 .../RedirectMailetInitParametersTest.java       | 25 ++++++++---------
 .../mailets/remoteDelivery/BouncerTest.java     | 28 +++++++++-----------
 .../james/transport/util/ReplyToUtilsTest.java  |  9 +++----
 .../james/transport/util/SenderUtilsTest.java   | 13 +++++----
 .../util/SpecialAddressesUtilsTest.java         | 11 +++-----
 .../apache/james/jmap/model/MessageFactory.java |  4 +--
 ...ltMailboxesProvisioningFilterThreadTest.java |  2 +-
 55 files changed, 236 insertions(+), 285 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/3de14014/server/container/core/src/main/java/org/apache/james/core/filesystem/SimpleUrl.java
----------------------------------------------------------------------
diff --git a/server/container/core/src/main/java/org/apache/james/core/filesystem/SimpleUrl.java b/server/container/core/src/main/java/org/apache/james/core/filesystem/SimpleUrl.java
index a91e3dd..18b56bf 100644
--- a/server/container/core/src/main/java/org/apache/james/core/filesystem/SimpleUrl.java
+++ b/server/container/core/src/main/java/org/apache/james/core/filesystem/SimpleUrl.java
@@ -18,12 +18,12 @@
  ****************************************************************/
 package org.apache.james.core.filesystem;
 
+import java.util.Optional;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 
 import com.google.common.annotations.VisibleForTesting;
 import com.google.common.base.CharMatcher;
-import com.google.common.base.Optional;
 import com.google.common.io.Files;
 
 public class SimpleUrl {
@@ -50,8 +50,8 @@ public class SimpleUrl {
     private static void extractComponents(String urlWithUnixSeparators) {
         Matcher m = URL_REGEXP.matcher(urlWithUnixSeparators);
         m.matches();
-        protocol = Optional.fromNullable(m.group(1)).or("");
-        path = Optional.fromNullable(m.group(2)).or("");
+        protocol = Optional.ofNullable(m.group(1)).orElse("");
+        path = Optional.ofNullable(m.group(2)).orElse("");
     }
 
     @VisibleForTesting

http://git-wip-us.apache.org/repos/asf/james-project/blob/3de14014/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
index 5150be1..528268e 100644
--- 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
@@ -35,12 +35,12 @@ public class OptionalConverter {
         return optional;
     }
 
-    public static <T> Optional<T> fromGuava(com.google.common.base.Optional<T> guava) {
-        return Optional.ofNullable(guava.orNull());
+    public static <T> Optional<T> fromGuava(Optional<T> guava) {
+        return Optional.ofNullable(guava.orElse(null));
     }
 
-    public static <T> com.google.common.base.Optional<T> toGuava(Optional<T> java) {
-        return com.google.common.base.Optional.fromNullable(java.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) {

http://git-wip-us.apache.org/repos/asf/james-project/blob/3de14014/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
index 000ea2c..63f68e9 100644
--- 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
@@ -19,7 +19,6 @@
 package org.apache.james.util;
 
 import static org.assertj.core.api.Assertions.assertThat;
-
 import java.util.Optional;
 import java.util.concurrent.atomic.AtomicInteger;
 
@@ -92,7 +91,7 @@ public class OptionalConverterTest {
 
     @Test
     public void fromGuavaShouldReturnEmptyWhenGuavaIsEmpty() {
-        Optional<String> fromGuava = OptionalConverter.fromGuava(com.google.common.base.Optional.<String> absent());
+        Optional<String> fromGuava = OptionalConverter.fromGuava(Optional.<String> empty());
 
         assertThat(fromGuava).isEmpty();
     }
@@ -100,7 +99,7 @@ public class OptionalConverterTest {
     @Test
     public void fromGuavaShouldReturnNonEmptyWhenGuavaIsNonEmpty() {
         String value = "my string";
-        Optional<String> fromGuava = OptionalConverter.fromGuava(com.google.common.base.Optional.of(value));
+        Optional<String> fromGuava = OptionalConverter.fromGuava(Optional.of(value));
 
         assertThat(fromGuava).contains(value);
     }
@@ -113,7 +112,7 @@ public class OptionalConverterTest {
 
     @Test
     public void toGuavaShouldReturnEmptyWhenGuavaIsEmpty() {
-        com.google.common.base.Optional<String> toGuava = OptionalConverter.toGuava(Optional.<String> empty());
+        Optional<String> toGuava = OptionalConverter.toGuava(Optional.<String> empty());
 
         assertThat(toGuava.isPresent()).isFalse();
     }
@@ -121,7 +120,7 @@ public class OptionalConverterTest {
     @Test
     public void toGuavaShouldReturnNonEmptyWhenGuavaIsNonEmpty() {
         String value = "my string";
-        com.google.common.base.Optional<String> toGuava = OptionalConverter.toGuava(Optional.of(value));
+        Optional<String> toGuava = OptionalConverter.toGuava(Optional.of(value));
 
         assertThat(toGuava.get()).isEqualTo(value);
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/3de14014/server/data/data-api/src/main/java/org/apache/james/rrt/lib/Mappings.java
----------------------------------------------------------------------
diff --git a/server/data/data-api/src/main/java/org/apache/james/rrt/lib/Mappings.java b/server/data/data-api/src/main/java/org/apache/james/rrt/lib/Mappings.java
index a22fdce..21324aa 100644
--- a/server/data/data-api/src/main/java/org/apache/james/rrt/lib/Mappings.java
+++ b/server/data/data-api/src/main/java/org/apache/james/rrt/lib/Mappings.java
@@ -20,9 +20,9 @@
 
 package org.apache.james.rrt.lib;
 
-import org.apache.james.rrt.lib.Mapping.Type;
+import java.util.Optional;
 
-import com.google.common.base.Optional;
+import org.apache.james.rrt.lib.Mapping.Type;
 
 public interface Mappings extends Iterable<Mapping> {
 

http://git-wip-us.apache.org/repos/asf/james-project/blob/3de14014/server/data/data-cassandra/src/main/java/org/apache/james/rrt/cassandra/CassandraRecipientRewriteTable.java
----------------------------------------------------------------------
diff --git a/server/data/data-cassandra/src/main/java/org/apache/james/rrt/cassandra/CassandraRecipientRewriteTable.java b/server/data/data-cassandra/src/main/java/org/apache/james/rrt/cassandra/CassandraRecipientRewriteTable.java
index 86e2b4d..5a892e3 100644
--- a/server/data/data-cassandra/src/main/java/org/apache/james/rrt/cassandra/CassandraRecipientRewriteTable.java
+++ b/server/data/data-cassandra/src/main/java/org/apache/james/rrt/cassandra/CassandraRecipientRewriteTable.java
@@ -27,10 +27,9 @@ import static org.apache.james.rrt.cassandra.tables.CassandraRecipientRewriteTab
 import static org.apache.james.rrt.cassandra.tables.CassandraRecipientRewriteTableTable.MAPPING;
 import static org.apache.james.rrt.cassandra.tables.CassandraRecipientRewriteTableTable.TABLE_NAME;
 import static org.apache.james.rrt.cassandra.tables.CassandraRecipientRewriteTableTable.USER;
-
 import java.util.List;
 import java.util.Map;
-
+import java.util.Optional;
 import javax.inject.Inject;
 
 import org.apache.james.backends.cassandra.utils.CassandraAsyncExecutor;
@@ -43,7 +42,6 @@ import org.apache.james.rrt.lib.MappingsImpl;
 import com.datastax.driver.core.PreparedStatement;
 import com.datastax.driver.core.Session;
 import com.github.steveash.guavate.Guavate;
-import com.google.common.base.Optional;
 
 public class CassandraRecipientRewriteTable extends AbstractRecipientRewriteTable {
 
@@ -112,7 +110,7 @@ public class CassandraRecipientRewriteTable extends AbstractRecipientRewriteTabl
     @Override
     protected Mappings getUserDomainMappingsInternal(String user, String domain) throws RecipientRewriteTableException {
         return retrieveMappings(user, domain)
-            .orNull();
+            .orElse(null);
     }
 
     private Optional<Mappings> retrieveMappings(String user, String domain) {
@@ -176,9 +174,9 @@ public class CassandraRecipientRewriteTable extends AbstractRecipientRewriteTabl
     @Override
     protected String mapAddressInternal(String user, String domain) throws RecipientRewriteTableException {
         Mappings mappings = retrieveMappings(user, domain)
-            .or(() -> retrieveMappings(WILDCARD, domain)
-                    .or(() -> retrieveMappings(user, WILDCARD)
-                            .or(MappingsImpl.empty())));
+            .orElse(retrieveMappings(WILDCARD, domain)
+                    .orElse(retrieveMappings(user, WILDCARD)
+                            .orElse(MappingsImpl.empty())));
         return !mappings.isEmpty() ? mappings.serialize() : null;
     }
 

http://git-wip-us.apache.org/repos/asf/james-project/blob/3de14014/server/data/data-file/src/test/java/org/apache/james/rrt/file/XMLRecipientRewriteTableTest.java
----------------------------------------------------------------------
diff --git a/server/data/data-file/src/test/java/org/apache/james/rrt/file/XMLRecipientRewriteTableTest.java b/server/data/data-file/src/test/java/org/apache/james/rrt/file/XMLRecipientRewriteTableTest.java
index bac9f98..3d3d900 100644
--- a/server/data/data-file/src/test/java/org/apache/james/rrt/file/XMLRecipientRewriteTableTest.java
+++ b/server/data/data-file/src/test/java/org/apache/james/rrt/file/XMLRecipientRewriteTableTest.java
@@ -20,8 +20,8 @@ package org.apache.james.rrt.file;
 
 import java.util.ArrayList;
 import java.util.List;
+import java.util.Optional;
 
-import org.apache.commons.configuration.DefaultConfigurationBuilder;
 import org.apache.james.rrt.api.RecipientRewriteTable;
 import org.apache.james.rrt.api.RecipientRewriteTableException;
 import org.apache.james.rrt.lib.AbstractRecipientRewriteTable;
@@ -29,10 +29,9 @@ import org.apache.james.rrt.lib.AbstractRecipientRewriteTableTest;
 import org.apache.james.rrt.lib.Mappings;
 import org.apache.james.rrt.lib.MappingsImpl;
 import org.apache.james.rrt.lib.MappingsImpl.Builder;
+import org.apache.commons.configuration.DefaultConfigurationBuilder;
 import org.junit.Before;
 
-import com.google.common.base.Optional;
-
 /**
  * Test the XML Virtual User Table implementation.
  */
@@ -62,7 +61,7 @@ public class XMLRecipientRewriteTableTest extends AbstractRecipientRewriteTableT
             removeMappingsFromConfig(user, domain, mappings);
         }
 
-        Builder builder = MappingsImpl.from(Optional.fromNullable(mappings).or(MappingsImpl.empty()));
+        Builder builder = MappingsImpl.from(Optional.ofNullable(mappings).orElse(MappingsImpl.empty()));
         
         if (type == ERROR_TYPE) {
             builder.add(RecipientRewriteTable.ERROR_PREFIX + mapping);

http://git-wip-us.apache.org/repos/asf/james-project/blob/3de14014/server/data/data-hbase/src/main/java/org/apache/james/rrt/hbase/HBaseRecipientRewriteTable.java
----------------------------------------------------------------------
diff --git a/server/data/data-hbase/src/main/java/org/apache/james/rrt/hbase/HBaseRecipientRewriteTable.java b/server/data/data-hbase/src/main/java/org/apache/james/rrt/hbase/HBaseRecipientRewriteTable.java
index 387af04..42731c2 100644
--- a/server/data/data-hbase/src/main/java/org/apache/james/rrt/hbase/HBaseRecipientRewriteTable.java
+++ b/server/data/data-hbase/src/main/java/org/apache/james/rrt/hbase/HBaseRecipientRewriteTable.java
@@ -22,7 +22,14 @@ import java.io.IOException;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
+import java.util.Optional;
 
+import org.apache.james.rrt.api.RecipientRewriteTableException;
+import org.apache.james.rrt.hbase.def.HRecipientRewriteTable;
+import org.apache.james.rrt.lib.AbstractRecipientRewriteTable;
+import org.apache.james.rrt.lib.Mappings;
+import org.apache.james.rrt.lib.MappingsImpl;
+import org.apache.james.system.hbase.TablePool;
 import org.apache.hadoop.hbase.KeyValue;
 import org.apache.hadoop.hbase.client.Delete;
 import org.apache.hadoop.hbase.client.Get;
@@ -32,17 +39,9 @@ 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.util.Bytes;
-import org.apache.james.rrt.api.RecipientRewriteTableException;
-import org.apache.james.rrt.hbase.def.HRecipientRewriteTable;
-import org.apache.james.rrt.lib.AbstractRecipientRewriteTable;
-import org.apache.james.rrt.lib.Mappings;
-import org.apache.james.rrt.lib.MappingsImpl;
-import org.apache.james.system.hbase.TablePool;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import com.google.common.base.Optional;
-
 /**
  * Implementation of the RecipientRewriteTable for a HBase persistence.
  */
@@ -134,9 +133,9 @@ public class HBaseRecipientRewriteTable extends AbstractRecipientRewriteTable {
                         }
                         Mappings mappings = 
                                 MappingsImpl.from(
-                                    Optional.fromNullable(
+                                    Optional.ofNullable(
                                         map.get(email))
-                                        .or(MappingsImpl.empty()))
+                                        .orElse(MappingsImpl.empty()))
                                 .add(Bytes.toString(keyValue.getRow()))
                                 .build();
                         map.put(email, mappings);

http://git-wip-us.apache.org/repos/asf/james-project/blob/3de14014/server/data/data-ldap/src/main/java/org/apache/james/user/ldap/ReadOnlyUsersLDAPRepository.java
----------------------------------------------------------------------
diff --git a/server/data/data-ldap/src/main/java/org/apache/james/user/ldap/ReadOnlyUsersLDAPRepository.java b/server/data/data-ldap/src/main/java/org/apache/james/user/ldap/ReadOnlyUsersLDAPRepository.java
index 25ab0b5..bae64b4 100644
--- a/server/data/data-ldap/src/main/java/org/apache/james/user/ldap/ReadOnlyUsersLDAPRepository.java
+++ b/server/data/data-ldap/src/main/java/org/apache/james/user/ldap/ReadOnlyUsersLDAPRepository.java
@@ -25,9 +25,9 @@ import java.util.HashSet;
 import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
+import java.util.Optional;
 import java.util.Properties;
 import java.util.Set;
-
 import javax.annotation.PostConstruct;
 import javax.naming.Context;
 import javax.naming.NamingEnumeration;
@@ -39,9 +39,6 @@ import javax.naming.directory.SearchResult;
 import javax.naming.ldap.InitialLdapContext;
 import javax.naming.ldap.LdapContext;
 
-import org.apache.commons.configuration.ConfigurationException;
-import org.apache.commons.configuration.HierarchicalConfiguration;
-import org.apache.commons.lang.StringUtils;
 import org.apache.james.lifecycle.api.Configurable;
 import org.apache.james.user.api.UsersRepository;
 import org.apache.james.user.api.UsersRepositoryException;
@@ -50,12 +47,14 @@ import org.apache.james.user.ldap.api.LdapConstants;
 import org.apache.james.util.retry.DoublingRetrySchedule;
 import org.apache.james.util.retry.api.RetrySchedule;
 import org.apache.james.util.retry.naming.ldap.RetryingLdapContext;
+import org.apache.commons.configuration.ConfigurationException;
+import org.apache.commons.configuration.HierarchicalConfiguration;
+import org.apache.commons.lang.StringUtils;
 import org.apache.mailet.MailAddress;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 import com.github.steveash.guavate.Guavate;
-import com.google.common.base.Optional;
 
 /**
  * <p>
@@ -387,7 +386,7 @@ public class ReadOnlyUsersLDAPRepository implements UsersRepository, Configurabl
         //see if there is a filter argument
         filter = configuration.getString("[@filter]");
 
-        administratorId = Optional.fromNullable(configuration.getString("[@administratorId]"));
+        administratorId = Optional.ofNullable(configuration.getString("[@administratorId]"));
 
         checkState();
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/3de14014/server/data/data-library/src/main/java/org/apache/james/rrt/lib/MappingsImpl.java
----------------------------------------------------------------------
diff --git a/server/data/data-library/src/main/java/org/apache/james/rrt/lib/MappingsImpl.java b/server/data/data-library/src/main/java/org/apache/james/rrt/lib/MappingsImpl.java
index 4a4cb9b..523731e 100644
--- a/server/data/data-library/src/main/java/org/apache/james/rrt/lib/MappingsImpl.java
+++ b/server/data/data-library/src/main/java/org/apache/james/rrt/lib/MappingsImpl.java
@@ -24,6 +24,7 @@ import java.io.Serializable;
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.Iterator;
+import java.util.Optional;
 import java.util.StringTokenizer;
 
 import org.apache.james.rrt.lib.Mapping.Type;
@@ -31,7 +32,6 @@ import org.apache.james.rrt.lib.Mapping.Type;
 import com.google.common.base.Joiner;
 import com.google.common.base.MoreObjects;
 import com.google.common.base.Objects;
-import com.google.common.base.Optional;
 import com.google.common.base.Preconditions;
 import com.google.common.base.Predicate;
 import com.google.common.base.Predicates;
@@ -198,7 +198,7 @@ public class MappingsImpl implements Mappings, Serializable {
     @Override
     public Optional<Mappings> toOptional() {
         if (isEmpty()) {
-            return Optional.absent();
+            return Optional.empty();
         }
         return Optional.<Mappings> of(this);
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/3de14014/server/data/data-library/src/main/java/org/apache/james/user/lib/AbstractUsersRepository.java
----------------------------------------------------------------------
diff --git a/server/data/data-library/src/main/java/org/apache/james/user/lib/AbstractUsersRepository.java b/server/data/data-library/src/main/java/org/apache/james/user/lib/AbstractUsersRepository.java
index edd2585..28f6128 100644
--- a/server/data/data-library/src/main/java/org/apache/james/user/lib/AbstractUsersRepository.java
+++ b/server/data/data-library/src/main/java/org/apache/james/user/lib/AbstractUsersRepository.java
@@ -19,20 +19,20 @@
 
 package org.apache.james.user.lib;
 
+import java.util.Optional;
 import javax.inject.Inject;
 
-import org.apache.commons.configuration.ConfigurationException;
-import org.apache.commons.configuration.HierarchicalConfiguration;
 import org.apache.james.domainlist.api.DomainList;
 import org.apache.james.domainlist.api.DomainListException;
 import org.apache.james.lifecycle.api.Configurable;
 import org.apache.james.user.api.AlreadyExistInUsersRepositoryException;
 import org.apache.james.user.api.UsersRepository;
 import org.apache.james.user.api.UsersRepositoryException;
+import org.apache.commons.configuration.ConfigurationException;
+import org.apache.commons.configuration.HierarchicalConfiguration;
 import org.apache.mailet.MailAddress;
 
 import com.google.common.annotations.VisibleForTesting;
-import com.google.common.base.Optional;
 
 public abstract class AbstractUsersRepository implements UsersRepository, Configurable {
 
@@ -47,7 +47,7 @@ public abstract class AbstractUsersRepository implements UsersRepository, Config
     public void configure(HierarchicalConfiguration configuration) throws ConfigurationException {
 
         virtualHosting = configuration.getBoolean("enableVirtualHosting", getDefaultVirtualHostingValue());
-        administratorId = Optional.fromNullable(configuration.getString("administratorId"));
+        administratorId = Optional.ofNullable(configuration.getString("administratorId"));
 
         doConfigure(configuration);
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/3de14014/server/data/data-library/src/test/java/org/apache/james/rrt/lib/MappingsImplTest.java
----------------------------------------------------------------------
diff --git a/server/data/data-library/src/test/java/org/apache/james/rrt/lib/MappingsImplTest.java b/server/data/data-library/src/test/java/org/apache/james/rrt/lib/MappingsImplTest.java
index ceb1c4f..85bab7e 100644
--- a/server/data/data-library/src/test/java/org/apache/james/rrt/lib/MappingsImplTest.java
+++ b/server/data/data-library/src/test/java/org/apache/james/rrt/lib/MappingsImplTest.java
@@ -21,11 +21,10 @@
 package org.apache.james.rrt.lib;
 
 import static org.assertj.core.api.Assertions.assertThat;
+import java.util.Optional;
 
 import org.junit.Test;
 
-import com.google.common.base.Optional;
-
 
 public class MappingsImplTest {
 

http://git-wip-us.apache.org/repos/asf/james-project/blob/3de14014/server/data/data-library/src/test/java/org/apache/james/user/lib/AbstractUsersRepositoryTest.java
----------------------------------------------------------------------
diff --git a/server/data/data-library/src/test/java/org/apache/james/user/lib/AbstractUsersRepositoryTest.java b/server/data/data-library/src/test/java/org/apache/james/user/lib/AbstractUsersRepositoryTest.java
index eb0b548..1b8a0e7 100644
--- a/server/data/data-library/src/test/java/org/apache/james/user/lib/AbstractUsersRepositoryTest.java
+++ b/server/data/data-library/src/test/java/org/apache/james/user/lib/AbstractUsersRepositoryTest.java
@@ -19,9 +19,9 @@
 package org.apache.james.user.lib;
 
 import static org.assertj.core.api.Assertions.assertThat;
-
 import java.util.ArrayList;
 import java.util.Iterator;
+import java.util.Optional;
 
 import org.apache.james.domainlist.api.mock.SimpleDomainList;
 import org.apache.james.lifecycle.api.LifecycleUtil;
@@ -34,8 +34,6 @@ import org.junit.Assume;
 import org.junit.Before;
 import org.junit.Test;
 
-import com.google.common.base.Optional;
-
 
 public abstract class AbstractUsersRepositoryTest {
 
@@ -331,7 +329,7 @@ public abstract class AbstractUsersRepositoryTest {
 
     @Test
     public void isAdministratorShouldReturnFalseWhenNotConfigured() throws Exception {
-        usersRepository.setAdministratorId(Optional.<String>absent());
+        usersRepository.setAdministratorId(Optional.empty());
 
         assertThat(usersRepository.isAdministrator(admin)).isFalse();
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/3de14014/server/data/data-memory/src/main/java/org/apache/james/rrt/memory/MemoryRecipientRewriteTable.java
----------------------------------------------------------------------
diff --git a/server/data/data-memory/src/main/java/org/apache/james/rrt/memory/MemoryRecipientRewriteTable.java b/server/data/data-memory/src/main/java/org/apache/james/rrt/memory/MemoryRecipientRewriteTable.java
index 70890a3..86b07ab 100644
--- a/server/data/data-memory/src/main/java/org/apache/james/rrt/memory/MemoryRecipientRewriteTable.java
+++ b/server/data/data-memory/src/main/java/org/apache/james/rrt/memory/MemoryRecipientRewriteTable.java
@@ -23,6 +23,7 @@ import java.util.ArrayList;
 import java.util.Collection;
 import java.util.List;
 import java.util.Map;
+import java.util.Optional;
 
 import org.apache.james.rrt.api.RecipientRewriteTableException;
 import org.apache.james.rrt.lib.AbstractRecipientRewriteTable;
@@ -30,7 +31,6 @@ import org.apache.james.rrt.lib.Mappings;
 import org.apache.james.rrt.lib.MappingsImpl;
 
 import com.google.common.base.Objects;
-import com.google.common.base.Optional;
 import com.google.common.collect.Iterables;
 import com.google.common.collect.Lists;
 import com.google.common.collect.Maps;
@@ -103,15 +103,15 @@ public class MemoryRecipientRewriteTable extends AbstractRecipientRewriteTable {
     @Override
     protected Mappings getUserDomainMappingsInternal(String user, String domain) throws RecipientRewriteTableException {
         return retrieveMappings(user, domain)
-            .orNull();
+            .orElse(null);
     }
 
     @Override
     protected String mapAddressInternal(String user, String domain) throws RecipientRewriteTableException {
         Mappings mappings = retrieveMappings(user, domain)
-            .or(retrieveMappings(WILDCARD, domain)
-                .or(retrieveMappings(user, WILDCARD)
-                    .or(MappingsImpl.empty())));
+            .orElse(retrieveMappings(WILDCARD, domain)
+                .orElse(retrieveMappings(user, WILDCARD)
+                    .orElse(MappingsImpl.empty())));
 
         return !mappings.isEmpty() ? mappings.serialize() : null;
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/3de14014/server/data/data-memory/src/main/java/org/apache/james/user/memory/MemoryUsersRepository.java
----------------------------------------------------------------------
diff --git a/server/data/data-memory/src/main/java/org/apache/james/user/memory/MemoryUsersRepository.java b/server/data/data-memory/src/main/java/org/apache/james/user/memory/MemoryUsersRepository.java
index 97380fa..b24d0ae 100644
--- a/server/data/data-memory/src/main/java/org/apache/james/user/memory/MemoryUsersRepository.java
+++ b/server/data/data-memory/src/main/java/org/apache/james/user/memory/MemoryUsersRepository.java
@@ -23,15 +23,14 @@ import java.util.HashMap;
 import java.util.Iterator;
 import java.util.Locale;
 import java.util.Map;
+import java.util.Optional;
 
-import org.apache.commons.configuration.ConfigurationException;
-import org.apache.commons.configuration.HierarchicalConfiguration;
 import org.apache.james.user.api.UsersRepositoryException;
 import org.apache.james.user.api.model.User;
 import org.apache.james.user.lib.AbstractUsersRepository;
 import org.apache.james.user.lib.model.DefaultUser;
-
-import com.google.common.base.Optional;
+import org.apache.commons.configuration.ConfigurationException;
+import org.apache.commons.configuration.HierarchicalConfiguration;
 
 public class MemoryUsersRepository extends AbstractUsersRepository {
 
@@ -103,9 +102,9 @@ public class MemoryUsersRepository extends AbstractUsersRepository {
 
     @Override
     public boolean test(String name, final String password) throws UsersRepositoryException {
-        return Optional.fromNullable(userByName.get(name))
-            .transform(user -> user.verifyPassword(password))
-            .or(false);
+        return Optional.ofNullable(userByName.get(name))
+            .map(user -> user.verifyPassword(password))
+            .orElse(false);
     }
 
     @Override

http://git-wip-us.apache.org/repos/asf/james-project/blob/3de14014/server/mailet/mailetcontainer-camel/src/main/java/org/apache/james/mailetcontainer/impl/matchers/Not.java
----------------------------------------------------------------------
diff --git a/server/mailet/mailetcontainer-camel/src/main/java/org/apache/james/mailetcontainer/impl/matchers/Not.java b/server/mailet/mailetcontainer-camel/src/main/java/org/apache/james/mailetcontainer/impl/matchers/Not.java
index 8ce5a23..7b46a4f 100644
--- a/server/mailet/mailetcontainer-camel/src/main/java/org/apache/james/mailetcontainer/impl/matchers/Not.java
+++ b/server/mailet/mailetcontainer-camel/src/main/java/org/apache/james/mailetcontainer/impl/matchers/Not.java
@@ -21,14 +21,13 @@ package org.apache.james.mailetcontainer.impl.matchers;
 
 import java.util.ArrayList;
 import java.util.Collection;
-
+import java.util.Optional;
 import javax.mail.MessagingException;
 
 import org.apache.mailet.Mail;
 import org.apache.mailet.MailAddress;
 import org.apache.mailet.Matcher;
 
-import com.google.common.base.Optional;
 import com.google.common.collect.Lists;
 
 /**
@@ -43,7 +42,7 @@ import com.google.common.collect.Lists;
 public class Not extends GenericCompositeMatcher {
 
     public Collection<MailAddress> match(Mail mail) throws MessagingException {
-        Collection<MailAddress> finalResult = Optional.fromNullable(Lists.newArrayList(mail.getRecipients())).or(new ArrayList<>());
+        Collection<MailAddress> finalResult = Optional.ofNullable(Lists.newArrayList(mail.getRecipients())).orElse(new ArrayList<>());
         for (Matcher matcher : getMatchers()) {
             Collection<MailAddress> matcherResult = matcher.match(mail);
             if (matcherResult != null) {

http://git-wip-us.apache.org/repos/asf/james-project/blob/3de14014/server/mailet/mailetcontainer-camel/src/main/java/org/apache/james/mailetcontainer/impl/matchers/Xor.java
----------------------------------------------------------------------
diff --git a/server/mailet/mailetcontainer-camel/src/main/java/org/apache/james/mailetcontainer/impl/matchers/Xor.java b/server/mailet/mailetcontainer-camel/src/main/java/org/apache/james/mailetcontainer/impl/matchers/Xor.java
index 87bd63e..32794cc 100644
--- a/server/mailet/mailetcontainer-camel/src/main/java/org/apache/james/mailetcontainer/impl/matchers/Xor.java
+++ b/server/mailet/mailetcontainer-camel/src/main/java/org/apache/james/mailetcontainer/impl/matchers/Xor.java
@@ -21,14 +21,13 @@ package org.apache.james.mailetcontainer.impl.matchers;
 
 import java.util.ArrayList;
 import java.util.Collection;
-
+import java.util.Optional;
 import javax.mail.MessagingException;
 
 import org.apache.mailet.Mail;
 import org.apache.mailet.MailAddress;
 import org.apache.mailet.Matcher;
 
-import com.google.common.base.Optional;
 import com.google.common.collect.ImmutableSet;
 import com.google.common.collect.Sets;
 
@@ -46,7 +45,7 @@ public class Xor extends GenericCompositeMatcher {
         Collection<MailAddress> finalResult = null;
         boolean first = true;
         for (Matcher matcher: getMatchers()) {
-            Collection<MailAddress> matchedAddresses = Optional.fromNullable(matcher.match(mail)).or(new ArrayList<>());
+            Collection<MailAddress> matchedAddresses = Optional.ofNullable(matcher.match(mail)).orElse(new ArrayList<>());
 
             if (first) {
                 finalResult = matchedAddresses;

http://git-wip-us.apache.org/repos/asf/james-project/blob/3de14014/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/Bounce.java
----------------------------------------------------------------------
diff --git a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/Bounce.java b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/Bounce.java
index d431613..2886391 100644
--- a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/Bounce.java
+++ b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/Bounce.java
@@ -20,7 +20,7 @@
 package org.apache.james.transport.mailets;
 
 import java.util.List;
-
+import java.util.Optional;
 import javax.inject.Inject;
 import javax.mail.MessagingException;
 import javax.mail.internet.InternetAddress;
@@ -45,7 +45,6 @@ import org.apache.mailet.base.GenericMailet;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import com.google.common.base.Optional;
 import com.google.common.collect.ImmutableList;
 
 /**

http://git-wip-us.apache.org/repos/asf/james-project/blob/3de14014/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/DSNBounce.java
----------------------------------------------------------------------
diff --git a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/DSNBounce.java b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/DSNBounce.java
index eb41fcf..8a72e57 100755
--- a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/DSNBounce.java
+++ b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/DSNBounce.java
@@ -23,8 +23,8 @@ import java.net.InetAddress;
 import java.net.UnknownHostException;
 import java.util.Date;
 import java.util.List;
+import java.util.Optional;
 import java.util.regex.Pattern;
-
 import javax.inject.Inject;
 import javax.mail.MessagingException;
 import javax.mail.Session;
@@ -32,7 +32,6 @@ import javax.mail.internet.InternetAddress;
 import javax.mail.internet.MimeBodyPart;
 import javax.mail.internet.MimeMessage;
 
-import org.apache.commons.lang.time.FastDateFormat;
 import org.apache.james.core.MailImpl;
 import org.apache.james.dnsservice.api.DNSService;
 import org.apache.james.transport.mailets.managesieve.ManageSieveMailet;
@@ -51,6 +50,7 @@ import org.apache.james.transport.util.ReplyToUtils;
 import org.apache.james.transport.util.SenderUtils;
 import org.apache.james.transport.util.SpecialAddressesUtils;
 import org.apache.james.transport.util.TosUtils;
+import org.apache.commons.lang.time.FastDateFormat;
 import org.apache.mailet.Mail;
 import org.apache.mailet.MailAddress;
 import org.apache.mailet.base.DateFormats;
@@ -61,7 +61,6 @@ import org.apache.mailet.base.mail.MimeMultipartReport;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import com.google.common.base.Optional;
 import com.google.common.collect.ImmutableList;
 
 /**

http://git-wip-us.apache.org/repos/asf/james-project/blob/3de14014/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/Forward.java
----------------------------------------------------------------------
diff --git a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/Forward.java b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/Forward.java
index a07b112..312306f 100644
--- a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/Forward.java
+++ b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/Forward.java
@@ -20,7 +20,7 @@
 package org.apache.james.transport.mailets;
 
 import java.util.List;
-
+import java.util.Optional;
 import javax.inject.Inject;
 import javax.mail.MessagingException;
 import javax.mail.internet.AddressException;
@@ -44,7 +44,6 @@ import org.apache.mailet.base.GenericMailet;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import com.google.common.base.Optional;
 import com.google.common.base.Strings;
 import com.google.common.collect.ImmutableList;
 
@@ -114,7 +113,7 @@ public class Forward extends GenericMailet implements RedirectNotify {
 
     @Override
     public InitParameters getInitParameters() {
-        return RedirectMailetInitParameters.from(this, Optional.of(TypeCode.NONE), Optional.<TypeCode> absent());
+        return RedirectMailetInitParameters.from(this, Optional.of(TypeCode.NONE), Optional.empty());
     }
 
     @Override
@@ -205,7 +204,7 @@ public class Forward extends GenericMailet implements RedirectNotify {
 
     @Override
     public Optional<MailAddress> getReplyTo() throws MessagingException {
-        return Optional.absent();
+        return Optional.empty();
     }
 
     @Override
@@ -215,17 +214,17 @@ public class Forward extends GenericMailet implements RedirectNotify {
 
     @Override
     public Optional<MailAddress> getReversePath() throws MessagingException {
-        return Optional.absent();
+        return Optional.empty();
     }
 
     @Override
     public Optional<MailAddress> getReversePath(Mail originalMail) throws MessagingException {
-        return Optional.absent();
+        return Optional.empty();
     }
 
     @Override
     public Optional<MailAddress> getSender() throws MessagingException {
-        return Optional.absent();
+        return Optional.empty();
     }
 
     @Override
@@ -235,7 +234,7 @@ public class Forward extends GenericMailet implements RedirectNotify {
 
     @Override
     public Optional<String> getSubjectPrefix(Mail newMail, String subjectPrefix, Mail originalMail) throws MessagingException {
-        return Optional.absent();
+        return Optional.empty();
     }
 
     @Override

http://git-wip-us.apache.org/repos/asf/james-project/blob/3de14014/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/NotifyPostmaster.java
----------------------------------------------------------------------
diff --git a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/NotifyPostmaster.java b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/NotifyPostmaster.java
index 3522a56..ed95c5a 100644
--- a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/NotifyPostmaster.java
+++ b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/NotifyPostmaster.java
@@ -20,7 +20,7 @@
 package org.apache.james.transport.mailets;
 
 import java.util.List;
-
+import java.util.Optional;
 import javax.inject.Inject;
 import javax.mail.MessagingException;
 import javax.mail.internet.InternetAddress;
@@ -47,7 +47,6 @@ import org.apache.mailet.base.GenericMailet;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import com.google.common.base.Optional;
 import com.google.common.collect.ImmutableList;
 
 /**
@@ -130,7 +129,7 @@ public class NotifyPostmaster extends GenericMailet implements RedirectNotify {
     private static final List<String> ALLOWED_SPECIALS = ImmutableList.of("postmaster", "unaltered");
 
     private final DNSService dns;
-    private Optional<String> to = Optional.absent();
+    private Optional<String> to = Optional.empty();
 
     @Inject
     public NotifyPostmaster(DNSService dns) {
@@ -140,7 +139,7 @@ public class NotifyPostmaster extends GenericMailet implements RedirectNotify {
     @Override
     public void init(MailetConfig mailetConfig) throws MessagingException {
         super.init(mailetConfig);
-        to = Optional.fromNullable(getInitParameter("to"));
+        to = Optional.ofNullable(getInitParameter("to"));
     }
 
     @Override

http://git-wip-us.apache.org/repos/asf/james-project/blob/3de14014/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/NotifySender.java
----------------------------------------------------------------------
diff --git a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/NotifySender.java b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/NotifySender.java
index 85cec94..07bc700 100644
--- a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/NotifySender.java
+++ b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/NotifySender.java
@@ -20,7 +20,7 @@
 package org.apache.james.transport.mailets;
 
 import java.util.List;
-
+import java.util.Optional;
 import javax.inject.Inject;
 import javax.mail.MessagingException;
 import javax.mail.internet.InternetAddress;
@@ -47,7 +47,6 @@ import org.apache.mailet.base.GenericMailet;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import com.google.common.base.Optional;
 import com.google.common.collect.ImmutableList;
 
 /**
@@ -130,7 +129,7 @@ public class NotifySender extends GenericMailet implements RedirectNotify {
     private static final List<String> ALLOWED_SPECIALS = ImmutableList.of("sender", "unaltered", "from");
 
     private final DNSService dns;
-    private Optional<String> to = Optional.absent();
+    private Optional<String> to = Optional.empty();
 
     @Inject
     public NotifySender(DNSService dns) {
@@ -140,7 +139,7 @@ public class NotifySender extends GenericMailet implements RedirectNotify {
     @Override
     public void init(MailetConfig mailetConfig) throws MessagingException {
         super.init(mailetConfig);
-        to = Optional.fromNullable(getInitParameter("to"));
+        to = Optional.ofNullable(getInitParameter("to"));
     }
 
     @Override

http://git-wip-us.apache.org/repos/asf/james-project/blob/3de14014/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/RecipientRewriteTableProcessor.java
----------------------------------------------------------------------
diff --git a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/RecipientRewriteTableProcessor.java b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/RecipientRewriteTableProcessor.java
index c47b744..6e91e6b 100644
--- a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/RecipientRewriteTableProcessor.java
+++ b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/RecipientRewriteTableProcessor.java
@@ -20,7 +20,7 @@
 package org.apache.james.transport.mailets;
 
 import java.util.List;
-
+import java.util.Optional;
 import javax.mail.MessagingException;
 import javax.mail.internet.AddressException;
 import javax.mail.internet.MimeMessage;
@@ -40,7 +40,6 @@ import org.slf4j.LoggerFactory;
 
 import com.google.common.annotations.VisibleForTesting;
 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.collect.FluentIterable;
@@ -55,15 +54,15 @@ public class RecipientRewriteTableProcessor {
 
     private static final Function<RrtExecutionResult, List<MailAddress>> mailAddressesFromMappingData =
         mappingData -> mappingData.getNewRecipients()
-            .or(mappingData.getRecipientWithError()
-                .or(ImmutableList.of()));
+            .orElse(mappingData.getRecipientWithError()
+                .orElse(ImmutableList.of()));
 
     private static final Function<Mapping, Optional<MailAddress>> mailAddressFromMapping =
         addressMapping -> {
             try {
                 return Optional.of(new MailAddress(addressMapping.asString()));
             } catch (AddressException e) {
-                return Optional.absent();
+                return Optional.empty();
             }
         };
 
@@ -116,7 +115,7 @@ public class RecipientRewriteTableProcessor {
 
             if (mappings != null) {
                 List<MailAddress> newMailAddresses = handleMappings(mappings, mail.getSender(), recipient, mail.getMessage());
-                return new RrtExecutionResult(Optional.of(newMailAddresses), Optional.<List<MailAddress>>absent());
+                return new RrtExecutionResult(Optional.of(newMailAddresses), Optional.empty());
             }
             return origin(recipient);
         } catch (ErrorMappingException | RecipientRewriteTableException | MessagingException e) {
@@ -200,11 +199,11 @@ public class RecipientRewriteTableProcessor {
     }
     
     private RrtExecutionResult error(MailAddress mailAddress) {
-        return new RrtExecutionResult(Optional.<List<MailAddress>>absent(), Optional.<List<MailAddress>>of(ImmutableList.of(mailAddress)));
+        return new RrtExecutionResult(Optional.empty(), Optional.<List<MailAddress>>of(ImmutableList.of(mailAddress)));
     }
 
     private RrtExecutionResult origin(MailAddress mailAddress) {
-        return new RrtExecutionResult(Optional.<List<MailAddress>>of(ImmutableList.of(mailAddress)), Optional.<List<MailAddress>>absent());
+        return new RrtExecutionResult(Optional.<List<MailAddress>>of(ImmutableList.of(mailAddress)), Optional.empty());
     }
 
     class RrtExecutionResult {

http://git-wip-us.apache.org/repos/asf/james-project/blob/3de14014/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/Redirect.java
----------------------------------------------------------------------
diff --git a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/Redirect.java b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/Redirect.java
index 1167408..616b7a0 100644
--- a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/Redirect.java
+++ b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/Redirect.java
@@ -20,7 +20,7 @@
 package org.apache.james.transport.mailets;
 
 import java.util.List;
-
+import java.util.Optional;
 import javax.inject.Inject;
 import javax.mail.MessagingException;
 import javax.mail.internet.InternetAddress;
@@ -47,8 +47,6 @@ import org.apache.mailet.base.GenericMailet;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import com.google.common.base.Optional;
-import com.google.common.collect.FluentIterable;
 import com.google.common.collect.ImmutableList;
 
 /**
@@ -323,7 +321,7 @@ public class Redirect extends GenericMailet implements RedirectNotify {
 
     @Override
     public InitParameters getInitParameters() {
-        return RedirectMailetInitParameters.from(this, Optional.<TypeCode> absent(), Optional.of(TypeCode.BODY));
+        return RedirectMailetInitParameters.from(this, Optional.empty(), Optional.of(TypeCode.BODY));
     }
 
     @Override
@@ -416,8 +414,8 @@ public class Redirect extends GenericMailet implements RedirectNotify {
         List<MailAddress> extractAddresses = AddressExtractor.withContext(getMailetContext())
                 .allowedSpecials(ImmutableList.of("postmaster", "sender", "null", "unaltered"))
                 .extract(replyTo);
-        return FluentIterable.from(extractAddresses)
-                .first();
+        return extractAddresses.stream()
+            .findFirst();
     }
 
     @Override
@@ -444,7 +442,7 @@ public class Redirect extends GenericMailet implements RedirectNotify {
         Optional<MailAddress> reversePath = getReversePath();
         if (reversePath.isPresent()) {
             if (MailAddressUtils.isUnalteredOrReversePathOrSender(reversePath.get())) {
-                return Optional.absent();
+                return Optional.empty();
             }
         }
         return reversePath;

http://git-wip-us.apache.org/repos/asf/james-project/blob/3de14014/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/Resend.java
----------------------------------------------------------------------
diff --git a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/Resend.java b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/Resend.java
index 891bd16..0ee248f 100644
--- a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/Resend.java
+++ b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/Resend.java
@@ -20,7 +20,7 @@
 package org.apache.james.transport.mailets;
 
 import java.util.List;
-
+import java.util.Optional;
 import javax.inject.Inject;
 import javax.mail.MessagingException;
 import javax.mail.internet.InternetAddress;
@@ -45,8 +45,6 @@ import org.apache.mailet.base.GenericMailet;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import com.google.common.base.Optional;
-import com.google.common.collect.FluentIterable;
 import com.google.common.collect.ImmutableList;
 
 /**
@@ -367,13 +365,14 @@ public class Resend extends GenericMailet implements RedirectNotify {
     public Optional<MailAddress> getReplyTo() throws MessagingException {
         Optional<String> replyTo = getInitParameters().getReplyTo();
         if (!replyTo.isPresent()) {
-            return Optional.absent();
+            return Optional.empty();
         }
 
-        return FluentIterable.from(AddressExtractor.withContext(getMailetContext())
+        return AddressExtractor.withContext(getMailetContext())
                 .allowedSpecials(ImmutableList.of("postmaster", "sender", "null", "unaltered"))
-                .extract(replyTo))
-            .first();
+                .extract(replyTo)
+            .stream()
+            .findFirst();
     }
 
     @Override
@@ -409,7 +408,7 @@ public class Resend extends GenericMailet implements RedirectNotify {
         Optional<MailAddress> reversePath = getReversePath();
         if (reversePath.isPresent()) {
             if (MailAddressUtils.isUnalteredOrReversePathOrSender(reversePath.get())) {
-                return Optional.absent();
+                return Optional.empty();
             }
         }
         return reversePath;

http://git-wip-us.apache.org/repos/asf/james-project/blob/3de14014/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/delivery/MailDispatcher.java
----------------------------------------------------------------------
diff --git a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/delivery/MailDispatcher.java b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/delivery/MailDispatcher.java
index 7125cb1..4257917 100644
--- a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/delivery/MailDispatcher.java
+++ b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/delivery/MailDispatcher.java
@@ -21,8 +21,8 @@ package org.apache.james.transport.mailets.delivery;
 import java.util.Collection;
 import java.util.List;
 import java.util.Map;
+import java.util.Optional;
 import java.util.Vector;
-
 import javax.mail.MessagingException;
 import javax.mail.internet.MimeMessage;
 
@@ -34,7 +34,6 @@ import org.apache.mailet.base.RFC2822Headers;
 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.ImmutableList;
 import com.google.common.collect.ImmutableMap;
@@ -50,7 +49,7 @@ public class MailDispatcher {
     public static class Builder {
         public static final boolean CONSUME = true;
         private MailStore mailStore;
-        private Optional<Boolean> consume = Optional.absent();
+        private Optional<Boolean> consume = Optional.empty();
         private MailetContext mailetContext;
 
         public Builder consume(boolean consume) {
@@ -71,7 +70,7 @@ public class MailDispatcher {
         public MailDispatcher build() throws MessagingException {
             Preconditions.checkNotNull(mailStore);
             Preconditions.checkNotNull(mailetContext);
-            return new MailDispatcher(mailStore, consume.or(CONSUME), mailetContext);
+            return new MailDispatcher(mailStore, consume.orElse(CONSUME), mailetContext);
         }
 
     }
@@ -138,8 +137,8 @@ public class MailDispatcher {
         Collection<String> headersToSave = mail.getPerRecipientSpecificHeaders().getHeaderNamesForRecipient(recipient);
         for (String headerName: headersToSave) {
             List<String> values = ImmutableList.copyOf(
-                        Optional.fromNullable(mail.getMessage().getHeader(headerName))
-                            .or(NO_HEADERS));
+                        Optional.ofNullable(mail.getMessage().getHeader(headerName))
+                            .orElse(NO_HEADERS));
             backup.put(headerName, values);
         }
         return backup.build();

http://git-wip-us.apache.org/repos/asf/james-project/blob/3de14014/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/jsieve/CommonsLoggingAdapter.java
----------------------------------------------------------------------
diff --git a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/jsieve/CommonsLoggingAdapter.java b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/jsieve/CommonsLoggingAdapter.java
index 7be17e0..2e7293b 100644
--- a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/jsieve/CommonsLoggingAdapter.java
+++ b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/jsieve/CommonsLoggingAdapter.java
@@ -18,10 +18,11 @@
  ****************************************************************/
 package org.apache.james.transport.mailets.jsieve;
 
+import java.util.Optional;
+
 import org.apache.commons.logging.Log;
 import org.slf4j.Logger;
 
-import com.google.common.base.Optional;
 import com.google.common.base.Preconditions;
 
 /**
@@ -34,8 +35,8 @@ public class CommonsLoggingAdapter implements Log {
     }
 
     public static class Builder {
-        private Optional<Boolean> verbose = Optional.absent();
-        private Optional<Boolean> quiet = Optional.absent();
+        private Optional<Boolean> verbose = Optional.empty();
+        private Optional<Boolean> quiet = Optional.empty();
         private Logger logger;
 
         public Builder wrappedLogger(Logger logger) {
@@ -55,8 +56,8 @@ public class CommonsLoggingAdapter implements Log {
 
         public CommonsLoggingAdapter build() {
             Preconditions.checkNotNull(logger);
-            Boolean quietParameter = quiet.or(false);
-            Boolean verboseParameter = verbose.or(false);
+            Boolean quietParameter = quiet.orElse(false);
+            Boolean verboseParameter = verbose.orElse(false);
             Preconditions.checkState(!(verboseParameter && quietParameter), "You can not specify a logger both verbose and quiet");
             return new CommonsLoggingAdapter(logger, computeLogLevel(quietParameter, verboseParameter));
         }

http://git-wip-us.apache.org/repos/asf/james-project/blob/3de14014/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/jsieve/VacationReply.java
----------------------------------------------------------------------
diff --git a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/jsieve/VacationReply.java b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/jsieve/VacationReply.java
index 028b0e6..6bb8cba 100644
--- a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/jsieve/VacationReply.java
+++ b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/jsieve/VacationReply.java
@@ -21,7 +21,7 @@ package org.apache.james.transport.mailets.jsieve;
 
 import java.io.IOException;
 import java.util.List;
-
+import java.util.Optional;
 import javax.activation.DataHandler;
 import javax.mail.MessagingException;
 import javax.mail.Multipart;
@@ -36,7 +36,6 @@ import org.apache.mailet.MailAddress;
 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.Lists;
 
@@ -93,8 +92,8 @@ public class VacationReply {
         }
 
         private String generateNotificationSubject() {
-            return Optional.fromNullable(subject)
-                .or(context.getRecipient() + " is currently in vacation");
+            return Optional.ofNullable(subject)
+                .orElse(context.getRecipient() + " is currently in vacation");
         }
 
         private Multipart generateNotificationContent() throws MessagingException {
@@ -127,9 +126,9 @@ public class VacationReply {
         }
 
         private MailAddress retrieveOriginalSender() throws AddressException {
-            return Optional.fromNullable(from)
-                .transform(address -> retrieveAddressFromString(address, context))
-                .or(context.getRecipient());
+            return Optional.ofNullable(from)
+                .map(address -> retrieveAddressFromString(address, context))
+                .orElse(context.getRecipient());
         }
 
         private MailAddress retrieveAddressFromString(String address, ActionContext context) {

http://git-wip-us.apache.org/repos/asf/james-project/blob/3de14014/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/redirect/AddressExtractor.java
----------------------------------------------------------------------
diff --git a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/redirect/AddressExtractor.java b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/redirect/AddressExtractor.java
index 85475ee..43272f9 100644
--- a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/redirect/AddressExtractor.java
+++ b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/redirect/AddressExtractor.java
@@ -21,7 +21,7 @@ package org.apache.james.transport.mailets.redirect;
 
 import java.util.List;
 import java.util.Locale;
-
+import java.util.Optional;
 import javax.mail.MessagingException;
 import javax.mail.internet.AddressException;
 import javax.mail.internet.InternetAddress;
@@ -30,7 +30,6 @@ import org.apache.mailet.MailAddress;
 import org.apache.mailet.MailetContext;
 import org.apache.mailet.base.StringUtils;
 
-import com.google.common.base.Optional;
 import com.google.common.base.Preconditions;
 import com.google.common.base.Strings;
 import com.google.common.collect.ImmutableList;
@@ -126,7 +125,7 @@ public class AddressExtractor {
      */
     private Optional<MailAddress> getSpecialAddress(String addressString) throws MessagingException {
         if (Strings.isNullOrEmpty(addressString)) {
-            return Optional.absent();
+            return Optional.empty();
         }
 
         Optional<MailAddress> specialAddress = asSpecialAddress(addressString);
@@ -136,7 +135,7 @@ public class AddressExtractor {
             }
             return specialAddress;
         }
-        return Optional.absent();
+        return Optional.empty();
     }
 
     private Optional<MailAddress> asSpecialAddress(String addressString) {
@@ -171,7 +170,7 @@ public class AddressExtractor {
         if (lowerCaseTrimed.equals("null")) {
             return Optional.of(SpecialAddress.NULL);
         }
-        return Optional.absent();
+        return Optional.empty();
     }
 
     private boolean isAllowed(String addressString, List<String> allowedSpecials) {

http://git-wip-us.apache.org/repos/asf/james-project/blob/3de14014/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/redirect/InitParameters.java
----------------------------------------------------------------------
diff --git a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/redirect/InitParameters.java b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/redirect/InitParameters.java
index 766038c..6570aa7 100644
--- a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/redirect/InitParameters.java
+++ b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/redirect/InitParameters.java
@@ -19,7 +19,7 @@
 
 package org.apache.james.transport.mailets.redirect;
 
-import com.google.common.base.Optional;
+import java.util.Optional;
 
 public interface InitParameters {
 

http://git-wip-us.apache.org/repos/asf/james-project/blob/3de14014/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/redirect/LoadedOnceInitParameters.java
----------------------------------------------------------------------
diff --git a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/redirect/LoadedOnceInitParameters.java b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/redirect/LoadedOnceInitParameters.java
index 5b7a44c..3490d4d 100644
--- a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/redirect/LoadedOnceInitParameters.java
+++ b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/redirect/LoadedOnceInitParameters.java
@@ -19,7 +19,7 @@
 
 package org.apache.james.transport.mailets.redirect;
 
-import com.google.common.base.Optional;
+import java.util.Optional;
 
 public class LoadedOnceInitParameters implements InitParameters {
 

http://git-wip-us.apache.org/repos/asf/james-project/blob/3de14014/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/redirect/MailModifier.java
----------------------------------------------------------------------
diff --git a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/redirect/MailModifier.java b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/redirect/MailModifier.java
index ff7c6d9..c1e0d2c 100644
--- a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/redirect/MailModifier.java
+++ b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/redirect/MailModifier.java
@@ -21,7 +21,7 @@ package org.apache.james.transport.mailets.redirect;
 import java.net.UnknownHostException;
 import java.util.Date;
 import java.util.List;
-
+import java.util.Optional;
 import javax.mail.Message;
 import javax.mail.MessagingException;
 import javax.mail.internet.InternetAddress;
@@ -37,7 +37,6 @@ import org.apache.mailet.base.StringUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import com.google.common.base.Optional;
 import com.google.common.base.Preconditions;
 
 public class MailModifier {

http://git-wip-us.apache.org/repos/asf/james-project/blob/3de14014/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/redirect/NotifyMailetInitParameters.java
----------------------------------------------------------------------
diff --git a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/redirect/NotifyMailetInitParameters.java b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/redirect/NotifyMailetInitParameters.java
index a9012de..0c2ae70 100644
--- a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/redirect/NotifyMailetInitParameters.java
+++ b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/redirect/NotifyMailetInitParameters.java
@@ -19,9 +19,10 @@
 
 package org.apache.james.transport.mailets.redirect;
 
+import java.util.Optional;
+
 import org.apache.mailet.base.GenericMailet;
 
-import com.google.common.base.Optional;
 import com.google.common.base.Strings;
 
 public class NotifyMailetInitParameters implements InitParameters {
@@ -110,7 +111,7 @@ public class NotifyMailetInitParameters implements InitParameters {
     public Optional<String> getReplyTo() {
         String recipients = mailet.getInitParameter("replyTo", mailet.getInitParameter("replyto"));
         if (Strings.isNullOrEmpty(recipients)) {
-            return Optional.absent();
+            return Optional.empty();
         }
         return Optional.of(recipients);
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/3de14014/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/redirect/RedirectMailetInitParameters.java
----------------------------------------------------------------------
diff --git a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/redirect/RedirectMailetInitParameters.java b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/redirect/RedirectMailetInitParameters.java
index 45dcc9b..9ba0892 100644
--- a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/redirect/RedirectMailetInitParameters.java
+++ b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/redirect/RedirectMailetInitParameters.java
@@ -19,15 +19,16 @@
 
 package org.apache.james.transport.mailets.redirect;
 
+import java.util.Optional;
+
 import org.apache.mailet.base.GenericMailet;
 
-import com.google.common.base.Optional;
 import com.google.common.base.Strings;
 
 public class RedirectMailetInitParameters implements InitParameters {
 
     public static InitParameters from(GenericMailet mailet) {
-        RedirectMailetInitParameters initParameters = new RedirectMailetInitParameters(mailet, Optional.<TypeCode> absent(), Optional.<TypeCode> absent());
+        RedirectMailetInitParameters initParameters = new RedirectMailetInitParameters(mailet, Optional.empty(), Optional.empty());
         if (initParameters.isStatic()) {
             return LoadedOnceInitParameters.from(initParameters);
         }
@@ -64,12 +65,12 @@ public class RedirectMailetInitParameters implements InitParameters {
 
     @Override
     public TypeCode getInLineType() {
-        return defaultInLineType.or(TypeCode.from(mailet.getInitParameter("inline", "unaltered")));
+        return defaultInLineType.orElse(TypeCode.from(mailet.getInitParameter("inline", "unaltered")));
     }
 
     @Override
     public TypeCode getAttachmentType() {
-        return defaultAttachmentType.or(TypeCode.from(mailet.getInitParameter("attachment", "none")));
+        return defaultAttachmentType.orElse(TypeCode.from(mailet.getInitParameter("attachment", "none")));
     }
 
     @Override
@@ -123,7 +124,7 @@ public class RedirectMailetInitParameters implements InitParameters {
     public Optional<String> getReplyTo() {
         String recipients = mailet.getInitParameter("replyTo", mailet.getInitParameter("replyto"));
         if (Strings.isNullOrEmpty(recipients)) {
-            return Optional.absent();
+            return Optional.empty();
         }
         return Optional.of(recipients);
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/3de14014/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/redirect/RedirectNotify.java
----------------------------------------------------------------------
diff --git a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/redirect/RedirectNotify.java b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/redirect/RedirectNotify.java
index 4323567..be4fd3f 100644
--- a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/redirect/RedirectNotify.java
+++ b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/redirect/RedirectNotify.java
@@ -20,7 +20,7 @@
 package org.apache.james.transport.mailets.redirect;
 
 import java.util.List;
-
+import java.util.Optional;
 import javax.mail.MessagingException;
 import javax.mail.internet.InternetAddress;
 
@@ -32,7 +32,6 @@ import org.apache.mailet.MailAddress;
 import org.apache.mailet.Mailet;
 import org.apache.mailet.MailetConfig;
 
-import com.google.common.base.Optional;
 import com.google.common.collect.ImmutableList;
 
 /**

http://git-wip-us.apache.org/repos/asf/james-project/blob/3de14014/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/remoteDelivery/AddressesArrayToMailAddressListConverter.java
----------------------------------------------------------------------
diff --git a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/remoteDelivery/AddressesArrayToMailAddressListConverter.java b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/remoteDelivery/AddressesArrayToMailAddressListConverter.java
index 928c379..a1cd46b 100644
--- a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/remoteDelivery/AddressesArrayToMailAddressListConverter.java
+++ b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/remoteDelivery/AddressesArrayToMailAddressListConverter.java
@@ -21,7 +21,7 @@ package org.apache.james.transport.mailets.remoteDelivery;
 
 import java.util.Arrays;
 import java.util.List;
-
+import java.util.Optional;
 import javax.mail.Address;
 import javax.mail.internet.AddressException;
 
@@ -29,7 +29,6 @@ import org.apache.mailet.MailAddress;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import com.google.common.base.Optional;
 import com.google.common.collect.FluentIterable;
 import com.google.common.collect.ImmutableList;
 
@@ -52,7 +51,7 @@ public class AddressesArrayToMailAddressListConverter {
             return Optional.of(new MailAddress(address.toString()));
         } catch (AddressException e) {
             LOGGER.debug("Can't parse unsent address " + address, e);
-            return Optional.absent();
+            return Optional.empty();
         }
     }
 

http://git-wip-us.apache.org/repos/asf/james-project/blob/3de14014/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/remoteDelivery/DeliveryRunnable.java
----------------------------------------------------------------------
diff --git a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/remoteDelivery/DeliveryRunnable.java b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/remoteDelivery/DeliveryRunnable.java
index 4877545..ede8101 100644
--- a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/remoteDelivery/DeliveryRunnable.java
+++ b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/remoteDelivery/DeliveryRunnable.java
@@ -137,7 +137,7 @@ public class DeliveryRunnable implements Runnable {
                 handleTemporaryFailure(mail, executionResult);
                 break;
             case PERMANENT_FAILURE:
-                bouncer.bounce(mail, executionResult.getException().orNull());
+                bouncer.bounce(mail, executionResult.getException().orElse(null));
                 break;
         }
     }
@@ -154,7 +154,7 @@ public class DeliveryRunnable implements Runnable {
             reAttemptDelivery(mail, retries);
         } else {
             LOGGER.debug("Bouncing message {} after {} retries", mail.getName(), retries);
-            bouncer.bounce(mail, new Exception("Too many retries failure. Bouncing after " + retries + " retries.", executionResult.getException().orNull()));
+            bouncer.bounce(mail, new Exception("Too many retries failure. Bouncing after " + retries + " retries.", executionResult.getException().orElse(null)));
         }
     }
 

http://git-wip-us.apache.org/repos/asf/james-project/blob/3de14014/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/remoteDelivery/EnhancedMessagingException.java
----------------------------------------------------------------------
diff --git a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/remoteDelivery/EnhancedMessagingException.java b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/remoteDelivery/EnhancedMessagingException.java
index 84d87fc..667aa2d 100644
--- a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/remoteDelivery/EnhancedMessagingException.java
+++ b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/remoteDelivery/EnhancedMessagingException.java
@@ -21,12 +21,11 @@ package org.apache.james.transport.mailets.remoteDelivery;
 
 import java.lang.reflect.InvocationTargetException;
 import java.lang.reflect.Method;
-
+import java.util.Optional;
+import java.util.function.Function;
 import javax.mail.MessagingException;
 import javax.mail.internet.InternetAddress;
 
-import com.google.common.base.Function;
-import com.google.common.base.Optional;
 import com.google.common.base.Preconditions;
 import com.sun.mail.smtp.SMTPAddressFailedException;
 import com.sun.mail.smtp.SMTPSendFailedException;
@@ -64,9 +63,9 @@ public class EnhancedMessagingException {
     }
 
     private boolean messageIndicatesServerException() {
-        return Optional.fromNullable(messagingException.getMessage())
-            .transform(startWith5())
-            .or(false);
+        return Optional.ofNullable(messagingException.getMessage())
+            .map(startWith5())
+            .orElse(false);
     }
 
     private Function<String, Boolean> startWith5() {
@@ -95,7 +94,7 @@ public class EnhancedMessagingException {
             } catch (IllegalStateException ise) {
             }
         }
-        return Optional.absent();
+        return Optional.empty();
     }
 
     public Optional<String> computeCommand() {
@@ -107,7 +106,7 @@ public class EnhancedMessagingException {
             } catch (IllegalStateException ise) {
             }
         }
-        return Optional.absent();
+        return Optional.empty();
     }
 
     public Optional<InternetAddress> computeAddress() {
@@ -116,7 +115,7 @@ public class EnhancedMessagingException {
                 return Optional.of((InternetAddress) invokeGetter(messagingException, "getAddress"));
             } catch (ClassCastException | IllegalArgumentException | IllegalStateException cce) { }
         }
-        return Optional.absent();
+        return Optional.empty();
     }
 
     public String computeAction() {
@@ -137,7 +136,7 @@ public class EnhancedMessagingException {
             if (currentMessagingException.hasNestedMessagingException()) {
                 currentMessagingException = currentMessagingException.getNestedMessagingException();
             } else {
-                return Optional.absent();
+                return Optional.empty();
             }
         }
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/3de14014/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/remoteDelivery/ExecutionResult.java
----------------------------------------------------------------------
diff --git a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/remoteDelivery/ExecutionResult.java b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/remoteDelivery/ExecutionResult.java
index b408159..fda36b2 100644
--- a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/remoteDelivery/ExecutionResult.java
+++ b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/remoteDelivery/ExecutionResult.java
@@ -19,8 +19,9 @@
 
 package org.apache.james.transport.mailets.remoteDelivery;
 
+import java.util.Optional;
+
 import com.google.common.base.Objects;
-import com.google.common.base.Optional;
 
 public class ExecutionResult {
 
@@ -31,7 +32,7 @@ public class ExecutionResult {
     }
 
     public static ExecutionResult success() {
-        return new ExecutionResult(ExecutionState.SUCCESS, Optional.<Exception>absent());
+        return new ExecutionResult(ExecutionState.SUCCESS, Optional.empty());
     }
 
     public static ExecutionResult temporaryFailure(Exception e) {
@@ -43,7 +44,7 @@ public class ExecutionResult {
     }
 
     public static ExecutionResult temporaryFailure() {
-        return new ExecutionResult(ExecutionState.TEMPORARY_FAILURE, Optional.<Exception>absent());
+        return new ExecutionResult(ExecutionState.TEMPORARY_FAILURE, Optional.empty());
     }
 
     public static ExecutionResult onFailure(boolean permanent, Exception exeption) {

http://git-wip-us.apache.org/repos/asf/james-project/blob/3de14014/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/remoteDelivery/MessageComposer.java
----------------------------------------------------------------------
diff --git a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/remoteDelivery/MessageComposer.java b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/remoteDelivery/MessageComposer.java
index 74852e9..86748c1 100644
--- a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/remoteDelivery/MessageComposer.java
+++ b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/remoteDelivery/MessageComposer.java
@@ -24,7 +24,6 @@ import java.io.StringWriter;
 import java.lang.reflect.InvocationTargetException;
 import java.lang.reflect.Method;
 import java.util.Arrays;
-
 import javax.mail.MessagingException;
 import javax.mail.SendFailedException;
 import javax.mail.internet.InternetAddress;
@@ -103,7 +102,7 @@ public class MessageComposer {
         StringWriter sout = new StringWriter();
         PrintWriter out = new PrintWriter(sout, true);
         out.print(permanentAsString(executionResult.isPermanent()) + " exception delivering mail (" + mail.getName()
-            + ")" + retrieveExceptionLog(executionResult.getException().orNull()) + ": " );
+            + ")" + retrieveExceptionLog(executionResult.getException().orElse(null)) + ": " );
         if (configuration.isDebug()) {
             if (executionResult.getException().isPresent())
                 executionResult.getException().get().printStackTrace(out);

http://git-wip-us.apache.org/repos/asf/james-project/blob/3de14014/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/remoteDelivery/RemoteDeliveryConfiguration.java
----------------------------------------------------------------------
diff --git a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/remoteDelivery/RemoteDeliveryConfiguration.java b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/remoteDelivery/RemoteDeliveryConfiguration.java
index 58173f2..d6c59d8 100644
--- a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/remoteDelivery/RemoteDeliveryConfiguration.java
+++ b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/remoteDelivery/RemoteDeliveryConfiguration.java
@@ -21,17 +21,17 @@ package org.apache.james.transport.mailets.remoteDelivery;
 
 import java.util.Collection;
 import java.util.List;
+import java.util.Optional;
 import java.util.Properties;
 
-import org.apache.commons.lang3.tuple.Pair;
 import org.apache.james.domainlist.api.DomainList;
+import org.apache.commons.lang3.tuple.Pair;
 import org.apache.mailet.MailetConfig;
 import org.apache.mailet.base.MailetUtil;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 import com.github.steveash.guavate.Guavate;
-import com.google.common.base.Optional;
 import com.google.common.base.Splitter;
 import com.google.common.base.Strings;
 import com.google.common.collect.ImmutableList;
@@ -90,12 +90,12 @@ public class RemoteDeliveryConfiguration {
     private final Properties javaxAdditionalProperties;
 
     public RemoteDeliveryConfiguration(MailetConfig mailetConfig, DomainList domainList) {
-        isDebug = MailetUtil.getInitParameter(mailetConfig, DEBUG).or(false);
-        startTLS = MailetUtil.getInitParameter(mailetConfig, START_TLS).or(false);
-        isSSLEnable = MailetUtil.getInitParameter(mailetConfig, SSL_ENABLE).or(false);
-        usePriority = MailetUtil.getInitParameter(mailetConfig, USE_PRIORITY).or(false);
-        sendPartial = MailetUtil.getInitParameter(mailetConfig, SENDPARTIAL).or(false);
-        outGoingQueueName = Optional.fromNullable(mailetConfig.getInitParameter(OUTGOING)).or(DEFAULT_OUTGOING_QUEUE_NAME);
+        isDebug = MailetUtil.getInitParameter(mailetConfig, DEBUG).orElse(false);
+        startTLS = MailetUtil.getInitParameter(mailetConfig, START_TLS).orElse(false);
+        isSSLEnable = MailetUtil.getInitParameter(mailetConfig, SSL_ENABLE).orElse(false);
+        usePriority = MailetUtil.getInitParameter(mailetConfig, USE_PRIORITY).orElse(false);
+        sendPartial = MailetUtil.getInitParameter(mailetConfig, SENDPARTIAL).orElse(false);
+        outGoingQueueName = Optional.ofNullable(mailetConfig.getInitParameter(OUTGOING)).orElse(DEFAULT_OUTGOING_QUEUE_NAME);
         bounceProcessor = mailetConfig.getInitParameter(BOUNCE_PROCESSOR);
         bindAddress = mailetConfig.getInitParameter(BIND);
 
@@ -146,8 +146,8 @@ public class RemoteDeliveryConfiguration {
     private int computeConnectionTimeout(MailetConfig mailetConfig) {
         try {
             return Integer.valueOf(
-                Optional.fromNullable(mailetConfig.getInitParameter(CONNECTIONTIMEOUT))
-                    .or(String.valueOf(DEFAULT_CONNECTION_TIMEOUT)));
+                Optional.ofNullable(mailetConfig.getInitParameter(CONNECTIONTIMEOUT))
+                    .orElse(String.valueOf(DEFAULT_CONNECTION_TIMEOUT)));
         } catch (Exception e) {
             LOGGER.warn("Invalid timeout setting: {}", mailetConfig.getInitParameter(TIMEOUT));
             return DEFAULT_CONNECTION_TIMEOUT;
@@ -170,8 +170,8 @@ public class RemoteDeliveryConfiguration {
     private DelaysAndMaxRetry computeDelaysAndMaxRetry(MailetConfig mailetConfig) {
         try {
             int intendedMaxRetries = Integer.valueOf(
-                Optional.fromNullable(mailetConfig.getInitParameter(MAX_RETRIES))
-                    .or(String.valueOf(DEFAULT_MAX_RETRY)));
+                Optional.ofNullable(mailetConfig.getInitParameter(MAX_RETRIES))
+                    .orElse(String.valueOf(DEFAULT_MAX_RETRY)));
             return DelaysAndMaxRetry.from(intendedMaxRetries, mailetConfig.getInitParameter(DELAY_TIME));
         } catch (Exception e) {
             LOGGER.warn("Invalid maxRetries setting: {}", mailetConfig.getInitParameter(MAX_RETRIES));

http://git-wip-us.apache.org/repos/asf/james-project/blob/3de14014/server/mailet/mailets/src/main/java/org/apache/james/transport/util/ReplyToUtils.java
----------------------------------------------------------------------
diff --git a/server/mailet/mailets/src/main/java/org/apache/james/transport/util/ReplyToUtils.java b/server/mailet/mailets/src/main/java/org/apache/james/transport/util/ReplyToUtils.java
index 24a7eb6..58f42fa 100644
--- a/server/mailet/mailets/src/main/java/org/apache/james/transport/util/ReplyToUtils.java
+++ b/server/mailet/mailets/src/main/java/org/apache/james/transport/util/ReplyToUtils.java
@@ -18,14 +18,13 @@
  ****************************************************************/
 package org.apache.james.transport.util;
 
+import java.util.Optional;
 import javax.mail.MessagingException;
 
 import org.apache.james.transport.mailets.redirect.SpecialAddress;
 import org.apache.mailet.Mail;
 import org.apache.mailet.MailAddress;
 
-import com.google.common.base.Optional;
-
 public class ReplyToUtils {
 
     public static ReplyToUtils from(Optional<MailAddress> replyTo) {
@@ -33,7 +32,7 @@ public class ReplyToUtils {
     }
 
     public static ReplyToUtils from(MailAddress replyTo) {
-        return new ReplyToUtils(Optional.fromNullable(replyTo));
+        return new ReplyToUtils(Optional.ofNullable(replyTo));
     }
 
     private final Optional<MailAddress> replyTo;
@@ -45,10 +44,10 @@ public class ReplyToUtils {
     public Optional<MailAddress> getReplyTo(Mail originalMail) throws MessagingException {
         if (replyTo.isPresent()) {
             if (replyTo.get().equals(SpecialAddress.UNALTERED)) {
-                return Optional.absent();
+                return Optional.empty();
             }
-            return Optional.fromNullable(originalMail.getSender());
+            return Optional.ofNullable(originalMail.getSender());
         }
-        return Optional.absent();
+        return Optional.empty();
     }
 }

http://git-wip-us.apache.org/repos/asf/james-project/blob/3de14014/server/mailet/mailets/src/main/java/org/apache/james/transport/util/SenderUtils.java
----------------------------------------------------------------------
diff --git a/server/mailet/mailets/src/main/java/org/apache/james/transport/util/SenderUtils.java b/server/mailet/mailets/src/main/java/org/apache/james/transport/util/SenderUtils.java
index 40dd1ab..0d33658 100644
--- a/server/mailet/mailets/src/main/java/org/apache/james/transport/util/SenderUtils.java
+++ b/server/mailet/mailets/src/main/java/org/apache/james/transport/util/SenderUtils.java
@@ -18,14 +18,13 @@
  ****************************************************************/
 package org.apache.james.transport.util;
 
+import java.util.Optional;
 import javax.mail.MessagingException;
 
 import org.apache.james.transport.mailets.redirect.SpecialAddress;
 import org.apache.mailet.Mail;
 import org.apache.mailet.MailAddress;
 
-import com.google.common.base.Optional;
-
 public class SenderUtils {
 
     public static SenderUtils from(Optional<MailAddress> sender) {
@@ -41,7 +40,7 @@ public class SenderUtils {
     public Optional<MailAddress> getSender(Mail originalMail) throws MessagingException {
         if (sender.isPresent()) {
             if (isUnalteredOrSender(sender.get())) {
-                return Optional.absent();
+                return Optional.empty();
             }
         }
         return sender;


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