JAMES-2107 Run IntelliJ inspection: "Convert to lambas"

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

Branch: refs/heads/master
Commit: 855a3c87e7a903649f986aeff8a5e03c63fd8db5
Parents: f40ce32
Author: benwa <btell...@linagora.com>
Authored: Tue Aug 1 17:22:01 2017 +0700
Committer: benwa <btell...@linagora.com>
Committed: Wed Aug 16 16:44:07 2017 +0700

----------------------------------------------------------------------
 .../james/backends/jpa/JpaTestCluster.java      |  12 +-
 .../james/mailbox/MailboxManagerStressTest.java |  43 +-
 .../mailbox/hbase/mail/HBaseMessageMapper.java  |   9 +-
 .../mailbox/hbase/HBaseClusterSingleton.java    |  14 +-
 .../mailbox/jpa/mail/JPAAnnotationMapper.java   |  84 +--
 .../mailbox/jpa/mail/JPAMessageMapper.java      |   8 +-
 .../jpa/mail/TransactionalMailboxMapper.java    |   7 +-
 .../jpa/mail/TransactionalMessageMapper.java    |  32 +-
 .../lucene/search/LuceneMessageSearchIndex.java |  15 +-
 .../james/mailbox/maildir/MaildirFolder.java    | 596 +++++++++----------
 .../mailbox/maildir/MaildirMessageName.java     |   9 +-
 .../james/mailbox/maildir/MaildirStore.java     |  10 +-
 .../maildir/mail/MaildirMailboxMapper.java      |   8 +-
 .../inmemory/InMemoryMessageIdManager.java      |  43 +-
 .../inmemory/mail/InMemoryAnnotationMapper.java |  45 +-
 .../InMemoryMessageIdManagerTestSystem.java     |   9 +-
 .../quota/InMemoryCurrentQuotaManagerTest.java  |  30 +-
 .../mailbox/store/StoreMailboxManager.java      | 139 ++---
 .../mailbox/store/StoreMessageIdManager.java    |  62 +-
 .../mailbox/store/StoreMessageManager.java      | 136 ++---
 .../store/event/AsynchronousEventDelivery.java  |  14 +-
 .../dto/MailboxSessionDataTransferObject.java   |  26 +-
 .../dto/MessageMetaDataDataTransferObject.java  |   8 +-
 .../mail/AbstractLockingModSeqProvider.java     |  12 +-
 .../store/mail/AbstractLockingUidProvider.java  |  12 +-
 .../store/mail/AbstractMessageMapper.java       |  10 +-
 .../store/mail/model/impl/MessageParser.java    |  54 +-
 .../store/mail/model/impl/PropertyBuilder.java  |  13 +-
 .../mail/utils/ApplicableFlagCalculator.java    |  12 +-
 .../store/quota/CurrentQuotaCalculator.java     |  14 +-
 .../store/quota/DefaultQuotaRootResolver.java   |  11 +-
 .../mailbox/store/search/MessageSearches.java   |  14 +-
 .../store/search/SimpleMessageSearchIndex.java  |  51 +-
 .../search/comparator/CombinedComparator.java   |   7 +-
 .../store/AbstractCombinationManagerTest.java   |   7 +-
 .../AbstractMessageIdManagerStorageTest.java    |  41 +-
 .../james/mailbox/store/MessageBatcherTest.java |  19 +-
 .../StoreMailboxManagerAnnotationTest.java      |  10 +-
 .../StoreMailboxMessageResultIteratorTest.java  |  10 +-
 .../store/TestMailboxSessionMapperFactory.java  |  67 +--
 .../DefaultDelegatingMailboxListenerTest.java   |  11 +-
 .../store/event/MixedEventDeliveryTest.java     |  27 +-
 .../BroadcastDelegatingMailboxListenerTest.java |  94 +--
 .../DistantMailboxPathRegisterTest.java         | 102 ++--
 ...RegisteredDelegatingMailboxListenerTest.java | 111 +---
 .../store/mail/model/ListMailboxAssert.java     |  12 +-
 .../store/mail/model/ListMessageAssert.java     |  19 +-
 .../mail/model/ListMessagePropertiesAssert.java |   7 +-
 .../store/mail/model/MessageIdMapperTest.java   |  22 +-
 .../store/mail/model/MessageMapperTest.java     |  20 +-
 .../quota/DefaultQuotaRootResolverTest.java     |  18 +-
 .../mailbox/store/quota/QuotaCheckerTest.java   | 108 +---
 .../store/quota/StoreQuotaManagerTest.java      |  77 +--
 .../james/mailbox/copier/MailboxCopierTest.java |  19 +-
 .../mailbox/indexer/ReIndexerImplTest.java      |  45 +-
 .../org/apache/mailet/PerRecipientHeaders.java  |  11 +-
 .../mailet/base/MailetPipelineLogging.java      |  21 +-
 .../mailet/base/test/MimeMessageBuilder.java    |  13 +-
 .../james/mailet/AbstractMailetdocsReport.java  |   9 +-
 .../mailet/DefaultDescriptorsExtractor.java     |  12 +-
 .../transport/mailets/RecipientToLowerCase.java |  22 +-
 .../transport/mailets/UseHeaderRecipients.java  |  22 +-
 .../utils/MailAddressCollectionReader.java      |  22 +-
 .../mailets/RecipientToLowerCaseTest.java       |  10 +-
 .../transport/mailets/StripAttachmentTest.java  |   9 +-
 .../james/mpt/session/ExternalSession.java      |  12 +-
 .../james/mpt/testsuite/HaveSpaceTest.java      |  10 +-
 .../api/AbstractProtocolTransport.java          |  11 +-
 .../api/handler/CommandDispatcher.java          |  28 +-
 .../api/AbstractProtocolTransportTest.java      |  35 +-
 .../james/imap/api/ImapConfiguration.java       |  17 +-
 .../imap/decode/parser/SearchCommandParser.java |  18 +-
 .../parser/SetAnnotationCommandParser.java      |   6 +-
 .../imap/processor/AuthenticateProcessor.java   |  19 +-
 .../imap/processor/GetAnnotationProcessor.java  |  44 +-
 .../processor/base/SelectedMailboxImplTest.java |  40 +-
 .../processor/base/UidMsnConverterTest.java     |  27 +-
 .../james/managesieve/core/CoreProcessor.java   | 129 ++--
 .../AllButStartTlsDelimiterChannelHandler.java  |  17 +-
 .../smtp/core/ReceivedDataLineFilter.java       |  37 +-
 .../protocols/smtp/AbstractSMTPServerTest.java  |   8 +-
 .../org/apache/james/DockerCassandraRule.java   |   2 +-
 .../java/org/apache/james/ESReporterTest.java   |   6 +-
 .../james/utils/ConfigurationsPerformer.java    |   2 +-
 .../org/apache/james/JPAJamesServerMain.java    |   2 +-
 .../james/onami/lifecycle/LifeCycleModule.java  |  25 +-
 .../onami/lifecycle/LifeCycleStageModule.java   |  11 +-
 .../james/onami/lifecycle/StageableMethod.java  |   9 +-
 .../onami/lifecycle/DefaultStagerTestCase.java  |  42 +-
 ...AbstractOSGIAnnotationBeanPostProcessor.java |  10 +-
 .../util/mime/MessageContentExtractor.java      |   2 +-
 .../concurrency/ConcurrentTestRunnerTest.java   |  64 +-
 .../mailrepository/jcr/JCRMailRepository.java   |  19 +-
 .../org/apache/james/rrt/lib/MappingsImpl.java  |  15 +-
 .../rrt/memory/MemoryRecipientRewriteTable.java |  35 +-
 .../user/memory/MemoryUsersRepository.java      |  19 +-
 .../dnsservice/api/InMemoryDNSService.java      |  14 +-
 .../library/netmatcher/NetMatcher.java          |   6 +-
 .../mailetcontainer/impl/JamesMailSpooler.java  |  62 +-
 .../mailets/RecipientRewriteTableProcessor.java | 117 +---
 .../transport/mailets/jsieve/DiscardAction.java |  13 +-
 .../mailets/jsieve/SieveMailAdapter.java        |  47 +-
 .../mailets/jsieve/VacationAction.java          |   7 +-
 .../transport/mailets/jsieve/VacationReply.java |  25 +-
 ...ddressesArrayToMailAddressListConverter.java |  37 +-
 .../remoteDelivery/DeliveryRunnable.java        |   7 +-
 .../EnhancedMessagingException.java             |   7 +-
 .../InternetAddressConverter.java               |  10 +-
 .../james/transport/util/MailAddressUtils.java  |   9 +-
 .../remoteDelivery/DeliveryRunnableTest.java    |   7 +-
 .../RemoteDeliveryRunningTest.java              |  13 +-
 .../cassandra/cucumber/CassandraStepdefs.java   |   2 +-
 .../cucumber/GetMessagesMethodStepdefs.java     |   2 +-
 .../james/jmap/JWTAuthenticationStrategy.java   |   2 +-
 ...ameterAccessTokenAuthenticationStrategy.java |   2 +-
 .../james/jmap/mailet/VacationMailet.java       |   5 +-
 .../methods/SetMailboxesCreationProcessor.java  |   2 +-
 .../methods/SetMessagesCreationProcessor.java   |   2 +-
 .../methods/SetMessagesUpdateProcessor.java     |   2 +-
 .../james/jmap/model/MessageProperties.java     |   2 +-
 .../SetMessagesCreationProcessorTest.java       |   5 +-
 .../james/jmap/model/FilterOperatorTest.java    |   6 +-
 .../apache/james/jmap/send/MailSpoolTest.java   |   9 +-
 .../apache/james/jwt/PublicKeyProviderTest.java |   2 +-
 .../apache/james/pop3server/POP3ServerTest.java |  30 +-
 .../james/queue/api/mock/MockMailQueue.java     |  17 +-
 .../apache/james/queue/file/FileMailQueue.java  |  40 +-
 .../queue/jms/AbstractJMSMailQueueTest.java     |  20 +-
 128 files changed, 1212 insertions(+), 2606 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/855a3c87/backends-common/jpa/src/test/java/org/apache/james/backends/jpa/JpaTestCluster.java
----------------------------------------------------------------------
diff --git 
a/backends-common/jpa/src/test/java/org/apache/james/backends/jpa/JpaTestCluster.java
 
b/backends-common/jpa/src/test/java/org/apache/james/backends/jpa/JpaTestCluster.java
index 018d492..6baaa31 100644
--- 
a/backends-common/jpa/src/test/java/org/apache/james/backends/jpa/JpaTestCluster.java
+++ 
b/backends-common/jpa/src/test/java/org/apache/james/backends/jpa/JpaTestCluster.java
@@ -27,7 +27,6 @@ import javax.persistence.EntityManagerFactory;
 
 import org.apache.openjpa.persistence.OpenJPAPersistence;
 
-import com.google.common.base.Function;
 import com.google.common.base.Joiner;
 import com.google.common.collect.FluentIterable;
 import com.google.common.collect.ImmutableList;
@@ -52,20 +51,11 @@ public class JpaTestCluster {
         properties.put("openjpa.MetaDataFactory", "jpa(Types=" +
             Joiner.on(";").join(
                 FluentIterable.from(clazz)
-                    .transform(toFQDN()))
+                    .transform(Class::getName))
             + ")");
         return new 
JpaTestCluster(OpenJPAPersistence.getEntityManagerFactory(properties));
     }
 
-    private static Function<Class<?>, String> toFQDN() {
-        return new Function<Class<?>, String>() {
-            @Override
-            public String apply(Class<?> input) {
-                return input.getName();
-            }
-        };
-    }
-
     private final EntityManagerFactory entityManagerFactory;
 
     private JpaTestCluster(EntityManagerFactory entityManagerFactory) {

http://git-wip-us.apache.org/repos/asf/james-project/blob/855a3c87/mailbox/api/src/test/java/org/apache/james/mailbox/MailboxManagerStressTest.java
----------------------------------------------------------------------
diff --git 
a/mailbox/api/src/test/java/org/apache/james/mailbox/MailboxManagerStressTest.java
 
b/mailbox/api/src/test/java/org/apache/james/mailbox/MailboxManagerStressTest.java
index f92cb11..d8276fe 100644
--- 
a/mailbox/api/src/test/java/org/apache/james/mailbox/MailboxManagerStressTest.java
+++ 
b/mailbox/api/src/test/java/org/apache/james/mailbox/MailboxManagerStressTest.java
@@ -93,37 +93,34 @@ public abstract class MailboxManagerStressTest {
 
         // fire of 1000 append operations
         for (int i = 0; i < APPEND_OPERATIONS; i++) {
-            pool.execute(new Runnable() {
-
-                public void run() {
-                    if (fail.get()) {
-                        latch.countDown();
-                        return;
-                    }
+            pool.execute(() -> {
+                if (fail.get()) {
+                    latch.countDown();
+                    return;
+                }
 
 
-                    try {
-                        MailboxSession session = 
mailboxManager.createSystemSession(username, LoggerFactory.getLogger("Test"));
+                try {
+                    MailboxSession mailboxSession = 
mailboxManager.createSystemSession(username, LoggerFactory.getLogger("Test"));
 
-                        mailboxManager.startProcessingRequest(session);
-                        MessageManager m = mailboxManager.getMailbox(path, 
session);
-                        ComposedMessageId messageId = m.appendMessage(new 
ByteArrayInputStream("Subject: test\r\n\r\ntestmail".getBytes()), new Date(), 
session, false, new Flags());
+                    mailboxManager.startProcessingRequest(mailboxSession);
+                    MessageManager m = mailboxManager.getMailbox(path, 
mailboxSession);
+                    ComposedMessageId messageId = m.appendMessage(new 
ByteArrayInputStream("Subject: test\r\n\r\ntestmail".getBytes()), new Date(), 
mailboxSession, false, new Flags());
 
-                        System.out.println("Append message with uid=" + 
messageId.getUid());
-                        if (uids.put(messageId.getUid(), new Object()) != 
null) {
-                            fail.set(true);
-                        }
-                        mailboxManager.endProcessingRequest(session);
-                        mailboxManager.logout(session, false);
-                    } catch (Exception e) {
-                        e.printStackTrace();
+                    System.out.println("Append message with uid=" + 
messageId.getUid());
+                    if (uids.put(messageId.getUid(), new Object()) != null) {
                         fail.set(true);
-                    } finally {
-                        latch.countDown();
                     }
+                    mailboxManager.endProcessingRequest(mailboxSession);
+                    mailboxManager.logout(mailboxSession, false);
+                } catch (Exception e) {
+                    e.printStackTrace();
+                    fail.set(true);
+                } finally {
+                    latch.countDown();
+                }
 
 
-                }
             });
         }
 

http://git-wip-us.apache.org/repos/asf/james-project/blob/855a3c87/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 6c0843f..b18579a 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
@@ -85,7 +85,6 @@ 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 com.google.common.base.Function;
 import com.google.common.base.Optional;
 import com.google.common.collect.Iterables;
 import com.google.common.collect.Iterators;
@@ -98,12 +97,6 @@ import com.google.common.collect.Iterators;
 public class HBaseMessageMapper extends NonTransactionalMapper implements 
MessageMapper {
 
     private static final int UNLIMITED = -1;
-    private static final Function<MailboxMessage, MessageUid> TO_UID = new 
Function<MailboxMessage, MessageUid>() {
-        @Override
-        public MessageUid apply(MailboxMessage mailboxMessage) {
-            return mailboxMessage.getUid();
-        }
-    };
 
     private final Configuration conf;
     private final MailboxSession mailboxSession;
@@ -133,7 +126,7 @@ public class HBaseMessageMapper extends 
NonTransactionalMapper implements Messag
 
     @Override
     public Iterator<MessageUid> listAllMessageUids(final Mailbox mailbox) 
throws MailboxException {
-        return Iterators.transform(findInMailbox(mailbox, MessageRange.all(), 
FetchType.Full, UNLIMITED), TO_UID);
+        return Iterators.transform(findInMailbox(mailbox, MessageRange.all(), 
FetchType.Full, UNLIMITED), MailboxMessage::getUid);
     }
 
     @Override

http://git-wip-us.apache.org/repos/asf/james-project/blob/855a3c87/mailbox/hbase/src/test/java/org/apache/james/mailbox/hbase/HBaseClusterSingleton.java
----------------------------------------------------------------------
diff --git 
a/mailbox/hbase/src/test/java/org/apache/james/mailbox/hbase/HBaseClusterSingleton.java
 
b/mailbox/hbase/src/test/java/org/apache/james/mailbox/hbase/HBaseClusterSingleton.java
index 42f1835..a69a9b8 100644
--- 
a/mailbox/hbase/src/test/java/org/apache/james/mailbox/hbase/HBaseClusterSingleton.java
+++ 
b/mailbox/hbase/src/test/java/org/apache/james/mailbox/hbase/HBaseClusterSingleton.java
@@ -103,15 +103,11 @@ public final class HBaseClusterSingleton {
         } finally {
             if (hbaseCluster != null) {
                 // add a shutdown hook for shuting down the minicluster.
-                Runtime.getRuntime().addShutdownHook(new Thread(new Runnable() 
{
-
-                    @Override
-                    public void run() {
-                        try {
-                            hbaseCluster.shutdown();
-                        } catch (IOException e) {
-                            throw new RuntimeException("Exception shuting down 
cluster.");
-                        }
+                Runtime.getRuntime().addShutdownHook(new Thread(() -> {
+                    try {
+                        hbaseCluster.shutdown();
+                    } catch (IOException e) {
+                        throw new RuntimeException("Exception shuting down 
cluster.");
                     }
                 }));
             }

http://git-wip-us.apache.org/repos/asf/james-project/blob/855a3c87/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 9aba4c6..84a78c6 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
@@ -26,9 +26,6 @@ import javax.persistence.EntityManagerFactory;
 import javax.persistence.NoResultException;
 import javax.persistence.PersistenceException;
 
-import com.google.common.base.Optional;
-import com.google.common.base.Preconditions;
-import com.google.common.base.Throwables;
 import org.apache.james.mailbox.jpa.JPAId;
 import org.apache.james.mailbox.jpa.JPATransactionalMapper;
 import org.apache.james.mailbox.jpa.mail.model.JPAMailboxAnnotation;
@@ -41,7 +38,10 @@ 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;
 import com.google.common.collect.ImmutableList;
 import com.google.common.collect.ImmutableSet;
 import com.google.common.collect.Iterables;
@@ -51,12 +51,8 @@ public class JPAAnnotationMapper extends 
JPATransactionalMapper implements Annot
 
     private static final Logger LOGGER = 
LoggerFactory.getLogger(JPAAnnotationMapper.class);
 
-    public static final Function<JPAMailboxAnnotation, MailboxAnnotation> 
READ_ROW = new Function<JPAMailboxAnnotation, MailboxAnnotation>() {
-        @Override
-        public MailboxAnnotation apply(JPAMailboxAnnotation input) {
-            return MailboxAnnotation.newInstance(new 
MailboxAnnotationKey(input.getKey()), input.getValue());
-        }
-    };
+    public static final Function<JPAMailboxAnnotation, MailboxAnnotation> 
READ_ROW =
+        input -> MailboxAnnotation.newInstance(new 
MailboxAnnotationKey(input.getKey()), input.getValue());
 
     public JPAAnnotationMapper(EntityManagerFactory entityManagerFactory) {
         super(entityManagerFactory);
@@ -74,17 +70,13 @@ public class JPAAnnotationMapper extends 
JPATransactionalMapper implements Annot
     public List<MailboxAnnotation> getAnnotationsByKeys(MailboxId mailboxId, 
Set<MailboxAnnotationKey> keys) {
         try {
             final JPAId jpaId = (JPAId) mailboxId;
-            return ImmutableList.copyOf(Iterables.transform(keys, new 
Function<MailboxAnnotationKey, MailboxAnnotation>() {
-                @Override
-                public MailboxAnnotation apply(MailboxAnnotationKey input) {
-                    return READ_ROW.apply(
-                        getEntityManager()
-                            .createNamedQuery("retrieveByKey", 
JPAMailboxAnnotation.class)
-                            .setParameter("idParam", jpaId.getRawId())
-                            .setParameter("keyParam", input.asString())
-                            .getSingleResult());
-                }
-            }));
+            return ImmutableList.copyOf(Iterables.transform(keys,
+                input -> READ_ROW.apply(
+                    getEntityManager()
+                        .createNamedQuery("retrieveByKey", 
JPAMailboxAnnotation.class)
+                        .setParameter("idParam", jpaId.getRawId())
+                        .setParameter("keyParam", input.asString())
+                        .getSingleResult())));
         } catch (NoResultException e) {
             return ImmutableList.of();
         }
@@ -94,54 +86,32 @@ public class JPAAnnotationMapper extends 
JPATransactionalMapper implements Annot
     public List<MailboxAnnotation> getAnnotationsByKeysWithOneDepth(MailboxId 
mailboxId, Set<MailboxAnnotationKey> keys) {
         return getFilteredLikes((JPAId) mailboxId,
             keys,
-            new Function<MailboxAnnotationKey, Predicate<MailboxAnnotation>>() 
{
-                @Override
-                public Predicate<MailboxAnnotation> apply(final 
MailboxAnnotationKey key) {
-                    return new Predicate<MailboxAnnotation>() {
-                        @Override
-                        public boolean apply(MailboxAnnotation input) {
-                            return key.isParentOrIsEqual(input.getKey());
-                        }
-                    };
-                }
-            });
+            key ->
+                annotation ->
+                    key.isParentOrIsEqual(annotation.getKey()));
     }
 
     @Override
     public List<MailboxAnnotation> getAnnotationsByKeysWithAllDepth(MailboxId 
mailboxId, Set<MailboxAnnotationKey> keys) {
         return getFilteredLikes((JPAId) mailboxId,
             keys,
-            new Function<MailboxAnnotationKey, Predicate<MailboxAnnotation>>() 
{
-                @Override
-                public Predicate<MailboxAnnotation> apply(final 
MailboxAnnotationKey key) {
-                    return new Predicate<MailboxAnnotation>() {
-                        @Override
-                        public boolean apply(MailboxAnnotation input) {
-                            return key.isAncestorOrIsEqual(input.getKey());
-                        }
-                    };
-                }
-            });
+            key ->
+                annotation -> key.isAncestorOrIsEqual(annotation.getKey()));
     }
 
     private List<MailboxAnnotation> getFilteredLikes(final JPAId jpaId, 
Set<MailboxAnnotationKey> keys, final Function<MailboxAnnotationKey, 
Predicate<MailboxAnnotation>> predicateFunction) {
         try {
             return flatMapToList(Iterables.transform(keys,
-                new Function<MailboxAnnotationKey, List<MailboxAnnotation>>() {
-                    @Override
-                    public List<MailboxAnnotation> apply(final 
MailboxAnnotationKey key) {
-                        return ImmutableList.copyOf(
-                            Iterables.filter(
-                                Iterables.transform(
-                                    getEntityManager()
-                                        .createNamedQuery("retrieveByKeyLike", 
JPAMailboxAnnotation.class)
-                                        .setParameter("idParam", 
jpaId.getRawId())
-                                        .setParameter("keyParam", 
key.asString() + '%')
-                                        .getResultList(),
-                                    READ_ROW),
-                                predicateFunction.apply(key)));
-                    }
-                }));
+                key -> ImmutableList.copyOf(
+                    Iterables.filter(
+                        Iterables.transform(
+                            getEntityManager()
+                                .createNamedQuery("retrieveByKeyLike", 
JPAMailboxAnnotation.class)
+                                .setParameter("idParam", jpaId.getRawId())
+                                .setParameter("keyParam", key.asString() + '%')
+                                .getResultList(),
+                            READ_ROW),
+                        predicateFunction.apply(key)))));
         } catch (NoResultException e) {
             return ImmutableList.of();
         }

http://git-wip-us.apache.org/repos/asf/james-project/blob/855a3c87/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 b2d8c2a..3cf6cf3 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
@@ -66,12 +66,6 @@ import com.google.common.collect.Iterators;
 public class JPAMessageMapper extends JPATransactionalMapper implements 
MessageMapper {
     private static final int UNLIMIT_MAX_SIZE = -1;
     private static final int UNLIMITED = -1;
-    private static final Function<MailboxMessage, MessageUid> TO_UID = new 
Function<MailboxMessage, MessageUid>() {
-        @Override
-        public MessageUid apply(MailboxMessage mailboxMessage) {
-            return mailboxMessage.getUid();
-        }
-    };
 
     private final MessageUtils messageMetadataMapper;
 
@@ -90,7 +84,7 @@ public class JPAMessageMapper extends JPATransactionalMapper 
implements MessageM
 
     @Override
     public Iterator<MessageUid> listAllMessageUids(final Mailbox mailbox) 
throws MailboxException {
-        return Iterators.transform(findInMailbox(mailbox, MessageRange.all(), 
FetchType.Full, UNLIMITED), TO_UID);
+        return Iterators.transform(findInMailbox(mailbox, MessageRange.all(), 
FetchType.Full, UNLIMITED), MailboxMessage::getUid);
     }
 
     /**

http://git-wip-us.apache.org/repos/asf/james-project/blob/855a3c87/mailbox/jpa/src/test/java/org/apache/james/mailbox/jpa/mail/TransactionalMailboxMapper.java
----------------------------------------------------------------------
diff --git 
a/mailbox/jpa/src/test/java/org/apache/james/mailbox/jpa/mail/TransactionalMailboxMapper.java
 
b/mailbox/jpa/src/test/java/org/apache/james/mailbox/jpa/mail/TransactionalMailboxMapper.java
index 36ea643..6e8ba66 100644
--- 
a/mailbox/jpa/src/test/java/org/apache/james/mailbox/jpa/mail/TransactionalMailboxMapper.java
+++ 
b/mailbox/jpa/src/test/java/org/apache/james/mailbox/jpa/mail/TransactionalMailboxMapper.java
@@ -49,12 +49,7 @@ public class TransactionalMailboxMapper implements 
MailboxMapper {
 
     @Override
     public MailboxId save(final Mailbox mailbox) throws MailboxException {
-        return wrapped.execute(new Transaction<MailboxId>() {
-                @Override
-                public MailboxId run() throws MailboxException {
-                    return wrapped.save(mailbox);
-                }
-            });
+        return wrapped.execute(() -> wrapped.save(mailbox));
     }
 
     @Override

http://git-wip-us.apache.org/repos/asf/james-project/blob/855a3c87/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 ab234c9..8b57d05 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
@@ -77,12 +77,8 @@ public class TransactionalMessageMapper implements 
MessageMapper {
     @Override
     public Map<MessageUid, MessageMetaData> 
expungeMarkedForDeletionInMailbox(final Mailbox mailbox, final MessageRange set)
             throws MailboxException {
-        Map<MessageUid, MessageMetaData> data = messageMapper.execute(new 
Transaction<Map<MessageUid, MessageMetaData>>() {
-            @Override
-            public Map<MessageUid, MessageMetaData> run() throws 
MailboxException {
-                return 
messageMapper.expungeMarkedForDeletionInMailbox(mailbox, set);
-            }
-        });
+        Map<MessageUid, MessageMetaData> data = messageMapper.execute(
+            () -> messageMapper.expungeMarkedForDeletionInMailbox(mailbox, 
set));
         return data;
     }
 
@@ -118,35 +114,23 @@ public class TransactionalMessageMapper implements 
MessageMapper {
 
     @Override
     public MessageMetaData add(final Mailbox mailbox, final MailboxMessage 
message) throws MailboxException {
-        MessageMetaData data = messageMapper.execute(new 
Transaction<MessageMetaData>() {
-            @Override
-            public MessageMetaData run() throws MailboxException {
-                return messageMapper.add(mailbox, message);
-            }
-        });
+        MessageMetaData data = messageMapper.execute(
+            () -> messageMapper.add(mailbox, message));
         return data;
     }
 
     @Override
     public Iterator<UpdatedFlags> updateFlags(final Mailbox mailbox, final 
FlagsUpdateCalculator flagsUpdateCalculator,
             final MessageRange set) throws MailboxException {
-        Iterator<UpdatedFlags> data = messageMapper.execute(new 
Transaction<Iterator<UpdatedFlags>>() {
-            @Override
-            public Iterator<UpdatedFlags> run() throws MailboxException {
-                return messageMapper.updateFlags(mailbox, 
flagsUpdateCalculator, set);
-            }
-        });
+        Iterator<UpdatedFlags> data = messageMapper.execute(
+            () -> messageMapper.updateFlags(mailbox, flagsUpdateCalculator, 
set));
         return data;
     }
 
     @Override
     public MessageMetaData copy(final Mailbox mailbox, final MailboxMessage 
original) throws MailboxException {
-        MessageMetaData data = messageMapper.execute(new 
Transaction<MessageMetaData>() {
-            @Override
-            public MessageMetaData run() throws MailboxException {
-                return messageMapper.copy(mailbox, original);
-            }
-        });
+        MessageMetaData data = messageMapper.execute(
+            () -> messageMapper.copy(mailbox, original));
         return data;
     }
 

http://git-wip-us.apache.org/repos/asf/james-project/blob/855a3c87/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 e2c0f57..50c4ad3 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
@@ -120,7 +120,6 @@ import org.apache.lucene.store.LockObtainFailedException;
 import org.apache.lucene.util.IOUtils;
 import org.apache.lucene.util.Version;
 
-import com.google.common.base.Function;
 import com.google.common.base.Optional;
 import com.google.common.base.Preconditions;
 import com.google.common.collect.FluentIterable;
@@ -465,12 +464,7 @@ public class LuceneMessageSearchIndex extends 
ListeningMessageSearchIndex {
             .build();
 
         return FluentIterable.from(searchMultimap(multimailboxesSearchQuery, 
session))
-            .transform(new Function<SearchResult, MessageUid>() {
-                @Override
-                public MessageUid apply(SearchResult input) {
-                    return input.getMessageUid();
-                }
-            })
+            .transform(SearchResult::getMessageUid)
             .iterator();
     }
 
@@ -478,12 +472,7 @@ public class LuceneMessageSearchIndex extends 
ListeningMessageSearchIndex {
     public List<MessageId> search(MailboxSession session, 
MultimailboxesSearchQuery searchQuery, long limit) throws MailboxException {
         Preconditions.checkArgument(session != null, "'session' is mandatory");
         return FluentIterable.from(searchMultimap(searchQuery, session))
-            .transform(new Function<SearchResult, MessageId>() {
-                @Override
-                public MessageId apply(SearchResult input) {
-                    return input.getMessageId().get();
-                }
-            })
+            .transform(searchResult -> searchResult.getMessageId().get())
             .filter(SearchUtil.distinct())
             .limit(Long.valueOf(limit).intValue())
             .toList();

http://git-wip-us.apache.org/repos/asf/james-project/blob/855a3c87/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 12e0d4c..03c0639 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
@@ -54,7 +54,6 @@ import 
org.apache.james.mailbox.model.MailboxACL.MailboxACLRights;
 import org.apache.james.mailbox.model.MailboxPath;
 import org.apache.james.mailbox.model.SimpleMailboxACL;
 
-import com.google.common.base.Function;
 import com.google.common.base.Optional;
 
 public class MaildirFolder {
@@ -188,11 +187,7 @@ public class MaildirFolder {
      * Returns the nextUid value and increases it.
      */
     private MessageUid getNextUid() {
-        MessageUid nextUid = lastUid.transform(new Function<MessageUid, 
MessageUid>() {
-            @Override
-            public MessageUid apply(MessageUid input) {
-                return input.next();
-            }}).or(MessageUid.MIN_VALUE);
+        MessageUid nextUid = 
lastUid.transform(MessageUid::next).or(MessageUid.MIN_VALUE);
         lastUid = Optional.of(nextUid);
         return nextUid;
     }
@@ -223,28 +218,25 @@ public class MaildirFolder {
      * @throws MailboxException if there are problems with the uidList file
      */
     private void readLastUid(MailboxSession session) throws MailboxException {
-        locker.executeWithLock(session, path, new LockAwareExecution<Void>() {
-            
-            @Override
-            public Void execute() throws MailboxException {
-                File uidList = uidFile;
-                FileReader fileReader = null;
-                BufferedReader reader = null;
-                try {
-                    if (!uidList.exists())
-                        createUidFile();
-                    fileReader = new FileReader(uidList);
-                    reader = new BufferedReader(fileReader);
-                    String line = reader.readLine();
-                    if (line != null)
-                        readUidListHeader(line);
-                    return null;
-                } catch (IOException e) {
-                    throw new MailboxException("Unable to read last uid", e);
-                } finally {
-                    IOUtils.closeQuietly(reader);
-                    IOUtils.closeQuietly(fileReader);
-                }                
+        locker.executeWithLock(session, path,
+            (LockAwareExecution<Void>) () -> {
+            File uidList = uidFile;
+            FileReader fileReader = null;
+            BufferedReader reader = null;
+            try {
+                if (!uidList.exists())
+                    createUidFile();
+                fileReader = new FileReader(uidList);
+                reader = new BufferedReader(fileReader);
+                String line = reader.readLine();
+                if (line != null)
+                    readUidListHeader(line);
+                return null;
+            } catch (IOException e) {
+                throw new MailboxException("Unable to read last uid", e);
+            } finally {
+                IOUtils.closeQuietly(reader);
+                IOUtils.closeQuietly(fileReader);
             }
         }, true);
         
@@ -337,42 +329,38 @@ public class MaildirFolder {
      */
     public MaildirMessageName getMessageNameByUid(final MailboxSession 
session, final MessageUid uid) throws MailboxException {
        
-        return locker.executeWithLock(session, path, new 
LockAwareExecution<MaildirMessageName>() {
-            
-            @Override
-            public MaildirMessageName execute() throws MailboxException {
-                FileReader fileReader = null;
-                BufferedReader reader = null;
-                File uidList = uidFile;
-                try {
-                    fileReader = new FileReader(uidList);
-                    reader = new BufferedReader(fileReader);
-                    String uidString = String.valueOf(uid.asLong());
-                    String line = reader.readLine(); // the header
-                    int lineNumber = 1;
-                    while ((line = reader.readLine()) != null) {
-                        if (!line.equals("")) {
-                            int gap = line.indexOf(" ");
-                            if (gap == -1) {
-                                // there must be some issues in the file if no 
gap can be found
-                               session.getLog().info("Corrupted entry in 
uid-file " + uidList + " line " + lineNumber++);
-                                continue;
-                            }
-                            
-                            if (line.substring(0, gap).equals(uidString)) {
-                                return 
newMaildirMessageName(MaildirFolder.this, line.substring(gap + 1));
-                            }
+        return locker.executeWithLock(session, path, () -> {
+            FileReader fileReader = null;
+            BufferedReader reader = null;
+            File uidList = uidFile;
+            try {
+                fileReader = new FileReader(uidList);
+                reader = new BufferedReader(fileReader);
+                String uidString = String.valueOf(uid.asLong());
+                String line = reader.readLine(); // the header
+                int lineNumber = 1;
+                while ((line = reader.readLine()) != null) {
+                    if (!line.equals("")) {
+                        int gap = line.indexOf(" ");
+                        if (gap == -1) {
+                            // there must be some issues in the file if no gap 
can be found
+                            session.getLog().info("Corrupted entry in uid-file 
" + uidList + " line " + lineNumber++);
+                            continue;
+                        }
+
+                        if (line.substring(0, gap).equals(uidString)) {
+                            return newMaildirMessageName(MaildirFolder.this, 
line.substring(gap + 1));
                         }
                     }
-                    
-                    // TODO: Is this right!?
-                    return null;
-                } catch (IOException e) {
-                    throw new MailboxException("Unable to read messagename for 
uid " + uid, e);
-                } finally {
-                    IOUtils.closeQuietly(reader);
-                    IOUtils.closeQuietly(fileReader);
-                }                
+                }
+
+                // TODO: Is this right!?
+                return null;
+            } catch (IOException e) {
+                throw new MailboxException("Unable to read messagename for uid 
" + uid, e);
+            } finally {
+                IOUtils.closeQuietly(reader);
+                IOUtils.closeQuietly(fileReader);
             }
         }, true);
     }
@@ -389,34 +377,30 @@ public class MaildirFolder {
      */
     public SortedMap<MessageUid, MaildirMessageName> getUidMap(final 
MailboxSession session, final MessageUid from, final MessageUid to)
     throws MailboxException {
-        return locker.executeWithLock(session, path, new 
LockAwareExecution<SortedMap<MessageUid, MaildirMessageName>>() {
-            
-            @Override
-            public SortedMap<MessageUid, MaildirMessageName> execute() throws 
MailboxException {
-                final SortedMap<MessageUid, MaildirMessageName> uidMap = new 
TreeMap<MessageUid, MaildirMessageName>();
+        return locker.executeWithLock(session, path, () -> {
+            final SortedMap<MessageUid, MaildirMessageName> uidMap = new 
TreeMap<>();
 
-                File uidList = uidFile;
+            File uidList = uidFile;
 
-                if (uidList.isFile()) {
-                    if (isModified()) {
-                        try {
-                            uidMap.putAll(truncateMap(updateUidFile(), from, 
to));
-                        } catch (MailboxException e) {
-                            // weird case if someone deleted the uidlist after
-                            // checking its
-                            // existence and before trying to update it.
-                            uidMap.putAll(truncateMap(createUidFile(), from, 
to));
-                        }
-                    } else {
-                        // the uidList is up to date
-                        uidMap.putAll(readUidFile(session, from, to));
+            if (uidList.isFile()) {
+                if (isModified()) {
+                    try {
+                        uidMap.putAll(truncateMap(updateUidFile(), from, to));
+                    } catch (MailboxException e) {
+                        // weird case if someone deleted the uidlist after
+                        // checking its
+                        // existence and before trying to update it.
+                        uidMap.putAll(truncateMap(createUidFile(), from, to));
                     }
                 } else {
-                    // the uidList does not exist
-                    uidMap.putAll(truncateMap(createUidFile(), from, to));
+                    // the uidList is up to date
+                    uidMap.putAll(readUidFile(session, from, to));
                 }
-                return uidMap;
+            } else {
+                // the uidList does not exist
+                uidMap.putAll(truncateMap(createUidFile(), from, to));
             }
+            return uidMap;
         }, true);
     }
     
@@ -471,84 +455,80 @@ public class MaildirFolder {
      */
     public SortedMap<MessageUid, MaildirMessageName> getRecentMessages(final 
MailboxSession session) throws MailboxException {
         final String[] recentFiles = getNewFolder().list();
-        final LinkedList<String> lines = new LinkedList<String>();
+        final LinkedList<String> lines = new LinkedList<>();
         final int theLimit = recentFiles.length;
-        return locker.executeWithLock(session, path, new 
LockAwareExecution<SortedMap<MessageUid, MaildirMessageName>>() {
-            
-            @Override
-            public SortedMap<MessageUid, MaildirMessageName> execute() throws 
MailboxException {
-                final SortedMap<MessageUid, MaildirMessageName> recentMessages 
= new TreeMap<MessageUid, MaildirMessageName>();
-
-                File uidList = uidFile;
-
+        return locker.executeWithLock(session, path, () -> {
+            final SortedMap<MessageUid, MaildirMessageName> recentMessages = 
new TreeMap<>();
+
+            File uidList = uidFile;
+
+            try {
+                if (!uidList.isFile()) {
+                    if (!uidList.createNewFile())
+                        throw new IOException("Could not create file " + 
uidList);
+                    String[] curFiles = curFolder.list();
+                    String[] newFiles = newFolder.list();
+                    messageCount = curFiles.length + newFiles.length;
+                    String[] allFiles = (String[]) ArrayUtils.addAll(curFiles, 
newFiles);
+                    for (String file : allFiles)
+                        lines.add(String.valueOf(getNextUid().asLong()) + " " 
+ file);
+                    PrintWriter pw = new PrintWriter(uidList);
+                    try {
+                        pw.println(createUidListHeader());
+                        for (String line : lines)
+                        pw.println(line);
+                    } finally {
+                        IOUtils.closeQuietly(pw);
+                    }
+                }
+                else {
+                    FileReader fileReader = null;
+                    BufferedReader reader = null;
                 try {
-                    if (!uidList.isFile()) {
-                        if (!uidList.createNewFile())
-                            throw new IOException("Could not create file " + 
uidList);
-                        String[] curFiles = curFolder.list();
-                        String[] newFiles = newFolder.list();
-                        messageCount = curFiles.length + newFiles.length;
-                        String[] allFiles = (String[]) 
ArrayUtils.addAll(curFiles, newFiles);
-                        for (String file : allFiles)
-                            lines.add(String.valueOf(getNextUid().asLong()) + 
" " + file);
-                        PrintWriter pw = new PrintWriter(uidList);
-                        try {
-                            pw.println(createUidListHeader());
-                            for (String line : lines)
-                            pw.println(line);
-                        } finally {
-                            IOUtils.closeQuietly(pw);
-                        }
+                        fileReader = new FileReader(uidList);
+                        reader = new BufferedReader(fileReader);
+                        String line = reader.readLine();
+                        // the first line in the file contains the next uid 
and message count
+                        while ((line = reader.readLine()) != null)
+                            lines.add(line);
+                    } finally {
+                        IOUtils.closeQuietly(reader);
+                        IOUtils.closeQuietly(fileReader);
                     }
-                    else {
-                        FileReader fileReader = null;
-                        BufferedReader reader = null;
+                }
+                int counter = 0;
+                String line;
+                while (counter < theLimit) {
+                    // walk backwards as recent files are supposedly recent
                     try {
-                            fileReader = new FileReader(uidList);
-                            reader = new BufferedReader(fileReader);
-                            String line = reader.readLine();
-                            // the first line in the file contains the next 
uid and message count
-                            while ((line = reader.readLine()) != null)
-                                lines.add(line);
-                        } finally {
-                            IOUtils.closeQuietly(reader);
-                            IOUtils.closeQuietly(fileReader);
-                        }
+                        line = lines.removeLast();
+                    } catch (NoSuchElementException e) {
+                        break; // the list is empty
                     }
-                    int counter = 0;
-                    String line;
-                    while (counter < theLimit) {
-                        // walk backwards as recent files are supposedly recent
-                        try {
-                            line = lines.removeLast();
-                        } catch (NoSuchElementException e) {
-                            break; // the list is empty
+                    if (!line.equals("")) {
+                        int gap = line.indexOf(" ");
+                        if (gap == -1) {
+                            // there must be some issues in the file if no gap 
can be found
+                            // there must be some issues in the file if no gap 
can be found
+                            session.getLog().info("Corrupted entry in uid-file 
" + uidList + " line " + lines.size());
+                            continue;
                         }
-                        if (!line.equals("")) {
-                            int gap = line.indexOf(" ");
-                            if (gap == -1) {
-                                // there must be some issues in the file if no 
gap can be found
-                                // there must be some issues in the file if no 
gap can be found
-                               session.getLog().info("Corrupted entry in 
uid-file " + uidList + " line " + lines.size());
-                                continue;
-                            }
-                            
-                            MessageUid uid = 
MessageUid.of(Long.valueOf(line.substring(0, gap)));
-                            String name = line.substring(gap + 1, 
line.length());
-                            for (String recentFile : recentFiles) {
-                                if (recentFile.equals(name)) {
-                                    recentMessages.put(uid, 
newMaildirMessageName(MaildirFolder.this, recentFile));
-                                    counter++;
-                                    break;
-                                }
+
+                        MessageUid uid = 
MessageUid.of(Long.valueOf(line.substring(0, gap)));
+                        String name = line.substring(gap + 1, line.length());
+                        for (String recentFile : recentFiles) {
+                            if (recentFile.equals(name)) {
+                                recentMessages.put(uid, 
newMaildirMessageName(MaildirFolder.this, recentFile));
+                                counter++;
+                                break;
                             }
                         }
                     }
-                } catch (IOException e) {
-                    throw new MailboxException("Unable to read recent 
messages", e);
-                }   
-                return recentMessages;
+                }
+            } catch (IOException e) {
+                throw new MailboxException("Unable to read recent messages", 
e);
             }
+            return recentMessages;
         }, true);
     }
     
@@ -726,13 +706,7 @@ public class MaildirFolder {
      * @return the line which ought to be the header
      */
     private String createUidListHeader() {
-        Long last = lastUid.transform(new Function<MessageUid, Long>() {
-            @Override
-            public Long apply(MessageUid input) {
-                return input.asLong();
-            }
-            
-        }).or(0L);
+        Long last = lastUid.transform(MessageUid::asLong).or(0L);
         return "1 " + String.valueOf(last) + " " + 
String.valueOf(messageCount);
     }
     
@@ -757,67 +731,63 @@ public class MaildirFolder {
      * @return The uid of the message
      */
     public MessageUid appendMessage(MailboxSession session, final String name) 
throws MailboxException {
-        return locker.executeWithLock(session, path, new 
LockAwareExecution<MessageUid>() {
-            
-            @Override
-            public MessageUid execute() throws MailboxException {
-                File uidList = uidFile;
-                MessageUid uid = null;
-                FileReader fileReader = null;
-                BufferedReader reader = null;
-                PrintWriter pw = null;
-                try {
-                    if (uidList.isFile()) {
-                        fileReader = new FileReader(uidList);
-                        reader = new BufferedReader(fileReader);
-                        String line = reader.readLine();
-                        // the first line in the file contains the next uid 
and message count
-                        if (line != null)
-                            readUidListHeader(line);
-                        ArrayList<String> lines = new ArrayList<String>();
-                        while ((line = reader.readLine()) != null)
-                            lines.add(line);
-                        uid = getNextUid();
-                        lines.add(String.valueOf(uid.asLong()) + " " + name);
-                        messageCount++;
-                        pw = new PrintWriter(uidList);
-                        pw.println(createUidListHeader());
-                        for (String entry : lines)
-                            pw.println(entry);
-                    }
-                    else {
-                        // create the file
-                        if (!uidList.createNewFile())
-                            throw new IOException("Could not create file " + 
uidList);
-                        String[] curFiles = curFolder.list();
-                        String[] newFiles = newFolder.list();
-                        messageCount = curFiles.length + newFiles.length;
-                        ArrayList<String> lines = new ArrayList<String>();
-                        String[] allFiles = (String[]) 
ArrayUtils.addAll(curFiles, newFiles);
-                        for (String file : allFiles) {
-                            MessageUid theUid = getNextUid();
-                            lines.add(String.valueOf(theUid.asLong()) + " " + 
file);
-                            // the listed names already include the message to 
append
-                            if (file.equals(name))
-                                uid = theUid;
-                        }
-                        pw = new PrintWriter(uidList);
-                        pw.println(createUidListHeader());
-                        for (String line : lines)
-                            pw.println(line);
-                    }
-                } catch (IOException e) {
-                    throw new MailboxException("Unable to append msg", e);
-                } finally {
-                    IOUtils.closeQuietly(pw);
-                    IOUtils.closeQuietly(reader);
-                    IOUtils.closeQuietly(fileReader);
+        return locker.executeWithLock(session, path, () -> {
+            File uidList = uidFile;
+            MessageUid uid = null;
+            FileReader fileReader = null;
+            BufferedReader reader = null;
+            PrintWriter pw = null;
+            try {
+                if (uidList.isFile()) {
+                    fileReader = new FileReader(uidList);
+                    reader = new BufferedReader(fileReader);
+                    String line = reader.readLine();
+                    // the first line in the file contains the next uid and 
message count
+                    if (line != null)
+                        readUidListHeader(line);
+                    ArrayList<String> lines = new ArrayList<String>();
+                    while ((line = reader.readLine()) != null)
+                        lines.add(line);
+                    uid = getNextUid();
+                    lines.add(String.valueOf(uid.asLong()) + " " + name);
+                    messageCount++;
+                    pw = new PrintWriter(uidList);
+                    pw.println(createUidListHeader());
+                    for (String entry : lines)
+                        pw.println(entry);
                 }
-                if (uid == null) {
-                    throw new MailboxException("Unable to append msg");
-                } else {
-                   return uid;
+                else {
+                    // create the file
+                    if (!uidList.createNewFile())
+                        throw new IOException("Could not create file " + 
uidList);
+                    String[] curFiles = curFolder.list();
+                    String[] newFiles = newFolder.list();
+                    messageCount = curFiles.length + newFiles.length;
+                    ArrayList<String> lines = new ArrayList<String>();
+                    String[] allFiles = (String[]) ArrayUtils.addAll(curFiles, 
newFiles);
+                    for (String file : allFiles) {
+                        MessageUid theUid = getNextUid();
+                        lines.add(String.valueOf(theUid.asLong()) + " " + 
file);
+                        // the listed names already include the message to 
append
+                        if (file.equals(name))
+                            uid = theUid;
+                    }
+                    pw = new PrintWriter(uidList);
+                    pw.println(createUidListHeader());
+                    for (String line : lines)
+                        pw.println(line);
                 }
+            } catch (IOException e) {
+                throw new MailboxException("Unable to append msg", e);
+            } finally {
+                IOUtils.closeQuietly(pw);
+                IOUtils.closeQuietly(reader);
+                IOUtils.closeQuietly(fileReader);
+            }
+            if (uid == null) {
+                throw new MailboxException("Unable to append msg");
+            } else {
+               return uid;
             }
         }, true);
 
@@ -831,39 +801,35 @@ public class MaildirFolder {
      * @throws MailboxException
      */
     public void update(MailboxSession session, final MessageUid uid, final 
String messageName) throws MailboxException {
-        locker.executeWithLock(session, path, new LockAwareExecution<Void>() {
-            
-            @Override
-            public Void execute() throws MailboxException {
-                File uidList = uidFile;
-                FileReader fileReader = null;
-                BufferedReader reader = null;
-                PrintWriter writer = null;
-                try {
-                    fileReader = new FileReader(uidList);
-                    reader = new BufferedReader(fileReader);
-                    String line = reader.readLine();
-                    readUidListHeader(line);
-                    ArrayList<String> lines = new ArrayList<String>();
-                    while ((line = reader.readLine()) != null) {
-                        if 
(uid.equals(MessageUid.of(Long.valueOf(line.substring(0, line.indexOf(" ")))))) 
{
-                            line = String.valueOf(uid.asLong()) + " " + 
messageName;
-                        }
-                        lines.add(line);
+        locker.executeWithLock(session, path, (LockAwareExecution<Void>) () -> 
{
+            File uidList = uidFile;
+            FileReader fileReader = null;
+            BufferedReader reader = null;
+            PrintWriter writer = null;
+            try {
+                fileReader = new FileReader(uidList);
+                reader = new BufferedReader(fileReader);
+                String line = reader.readLine();
+                readUidListHeader(line);
+                ArrayList<String> lines = new ArrayList<String>();
+                while ((line = reader.readLine()) != null) {
+                    if 
(uid.equals(MessageUid.of(Long.valueOf(line.substring(0, line.indexOf(" ")))))) 
{
+                        line = String.valueOf(uid.asLong()) + " " + 
messageName;
                     }
-                    writer = new PrintWriter(uidList);
-                    writer.println(createUidListHeader());
-                    for (String entry : lines)
-                        writer.println(entry);
-                } catch (IOException e) {
-                    throw new MailboxException("Unable to update msg with uid 
" + uid, e);
-                } finally {
-                    IOUtils.closeQuietly(writer);
-                    IOUtils.closeQuietly(reader);
-                    IOUtils.closeQuietly(fileReader);
-                }    
-                return null;
+                    lines.add(line);
+                }
+                writer = new PrintWriter(uidList);
+                writer.println(createUidListHeader());
+                for (String entry : lines)
+                    writer.println(entry);
+            } catch (IOException e) {
+                throw new MailboxException("Unable to update msg with uid " + 
uid, e);
+            } finally {
+                IOUtils.closeQuietly(writer);
+                IOUtils.closeQuietly(reader);
+                IOUtils.closeQuietly(fileReader);
             }
+            return null;
         }, true);
 
     }
@@ -876,56 +842,52 @@ public class MaildirFolder {
      * @throws MailboxException If the file cannot be deleted of there is a 
problem with the uid list
      */
     public MaildirMessageName delete(final MailboxSession session, final 
MessageUid uid) throws MailboxException {        
-        return locker.executeWithLock(session, path, new 
LockAwareExecution<MaildirMessageName>() {
-            
-            @Override
-            public MaildirMessageName execute() throws MailboxException {
-                File uidList = uidFile;
-                FileReader fileReader = null;
-                BufferedReader reader = null;
-                PrintWriter writer = null;
-                MaildirMessageName deletedMessage = null;
-                try {
-                    fileReader = new FileReader(uidList);
-                    reader = new BufferedReader(fileReader);
-                    readUidListHeader(reader.readLine());
-                    
-                    // It may be possible that message count is 0 so we should 
better not try to calculate the size of the ArrayList
-                    ArrayList<String> lines = new ArrayList<String>();
-                    String line;
-                    int lineNumber = 1;
-                    while ((line = reader.readLine()) != null) {
-                        int gap = line.indexOf(" ");
-                        if (gap == -1) {
-                            // there must be some issues in the file if no gap 
can be found
-                               session.getLog().info("Corrupted entry in 
uid-file " + uidList + " line " + lineNumber++);
-                            continue;
-                        }
-                        
-                        if 
(uid.equals(MessageUid.of(Long.valueOf(line.substring(0, line.indexOf(" ")))))) 
{
-                            deletedMessage = 
newMaildirMessageName(MaildirFolder.this, line.substring(gap + 1, 
line.length()));
-                            messageCount--;
-                        }
-                        else {
-                            lines.add(line);
-                        }
-                    }
-                    if (deletedMessage != null) {
-                        FileUtils.forceDelete(deletedMessage.getFile());
-                        writer = new PrintWriter(uidList);
-                        writer.println(createUidListHeader());
-                        for (String entry : lines)
-                            writer.println(entry);
+        return locker.executeWithLock(session, path, () -> {
+            File uidList = uidFile;
+            FileReader fileReader = null;
+            BufferedReader reader = null;
+            PrintWriter writer = null;
+            MaildirMessageName deletedMessage = null;
+            try {
+                fileReader = new FileReader(uidList);
+                reader = new BufferedReader(fileReader);
+                readUidListHeader(reader.readLine());
+
+                // It may be possible that message count is 0 so we should 
better not try to calculate the size of the ArrayList
+                ArrayList<String> lines = new ArrayList<String>();
+                String line;
+                int lineNumber = 1;
+                while ((line = reader.readLine()) != null) {
+                    int gap = line.indexOf(" ");
+                    if (gap == -1) {
+                        // there must be some issues in the file if no gap can 
be found
+                        session.getLog().info("Corrupted entry in uid-file " + 
uidList + " line " + lineNumber++);
+                        continue;
                     }
-                    return deletedMessage;
 
-                } catch (IOException e) {
-                    throw new MailboxException("Unable to delete msg with uid 
" + uid, e);
-                } finally {
-                    IOUtils.closeQuietly(writer);
-                    IOUtils.closeQuietly(reader);
-                    IOUtils.closeQuietly(fileReader);
-                }   
+                    if 
(uid.equals(MessageUid.of(Long.valueOf(line.substring(0, line.indexOf(" ")))))) 
{
+                        deletedMessage = 
newMaildirMessageName(MaildirFolder.this, line.substring(gap + 1, 
line.length()));
+                        messageCount--;
+                    }
+                    else {
+                        lines.add(line);
+                    }
+                }
+                if (deletedMessage != null) {
+                    FileUtils.forceDelete(deletedMessage.getFile());
+                    writer = new PrintWriter(uidList);
+                    writer.println(createUidListHeader());
+                    for (String entry : lines)
+                        writer.println(entry);
+                }
+                return deletedMessage;
+
+            } catch (IOException e) {
+                throw new MailboxException("Unable to delete msg with uid " + 
uid, e);
+            } finally {
+                IOUtils.closeQuietly(writer);
+                IOUtils.closeQuietly(reader);
+                IOUtils.closeQuietly(fileReader);
             }
         }, true);
         
@@ -955,30 +917,26 @@ public class MaildirFolder {
      */
     private MailboxACL readACL(MailboxSession session) throws MailboxException 
{
         // FIXME Do we need this locking?
-        return locker.executeWithLock(session, path, new 
LockAwareExecution<MailboxACL>() {
-            
-            @Override
-            public MailboxACL execute() throws MailboxException {
-                File f = aclFile;
-                InputStream in = null;
-                Properties props = new Properties();
-                if (f.exists()) {
-                    try {
-                        in = new FileInputStream(f);
-                        props.load(in);
-                    } catch (FileNotFoundException e) {
-                        throw new MailboxException("Unable to read last ACL 
from "+ f.getAbsolutePath(), e);
-                    } catch (IOException e) {
-                        throw new MailboxException("Unable to read last ACL 
from "+ f.getAbsolutePath(), e);
-                    }
-                    finally {
-                        IOUtils.closeQuietly(in);
-                    }
+        return locker.executeWithLock(session, path, 
(LockAwareExecution<MailboxACL>) () -> {
+            File f = aclFile;
+            InputStream in = null;
+            Properties props = new Properties();
+            if (f.exists()) {
+                try {
+                    in = new FileInputStream(f);
+                    props.load(in);
+                } catch (FileNotFoundException e) {
+                    throw new MailboxException("Unable to read last ACL from 
"+ f.getAbsolutePath(), e);
+                } catch (IOException e) {
+                    throw new MailboxException("Unable to read last ACL from 
"+ f.getAbsolutePath(), e);
+                }
+                finally {
+                    IOUtils.closeQuietly(in);
                 }
-                
-                return new SimpleMailboxACL(props);
-
             }
+
+            return new SimpleMailboxACL(props);
+
         }, true);
         
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/855a3c87/mailbox/maildir/src/main/java/org/apache/james/mailbox/maildir/MaildirMessageName.java
----------------------------------------------------------------------
diff --git 
a/mailbox/maildir/src/main/java/org/apache/james/mailbox/maildir/MaildirMessageName.java
 
b/mailbox/maildir/src/main/java/org/apache/james/mailbox/maildir/MaildirMessageName.java
index 8865e8b..6446dba 100644
--- 
a/mailbox/maildir/src/main/java/org/apache/james/mailbox/maildir/MaildirMessageName.java
+++ 
b/mailbox/maildir/src/main/java/org/apache/james/mailbox/maildir/MaildirMessageName.java
@@ -453,12 +453,9 @@ public class MaildirMessageName {
     }
     
     public static FilenameFilter createRegexFilter(final Pattern pattern) {
-        return new FilenameFilter() {
-            @Override
-            public boolean accept(File dir, String name) {
-                Matcher matcher = pattern.matcher(name);
-                return matcher.matches();
-            }
+        return (dir, name) -> {
+            Matcher matcher = pattern.matcher(name);
+            return matcher.matches();
         };
     }
     

http://git-wip-us.apache.org/repos/asf/james-project/blob/855a3c87/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 bbb9244..bdc0c15 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
@@ -37,7 +37,6 @@ 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.Function;
 import com.google.common.base.Optional;
 
 public class MaildirStore implements UidProvider, ModSeqProvider {
@@ -246,12 +245,9 @@ public class MaildirStore implements UidProvider, 
ModSeqProvider {
     @Override
     public MessageUid nextUid(MailboxSession session, Mailbox mailbox) throws 
MailboxException {
         try {
-            return 
createMaildirFolder(mailbox).getLastUid(session).transform(new 
Function<MessageUid, MessageUid>() {
-                @Override
-                public MessageUid apply(MessageUid input) {
-                    return input.next();
-                }
-            }).or(MessageUid.MIN_VALUE);
+            return createMaildirFolder(mailbox).getLastUid(session)
+                .transform(MessageUid::next)
+                .or(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/855a3c87/mailbox/maildir/src/main/java/org/apache/james/mailbox/maildir/mail/MaildirMailboxMapper.java
----------------------------------------------------------------------
diff --git 
a/mailbox/maildir/src/main/java/org/apache/james/mailbox/maildir/mail/MaildirMailboxMapper.java
 
b/mailbox/maildir/src/main/java/org/apache/james/mailbox/maildir/mail/MaildirMailboxMapper.java
index 5661b91..b7f5d9e 100644
--- 
a/mailbox/maildir/src/main/java/org/apache/james/mailbox/maildir/mail/MaildirMailboxMapper.java
+++ 
b/mailbox/maildir/src/main/java/org/apache/james/mailbox/maildir/mail/MaildirMailboxMapper.java
@@ -19,7 +19,6 @@
 package org.apache.james.mailbox.maildir.mail;
 
 import java.io.File;
-import java.io.FileFilter;
 import java.io.FilenameFilter;
 import java.io.IOException;
 import java.util.ArrayList;
@@ -317,12 +316,7 @@ public class MaildirMailboxMapper extends 
NonTransactionalMapper implements Mail
             
             // List all INBOX sub folders.
             
-            File[] mailboxes = user.listFiles(new FileFilter() {
-                @Override
-                public boolean accept(File pathname) {
-                    return pathname.getName().startsWith(".");
-                }
-            });
+            File[] mailboxes = user.listFiles(pathname -> 
pathname.getName().startsWith("."));
             
             for (File mailbox: mailboxes) {
                

http://git-wip-us.apache.org/repos/asf/james-project/blob/855a3c87/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 4de6ba9..896ebb9 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
@@ -124,16 +124,8 @@ public class InMemoryMessageIdManager implements 
MessageIdManager {
 
     private List<MailboxId> getUsersMailboxIds(final MailboxSession 
mailboxSession) throws MailboxException {
         return 
FluentIterable.from(mailboxManager.search(userMailboxes(mailboxSession), 
mailboxSession))
-            .transform(getMailboxIdFromMetadata()).toList();
-    }
-
-    private Function<MailboxMetaData, MailboxId> getMailboxIdFromMetadata() {
-        return new Function<MailboxMetaData, MailboxId>() {
-            @Override
-            public MailboxId apply(MailboxMetaData input) {
-                return input.getId();
-            }
-        };
+            .transform(MailboxMetaData::getId)
+            .toList();
     }
 
     private MailboxQuery userMailboxes(MailboxSession mailboxSession) {
@@ -165,26 +157,19 @@ public class InMemoryMessageIdManager implements 
MessageIdManager {
     }
 
     private Predicate<MailboxId> findMailboxBelongsToAnotherSession(final 
MailboxSession mailboxSession) {
-        return new Predicate<MailboxId>() {
-            @Override
-            public boolean apply(MailboxId input) {
-                try {
-                    MailboxPath currentMailbox = 
mailboxManager.getMailbox(input, mailboxSession).getMailboxPath();
-                    return 
!mailboxSession.getUser().isSameUser(currentMailbox.getUser());
-                } catch (MailboxException e) {
-                    return true;
-                }
+        return input -> {
+            try {
+                MailboxPath currentMailbox = mailboxManager.getMailbox(input, 
mailboxSession).getMailboxPath();
+                return 
!mailboxSession.getUser().isSameUser(currentMailbox.getUser());
+            } catch (MailboxException e) {
+                return true;
             }
         };
     }
 
     private FluentIterable<MailboxId> currentMailboxes(List<MessageResult> 
messages) {
-        return FluentIterable.from(messages).transform(new 
Function<MessageResult, MailboxId>() {
-            @Override
-            public MailboxId apply(MessageResult message) {
-                return message.getMailboxId();
-            }
-        });
+        return FluentIterable.from(messages)
+            .transform(MessageResult::getMailboxId);
     }
 
     private Optional<MessageResult> findMessageWithId(MailboxId mailboxId, 
MessageId messageId, FetchGroup fetchGroup, MailboxSession mailboxSession) 
throws MailboxException {
@@ -194,13 +179,7 @@ public class InMemoryMessageIdManager implements 
MessageIdManager {
     }
 
     private Predicate<MessageResult> filterByMessageId(final MessageId 
messageId) {
-        return new Predicate<MessageResult>() {
-
-            @Override
-            public boolean apply(MessageResult messageResult) {
-                return messageResult.getMessageId().equals(messageId);
-            }
-        };
+        return messageResult -> messageResult.getMessageId().equals(messageId);
     }
 
     private ImmutableList<MessageResult> retrieveAllMessages(MailboxId 
mailboxId, FetchGroup fetchGroup, MailboxSession mailboxSession) throws 
MailboxException {

http://git-wip-us.apache.org/repos/asf/james-project/blob/855a3c87/mailbox/memory/src/main/java/org/apache/james/mailbox/inmemory/mail/InMemoryAnnotationMapper.java
----------------------------------------------------------------------
diff --git 
a/mailbox/memory/src/main/java/org/apache/james/mailbox/inmemory/mail/InMemoryAnnotationMapper.java
 
b/mailbox/memory/src/main/java/org/apache/james/mailbox/inmemory/mail/InMemoryAnnotationMapper.java
index 3325f9d..514578e 100644
--- 
a/mailbox/memory/src/main/java/org/apache/james/mailbox/inmemory/mail/InMemoryAnnotationMapper.java
+++ 
b/mailbox/memory/src/main/java/org/apache/james/mailbox/inmemory/mail/InMemoryAnnotationMapper.java
@@ -20,8 +20,6 @@
 package org.apache.james.mailbox.inmemory.mail;
 
 import java.util.List;
-import java.util.Map;
-import java.util.Map.Entry;
 import java.util.Set;
 import java.util.concurrent.locks.ReadWriteLock;
 import java.util.concurrent.locks.ReentrantReadWriteLock;
@@ -34,7 +32,6 @@ import org.apache.james.mailbox.model.MailboxAnnotationKey;
 import org.apache.james.mailbox.model.MailboxId;
 import org.apache.james.mailbox.store.mail.AnnotationMapper;
 
-import com.google.common.base.Function;
 import com.google.common.base.Preconditions;
 import com.google.common.base.Predicate;
 import com.google.common.collect.HashBasedTable;
@@ -65,12 +62,7 @@ public class InMemoryAnnotationMapper implements 
AnnotationMapper {
         try {
             return Iterables.transform(
                 mailboxesAnnotations.row(mailboxId).entrySet(),
-                new Function<Map.Entry<String, String>, MailboxAnnotation>() {
-                    @Override
-                    public MailboxAnnotation apply(Entry<String, String> 
input) {
-                        return MailboxAnnotation.newInstance(new 
MailboxAnnotationKey(input.getKey()), input.getValue());
-                    }
-                });
+                input -> MailboxAnnotation.newInstance(new 
MailboxAnnotationKey(input.getKey()), input.getValue()));
         } finally {
             lock.readLock().unlock();
         }
@@ -85,12 +77,7 @@ public class InMemoryAnnotationMapper implements 
AnnotationMapper {
     public List<MailboxAnnotation> getAnnotationsByKeys(MailboxId mailboxId, 
final Set<MailboxAnnotationKey> keys) {
         return ImmutableList.copyOf(
             Iterables.filter(retrieveAllAnnotations((InMemoryId)mailboxId),
-                new Predicate<MailboxAnnotation>() {
-                    @Override
-                    public boolean apply(MailboxAnnotation input) {
-                        return keys.contains(input.getKey());
-                    }
-            }));
+                input -> keys.contains(input.getKey())));
     }
 
     @Override
@@ -104,39 +91,19 @@ public class InMemoryAnnotationMapper implements 
AnnotationMapper {
     }
 
     private Predicate<MailboxAnnotation> getPredicateFilterByAll(final 
Set<MailboxAnnotationKey> keys) {
-        return new Predicate<MailboxAnnotation>() {
-            @Override
-            public boolean apply(final MailboxAnnotation input) {
-                return Iterables.tryFind(keys, 
filterAnnotationsByPrefix(input)).isPresent();
-            }
-        };
+        return input -> Iterables.tryFind(keys, 
filterAnnotationsByPrefix(input)).isPresent();
     }
 
     private Predicate<MailboxAnnotation> getPredicateFilterByOne(final 
Set<MailboxAnnotationKey> keys) {
-        return new Predicate<MailboxAnnotation>() {
-            @Override
-            public boolean apply(final MailboxAnnotation input) {
-                return Iterables.tryFind(keys, 
filterAnnotationsByParentKey(input.getKey())).isPresent();
-            }
-        };
+        return input -> Iterables.tryFind(keys, 
filterAnnotationsByParentKey(input.getKey())).isPresent();
     }
 
     private Predicate<MailboxAnnotationKey> filterAnnotationsByParentKey(final 
MailboxAnnotationKey input) {
-        return new Predicate<MailboxAnnotationKey>() {
-            @Override
-            public boolean apply(MailboxAnnotationKey key) {
-                return input.countComponents() <= (key.countComponents() + 1);
-            }
-        };
+        return key -> input.countComponents() <= (key.countComponents() + 1);
     }
 
     private Predicate<MailboxAnnotationKey> filterAnnotationsByPrefix(final 
MailboxAnnotation input) {
-        return new Predicate<MailboxAnnotationKey>() {
-            @Override
-            public boolean apply(MailboxAnnotationKey key) {
-                return key.equals(input.getKey()) || 
StringUtils.startsWith(input.getKey().asString(), key.asString() + "/");
-            }
-        };
+        return key -> key.equals(input.getKey()) || 
StringUtils.startsWith(input.getKey().asString(), key.asString() + "/");
     }
 
     @Override

http://git-wip-us.apache.org/repos/asf/james-project/blob/855a3c87/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 1bd6068..5e823ef 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
@@ -39,7 +39,6 @@ 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.Predicate;
 import com.google.common.base.Throwables;
 import com.google.common.collect.FluentIterable;
 
@@ -99,13 +98,7 @@ 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))
-            .filter(new Predicate<MailboxMetaData>() {
-
-                @Override
-                public boolean apply(MailboxMetaData mailboxMetaData) {
-                    return mailboxMetaData.getId().equals(mailboxId);
-                }
-            })
+            .filter(mailboxMetaData -> 
mailboxMetaData.getId().equals(mailboxId))
             .first();
     }
 

http://git-wip-us.apache.org/repos/asf/james-project/blob/855a3c87/mailbox/memory/src/test/java/org/apache/james/mailbox/inmemory/quota/InMemoryCurrentQuotaManagerTest.java
----------------------------------------------------------------------
diff --git 
a/mailbox/memory/src/test/java/org/apache/james/mailbox/inmemory/quota/InMemoryCurrentQuotaManagerTest.java
 
b/mailbox/memory/src/test/java/org/apache/james/mailbox/inmemory/quota/InMemoryCurrentQuotaManagerTest.java
index 524ee1e..9a82bc7 100644
--- 
a/mailbox/memory/src/test/java/org/apache/james/mailbox/inmemory/quota/InMemoryCurrentQuotaManagerTest.java
+++ 
b/mailbox/memory/src/test/java/org/apache/james/mailbox/inmemory/quota/InMemoryCurrentQuotaManagerTest.java
@@ -29,8 +29,6 @@ import 
org.apache.james.mailbox.store.quota.CurrentQuotaCalculator;
 import org.apache.james.mailbox.store.quota.QuotaRootImpl;
 import org.junit.Before;
 import org.junit.Test;
-import org.mockito.invocation.InvocationOnMock;
-import org.mockito.stubbing.Answer;
 
 public class InMemoryCurrentQuotaManagerTest {
 
@@ -48,35 +46,27 @@ public class InMemoryCurrentQuotaManagerTest {
 
     @Test
     public void 
getCurrentMessageCountShouldReturnRecalculateMessageCountWhenEntryIsNotInitialized()
 throws Exception {
-        when(mockedCurrentQuotaCalculator.recalculateCurrentQuotas(QUOTA_ROOT, 
null)).thenAnswer(new Answer<CurrentQuotaCalculator.CurrentQuotas>() {
-            @Override
-            public CurrentQuotaCalculator.CurrentQuotas 
answer(InvocationOnMock invocationOnMock) throws Throwable {
-                return new CurrentQuotaCalculator.CurrentQuotas(18, 512);
-            }
-        });
+        when(mockedCurrentQuotaCalculator.recalculateCurrentQuotas(QUOTA_ROOT, 
null))
+            .thenReturn(new CurrentQuotaCalculator.CurrentQuotas(18, 512));
+
         assertThat(testee.getCurrentMessageCount(QUOTA_ROOT)).isEqualTo(18);
     }
 
     @Test
     public void 
getCurrentStorageShouldReturnRecalculateSizeWhenEntryIsNotInitialized() throws 
Exception {
-        when(mockedCurrentQuotaCalculator.recalculateCurrentQuotas(QUOTA_ROOT, 
null)).thenAnswer(new Answer<CurrentQuotaCalculator.CurrentQuotas>() {
-            @Override
-            public CurrentQuotaCalculator.CurrentQuotas 
answer(InvocationOnMock invocationOnMock) throws Throwable {
-                return new CurrentQuotaCalculator.CurrentQuotas(18, 512);
-            }
-        });
+        when(mockedCurrentQuotaCalculator.recalculateCurrentQuotas(QUOTA_ROOT, 
null))
+            .thenReturn(new CurrentQuotaCalculator.CurrentQuotas(18, 512));
+
         assertThat(testee.getCurrentStorage(QUOTA_ROOT)).isEqualTo(512);
     }
 
     @Test
     public void 
getCurrentStorageShouldReRetrieveStoredQuotasWhenCalculateOnUnknownQuotaIsTrue()
 throws Exception {
-        when(mockedCurrentQuotaCalculator.recalculateCurrentQuotas(QUOTA_ROOT, 
null)).thenAnswer(new Answer<CurrentQuotaCalculator.CurrentQuotas>() {
-            @Override
-            public CurrentQuotaCalculator.CurrentQuotas 
answer(InvocationOnMock invocationOnMock) throws Throwable {
-                return new CurrentQuotaCalculator.CurrentQuotas(18, 512);
-            }
-        });
+        when(mockedCurrentQuotaCalculator.recalculateCurrentQuotas(QUOTA_ROOT, 
null))
+            .thenReturn(new CurrentQuotaCalculator.CurrentQuotas(18, 512));
+
         testee.increase(QUOTA_ROOT, 10, 100);
+
         assertThat(testee.getCurrentMessageCount(QUOTA_ROOT)).isEqualTo(28);
         assertThat(testee.getCurrentStorage(QUOTA_ROOT)).isEqualTo(612);
     }


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

Reply via email to