You are viewing a plain text version of this content. The canonical link for it is here.
Posted to server-dev@james.apache.org by bt...@apache.org on 2017/08/16 09:45:37 UTC
[04/18] james-project git commit: JAMES-2107 Run IntelliJ inspection:
"Convert to lambas"
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: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org