http://git-wip-us.apache.org/repos/asf/james-project/blob/855a3c87/protocols/api/src/main/java/org/apache/james/protocols/api/handler/CommandDispatcher.java ---------------------------------------------------------------------- diff --git a/protocols/api/src/main/java/org/apache/james/protocols/api/handler/CommandDispatcher.java b/protocols/api/src/main/java/org/apache/james/protocols/api/handler/CommandDispatcher.java index 3fd4692..22b8b09 100644 --- a/protocols/api/src/main/java/org/apache/james/protocols/api/handler/CommandDispatcher.java +++ b/protocols/api/src/main/java/org/apache/james/protocols/api/handler/CommandDispatcher.java @@ -36,7 +36,6 @@ import org.apache.james.protocols.api.ProtocolSession; import org.apache.james.protocols.api.Request; import org.apache.james.protocols.api.Response; import org.apache.james.protocols.api.future.FutureResponse; -import org.apache.james.protocols.api.future.FutureResponse.ResponseListener; import org.apache.james.protocols.api.future.FutureResponseImpl; @@ -198,36 +197,33 @@ public class CommandDispatcher<Session extends ProtocolSession> implements Exten return null; } - private Response executeResultHandlers(final Session session, Response response, final long executionTime, final CommandHandler<Session> cHandler, final Iterator<ProtocolHandlerResultHandler<Response, Session>> resultHandlers) { + private Response executeResultHandlers(final Session session, Response responseFuture, final long executionTime, final CommandHandler<Session> cHandler, final Iterator<ProtocolHandlerResultHandler<Response, Session>> resultHandlers) { // Check if the there is a ResultHandler left to execute if not just return the response if (resultHandlers.hasNext()) { // Special handling of FutureResponse // See PROTOCOLS-37 - if (response instanceof FutureResponse) { + if (responseFuture instanceof FutureResponse) { final FutureResponseImpl futureResponse = new FutureResponseImpl(); - ((FutureResponse) response).addListener(new ResponseListener() { + ((FutureResponse) responseFuture).addListener(response -> { + Response r = resultHandlers.next().onResponse(session, response, executionTime, cHandler); - public void onResponse(FutureResponse response) { - Response r = resultHandlers.next().onResponse(session, response, executionTime, cHandler); - - // call the next ResultHandler - r = executeResultHandlers(session, r, executionTime, cHandler, resultHandlers); - - // notify the FutureResponse that we are ready - futureResponse.setResponse(r); - } + // call the next ResultHandler + r = executeResultHandlers(session, r, executionTime, cHandler, resultHandlers); + + // notify the FutureResponse that we are ready + futureResponse.setResponse(r); }); // just return the new FutureResponse which will get notified once its ready return futureResponse; } else { - response = resultHandlers.next().onResponse(session, response, executionTime, cHandler); + responseFuture = resultHandlers.next().onResponse(session, responseFuture, executionTime, cHandler); // call the next ResultHandler - return executeResultHandlers(session, response, executionTime, cHandler, resultHandlers); + return executeResultHandlers(session, responseFuture, executionTime, cHandler, resultHandlers); } } - return response; + return responseFuture; } /** * Parse the line into a {@link Request}
http://git-wip-us.apache.org/repos/asf/james-project/blob/855a3c87/protocols/api/src/test/java/org/apache/james/protocols/api/AbstractProtocolTransportTest.java ---------------------------------------------------------------------- diff --git a/protocols/api/src/test/java/org/apache/james/protocols/api/AbstractProtocolTransportTest.java b/protocols/api/src/test/java/org/apache/james/protocols/api/AbstractProtocolTransportTest.java index fda9d0a..039a01d 100644 --- a/protocols/api/src/test/java/org/apache/james/protocols/api/AbstractProtocolTransportTest.java +++ b/protocols/api/src/test/java/org/apache/james/protocols/api/AbstractProtocolTransportTest.java @@ -19,6 +19,8 @@ package org.apache.james.protocols.api; +import static junit.framework.Assert.assertEquals; + import java.io.InputStream; import java.io.UnsupportedEncodingException; import java.net.InetSocketAddress; @@ -33,8 +35,6 @@ import org.apache.james.protocols.api.future.FutureResponseImpl; import org.apache.james.protocols.api.handler.LineHandler; import org.junit.Test; -import static junit.framework.Assert.*; - /** * Test-case for PROTOCOLS-62 * @@ -105,27 +105,24 @@ public class AbstractProtocolTransportTest { } private void notifyFutureResponses(final List<Response> messages, final boolean reverse) { - new Thread(new Runnable() { - - public void run() { - try { - Thread.sleep(200); - List<Response> responses = new ArrayList<Response>(messages); - if (reverse) { - Collections.reverse(responses); - } + new Thread(() -> { + try { + Thread.sleep(200); + List<Response> responses = new ArrayList<>(messages); + if (reverse) { + Collections.reverse(responses); + } - for (Response r : responses) { - if (r instanceof FutureResponseImpl) { - ((FutureResponseImpl) r).setResponse(new TestResponse()); - } + for (Response r : responses) { + if (r instanceof FutureResponseImpl) { + ((FutureResponseImpl) r).setResponse(new TestResponse()); } - - } catch (InterruptedException e) { - throw new RuntimeException(); } - + + } catch (InterruptedException e) { + throw new RuntimeException(); } + }).start(); } private void checkWrittenResponses(List<Response> messages) throws InterruptedException, UnsupportedEncodingException { http://git-wip-us.apache.org/repos/asf/james-project/blob/855a3c87/protocols/imap/src/main/java/org/apache/james/imap/api/ImapConfiguration.java ---------------------------------------------------------------------- diff --git a/protocols/imap/src/main/java/org/apache/james/imap/api/ImapConfiguration.java b/protocols/imap/src/main/java/org/apache/james/imap/api/ImapConfiguration.java index d06ac60..0ee015f 100644 --- a/protocols/imap/src/main/java/org/apache/james/imap/api/ImapConfiguration.java +++ b/protocols/imap/src/main/java/org/apache/james/imap/api/ImapConfiguration.java @@ -42,19 +42,6 @@ public class ImapConfiguration { } public static class Builder { - private static final Function<String, String> NORMALIZE_STRING = new Function<String, String>() { - @Override - public String apply(String disableCap) { - return StringUtils.normalizeSpace(disableCap); - } - }; - private static final Predicate<String> NO_BLANK = new Predicate<String>() { - @Override - public boolean apply(String disableCap) { - return noBlankString(disableCap); - } - }; - private static boolean noBlankString(String disableCap) { return !StringUtils.isBlank(disableCap); } @@ -113,8 +100,8 @@ public class ImapConfiguration { public ImapConfiguration build() { ImmutableSet<String> normalizeDisableCaps = FluentIterable.from(disabledCaps) - .filter(NO_BLANK) - .transform(NORMALIZE_STRING) + .filter(Builder::noBlankString) + .transform(StringUtils::normalizeSpace) .toSet(); return new ImapConfiguration( enableIdle.or(DEFAULT_ENABLE_IDLE), http://git-wip-us.apache.org/repos/asf/james-project/blob/855a3c87/protocols/imap/src/main/java/org/apache/james/imap/decode/parser/SearchCommandParser.java ---------------------------------------------------------------------- diff --git a/protocols/imap/src/main/java/org/apache/james/imap/decode/parser/SearchCommandParser.java b/protocols/imap/src/main/java/org/apache/james/imap/decode/parser/SearchCommandParser.java index ec81ef6..00b668b 100644 --- a/protocols/imap/src/main/java/org/apache/james/imap/decode/parser/SearchCommandParser.java +++ b/protocols/imap/src/main/java/org/apache/james/imap/decode/parser/SearchCommandParser.java @@ -37,11 +37,10 @@ import org.apache.james.imap.api.message.request.SearchKey; import org.apache.james.imap.api.message.request.SearchOperation; import org.apache.james.imap.api.message.request.SearchResultOption; import org.apache.james.imap.api.message.response.StatusResponse; -import org.apache.james.imap.api.message.response.StatusResponseFactory; import org.apache.james.imap.api.message.response.StatusResponse.ResponseCode; +import org.apache.james.imap.api.message.response.StatusResponseFactory; import org.apache.james.imap.api.process.ImapSession; import org.apache.james.imap.decode.ImapRequestLineReader; -import org.apache.james.imap.decode.ImapRequestLineReader.CharacterValidator; import org.apache.james.imap.message.request.SearchRequest; import org.apache.james.protocols.imap.DecodingException; @@ -140,16 +139,11 @@ public class SearchCommandParser extends AbstractUidCommandParser { // Just consume the [<entry-name> <entry-type-req>] and ignore it // See RFC4551 3.4. MODSEQ Search Criterion in SEARCH request.consumeQuoted(); - request.consumeWord(new CharacterValidator() { - - /* - * (non-Javadoc) - * @see org.apache.james.imap.decode.ImapRequestLineReader.CharacterValidator#isValid(char) - */ - public boolean isValid(char chr) { - return true; - } - }); + /* + * (non-Javadoc) + * @see org.apache.james.imap.decode.ImapRequestLineReader.CharacterValidator#isValid(char) + */ + request.consumeWord(chr -> true); return SearchKey.buildModSeq(request.number()); } } http://git-wip-us.apache.org/repos/asf/james-project/blob/855a3c87/protocols/imap/src/main/java/org/apache/james/imap/decode/parser/SetAnnotationCommandParser.java ---------------------------------------------------------------------- diff --git a/protocols/imap/src/main/java/org/apache/james/imap/decode/parser/SetAnnotationCommandParser.java b/protocols/imap/src/main/java/org/apache/james/imap/decode/parser/SetAnnotationCommandParser.java index 26c372a..0b52bd7 100644 --- a/protocols/imap/src/main/java/org/apache/james/imap/decode/parser/SetAnnotationCommandParser.java +++ b/protocols/imap/src/main/java/org/apache/james/imap/decode/parser/SetAnnotationCommandParser.java @@ -74,11 +74,7 @@ public class SetAnnotationCommandParser extends AbstractImapCommandParser { } private Function<String, MailboxAnnotation> transforMailboxAnnotation(final String key) { - return new Function<String, MailboxAnnotation>() { - public MailboxAnnotation apply(String value) { - return MailboxAnnotation.newInstance(createAnnotationKey(key), value); - } - }; + return value -> MailboxAnnotation.newInstance(createAnnotationKey(key), value); } private MailboxAnnotationKey createAnnotationKey(String key) { http://git-wip-us.apache.org/repos/asf/james-project/blob/855a3c87/protocols/imap/src/main/java/org/apache/james/imap/processor/AuthenticateProcessor.java ---------------------------------------------------------------------- diff --git a/protocols/imap/src/main/java/org/apache/james/imap/processor/AuthenticateProcessor.java b/protocols/imap/src/main/java/org/apache/james/imap/processor/AuthenticateProcessor.java index 59ca5b6..a26d74d 100644 --- a/protocols/imap/src/main/java/org/apache/james/imap/processor/AuthenticateProcessor.java +++ b/protocols/imap/src/main/java/org/apache/james/imap/processor/AuthenticateProcessor.java @@ -29,7 +29,6 @@ import org.apache.commons.codec.binary.Base64; import org.apache.james.imap.api.ImapCommand; import org.apache.james.imap.api.display.HumanReadableText; import org.apache.james.imap.api.message.response.StatusResponseFactory; -import org.apache.james.imap.api.process.ImapLineHandler; import org.apache.james.imap.api.process.ImapProcessor; import org.apache.james.imap.api.process.ImapSession; import org.apache.james.imap.message.request.AuthenticateRequest; @@ -70,18 +69,14 @@ public class AuthenticateProcessor extends AbstractAuthProcessor<AuthenticateReq doPlainAuth(irRequest.getInitialClientResponse(), session, tag, command, responder); } else { responder.respond(new AuthenticateResponse()); - session.pushLineHandler(new ImapLineHandler() { - - public void onLine(ImapSession session, byte[] data) { - // cut of the CRLF - String initialClientResponse = new String(data, 0, data.length - 2, Charset.forName("US-ASCII")); + session.pushLineHandler((requestSession, data) -> { + // cut of the CRLF + String initialClientResponse = new String(data, 0, data.length - 2, Charset.forName("US-ASCII")); - doPlainAuth(initialClientResponse, session, tag, command, responder); - - // remove the handler now - session.popLineHandler(); - - } + doPlainAuth(initialClientResponse, requestSession, tag, command, responder); + + // remove the handler now + requestSession.popLineHandler(); }); } } http://git-wip-us.apache.org/repos/asf/james-project/blob/855a3c87/protocols/imap/src/main/java/org/apache/james/imap/processor/GetAnnotationProcessor.java ---------------------------------------------------------------------- diff --git a/protocols/imap/src/main/java/org/apache/james/imap/processor/GetAnnotationProcessor.java b/protocols/imap/src/main/java/org/apache/james/imap/processor/GetAnnotationProcessor.java index c68cb76..de0146f 100644 --- a/protocols/imap/src/main/java/org/apache/james/imap/processor/GetAnnotationProcessor.java +++ b/protocols/imap/src/main/java/org/apache/james/imap/processor/GetAnnotationProcessor.java @@ -44,7 +44,6 @@ import org.apache.james.mailbox.model.MailboxAnnotationKey; import org.apache.james.mailbox.model.MailboxPath; import org.apache.james.metrics.api.MetricFactory; -import com.google.common.base.Function; import com.google.common.base.Optional; import com.google.common.base.Predicate; import com.google.common.collect.FluentIterable; @@ -98,28 +97,15 @@ public class GetAnnotationProcessor extends AbstractMailboxProcessor<GetAnnotati private Optional<Integer> getMaxSizeValue(final List<MailboxAnnotation> mailboxAnnotations, Optional<Integer> maxsize) { if (maxsize.isPresent()) { - return maxsize.transform(new Function<Integer, Optional<Integer>>() { - @Override - public Optional<Integer> apply(Integer input) { - return getMaxSizeOfOversizedItems(mailboxAnnotations, input); - } - }).get(); + return maxsize.transform(value -> getMaxSizeOfOversizedItems(mailboxAnnotations, value)).get(); } return Optional.absent(); } private List<MailboxAnnotation> filterItemsBySize(Responder responder, String mailboxName, List<MailboxAnnotation> mailboxAnnotations, final Optional<Integer> maxsize) { - Predicate<MailboxAnnotation> lowerPredicate = new Predicate<MailboxAnnotation>() { - @Override - public boolean apply(final MailboxAnnotation input) { - return maxsize.transform(new Function<Integer, Boolean>() { - @Override - public Boolean apply(Integer maxSizeInput) { - return (input.size() <= maxSizeInput); - } - }).or(true); - } - }; + Predicate<MailboxAnnotation> lowerPredicate = annotation -> maxsize + .transform(maxSizeInput -> (annotation.size() <= maxSizeInput)) + .or(true); return FluentIterable.from(mailboxAnnotations).filter(lowerPredicate).toList(); } @@ -147,28 +133,12 @@ public class GetAnnotationProcessor extends AbstractMailboxProcessor<GetAnnotati } private Optional<Integer> getMaxSizeOfOversizedItems(List<MailboxAnnotation> mailboxAnnotations, final Integer maxsize) { - Predicate<MailboxAnnotation> filterOverSizedAnnotation = new Predicate<MailboxAnnotation>() { - @Override - public boolean apply(MailboxAnnotation input) { - return (input.size() > maxsize); - } - }; - - Function<MailboxAnnotation, Integer> transformToSize = new Function<MailboxAnnotation,Integer>(){ - public Integer apply(MailboxAnnotation input) { - return input.size(); - } - }; + Predicate<MailboxAnnotation> filterOverSizedAnnotation = annotation -> annotation.size() > maxsize; ImmutableSortedSet<Integer> overLimitSizes = FluentIterable.from(mailboxAnnotations) .filter(filterOverSizedAnnotation) - .transform(transformToSize) - .toSortedSet(new Comparator<Integer>() { - @Override - public int compare(Integer annotationSize1, Integer annotationSize2) { - return annotationSize2.compareTo(annotationSize1); - } - }); + .transform(MailboxAnnotation::size) + .toSortedSet(Comparator.reverseOrder()); if (overLimitSizes.isEmpty()) { return Optional.absent(); http://git-wip-us.apache.org/repos/asf/james-project/blob/855a3c87/protocols/imap/src/test/java/org/apache/james/imap/processor/base/SelectedMailboxImplTest.java ---------------------------------------------------------------------- diff --git a/protocols/imap/src/test/java/org/apache/james/imap/processor/base/SelectedMailboxImplTest.java b/protocols/imap/src/test/java/org/apache/james/imap/processor/base/SelectedMailboxImplTest.java index 8d005d6..e147a47 100644 --- a/protocols/imap/src/test/java/org/apache/james/imap/processor/base/SelectedMailboxImplTest.java +++ b/protocols/imap/src/test/java/org/apache/james/imap/processor/base/SelectedMailboxImplTest.java @@ -54,7 +54,6 @@ import org.apache.james.mailbox.store.mail.model.MailboxMessage; import org.junit.After; import org.junit.Before; import org.junit.Test; -import org.mockito.invocation.InvocationOnMock; import org.mockito.stubbing.Answer; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -137,34 +136,25 @@ public class SelectedMailboxImplTest { } private Answer<Iterator<MessageUid>> delayedSearchAnswer() { - return new Answer<Iterator<MessageUid>>() { - @Override - public Iterator<MessageUid> answer(InvocationOnMock invocation) throws Throwable { - Thread.sleep(1000); - return ImmutableList.of(MessageUid.of(1), MessageUid.of(3)).iterator(); - } + return invocation -> { + Thread.sleep(1000); + return ImmutableList.of(MessageUid.of(1), MessageUid.of(3)).iterator(); }; } private Answer<Iterator<MessageUid>> generateEmitEventAnswer(final AtomicInteger success) { - return new Answer<Iterator<MessageUid>>() { - @Override - public Iterator<MessageUid> answer(InvocationOnMock invocation) throws Throwable { - Object[] args = invocation.getArguments(); - final MailboxListener mailboxListener = (MailboxListener) args[1]; - executorService.submit(new Runnable() { - @Override - public void run() { - try { - emitEvent(mailboxListener); - success.incrementAndGet(); - } catch (Exception e) { - LOGGER.error("Error while processing event on a concurrent thread", e); - } - } - }); - return null; - } + return invocation -> { + Object[] args = invocation.getArguments(); + final MailboxListener mailboxListener = (MailboxListener) args[1]; + executorService.submit(() -> { + try { + emitEvent(mailboxListener); + success.incrementAndGet(); + } catch (Exception e) { + LOGGER.error("Error while processing event on a concurrent thread", e); + } + }); + return null; }; } http://git-wip-us.apache.org/repos/asf/james-project/blob/855a3c87/protocols/imap/src/test/java/org/apache/james/imap/processor/base/UidMsnConverterTest.java ---------------------------------------------------------------------- diff --git a/protocols/imap/src/test/java/org/apache/james/imap/processor/base/UidMsnConverterTest.java b/protocols/imap/src/test/java/org/apache/james/imap/processor/base/UidMsnConverterTest.java index ae81f2b..79cf756 100644 --- a/protocols/imap/src/test/java/org/apache/james/imap/processor/base/UidMsnConverterTest.java +++ b/protocols/imap/src/test/java/org/apache/james/imap/processor/base/UidMsnConverterTest.java @@ -373,14 +373,11 @@ public class UidMsnConverterTest { int threadCount = 2; ConcurrentTestRunner concurrentTestRunner = new ConcurrentTestRunner(threadCount, initialCount, - new ConcurrentTestRunner.BiConsumer() { - @Override - public void consume(int threadNumber, int step) throws Exception { - if (threadNumber == 0) { - testee.remove(MessageUid.of(step + 1)); - } else { - testee.addUid(MessageUid.of(initialCount + step + 1)); - } + (threadNumber, step) -> { + if (threadNumber == 0) { + testee.remove(MessageUid.of(step + 1)); + } else { + testee.addUid(MessageUid.of(initialCount + step + 1)); } }); concurrentTestRunner.run(); @@ -400,12 +397,7 @@ public class UidMsnConverterTest { int threadCount = 2; ConcurrentTestRunner concurrentTestRunner = new ConcurrentTestRunner(threadCount, operationCount, - new ConcurrentTestRunner.BiConsumer() { - @Override - public void consume(int threadNumber, int step) throws Exception { - testee.addUid(MessageUid.of((threadNumber * operationCount) + (step + 1))); - } - }); + (threadNumber, step) -> testee.addUid(MessageUid.of((threadNumber * operationCount) + (step + 1)))); concurrentTestRunner.run(); concurrentTestRunner.awaitTermination(10, TimeUnit.SECONDS); @@ -426,12 +418,7 @@ public class UidMsnConverterTest { } ConcurrentTestRunner concurrentTestRunner = new ConcurrentTestRunner(threadCount, operationCount, - new ConcurrentTestRunner.BiConsumer() { - @Override - public void consume(int threadNumber, int step) throws Exception { - testee.remove(MessageUid.of((threadNumber * operationCount) + (step + 1))); - } - }); + (threadNumber, step) -> testee.remove(MessageUid.of((threadNumber * operationCount) + (step + 1)))); concurrentTestRunner.run(); concurrentTestRunner.awaitTermination(10, TimeUnit.SECONDS); http://git-wip-us.apache.org/repos/asf/james-project/blob/855a3c87/protocols/managesieve/src/main/java/org/apache/james/managesieve/core/CoreProcessor.java ---------------------------------------------------------------------- diff --git a/protocols/managesieve/src/main/java/org/apache/james/managesieve/core/CoreProcessor.java b/protocols/managesieve/src/main/java/org/apache/james/managesieve/core/CoreProcessor.java index f2b8679..c0b8d3f 100644 --- a/protocols/managesieve/src/main/java/org/apache/james/managesieve/core/CoreProcessor.java +++ b/protocols/managesieve/src/main/java/org/apache/james/managesieve/core/CoreProcessor.java @@ -20,13 +20,14 @@ package org.apache.james.managesieve.core; -import com.google.common.base.Function; -import com.google.common.base.Joiner; -import com.google.common.base.Splitter; -import com.google.common.base.Strings; -import com.google.common.collect.Iterables; -import com.google.common.collect.Lists; -import com.google.common.collect.Maps; +import java.io.IOException; +import java.util.Arrays; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import javax.inject.Inject; + import org.apache.commons.io.IOUtils; import org.apache.james.managesieve.api.AuthenticationException; import org.apache.james.managesieve.api.AuthenticationProcessor; @@ -39,7 +40,6 @@ import org.apache.james.managesieve.api.SyntaxException; import org.apache.james.managesieve.api.UnknownSaslMechanism; import org.apache.james.managesieve.api.commands.CoreCommands; import org.apache.james.managesieve.util.ParserUtils; -import org.apache.james.sieverepository.api.ScriptSummary; import org.apache.james.sieverepository.api.SieveRepository; import org.apache.james.sieverepository.api.exception.DuplicateException; import org.apache.james.sieverepository.api.exception.IsActiveException; @@ -49,12 +49,12 @@ import org.apache.james.sieverepository.api.exception.SieveRepositoryException; import org.apache.james.sieverepository.api.exception.StorageException; import org.apache.james.user.api.UsersRepository; -import java.io.IOException; -import javax.inject.Inject; -import java.util.Arrays; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import com.google.common.base.Joiner; +import com.google.common.base.Splitter; +import com.google.common.base.Strings; +import com.google.common.collect.Iterables; +import com.google.common.collect.Lists; +import com.google.common.collect.Maps; public class CoreProcessor implements CoreCommands { @@ -75,7 +75,7 @@ public class CoreProcessor implements CoreCommands { this.sieveRepository = repository; this.parser = parser; this.capabilitiesBase = precomputedCapabilitiesBase(parser); - this.authenticationProcessorMap = new HashMap<SupportedMechanism, AuthenticationProcessor>(); + this.authenticationProcessorMap = new HashMap<>(); this.authenticationProcessorMap.put(SupportedMechanism.PLAIN, new PlainAuthenticationProcessor(usersRepository)); } @@ -91,11 +91,7 @@ public class CoreProcessor implements CoreCommands { private String convertCapabilityMapToString(Map<Capabilities, String> capabilitiesStringMap) { return Joiner.on("\r\n").join( - Iterables.transform(capabilitiesStringMap.entrySet(), new Function<Map.Entry<Capabilities,String>, String>() { - public String apply(Map.Entry<Capabilities, String> capabilitiesStringEntry) { - return computeCapabilityEntryString(capabilitiesStringEntry); - } - })); + Iterables.transform(capabilitiesStringMap.entrySet(), this::computeCapabilityEntryString)); } private Map<Capabilities, String> computeCapabilityMap(Session session) { @@ -113,21 +109,15 @@ public class CoreProcessor implements CoreCommands { @Override public String checkScript(final Session session, final String content) { - return handleCommandExecution(new CommandWrapper() { - public String execute() throws ManageSieveException, SieveRepositoryException { - authenticationCheck(session); - return manageWarnings(parser.parse(content)); - } + return handleCommandExecution(() -> { + authenticationCheck(session); + return manageWarnings(parser.parse(content)); }, session); } private String manageWarnings(List<String> warnings) { if (!warnings.isEmpty()) { - return "OK (WARNINGS) " + Joiner.on(' ').join(Iterables.transform(warnings, new Function<String, String>() { - public String apply(String s) { - return '\"' + s + '"'; - } - })); + return "OK (WARNINGS) " + Joiner.on(' ').join(Iterables.transform(warnings, s -> '\"' + s + '"')); } else { return "OK"; } @@ -135,55 +125,42 @@ public class CoreProcessor implements CoreCommands { @Override public String deleteScript(final Session session, final String name) { - return handleCommandExecution(new CommandWrapper() { - public String execute() throws ManageSieveException, SieveRepositoryException { - authenticationCheck(session); - sieveRepository.deleteScript(session.getUser(), name); - return "OK"; - } + return handleCommandExecution(() -> { + authenticationCheck(session); + sieveRepository.deleteScript(session.getUser(), name); + return "OK"; }, session); } @Override public String getScript(final Session session, final String name) { - return handleCommandExecution(new CommandWrapper() { - public String execute() throws ManageSieveException, SieveRepositoryException, IOException { - authenticationCheck(session); - String scriptContent = IOUtils.toString(sieveRepository.getScript(session.getUser(), name)); - return "{" + scriptContent.length() + "}" + "\r\n" + scriptContent + "\r\nOK"; - } + return handleCommandExecution(() -> { + authenticationCheck(session); + String scriptContent = IOUtils.toString(sieveRepository.getScript(session.getUser(), name)); + return "{" + scriptContent.length() + "}" + "\r\n" + scriptContent + "\r\nOK"; }, session); } @Override public String haveSpace(final Session session, final String name, final long size) { - return handleCommandExecution(new CommandWrapper() { - public String execute() throws ManageSieveException, SieveRepositoryException { - authenticationCheck(session); - sieveRepository.haveSpace(session.getUser(), name, size); - return "OK"; - } + return handleCommandExecution(() -> { + authenticationCheck(session); + sieveRepository.haveSpace(session.getUser(), name, size); + return "OK"; }, session); } @Override public String listScripts(final Session session) { - return handleCommandExecution(new CommandWrapper() { - public String execute() throws ManageSieveException, SieveRepositoryException { - return listScriptsInternals(session); - } - }, session); + return handleCommandExecution(() -> listScriptsInternals(session), session); } private String listScriptsInternals(Session session) throws AuthenticationRequiredException, StorageException { authenticationCheck(session); String list = Joiner.on("\r\n").join( - Iterables.transform(sieveRepository.listScripts(session.getUser()), new Function<ScriptSummary, String>() { - public String apply(ScriptSummary scriptSummary) { - return '"' + scriptSummary.getName() + '"' + (scriptSummary.isActive() ? " ACTIVE" : ""); - } - })); + Iterables.transform(sieveRepository.listScripts(session.getUser()), + scriptSummary -> '"' + scriptSummary.getName() + '"' + (scriptSummary.isActive() ? " ACTIVE" : ""))); if (Strings.isNullOrEmpty(list)) { return "OK"; } else { @@ -193,34 +170,28 @@ public class CoreProcessor implements CoreCommands { @Override public String putScript(final Session session, final String name, final String content) { - return handleCommandExecution(new CommandWrapper() { - public String execute() throws ManageSieveException, SieveRepositoryException { - authenticationCheck(session); - sieveRepository.putScript(session.getUser(), name, content); - return manageWarnings(parser.parse(content)); - } + return handleCommandExecution(() -> { + authenticationCheck(session); + sieveRepository.putScript(session.getUser(), name, content); + return manageWarnings(parser.parse(content)); }, session); } @Override public String renameScript(final Session session, final String oldName, final String newName) { - return handleCommandExecution(new CommandWrapper() { - public String execute() throws ManageSieveException, SieveRepositoryException { - authenticationCheck(session); - sieveRepository.renameScript(session.getUser(), oldName, newName); - return "OK"; - } + return handleCommandExecution(() -> { + authenticationCheck(session); + sieveRepository.renameScript(session.getUser(), oldName, newName); + return "OK"; }, session); } @Override public String setActive(final Session session, final String name) { - return handleCommandExecution(new CommandWrapper() { - public String execute() throws ManageSieveException, SieveRepositoryException { - authenticationCheck(session); - sieveRepository.setActive(session.getUser(), name); - return "OK"; - } + return handleCommandExecution(() -> { + authenticationCheck(session); + sieveRepository.setActive(session.getUser(), name); + return "OK"; }, session); } @@ -362,11 +333,7 @@ public class CoreProcessor implements CoreCommands { return Joiner.on(' ') .join(Lists.transform( Arrays.asList(SupportedMechanism.values()), - new Function<SupportedMechanism, String>() { - public String apply(SupportedMechanism supportedMechanism) { - return supportedMechanism.toString(); - } - })); + Enum::toString)); } private String sanitizeString(String message) { http://git-wip-us.apache.org/repos/asf/james-project/blob/855a3c87/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/AllButStartTlsDelimiterChannelHandler.java ---------------------------------------------------------------------- diff --git a/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/AllButStartTlsDelimiterChannelHandler.java b/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/AllButStartTlsDelimiterChannelHandler.java index cadf9c5..268a9c1 100644 --- a/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/AllButStartTlsDelimiterChannelHandler.java +++ b/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/AllButStartTlsDelimiterChannelHandler.java @@ -30,7 +30,6 @@ import org.jboss.netty.handler.codec.frame.DelimiterBasedFrameDecoder; import com.google.common.base.CharMatcher; import com.google.common.base.Charsets; -import com.google.common.base.Predicate; import com.google.common.base.Splitter; import com.google.common.collect.FluentIterable; @@ -69,20 +68,12 @@ public class AllButStartTlsDelimiterChannelHandler extends DelimiterBasedFrameDe } private boolean multiPartsAndOneStartTls(List<String> parts) { - return FluentIterable.from(parts).anyMatch(new Predicate<String>() { - @Override - public boolean apply(String line) { - return line.startsWith(STARTTLS); - } - }) && parts.size() > 1; + return FluentIterable.from(parts) + .anyMatch(line -> line.startsWith(STARTTLS)) && parts.size() > 1; } private boolean hasInvalidStartTlsPart(List<String> parts) { - return FluentIterable.from(parts).anyMatch(new Predicate<String>() { - @Override - public boolean apply(String line) { - return line.startsWith(STARTTLS) && !line.endsWith(STARTTLS); - } - }); + return FluentIterable.from(parts) + .anyMatch(line -> line.startsWith(STARTTLS) && !line.endsWith(STARTTLS)); } } http://git-wip-us.apache.org/repos/asf/james-project/blob/855a3c87/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/ReceivedDataLineFilter.java ---------------------------------------------------------------------- diff --git a/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/ReceivedDataLineFilter.java b/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/ReceivedDataLineFilter.java index 740b796..af4cac2 100644 --- a/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/ReceivedDataLineFilter.java +++ b/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/ReceivedDataLineFilter.java @@ -26,8 +26,8 @@ import java.util.Date; import java.util.List; import java.util.Locale; -import org.apache.commons.configuration.Configuration; -import org.apache.commons.configuration.ConfigurationException; +import org.apache.commons.configuration.Configuration; +import org.apache.commons.configuration.ConfigurationException; import org.apache.james.protocols.api.ProtocolSession.State; import org.apache.james.protocols.smtp.MailAddress; import org.apache.james.protocols.smtp.SMTPSession; @@ -41,24 +41,21 @@ public class ReceivedDataLineFilter extends AbstractAddHeadersFilter { private static final String ESMTPA = "ESMTPA"; private static final String ESMTP = "ESMTP"; - private static final ThreadLocal<DateFormat> DATEFORMAT = new ThreadLocal<DateFormat>() { - @Override - protected DateFormat initialValue() { - // See RFC822 for the format - return new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss Z (zzz)", Locale.US); - } - }; - - @Override - public void init(Configuration config) throws ConfigurationException { - - } - - @Override - public void destroy() { - - } - + private static final ThreadLocal<DateFormat> DATEFORMAT = ThreadLocal.withInitial(() -> { + // See RFC822 for the format + return new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss Z (zzz)", Locale.US); + }); + + @Override + public void init(Configuration config) throws ConfigurationException { + + } + + @Override + public void destroy() { + + } + /** * Return the service type which will be used in the Received headers. * http://git-wip-us.apache.org/repos/asf/james-project/blob/855a3c87/protocols/smtp/src/test/java/org/apache/james/protocols/smtp/AbstractSMTPServerTest.java ---------------------------------------------------------------------- diff --git a/protocols/smtp/src/test/java/org/apache/james/protocols/smtp/AbstractSMTPServerTest.java b/protocols/smtp/src/test/java/org/apache/james/protocols/smtp/AbstractSMTPServerTest.java index b321877..aca46ff 100644 --- a/protocols/smtp/src/test/java/org/apache/james/protocols/smtp/AbstractSMTPServerTest.java +++ b/protocols/smtp/src/test/java/org/apache/james/protocols/smtp/AbstractSMTPServerTest.java @@ -106,12 +106,8 @@ public abstract class AbstractSMTPServerTest { final String mailContent = CharStreams.toString(new InputStreamReader(ClassLoader.getSystemResourceAsStream("a50.eml"), Charsets.US_ASCII)); int threadCount = 4; int updateCount = 1; - assertThat(new ConcurrentTestRunner(threadCount, updateCount, new ConcurrentTestRunner.BiConsumer() { - @Override - public void consume(int threadNumber, int step) throws Exception { - send(finalServer, bindedAddress, mailContent); - } - }).run() + assertThat(new ConcurrentTestRunner(threadCount, updateCount, + (threadNumber, step) -> send(finalServer, bindedAddress, mailContent)).run() .awaitTermination(1, TimeUnit.MINUTES)) .isTrue(); http://git-wip-us.apache.org/repos/asf/james-project/blob/855a3c87/server/container/guice/cassandra-guice/src/test/java/org/apache/james/DockerCassandraRule.java ---------------------------------------------------------------------- diff --git a/server/container/guice/cassandra-guice/src/test/java/org/apache/james/DockerCassandraRule.java b/server/container/guice/cassandra-guice/src/test/java/org/apache/james/DockerCassandraRule.java index c59798e..232c57b 100644 --- a/server/container/guice/cassandra-guice/src/test/java/org/apache/james/DockerCassandraRule.java +++ b/server/container/guice/cassandra-guice/src/test/java/org/apache/james/DockerCassandraRule.java @@ -84,7 +84,7 @@ public class DockerCassandraRule implements GuiceModuleTestRule { return Integer.valueOf( Arrays.stream(bindings) .filter(DockerCassandraRule::isBindingToEveryThing) - .map(binding -> binding.getHostPortSpec()) + .map(Ports.Binding::getHostPortSpec) .findFirst().get()); } http://git-wip-us.apache.org/repos/asf/james-project/blob/855a3c87/server/container/guice/cassandra-guice/src/test/java/org/apache/james/ESReporterTest.java ---------------------------------------------------------------------- diff --git a/server/container/guice/cassandra-guice/src/test/java/org/apache/james/ESReporterTest.java b/server/container/guice/cassandra-guice/src/test/java/org/apache/james/ESReporterTest.java index 8a58b43..2cc679d 100644 --- a/server/container/guice/cassandra-guice/src/test/java/org/apache/james/ESReporterTest.java +++ b/server/container/guice/cassandra-guice/src/test/java/org/apache/james/ESReporterTest.java @@ -34,8 +34,8 @@ import org.apache.http.client.utils.URIBuilder; import org.apache.james.jmap.HttpJmapAuthentication; import org.apache.james.jmap.api.access.AccessToken; import org.apache.james.modules.TestESMetricReporterModule; -import org.apache.james.utils.JmapGuiceProbe; import org.apache.james.utils.DataProbeImpl; +import org.apache.james.utils.JmapGuiceProbe; import org.elasticsearch.client.Client; import org.elasticsearch.index.query.QueryBuilders; import org.junit.After; @@ -127,7 +127,7 @@ public class ESReporterTest { timer.schedule(timerTask, DELAY_IN_MS, PERIOD_IN_MS); await().atMost(Duration.TEN_MINUTES) - .until(() -> checkMetricRecordedInElasticSearch()); + .until(this::checkMetricRecordedInElasticSearch); } @Test @@ -149,7 +149,7 @@ public class ESReporterTest { timer.schedule(timerTask, DELAY_IN_MS, PERIOD_IN_MS); await().atMost(Duration.TEN_MINUTES) - .until(() -> checkMetricRecordedInElasticSearch()); + .until(this::checkMetricRecordedInElasticSearch); } private boolean checkMetricRecordedInElasticSearch() { http://git-wip-us.apache.org/repos/asf/james-project/blob/855a3c87/server/container/guice/guice-common/src/main/java/org/apache/james/utils/ConfigurationsPerformer.java ---------------------------------------------------------------------- diff --git a/server/container/guice/guice-common/src/main/java/org/apache/james/utils/ConfigurationsPerformer.java b/server/container/guice/guice-common/src/main/java/org/apache/james/utils/ConfigurationsPerformer.java index b9ad337..755b65e 100644 --- a/server/container/guice/guice-common/src/main/java/org/apache/james/utils/ConfigurationsPerformer.java +++ b/server/container/guice/guice-common/src/main/java/org/apache/james/utils/ConfigurationsPerformer.java @@ -47,7 +47,7 @@ public class ConfigurationsPerformer { private Set<ConfigurationPerformer> processConfigurables() { return configurables.get().stream() - .flatMap(configurable -> configurationPerformerFor(configurable)) + .flatMap(this::configurationPerformerFor) .distinct() .peek(ConfigurationPerformer::initModule) .collect(Collectors.toSet()); http://git-wip-us.apache.org/repos/asf/james-project/blob/855a3c87/server/container/guice/jpa-smtp/src/main/java/org/apache/james/JPAJamesServerMain.java ---------------------------------------------------------------------- diff --git a/server/container/guice/jpa-smtp/src/main/java/org/apache/james/JPAJamesServerMain.java b/server/container/guice/jpa-smtp/src/main/java/org/apache/james/JPAJamesServerMain.java index 2fd0585..87e602a 100644 --- a/server/container/guice/jpa-smtp/src/main/java/org/apache/james/JPAJamesServerMain.java +++ b/server/container/guice/jpa-smtp/src/main/java/org/apache/james/JPAJamesServerMain.java @@ -47,7 +47,7 @@ public class JPAJamesServerMain { public static final Module jpaServerModule = Modules.combine( new JPADataModule(), - (binder) -> binder.bind(EntityManagerFactory.class).toProvider(() -> OpenJPAPersistence.getEntityManagerFactory()), + (binder) -> binder.bind(EntityManagerFactory.class).toProvider(OpenJPAPersistence::getEntityManagerFactory), new ActiveMQQueueModule(), new RawPostDequeueDecoratorModule()); http://git-wip-us.apache.org/repos/asf/james-project/blob/855a3c87/server/container/guice/onami/src/main/java/org/apache/james/onami/lifecycle/LifeCycleModule.java ---------------------------------------------------------------------- diff --git a/server/container/guice/onami/src/main/java/org/apache/james/onami/lifecycle/LifeCycleModule.java b/server/container/guice/onami/src/main/java/org/apache/james/onami/lifecycle/LifeCycleModule.java index b59b044..bbd2e54 100644 --- a/server/container/guice/onami/src/main/java/org/apache/james/onami/lifecycle/LifeCycleModule.java +++ b/server/container/guice/onami/src/main/java/org/apache/james/onami/lifecycle/LifeCycleModule.java @@ -69,20 +69,17 @@ public abstract class LifeCycleModule extends AbstractModule { bindListener(typeMatcher, new AbstractMethodTypeListener(annotations) { @Override protected <I> void hear(final Method method, TypeLiteral<I> parentType, TypeEncounter<I> encounter, final Class<? extends Annotation> annotationType) { - encounter.register(new InjectionListener<I>() { - @Override - public void afterInjection(I injectee) { - try { - method.invoke(injectee); - } catch (IllegalArgumentException e) { - // should not happen, anyway... - throw new ProvisionException(format("Method @%s %s requires arguments", annotationType.getName(), method), e); - } catch (IllegalAccessException e) { - throw new ProvisionException(format("Impossible to access to @%s %s on %s", annotationType.getName(), method, injectee), e); - } catch (InvocationTargetException e) { - throw new ProvisionException( - format("An error occurred while invoking @%s %s on %s", annotationType.getName(), method, injectee), e.getCause()); - } + encounter.register((InjectionListener<I>) injectee -> { + try { + method.invoke(injectee); + } catch (IllegalArgumentException e) { + // should not happen, anyway... + throw new ProvisionException(format("Method @%s %s requires arguments", annotationType.getName(), method), e); + } catch (IllegalAccessException e) { + throw new ProvisionException(String.format("Impossible to access to @%s %s on %s", annotationType.getName(), method, injectee), e); + } catch (InvocationTargetException e) { + throw new ProvisionException( + String.format("An error occurred while invoking @%s %s on %s", annotationType.getName(), method, injectee), e.getCause()); } }); } http://git-wip-us.apache.org/repos/asf/james-project/blob/855a3c87/server/container/guice/onami/src/main/java/org/apache/james/onami/lifecycle/LifeCycleStageModule.java ---------------------------------------------------------------------- diff --git a/server/container/guice/onami/src/main/java/org/apache/james/onami/lifecycle/LifeCycleStageModule.java b/server/container/guice/onami/src/main/java/org/apache/james/onami/lifecycle/LifeCycleStageModule.java index 4f54bdf..380c9da 100644 --- a/server/container/guice/onami/src/main/java/org/apache/james/onami/lifecycle/LifeCycleStageModule.java +++ b/server/container/guice/onami/src/main/java/org/apache/james/onami/lifecycle/LifeCycleStageModule.java @@ -96,13 +96,10 @@ public abstract class LifeCycleStageModule extends LifeCycleModule { @Override protected <I> void hear(final Method stageMethod, final TypeLiteral<I> parentType, final TypeEncounter<I> encounter, final Class<? extends Annotation> annotationType) { - encounter.register(new InjectionListener<I>() { - @Override - public void afterInjection(I injectee) { - Stageable stageable = new StageableMethod(stageMethod, injectee); - stager.register(stageable); - typeMapper.registerType(stageable, parentType); - } + encounter.register((InjectionListener<I>) injectee -> { + Stageable stageable = new StageableMethod(stageMethod, injectee); + stager.register(stageable); + typeMapper.registerType(stageable, parentType); }); } }); http://git-wip-us.apache.org/repos/asf/james-project/blob/855a3c87/server/container/guice/onami/src/main/java/org/apache/james/onami/lifecycle/StageableMethod.java ---------------------------------------------------------------------- diff --git a/server/container/guice/onami/src/main/java/org/apache/james/onami/lifecycle/StageableMethod.java b/server/container/guice/onami/src/main/java/org/apache/james/onami/lifecycle/StageableMethod.java index 764ba14..cafadfe 100644 --- a/server/container/guice/onami/src/main/java/org/apache/james/onami/lifecycle/StageableMethod.java +++ b/server/container/guice/onami/src/main/java/org/apache/james/onami/lifecycle/StageableMethod.java @@ -52,12 +52,9 @@ final class StageableMethod extends AbstractBasicStageable<Object> { @Override public final void stage(StageHandler stageHandler) { try { - AccessController.doPrivileged(new PrivilegedAction<Void>() { - @Override - public Void run() { - stageMethod.setAccessible(true); - return null; - } + AccessController.doPrivileged((PrivilegedAction<Void>) () -> { + stageMethod.setAccessible(true); + return null; }); stageMethod.invoke(object); } catch (InvocationTargetException e) { http://git-wip-us.apache.org/repos/asf/james-project/blob/855a3c87/server/container/guice/onami/src/test/java/org/apache/james/onami/lifecycle/DefaultStagerTestCase.java ---------------------------------------------------------------------- diff --git a/server/container/guice/onami/src/test/java/org/apache/james/onami/lifecycle/DefaultStagerTestCase.java b/server/container/guice/onami/src/test/java/org/apache/james/onami/lifecycle/DefaultStagerTestCase.java index f80703e..156c5f1 100644 --- a/server/container/guice/onami/src/test/java/org/apache/james/onami/lifecycle/DefaultStagerTestCase.java +++ b/server/container/guice/onami/src/test/java/org/apache/james/onami/lifecycle/DefaultStagerTestCase.java @@ -30,17 +30,9 @@ public class DefaultStagerTestCase { public void stagerShouldStageObjectsRegisteredWhileStaging() { final Stager<TestAnnotationA> stager = new DefaultStager<TestAnnotationA>(TestAnnotationA.class); final AtomicBoolean staged = new AtomicBoolean(); - stager.register(new Stageable() { - @Override - public void stage(StageHandler stageHandler) { - stager.register(new Stageable() { - @Override - public void stage(StageHandler stageHandler) { - staged.set(true); - } - }); - } - }); + stager.register(stageHandler1 -> stager + .register(stageHandler2 -> + staged.set(true))); stager.stage(); @@ -57,26 +49,14 @@ public class DefaultStagerTestCase { public void stagerShouldNotDeadlockWhileStagingObjectChains() { final AtomicBoolean staged = new AtomicBoolean(); final Stager<TestAnnotationA> stager = new DefaultStager<TestAnnotationA>(TestAnnotationA.class); - stager.register(new Stageable() { - @Override - public void stage(StageHandler stageHandler) { - Thread thread = new Thread(new Runnable() { - @Override - public void run() { - stager.register(new Stageable() { - @Override - public void stage(StageHandler stageHandler) { - staged.set(true); - } - }); - } - }); - thread.start(); - try { - thread.join(); - } catch (InterruptedException e) { - Thread.currentThread().interrupt(); - } + stager.register(stageHandler1 -> { + Thread thread = new Thread( + () -> stager.register(stageHandler2 -> staged.set(true))); + thread.start(); + try { + thread.join(); + } catch (InterruptedException e) { + Thread.currentThread().interrupt(); } }); http://git-wip-us.apache.org/repos/asf/james-project/blob/855a3c87/server/container/spring/src/main/java/org/apache/james/container/spring/lifecycle/osgi/AbstractOSGIAnnotationBeanPostProcessor.java ---------------------------------------------------------------------- diff --git a/server/container/spring/src/main/java/org/apache/james/container/spring/lifecycle/osgi/AbstractOSGIAnnotationBeanPostProcessor.java b/server/container/spring/src/main/java/org/apache/james/container/spring/lifecycle/osgi/AbstractOSGIAnnotationBeanPostProcessor.java index d361dbf..f828ab3 100644 --- a/server/container/spring/src/main/java/org/apache/james/container/spring/lifecycle/osgi/AbstractOSGIAnnotationBeanPostProcessor.java +++ b/server/container/spring/src/main/java/org/apache/james/container/spring/lifecycle/osgi/AbstractOSGIAnnotationBeanPostProcessor.java @@ -155,23 +155,21 @@ public abstract class AbstractOSGIAnnotationBeanPostProcessor<A extends Annotati /* private version of the injector can use */ private void injectServices(final Object bean, final String beanName) { - ReflectionUtils.doWithMethods(bean.getClass(), new ReflectionUtils.MethodCallback() { - - public void doWith(Method method) { + ReflectionUtils.doWithMethods(bean.getClass(), + method -> { A s = AnnotationUtils.getAnnotation(method, getAnnotation()); if (s != null && method.getParameterTypes().length == 1) { try { if (logger.isDebugEnabled()) logger.debug("Processing annotation [" + s + "] for [" + bean.getClass().getName() + "." - + method.getName() + "()] on bean [" + beanName + "]"); + + method.getName() + "()] on bean [" + beanName + "]"); method.invoke(bean, getServiceImporter(s, method, beanName).getObject()); } catch (Exception e) { throw new IllegalArgumentException("Error processing annotation " +s , e); } } - } - }); + }); } @Override http://git-wip-us.apache.org/repos/asf/james-project/blob/855a3c87/server/container/util-java8/src/main/java/org/apache/james/util/mime/MessageContentExtractor.java ---------------------------------------------------------------------- diff --git a/server/container/util-java8/src/main/java/org/apache/james/util/mime/MessageContentExtractor.java b/server/container/util-java8/src/main/java/org/apache/james/util/mime/MessageContentExtractor.java index 99c320e..5a19d5e 100644 --- a/server/container/util-java8/src/main/java/org/apache/james/util/mime/MessageContentExtractor.java +++ b/server/container/util-java8/src/main/java/org/apache/james/util/mime/MessageContentExtractor.java @@ -155,7 +155,7 @@ public class MessageContentExtractor { private Optional<String> getFirstMatchingTextBody(Multipart multipart, String mimeType, Predicate<Entity> condition) { Function<TextBody, Optional<String>> textBodyOptionalFunction = Throwing - .<TextBody, Optional<String>>function(textBody -> asString(textBody)).sneakyThrow(); + .function(this::asString).sneakyThrow(); return multipart.getBodyParts() .stream() http://git-wip-us.apache.org/repos/asf/james-project/blob/855a3c87/server/container/util/src/test/java/org/apache/james/util/concurrency/ConcurrentTestRunnerTest.java ---------------------------------------------------------------------- diff --git a/server/container/util/src/test/java/org/apache/james/util/concurrency/ConcurrentTestRunnerTest.java b/server/container/util/src/test/java/org/apache/james/util/concurrency/ConcurrentTestRunnerTest.java index 89396e0..8934b56 100644 --- a/server/container/util/src/test/java/org/apache/james/util/concurrency/ConcurrentTestRunnerTest.java +++ b/server/container/util/src/test/java/org/apache/james/util/concurrency/ConcurrentTestRunnerTest.java @@ -31,13 +31,9 @@ import org.junit.rules.ExpectedException; public class ConcurrentTestRunnerTest { - public static final ConcurrentTestRunner.BiConsumer EMPTY_BI_CONSUMER = new ConcurrentTestRunner.BiConsumer() { - @Override - public void consume(int threadNumber, int step) throws Exception { - - } - }; + public static final ConcurrentTestRunner.BiConsumer EMPTY_BI_CONSUMER = (threadNumber, step) -> {}; public static final int DEFAULT_AWAIT_TIME = 100; + @Rule public ExpectedException expectedException = ExpectedException.none(); @@ -104,12 +100,7 @@ public class ConcurrentTestRunnerTest { final int sleepDelay = 50; ConcurrentTestRunner concurrentTestRunner = new ConcurrentTestRunner(threadCount, operationCount, - new ConcurrentTestRunner.BiConsumer() { - @Override - public void consume(int threadNumber, int step) throws Exception { - Thread.sleep(sleepDelay); - } - }) + (threadNumber, step) -> Thread.sleep(sleepDelay)) .run(); assertThat(concurrentTestRunner.awaitTermination(sleepDelay / 2, TimeUnit.MILLISECONDS)).isFalse(); @@ -122,12 +113,7 @@ public class ConcurrentTestRunnerTest { final ConcurrentLinkedQueue<String> queue = new ConcurrentLinkedQueue<String>(); ConcurrentTestRunner concurrentTestRunner = new ConcurrentTestRunner(threadCount, operationCount, - new ConcurrentTestRunner.BiConsumer() { - @Override - public void consume(int threadNumber, int step) throws Exception { - queue.add(threadNumber + ":" + step); - } - }) + (threadNumber, step) -> queue.add(threadNumber + ":" + step)) .run(); assertThat(concurrentTestRunner.awaitTermination(DEFAULT_AWAIT_TIME, TimeUnit.MILLISECONDS)).isTrue(); @@ -140,11 +126,8 @@ public class ConcurrentTestRunnerTest { int threadCount = 2; ConcurrentTestRunner concurrentTestRunner = new ConcurrentTestRunner(threadCount, operationCount, - new ConcurrentTestRunner.BiConsumer() { - @Override - public void consume(int threadNumber, int step) throws Exception { - throw new RuntimeException(); - } + (threadNumber, step) -> { + throw new RuntimeException(); }) .run(); @@ -156,13 +139,7 @@ public class ConcurrentTestRunnerTest { int operationCount = 2; int threadCount = 2; - ConcurrentTestRunner concurrentTestRunner = new ConcurrentTestRunner(threadCount, operationCount, - new ConcurrentTestRunner.BiConsumer() { - @Override - public void consume(int threadNumber, int step) throws Exception { - - } - }) + ConcurrentTestRunner concurrentTestRunner = new ConcurrentTestRunner(threadCount, operationCount, EMPTY_BI_CONSUMER) .run(); concurrentTestRunner.awaitTermination(DEFAULT_AWAIT_TIME, TimeUnit.MILLISECONDS); @@ -176,11 +153,8 @@ public class ConcurrentTestRunnerTest { int threadCount = 2; ConcurrentTestRunner concurrentTestRunner = new ConcurrentTestRunner(threadCount, operationCount, - new ConcurrentTestRunner.BiConsumer() { - @Override - public void consume(int threadNumber, int step) throws Exception { - throw new RuntimeException(); - } + (threadNumber, step) -> { + throw new RuntimeException(); }) .run(); concurrentTestRunner.awaitTermination(DEFAULT_AWAIT_TIME, TimeUnit.MILLISECONDS); @@ -196,12 +170,9 @@ public class ConcurrentTestRunnerTest { final ConcurrentLinkedQueue<String> queue = new ConcurrentLinkedQueue<String>(); ConcurrentTestRunner concurrentTestRunner = new ConcurrentTestRunner(threadCount, operationCount, - new ConcurrentTestRunner.BiConsumer() { - @Override - public void consume(int threadNumber, int step) throws Exception { - queue.add(threadNumber + ":" + step); - throw new RuntimeException(); - } + (threadNumber, step) -> { + queue.add(threadNumber + ":" + step); + throw new RuntimeException(); }) .run(); @@ -216,13 +187,10 @@ public class ConcurrentTestRunnerTest { final ConcurrentLinkedQueue<String> queue = new ConcurrentLinkedQueue<String>(); ConcurrentTestRunner concurrentTestRunner = new ConcurrentTestRunner(threadCount, operationCount, - new ConcurrentTestRunner.BiConsumer() { - @Override - public void consume(int threadNumber, int step) throws Exception { - queue.add(threadNumber + ":" + step); - if ((threadNumber + step) % 2 == 0) { - throw new RuntimeException(); - } + (threadNumber, step) -> { + queue.add(threadNumber + ":" + step); + if ((threadNumber + step) % 2 == 0) { + throw new RuntimeException(); } }) .run(); http://git-wip-us.apache.org/repos/asf/james-project/blob/855a3c87/server/data/data-jcr/src/main/java/org/apache/james/mailrepository/jcr/JCRMailRepository.java ---------------------------------------------------------------------- diff --git a/server/data/data-jcr/src/main/java/org/apache/james/mailrepository/jcr/JCRMailRepository.java b/server/data/data-jcr/src/main/java/org/apache/james/mailrepository/jcr/JCRMailRepository.java index 0c76f8d..ed25df5 100644 --- a/server/data/data-jcr/src/main/java/org/apache/james/mailrepository/jcr/JCRMailRepository.java +++ b/server/data/data-jcr/src/main/java/org/apache/james/mailrepository/jcr/JCRMailRepository.java @@ -54,6 +54,7 @@ import javax.mail.internet.MimeMessage; import org.apache.commons.configuration.ConfigurationException; import org.apache.commons.configuration.HierarchicalConfiguration; +import org.apache.commons.io.IOUtils; import org.apache.jackrabbit.commons.cnd.CndImporter; import org.apache.jackrabbit.util.ISO9075; import org.apache.jackrabbit.util.Text; @@ -522,17 +523,15 @@ public class JCRMailRepository extends AbstractMailRepository implements MailRep PipedInputStream input = new PipedInputStream(); final PipedOutputStream output = new PipedOutputStream(input); - new Thread() { - public void run() { - try { - message.writeTo(output); - } catch (Exception e) { - LOGGER.info("Exception ignored", e); - } finally { - org.apache.commons.io.IOUtils.closeQuietly(output); - } + new Thread(() -> { + try { + message.writeTo(output); + } catch (Exception e) { + LOGGER.info("Exception ignored", e); + } finally { + IOUtils.closeQuietly(output); } - }.start(); + }).start(); node.setProperty("jcr:data", input); } http://git-wip-us.apache.org/repos/asf/james-project/blob/855a3c87/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 8b421e5..bfa0e49 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 @@ -28,7 +28,6 @@ import java.util.StringTokenizer; import org.apache.james.rrt.lib.Mapping.Type; -import com.google.common.base.Function; import com.google.common.base.Joiner; import com.google.common.base.MoreObjects; import com.google.common.base.Objects; @@ -126,12 +125,7 @@ public class MappingsImpl implements Mappings, Serializable { @Override public Iterable<String> asStrings() { - return FluentIterable.from(mappings).transform(new Function<Mapping, String>() { - @Override - public String apply(Mapping input) { - return input.asString(); - } - }); + return FluentIterable.from(mappings).transform(Mapping::asString); } @Override @@ -171,12 +165,7 @@ public class MappingsImpl implements Mappings, Serializable { } private Predicate<Mapping> hasType(final Mapping.Type type) { - return new Predicate<Mapping>() { - @Override - public boolean apply(Mapping input) { - return input.getType().equals(type); - } - }; + return mapping -> mapping.getType().equals(type); } @Override http://git-wip-us.apache.org/repos/asf/james-project/blob/855a3c87/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 4445207..d14e975 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 @@ -29,10 +29,8 @@ import org.apache.james.rrt.lib.AbstractRecipientRewriteTable; import org.apache.james.rrt.lib.Mappings; import org.apache.james.rrt.lib.MappingsImpl; -import com.google.common.base.Function; import com.google.common.base.Objects; import com.google.common.base.Optional; -import com.google.common.base.Predicate; import com.google.common.collect.Iterables; import com.google.common.collect.Lists; import com.google.common.collect.Maps; @@ -124,39 +122,26 @@ public class MemoryRecipientRewriteTable extends AbstractRecipientRewriteTable { return null; } Map<String, Collection<Mappings>> userMappingsMap = Multimaps.transformEntries( - Multimaps.index(mappingEntries, new Function<InMemoryMappingEntry, String>() { - public String apply(InMemoryMappingEntry mappingEntry) { - return mappingEntry.asKey(); - } - }), new Maps.EntryTransformer<String, InMemoryMappingEntry, Mappings>() { - public Mappings transformEntry(String s, InMemoryMappingEntry mappingEntry) { - return MappingsImpl.fromRawString(mappingEntry.getMapping()); - } - }).asMap(); - return Maps.transformEntries(userMappingsMap, new Maps.EntryTransformer<String, Collection<Mappings>, Mappings>() { - public Mappings transformEntry(String s, Collection<Mappings> mappingsList) { + Multimaps.index(mappingEntries, InMemoryMappingEntry::asKey), + (Maps.EntryTransformer<String, InMemoryMappingEntry, Mappings>) + (s, mappingEntry) -> MappingsImpl.fromRawString(mappingEntry.getMapping())) + .asMap(); + return Maps.transformEntries(userMappingsMap, + (s, mappingsList) -> { Mappings result = MappingsImpl.empty(); for (Mappings mappings : mappingsList) { result = result.union(mappings); } return result; - } - }); + }); } private Optional<Mappings> retrieveMappings(final String user, final String domain) { List<String> userEntries = Lists.newArrayList( Iterables.transform( - Iterables.filter(mappingEntries, new Predicate<InMemoryMappingEntry>() { - public boolean apply(InMemoryMappingEntry mappingEntry) { - return user.equals(mappingEntry.getUser()) && domain.equals(mappingEntry.getDomain()); - } - }), new Function<InMemoryMappingEntry, String>() { - @Override - public String apply(InMemoryMappingEntry mappingEntry) { - return mappingEntry.getMapping(); - } - })); + Iterables.filter(mappingEntries, + mappingEntry -> user.equals(mappingEntry.getUser()) && domain.equals(mappingEntry.getDomain())), + InMemoryMappingEntry::getMapping)); return MappingsImpl.fromCollection(userEntries).toOptional(); } http://git-wip-us.apache.org/repos/asf/james-project/blob/855a3c87/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 38ebfd1..613fe3b 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 @@ -19,8 +19,11 @@ package org.apache.james.user.memory; -import com.google.common.base.Function; -import com.google.common.base.Optional; +import java.util.HashMap; +import java.util.Iterator; +import java.util.Locale; +import java.util.Map; + import org.apache.commons.configuration.ConfigurationException; import org.apache.commons.configuration.HierarchicalConfiguration; import org.apache.james.user.api.UsersRepositoryException; @@ -28,10 +31,7 @@ import org.apache.james.user.api.model.User; import org.apache.james.user.lib.AbstractUsersRepository; import org.apache.james.user.lib.model.DefaultUser; -import java.util.HashMap; -import java.util.Iterator; -import java.util.Locale; -import java.util.Map; +import com.google.common.base.Optional; public class MemoryUsersRepository extends AbstractUsersRepository { @@ -104,11 +104,8 @@ public class MemoryUsersRepository extends AbstractUsersRepository { @Override public boolean test(String name, final String password) throws UsersRepositoryException { return Optional.fromNullable(userByName.get(name)) - .transform(new Function<User, Boolean>() { - public Boolean apply(User user) { - return user.verifyPassword(password); - } - }).or(false); + .transform(user -> user.verifyPassword(password)) + .or(false); } @Override http://git-wip-us.apache.org/repos/asf/james-project/blob/855a3c87/server/dns-service/dnsservice-api/src/test/java/org/apache/james/dnsservice/api/InMemoryDNSService.java ---------------------------------------------------------------------- diff --git a/server/dns-service/dnsservice-api/src/test/java/org/apache/james/dnsservice/api/InMemoryDNSService.java b/server/dns-service/dnsservice-api/src/test/java/org/apache/james/dnsservice/api/InMemoryDNSService.java index 16085d3..04926ab 100644 --- a/server/dns-service/dnsservice-api/src/test/java/org/apache/james/dnsservice/api/InMemoryDNSService.java +++ b/server/dns-service/dnsservice-api/src/test/java/org/apache/james/dnsservice/api/InMemoryDNSService.java @@ -85,12 +85,7 @@ public class InMemoryDNSService implements DNSService { } private DNSRecord hostRecord(final String host) { - Predicate<? super Entry<String, DNSRecord>> filterByKey = new Predicate<Entry<String, DNSRecord>>() { - @Override - public boolean apply(Entry<String, DNSRecord> entry) { - return entry.getKey().equals(host); - } - }; + Predicate<? super Entry<String, DNSRecord>> filterByKey = entry -> entry.getKey().equals(host); return getDNSEntry(filterByKey).getValue(); } @@ -101,12 +96,7 @@ public class InMemoryDNSService implements DNSService { @Override public String getHostName(final InetAddress addr) { - Predicate<? super Entry<String, DNSRecord>> filterByValue = new Predicate<Entry<String, DNSRecord>>() { - @Override - public boolean apply(Entry<String, DNSRecord> entry) { - return entry.getValue().contains(addr); - } - }; + Predicate<? super Entry<String, DNSRecord>> filterByValue = entry -> entry.getValue().contains(addr); return getDNSEntry(filterByValue).getKey(); } http://git-wip-us.apache.org/repos/asf/james-project/blob/855a3c87/server/dns-service/dnsservice-library/src/main/java/org/apache/james/dnsservice/library/netmatcher/NetMatcher.java ---------------------------------------------------------------------- diff --git a/server/dns-service/dnsservice-library/src/main/java/org/apache/james/dnsservice/library/netmatcher/NetMatcher.java b/server/dns-service/dnsservice-library/src/main/java/org/apache/james/dnsservice/library/netmatcher/NetMatcher.java index fc93531..147a952 100644 --- a/server/dns-service/dnsservice-library/src/main/java/org/apache/james/dnsservice/library/netmatcher/NetMatcher.java +++ b/server/dns-service/dnsservice-library/src/main/java/org/apache/james/dnsservice/library/netmatcher/NetMatcher.java @@ -159,11 +159,7 @@ public class NetMatcher { */ private void initInetNetworks(String[] nets) { - networks = new TreeSet<InetNetwork>(new Comparator<InetNetwork>() { - public int compare(InetNetwork in1, InetNetwork in2) { - return in1.toString().compareTo(in2.toString()); - } - }); + networks = new TreeSet<>(Comparator.comparing(Object::toString)); final InetNetworkBuilder inetNetwork = new InetNetworkBuilder(dnsServer); http://git-wip-us.apache.org/repos/asf/james-project/blob/855a3c87/server/mailet/mailetcontainer-camel/src/main/java/org/apache/james/mailetcontainer/impl/JamesMailSpooler.java ---------------------------------------------------------------------- diff --git a/server/mailet/mailetcontainer-camel/src/main/java/org/apache/james/mailetcontainer/impl/JamesMailSpooler.java b/server/mailet/mailetcontainer-camel/src/main/java/org/apache/james/mailetcontainer/impl/JamesMailSpooler.java index 896a7db..634d753 100644 --- a/server/mailet/mailetcontainer-camel/src/main/java/org/apache/james/mailetcontainer/impl/JamesMailSpooler.java +++ b/server/mailet/mailetcontainer-camel/src/main/java/org/apache/james/mailetcontainer/impl/JamesMailSpooler.java @@ -157,48 +157,44 @@ public class JamesMailSpooler implements Runnable, Disposable, Configurable, Log final MailQueueItem queueItem; try { queueItem = queue.deQueue(); - workerService.execute(new Runnable() { + workerService.execute(() -> { + TimeMetric timeMetric = metricFactory.timer(SPOOL_PROCESSING); + try { + numActive.incrementAndGet(); + + // increase count + processingActive.incrementAndGet(); + + Mail mail = queueItem.getMail(); + if (logger.isDebugEnabled()) { + String debugBuffer = "==== Begin processing mail " + mail.getName() + "===="; + logger.debug(debugBuffer); + } - @Override - public void run() { - TimeMetric timeMetric = metricFactory.timer(SPOOL_PROCESSING); try { - numActive.incrementAndGet(); - - // increase count - processingActive.incrementAndGet(); - - Mail mail = queueItem.getMail(); - if (logger.isDebugEnabled()) { - String debugBuffer = "==== Begin processing mail " + mail.getName() + "===="; - logger.debug(debugBuffer); - } - - try { - mailProcessor.service(mail); - queueItem.done(true); - } catch (Exception e) { - if (active.get() && logger.isErrorEnabled()) { - logger.error("Exception processing mail while spooling " + e.getMessage(), e); - } - queueItem.done(false); - - } finally { - LifecycleUtil.dispose(mail); - mail = null; - } - } catch (Throwable e) { + mailProcessor.service(mail); + queueItem.done(true); + } catch (Exception e) { if (active.get() && logger.isErrorEnabled()) { logger.error("Exception processing mail while spooling " + e.getMessage(), e); - } + queueItem.done(false); + } finally { - processingActive.decrementAndGet(); - numActive.decrementAndGet(); - timeMetric.stopAndPublish(); + LifecycleUtil.dispose(mail); + mail = null; } + } catch (Throwable e) { + if (active.get() && logger.isErrorEnabled()) { + logger.error("Exception processing mail while spooling " + e.getMessage(), e); + } + } finally { + processingActive.decrementAndGet(); + numActive.decrementAndGet(); + timeMetric.stopAndPublish(); } + }); } catch (MailQueueException e1) { if (active.get() && logger.isErrorEnabled()) { --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
