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:35 UTC
[02/18] james-project git commit: JAMES-2107 Run IntelliJ inspection:
"Move from imperative to Stream API"
JAMES-2107 Run IntelliJ inspection: "Move from imperative to Stream API"
Project: http://git-wip-us.apache.org/repos/asf/james-project/repo
Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/cb0f621f
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/cb0f621f
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/cb0f621f
Branch: refs/heads/master
Commit: cb0f621f74e84d1597c37e929ba4ee61dbdde70c
Parents: 855a3c8
Author: benwa <bt...@linagora.com>
Authored: Tue Aug 1 18:01:11 2017 +0700
Committer: benwa <bt...@linagora.com>
Committed: Wed Aug 16 16:44:07 2017 +0700
----------------------------------------------------------------------
.../james/mailbox/model/FetchGroupImpl.java | 21 +++++-----
.../mailbox/hbase/mail/HBaseMailboxMessage.java | 6 +--
.../jcr/mail/model/JCRMailboxMessage.java | 9 +++--
.../openjpa/AbstractJPAMailboxMessage.java | 8 ++--
.../james/mailbox/maildir/UidConstraint.java | 6 +--
.../maildir/user/MaildirSubscriptionMapper.java | 40 ++++++++++----------
.../inmemory/mail/InMemoryMailboxMapper.java | 22 +++++------
.../inmemory/mail/InMemoryMessageMapper.java | 39 +++++++++----------
.../user/InMemorySubscriptionMapper.java | 13 +++----
mailbox/store/pom.xml | 4 ++
.../mailbox/store/StoreMailboxManager.java | 13 +++----
.../mailbox/store/StoreSubscriptionManager.java | 14 +++----
.../store/json/event/EventConverter.java | 17 ++++-----
.../store/mail/model/impl/PropertyBuilder.java | 27 ++++++-------
.../mailbox/store/search/MessageSearches.java | 19 +++-------
.../org/apache/james/ai/classic/Tokenizer.java | 9 ++---
.../base/AutomaticallySentMailDetectorImpl.java | 8 ++--
.../james/transport/matchers/HasHeader.java | 26 ++++++-------
.../apache/james/mpt/helper/ScriptBuilder.java | 10 ++---
protocols/api/pom.xml | 4 ++
.../handler/AbstractProtocolHandlerChain.java | 12 +++---
.../api/handler/ProtocolHandlerChainImpl.java | 5 +--
.../api/AbstractProtocolTransportTest.java | 29 +++++++-------
.../apache/james/imap/api/message/UidRange.java | 9 ++---
.../james/imap/processor/SearchProcessor.java | 10 +----
.../processor/fetch/MessageResultUtils.java | 28 ++++----------
.../protocols/lmtp/AbstractLMTPSServerTest.java | 11 ++----
.../protocols/lmtp/AbstractLMTPServerTest.java | 11 ++----
protocols/pom.xml | 5 +++
.../pop3/core/MessageMetaDataUtils.java | 10 ++---
.../protocols/pop3/mailbox/ImapMailbox.java | 8 ++--
.../pop3/AbstractStartTlsPOP3ServerTest.java | 10 ++---
.../james/protocols/pop3/utils/MockMailbox.java | 12 +++---
.../smtp/SMTPProtocolHandlerChain.java | 14 +------
.../smtp/netty/NettyStartTlsSMTPServerTest.java | 10 ++---
.../java/org/apache/james/cli/type/CmdType.java | 11 +++---
.../james/core/MimeMessageWrapperTest.java | 20 ++--------
.../mailbox/MailboxManagerManagement.java | 10 ++---
.../james/util/bayesian/BayesianAnalyzer.java | 9 ++---
.../file/SieveFileRepository.java | 10 ++---
server/data/data-ldap/pom.xml | 4 ++
.../user/ldap/ReadOnlyUsersLDAPRepository.java | 13 +++----
server/data/data-library/pom.xml | 4 ++
.../domainlist/lib/AbstractDomainList.java | 33 +++++-----------
.../repository/file/AbstractFileRepository.java | 13 ++-----
.../repository/file/ExtensionFileFilter.java | 8 +---
server/mailet/mailetcontainer-camel/pom.xml | 4 ++
.../lib/AbstractStateMailetProcessor.java | 18 ++++-----
.../mailets/jsieve/SieveMailAdapter.java | 14 +++----
.../mailets/redirect/AddressExtractor.java | 8 +---
.../mailets/redirect/SpecialAddressKind.java | 12 +++---
.../remoteDelivery/DelaysAndMaxRetry.java | 8 ++--
.../RemoteDeliveryConfiguration.java | 13 ++++---
.../protocols/lib/ProtocolHandlerChainImpl.java | 20 ++++------
.../pop3server/mailbox/MailboxAdapter.java | 11 +++---
.../james/smtpserver/fastfail/URIScanner.java | 18 ++++-----
.../james/smtpserver/fastfail/ValidRcptMX.java | 11 +++---
.../james/smtpserver/mock/MockMimeMessage.java | 36 +++++++++++++-----
58 files changed, 350 insertions(+), 457 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/james-project/blob/cb0f621f/mailbox/api/src/main/java/org/apache/james/mailbox/model/FetchGroupImpl.java
----------------------------------------------------------------------
diff --git a/mailbox/api/src/main/java/org/apache/james/mailbox/model/FetchGroupImpl.java b/mailbox/api/src/main/java/org/apache/james/mailbox/model/FetchGroupImpl.java
index 38d4bd1..81a3560 100644
--- a/mailbox/api/src/main/java/org/apache/james/mailbox/model/FetchGroupImpl.java
+++ b/mailbox/api/src/main/java/org/apache/james/mailbox/model/FetchGroupImpl.java
@@ -86,19 +86,16 @@ public class FetchGroupImpl implements MessageResult.FetchGroup {
*/
public void addPartContent(MimePath path, int content) {
if (partContentDescriptors == null) {
- partContentDescriptors = new HashSet<PartContentDescriptor>();
- }
- PartContentDescriptorImpl currentDescriptor = null;
- for (PartContentDescriptor descriptor : partContentDescriptors) {
- if (path.equals(descriptor.path())) {
- currentDescriptor = (PartContentDescriptorImpl) descriptor;
- break;
- }
- }
- if (currentDescriptor == null) {
- currentDescriptor = new PartContentDescriptorImpl(path);
- partContentDescriptors.add(currentDescriptor);
+ partContentDescriptors = new HashSet<>();
}
+ PartContentDescriptorImpl currentDescriptor = (PartContentDescriptorImpl) partContentDescriptors.stream()
+ .filter(descriptor -> path.equals(descriptor.path()))
+ .findFirst()
+ .orElseGet(() -> {
+ PartContentDescriptorImpl result = new PartContentDescriptorImpl(path);
+ partContentDescriptors.add(result);
+ return result;
+ });
currentDescriptor.or(content);
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/cb0f621f/mailbox/hbase/src/main/java/org/apache/james/mailbox/hbase/mail/HBaseMailboxMessage.java
----------------------------------------------------------------------
diff --git a/mailbox/hbase/src/main/java/org/apache/james/mailbox/hbase/mail/HBaseMailboxMessage.java b/mailbox/hbase/src/main/java/org/apache/james/mailbox/hbase/mail/HBaseMailboxMessage.java
index e4b57e9a..d401e36 100644
--- a/mailbox/hbase/src/main/java/org/apache/james/mailbox/hbase/mail/HBaseMailboxMessage.java
+++ b/mailbox/hbase/src/main/java/org/apache/james/mailbox/hbase/mail/HBaseMailboxMessage.java
@@ -318,11 +318,7 @@ public class HBaseMailboxMessage implements MailboxMessage {
* This implementation supports user flags
*/
public String[] createUserFlags() {
- String[] flags = new String[userFlags.size()];
- for (int i = 0; i < userFlags.size(); i++) {
- flags[i] = userFlags.get(i);
- }
- return flags;
+ return userFlags.toArray(new String[userFlags.size()]);
}
@Override
http://git-wip-us.apache.org/repos/asf/james-project/blob/cb0f621f/mailbox/jcr/src/main/java/org/apache/james/mailbox/jcr/mail/model/JCRMailboxMessage.java
----------------------------------------------------------------------
diff --git a/mailbox/jcr/src/main/java/org/apache/james/mailbox/jcr/mail/model/JCRMailboxMessage.java b/mailbox/jcr/src/main/java/org/apache/james/mailbox/jcr/mail/model/JCRMailboxMessage.java
index 3637e41..7ffabb6 100644
--- a/mailbox/jcr/src/main/java/org/apache/james/mailbox/jcr/mail/model/JCRMailboxMessage.java
+++ b/mailbox/jcr/src/main/java/org/apache/james/mailbox/jcr/mail/model/JCRMailboxMessage.java
@@ -53,6 +53,8 @@ import org.apache.james.mailbox.store.mail.model.impl.PropertyBuilder;
import org.apache.james.mailbox.store.search.comparator.UidComparator;
import org.slf4j.Logger;
+import com.github.steveash.guavate.Guavate;
+
public class JCRMailboxMessage implements MailboxMessage, JCRImapConstants, Persistent {
private static final Comparator<MailboxMessage> MESSAGE_UID_COMPARATOR = new UidComparator();
@@ -304,10 +306,9 @@ public class JCRMailboxMessage implements MailboxMessage, JCRImapConstants, Pers
List<Property> currentProperties = getProperties();
- List<Property> newProperties = new ArrayList<Property>();
- for (Property prop : currentProperties) {
- newProperties.add(new JCRProperty(prop, logger));
- }
+ List<Property> newProperties = currentProperties.stream()
+ .map(prop -> new JCRProperty(prop, logger))
+ .collect(Guavate.toImmutableList());
// remove old properties, we will add a bunch of new ones
NodeIterator iterator = node.getNodes("messageProperty");
while (iterator.hasNext()) {
http://git-wip-us.apache.org/repos/asf/james-project/blob/cb0f621f/mailbox/jpa/src/main/java/org/apache/james/mailbox/jpa/mail/model/openjpa/AbstractJPAMailboxMessage.java
----------------------------------------------------------------------
diff --git a/mailbox/jpa/src/main/java/org/apache/james/mailbox/jpa/mail/model/openjpa/AbstractJPAMailboxMessage.java b/mailbox/jpa/src/main/java/org/apache/james/mailbox/jpa/mail/model/openjpa/AbstractJPAMailboxMessage.java
index c9ae2e4..2b27598 100644
--- a/mailbox/jpa/src/main/java/org/apache/james/mailbox/jpa/mail/model/openjpa/AbstractJPAMailboxMessage.java
+++ b/mailbox/jpa/src/main/java/org/apache/james/mailbox/jpa/mail/model/openjpa/AbstractJPAMailboxMessage.java
@@ -463,11 +463,9 @@ public abstract class AbstractJPAMailboxMessage implements MailboxMessage {
}
protected String[] createUserFlags() {
- String[] flags = new String[userFlags.size()];
- for (int i = 0; i < userFlags.size(); i++) {
- flags[i] = userFlags.get(i).getName();
- }
- return flags;
+ return userFlags.stream()
+ .map(JPAUserFlag::getName)
+ .toArray(String[]::new);
}
/**
http://git-wip-us.apache.org/repos/asf/james-project/blob/cb0f621f/mailbox/maildir/src/main/java/org/apache/james/mailbox/maildir/UidConstraint.java
----------------------------------------------------------------------
diff --git a/mailbox/maildir/src/main/java/org/apache/james/mailbox/maildir/UidConstraint.java b/mailbox/maildir/src/main/java/org/apache/james/mailbox/maildir/UidConstraint.java
index 1608213..52656f9 100644
--- a/mailbox/maildir/src/main/java/org/apache/james/mailbox/maildir/UidConstraint.java
+++ b/mailbox/maildir/src/main/java/org/apache/james/mailbox/maildir/UidConstraint.java
@@ -50,10 +50,8 @@ public class UidConstraint {
}
public boolean isAllowed(long uid) {
- for (Constraint constraint : constraints)
- if (!constraint.isAllowed(uid))
- return false;
- return true;
+ return constraints.stream()
+ .allMatch(constraint -> constraint.isAllowed(uid));
}
public abstract static class Constraint {
http://git-wip-us.apache.org/repos/asf/james-project/blob/cb0f621f/mailbox/maildir/src/main/java/org/apache/james/mailbox/maildir/user/MaildirSubscriptionMapper.java
----------------------------------------------------------------------
diff --git a/mailbox/maildir/src/main/java/org/apache/james/mailbox/maildir/user/MaildirSubscriptionMapper.java b/mailbox/maildir/src/main/java/org/apache/james/mailbox/maildir/user/MaildirSubscriptionMapper.java
index 43ea311..552c949 100644
--- a/mailbox/maildir/src/main/java/org/apache/james/mailbox/maildir/user/MaildirSubscriptionMapper.java
+++ b/mailbox/maildir/src/main/java/org/apache/james/mailbox/maildir/user/MaildirSubscriptionMapper.java
@@ -26,7 +26,6 @@ import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.Collections;
-import java.util.HashSet;
import java.util.List;
import java.util.Set;
@@ -37,6 +36,10 @@ import org.apache.james.mailbox.store.user.SubscriptionMapper;
import org.apache.james.mailbox.store.user.model.Subscription;
import org.apache.james.mailbox.store.user.model.impl.SimpleSubscription;
+import com.github.steveash.guavate.Guavate;
+import com.google.common.collect.ImmutableSet;
+import com.google.common.collect.Sets;
+
public class MaildirSubscriptionMapper extends NonTransactionalMapper implements SubscriptionMapper {
private static final String FILE_SUBSCRIPTION = "subscriptions";
@@ -53,10 +56,11 @@ public class MaildirSubscriptionMapper extends NonTransactionalMapper implements
public void delete(Subscription subscription) throws SubscriptionException {
// TODO: we need some kind of file locking here
Set<String> subscriptionNames = readSubscriptionsForUser(subscription.getUser());
- boolean changed = subscriptionNames.remove(subscription.getMailbox());
+ Set<String> newSubscriptions = Sets.difference(subscriptionNames, ImmutableSet.of(subscription.getMailbox()));
+ boolean changed = subscriptionNames.size() != newSubscriptions.size();
if (changed) {
try {
- writeSubscriptions(new File(store.userRoot(subscription.getUser())), subscriptionNames);
+ writeSubscriptions(new File(store.userRoot(subscription.getUser())), newSubscriptions);
} catch (IOException e) {
throw new SubscriptionException(e);
}
@@ -69,11 +73,9 @@ public class MaildirSubscriptionMapper extends NonTransactionalMapper implements
@Override
public List<Subscription> findSubscriptionsForUser(String user) throws SubscriptionException {
Set<String> subscriptionNames = readSubscriptionsForUser(user);
- ArrayList<Subscription> subscriptions = new ArrayList<Subscription>();
- for (String subscription : subscriptionNames) {
- subscriptions.add(new SimpleSubscription(user, subscription));
- }
- return subscriptions;
+ return subscriptionNames.stream()
+ .map(subscription -> new SimpleSubscription(user, subscription))
+ .collect(Guavate.toImmutableList());
}
/**
@@ -100,10 +102,14 @@ public class MaildirSubscriptionMapper extends NonTransactionalMapper implements
public void save(Subscription subscription) throws SubscriptionException {
// TODO: we need some kind of file locking here
Set<String> subscriptionNames = readSubscriptionsForUser(subscription.getUser());
- boolean changed = subscriptionNames.add(subscription.getMailbox());
+ Set<String> newSubscriptions = ImmutableSet.<String>builder()
+ .addAll(subscriptionNames)
+ .add(subscription.getMailbox())
+ .build();
+ boolean changed = subscriptionNames.size() != newSubscriptions.size();
if (changed) {
try {
- writeSubscriptions(new File(store.userRoot(subscription.getUser())), subscriptionNames);
+ writeSubscriptions(new File(store.userRoot(subscription.getUser())), newSubscriptions);
} catch (IOException e) {
throw new SubscriptionException(e);
}
@@ -127,13 +133,11 @@ public class MaildirSubscriptionMapper extends NonTransactionalMapper implements
*/
private Set<String> readSubscriptionsForUser(String user) throws SubscriptionException {
File userRoot = new File(store.userRoot(user));
- Set<String> subscriptionNames;
try {
- subscriptionNames = readSubscriptions(userRoot);
+ return readSubscriptions(userRoot);
} catch (IOException e) {
throw new SubscriptionException(e);
}
- return subscriptionNames;
}
/**
@@ -144,16 +148,14 @@ public class MaildirSubscriptionMapper extends NonTransactionalMapper implements
*/
private Set<String> readSubscriptions(File mailboxFolder) throws IOException {
File subscriptionFile = new File(mailboxFolder, FILE_SUBSCRIPTION);
- HashSet<String> subscriptions = new HashSet<String>();
if (!subscriptionFile.exists()) {
- return subscriptions;
+ return ImmutableSet.of();
}
FileReader fileReader = new FileReader(subscriptionFile);
BufferedReader reader = new BufferedReader(fileReader);
- String subscription;
- while ((subscription = reader.readLine()) != null)
- if (!subscription.equals(""))
- subscriptions.add(subscription);
+ Set<String> subscriptions = reader.lines()
+ .filter(subscription -> !subscription.equals(""))
+ .collect(Guavate.toImmutableSet());
reader.close();
fileReader.close();
return subscriptions;
http://git-wip-us.apache.org/repos/asf/james-project/blob/cb0f621f/mailbox/memory/src/main/java/org/apache/james/mailbox/inmemory/mail/InMemoryMailboxMapper.java
----------------------------------------------------------------------
diff --git a/mailbox/memory/src/main/java/org/apache/james/mailbox/inmemory/mail/InMemoryMailboxMapper.java b/mailbox/memory/src/main/java/org/apache/james/mailbox/inmemory/mail/InMemoryMailboxMapper.java
index 7e7eb8e..4ef6936 100644
--- a/mailbox/memory/src/main/java/org/apache/james/mailbox/inmemory/mail/InMemoryMailboxMapper.java
+++ b/mailbox/memory/src/main/java/org/apache/james/mailbox/inmemory/mail/InMemoryMailboxMapper.java
@@ -34,6 +34,7 @@ import org.apache.james.mailbox.store.mail.MailboxMapper;
import org.apache.james.mailbox.store.mail.model.Mailbox;
import org.apache.james.mailbox.store.mail.model.impl.SimpleMailbox;
+import com.github.steveash.guavate.Guavate;
import com.google.common.base.Objects;
public class InMemoryMailboxMapper implements MailboxMapper {
@@ -84,13 +85,11 @@ public class InMemoryMailboxMapper implements MailboxMapper {
*/
public List<Mailbox> findMailboxWithPathLike(MailboxPath path) throws MailboxException {
final String regex = path.getName().replace("%", ".*");
- List<Mailbox> results = new ArrayList<Mailbox>();
- for (Mailbox mailbox: mailboxesByPath.values()) {
- if (mailboxMatchesRegex(mailbox, path, regex)) {
- results.add(new SimpleMailbox(mailbox));
- }
- }
- return results;
+ return mailboxesByPath.values()
+ .stream()
+ .filter(mailbox -> mailboxMatchesRegex(mailbox, path, regex))
+ .map(SimpleMailbox::new)
+ .collect(Guavate.toImmutableList());
}
private boolean mailboxMatchesRegex(Mailbox mailbox, MailboxPath path, String regex) {
@@ -134,12 +133,9 @@ public class InMemoryMailboxMapper implements MailboxMapper {
*/
public boolean hasChildren(Mailbox mailbox, char delimiter) throws MailboxException {
String mailboxName = mailbox.getName() + delimiter;
- for (Mailbox box: mailboxesByPath.values()) {
- if (belongsToSameUser(mailbox, box) && box.getName().startsWith(mailboxName)) {
- return true;
- }
- }
- return false;
+ return mailboxesByPath.values()
+ .stream()
+ .anyMatch(box -> belongsToSameUser(mailbox, box) && box.getName().startsWith(mailboxName));
}
private boolean belongsToSameUser(Mailbox mailbox, Mailbox otherMailbox) {
http://git-wip-us.apache.org/repos/asf/james-project/blob/cb0f621f/mailbox/memory/src/main/java/org/apache/james/mailbox/inmemory/mail/InMemoryMessageMapper.java
----------------------------------------------------------------------
diff --git a/mailbox/memory/src/main/java/org/apache/james/mailbox/inmemory/mail/InMemoryMessageMapper.java b/mailbox/memory/src/main/java/org/apache/james/mailbox/inmemory/mail/InMemoryMessageMapper.java
index aacc35b..9c6bfc0 100644
--- a/mailbox/memory/src/main/java/org/apache/james/mailbox/inmemory/mail/InMemoryMessageMapper.java
+++ b/mailbox/memory/src/main/java/org/apache/james/mailbox/inmemory/mail/InMemoryMessageMapper.java
@@ -45,6 +45,8 @@ import org.apache.james.mailbox.store.mail.model.MailboxMessage;
import org.apache.james.mailbox.store.mail.model.impl.SimpleMailboxMessage;
import org.apache.james.mailbox.store.mail.utils.ApplicableFlagCalculator;
+import com.github.steveash.guavate.Guavate;
+
public class InMemoryMessageMapper extends AbstractMessageMapper {
private final Map<InMemoryId, Map<MessageUid, MailboxMessage>> mailboxByUid;
private static final int INITIAL_SIZE = 256;
@@ -75,13 +77,10 @@ public class InMemoryMessageMapper extends AbstractMessageMapper {
@Override
public long countUnseenMessagesInMailbox(Mailbox mailbox) throws MailboxException {
- long count = 0;
- for (MailboxMessage member : getMembershipByUidForMailbox(mailbox).values()) {
- if (!member.isSeen()) {
- count++;
- }
- }
- return count;
+ return getMembershipByUidForMailbox(mailbox).values()
+ .stream()
+ .filter(member -> !member.isSeen())
+ .count();
}
@Override
@@ -118,27 +117,23 @@ public class InMemoryMessageMapper extends AbstractMessageMapper {
@Override
public List<MessageUid> findRecentMessageUidsInMailbox(Mailbox mailbox) throws MailboxException {
- final List<MessageUid> results = new ArrayList<MessageUid>();
- for (MailboxMessage member : getMembershipByUidForMailbox(mailbox).values()) {
- if (member.isRecent()) {
- results.add(member.getUid());
- }
- }
- Collections.sort(results);
-
- return results;
+ return getMembershipByUidForMailbox(mailbox).values()
+ .stream()
+ .filter(MailboxMessage::isRecent)
+ .map(MailboxMessage::getUid)
+ .sorted()
+ .collect(Guavate.toImmutableList());
}
@Override
public MessageUid findFirstUnseenMessageUid(Mailbox mailbox) throws MailboxException {
List<MailboxMessage> memberships = new ArrayList<MailboxMessage>(getMembershipByUidForMailbox(mailbox).values());
Collections.sort(memberships);
- for (MailboxMessage m : memberships) {
- if (m.isSeen() == false) {
- return m.getUid();
- }
- }
- return null;
+ return memberships.stream()
+ .filter(m -> !m.isSeen())
+ .findFirst()
+ .map(MailboxMessage::getUid)
+ .orElse(null);
}
@Override
http://git-wip-us.apache.org/repos/asf/james-project/blob/cb0f621f/mailbox/memory/src/main/java/org/apache/james/mailbox/inmemory/user/InMemorySubscriptionMapper.java
----------------------------------------------------------------------
diff --git a/mailbox/memory/src/main/java/org/apache/james/mailbox/inmemory/user/InMemorySubscriptionMapper.java b/mailbox/memory/src/main/java/org/apache/james/mailbox/inmemory/user/InMemorySubscriptionMapper.java
index 7ec79d9..7bad0e6 100644
--- a/mailbox/memory/src/main/java/org/apache/james/mailbox/inmemory/user/InMemorySubscriptionMapper.java
+++ b/mailbox/memory/src/main/java/org/apache/james/mailbox/inmemory/user/InMemorySubscriptionMapper.java
@@ -48,16 +48,13 @@ public class InMemorySubscriptionMapper extends NonTransactionalMapper implement
public Subscription findMailboxSubscriptionForUser(String user, String mailbox) {
final List<Subscription> subscriptions = subscriptionsByUser.get(user);
- Subscription result = null;
if (subscriptions != null) {
- for(Subscription subscription:subscriptions) {
- if (subscription.getMailbox().equals(mailbox)) {
- result = subscription;
- break;
- }
- }
+ return subscriptions.stream()
+ .filter(subscription -> subscription.getMailbox().equals(mailbox))
+ .findFirst()
+ .orElse(null);
}
- return result;
+ return null;
}
public List<Subscription> findSubscriptionsForUser(String user) {
http://git-wip-us.apache.org/repos/asf/james-project/blob/cb0f621f/mailbox/store/pom.xml
----------------------------------------------------------------------
diff --git a/mailbox/store/pom.xml b/mailbox/store/pom.xml
index 7459362..a12e0ff 100644
--- a/mailbox/store/pom.xml
+++ b/mailbox/store/pom.xml
@@ -73,6 +73,10 @@
<artifactId>commons-lang</artifactId>
</dependency>
<dependency>
+ <groupId>com.github.steveash.guavate</groupId>
+ <artifactId>guavate</artifactId>
+ </dependency>
+ <dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
</dependency>
http://git-wip-us.apache.org/repos/asf/james-project/blob/cb0f621f/mailbox/store/src/main/java/org/apache/james/mailbox/store/StoreMailboxManager.java
----------------------------------------------------------------------
diff --git a/mailbox/store/src/main/java/org/apache/james/mailbox/store/StoreMailboxManager.java b/mailbox/store/src/main/java/org/apache/james/mailbox/store/StoreMailboxManager.java
index cc7083c..09d3a64 100644
--- a/mailbox/store/src/main/java/org/apache/james/mailbox/store/StoreMailboxManager.java
+++ b/mailbox/store/src/main/java/org/apache/james/mailbox/store/StoreMailboxManager.java
@@ -84,6 +84,7 @@ import org.apache.james.mailbox.store.transaction.Mapper;
import org.apache.james.mailbox.store.transaction.TransactionalMapper;
import org.slf4j.Logger;
+import com.github.steveash.guavate.Guavate;
import com.google.common.base.Optional;
import com.google.common.base.Predicate;
import com.google.common.collect.FluentIterable;
@@ -775,13 +776,11 @@ public class StoreMailboxManager implements MailboxManager {
@Override
public List<MailboxPath> list(MailboxSession session) throws MailboxException {
- List<MailboxPath> mList = new ArrayList<MailboxPath>();
- List<Mailbox> mailboxes = mailboxSessionMapperFactory.getMailboxMapper(session).list();
- for (Mailbox m : mailboxes) {
- mList.add(m.generateAssociatedPath());
- }
- return Collections.unmodifiableList(mList);
-
+ return mailboxSessionMapperFactory.getMailboxMapper(session)
+ .list()
+ .stream()
+ .map(Mailbox::generateAssociatedPath)
+ .collect(Guavate.toImmutableList());
}
@Override
http://git-wip-us.apache.org/repos/asf/james-project/blob/cb0f621f/mailbox/store/src/main/java/org/apache/james/mailbox/store/StoreSubscriptionManager.java
----------------------------------------------------------------------
diff --git a/mailbox/store/src/main/java/org/apache/james/mailbox/store/StoreSubscriptionManager.java b/mailbox/store/src/main/java/org/apache/james/mailbox/store/StoreSubscriptionManager.java
index e611536..fb0c38c 100644
--- a/mailbox/store/src/main/java/org/apache/james/mailbox/store/StoreSubscriptionManager.java
+++ b/mailbox/store/src/main/java/org/apache/james/mailbox/store/StoreSubscriptionManager.java
@@ -20,7 +20,7 @@ package org.apache.james.mailbox.store;
import java.util.Collection;
import java.util.HashSet;
-import java.util.List;
+import java.util.stream.Collectors;
import javax.inject.Inject;
@@ -88,13 +88,11 @@ public class StoreSubscriptionManager implements SubscriptionManager {
* @see org.apache.james.mailbox.SubscriptionManager#subscriptions(org.apache.james.mailbox.MailboxSession)
*/
public Collection<String> subscriptions(MailboxSession session) throws SubscriptionException {
- final SubscriptionMapper mapper = mapperFactory.getSubscriptionMapper(session);
- final List<Subscription> subscriptions = mapper.findSubscriptionsForUser(session.getUser().getUserName());
- final Collection<String> results = new HashSet<String>(INITIAL_SIZE);
- for (Subscription subscription:subscriptions) {
- results.add(subscription.getMailbox());
- }
- return results;
+ return mapperFactory.getSubscriptionMapper(session)
+ .findSubscriptionsForUser(session.getUser().getUserName())
+ .stream()
+ .map(Subscription::getMailbox)
+ .collect(Collectors.toCollection(() -> new HashSet<>(INITIAL_SIZE)));
}
/**
http://git-wip-us.apache.org/repos/asf/james-project/blob/cb0f621f/mailbox/store/src/main/java/org/apache/james/mailbox/store/json/event/EventConverter.java
----------------------------------------------------------------------
diff --git a/mailbox/store/src/main/java/org/apache/james/mailbox/store/json/event/EventConverter.java b/mailbox/store/src/main/java/org/apache/james/mailbox/store/json/event/EventConverter.java
index 0621d55..6e47062 100644
--- a/mailbox/store/src/main/java/org/apache/james/mailbox/store/json/event/EventConverter.java
+++ b/mailbox/store/src/main/java/org/apache/james/mailbox/store/json/event/EventConverter.java
@@ -19,7 +19,6 @@
package org.apache.james.mailbox.store.json.event;
-import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@@ -46,6 +45,7 @@ import org.apache.james.mailbox.store.mail.model.MailboxMessage;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import com.github.steveash.guavate.Guavate;
import com.google.common.collect.ImmutableMap;
public class EventConverter {
@@ -150,10 +150,9 @@ public class EventConverter {
MailboxDataTransferObject mailboxIntermediate,
List<MessageUid> uids,
List<UpdatedFlags> updatedFlagsList) {
- ArrayList<UpdatedFlagsDataTransferObject> updatedFlagsDataTransferObjects = new ArrayList<UpdatedFlagsDataTransferObject>();
- for(UpdatedFlags updatedFlags : updatedFlagsList) {
- updatedFlagsDataTransferObjects.add(new UpdatedFlagsDataTransferObject(updatedFlags));
- }
+ List<UpdatedFlagsDataTransferObject> updatedFlagsDataTransferObjects = updatedFlagsList.stream()
+ .map(UpdatedFlagsDataTransferObject::new)
+ .collect(Guavate.toImmutableList());
return EventDataTransferObject.builder()
.type(EventType.FLAGS)
.session(new MailboxSessionDataTransferObject(session))
@@ -198,11 +197,9 @@ public class EventConverter {
}
private List<UpdatedFlags> retrieveUpdatedFlags(List<UpdatedFlagsDataTransferObject> updatedFlagsDataTransferObject) {
- List<UpdatedFlags> result = new ArrayList<UpdatedFlags>();
- for(UpdatedFlagsDataTransferObject proxy : updatedFlagsDataTransferObject) {
- result.add(proxy.retrieveUpdatedFlags());
- }
- return result;
+ return updatedFlagsDataTransferObject.stream()
+ .map(UpdatedFlagsDataTransferObject::retrieveUpdatedFlags)
+ .collect(Guavate.toImmutableList());
}
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/cb0f621f/mailbox/store/src/main/java/org/apache/james/mailbox/store/mail/model/impl/PropertyBuilder.java
----------------------------------------------------------------------
diff --git a/mailbox/store/src/main/java/org/apache/james/mailbox/store/mail/model/impl/PropertyBuilder.java b/mailbox/store/src/main/java/org/apache/james/mailbox/store/mail/model/impl/PropertyBuilder.java
index 2c88849..7d004c7 100644
--- a/mailbox/store/src/main/java/org/apache/james/mailbox/store/mail/model/impl/PropertyBuilder.java
+++ b/mailbox/store/src/main/java/org/apache/james/mailbox/store/mail/model/impl/PropertyBuilder.java
@@ -50,6 +50,7 @@ import java.util.TreeMap;
import org.apache.james.mailbox.store.mail.model.Property;
+import com.github.steveash.guavate.Guavate;
import com.google.common.base.Predicate;
/**
@@ -110,14 +111,11 @@ public class PropertyBuilder {
* or null when no property has the given name and namespace
*/
public String getFirstValue(String namespace, String localName) {
- String result = null;
- for (SimpleProperty property: properties) {
- if (property.isNamed(namespace, localName)) {
- result = property.getValue();
- break;
- }
- }
- return result;
+ return properties.stream()
+ .filter(property -> property.isNamed(namespace, localName))
+ .findFirst()
+ .map(SimpleProperty::getValue)
+ .orElse(null);
}
/**
@@ -127,13 +125,10 @@ public class PropertyBuilder {
* @return not null
*/
public List<String> getValues(String namespace, String localName) {
- List<String> results = new ArrayList<String>();
- for (SimpleProperty property: properties) {
- if (property.isNamed(namespace, localName)) {
- results.add(property.getValue());
- }
- }
- return results;
+ return properties.stream()
+ .filter(property -> property.isNamed(namespace, localName))
+ .map(SimpleProperty::getValue)
+ .collect(Guavate.toImmutableList());
}
/**
@@ -183,7 +178,7 @@ public class PropertyBuilder {
* @return values indexed by local name
*/
public SortedMap<String,String> getProperties(String namespace) {
- final SortedMap<String, String> parameters = new TreeMap<String, String>();
+ final SortedMap<String, String> parameters = new TreeMap<>();
for (SimpleProperty property : properties) {
if (property.isInSpace(namespace)) {
parameters.put(property.getLocalName(), property.getValue());
http://git-wip-us.apache.org/repos/asf/james-project/blob/cb0f621f/mailbox/store/src/main/java/org/apache/james/mailbox/store/search/MessageSearches.java
----------------------------------------------------------------------
diff --git a/mailbox/store/src/main/java/org/apache/james/mailbox/store/search/MessageSearches.java b/mailbox/store/src/main/java/org/apache/james/mailbox/store/search/MessageSearches.java
index 78fa9af..966814a 100644
--- a/mailbox/store/src/main/java/org/apache/james/mailbox/store/search/MessageSearches.java
+++ b/mailbox/store/src/main/java/org/apache/james/mailbox/store/search/MessageSearches.java
@@ -26,6 +26,7 @@ import java.io.InputStream;
import java.io.SequenceInputStream;
import java.io.StringReader;
import java.text.SimpleDateFormat;
+import java.util.Arrays;
import java.util.Calendar;
import java.util.Collection;
import java.util.Date;
@@ -358,12 +359,8 @@ public class MessageSearches implements Iterable<SimpleMessageSearchIndex.Search
SearchQuery.UidInOperator operator = criterion.getOperator();
UidRange[] ranges = operator.getRange();
MessageUid uid = message.getUid();
- for (UidRange numericRange : ranges) {
- if (numericRange.isIn(uid)) {
- return true;
- }
- }
- return false;
+ return Arrays.stream(ranges)
+ .anyMatch(numericRange -> numericRange.isIn(uid));
}
private boolean matches(SearchQuery.HeaderCriterion criterion, MailboxMessage message)
@@ -429,13 +426,9 @@ public class MessageSearches implements Iterable<SimpleMessageSearchIndex.Search
private boolean exists(String headerName, MailboxMessage message) throws MailboxException, IOException {
List<Header> headers = ResultUtils.createHeaders(message);
- for (Header header : headers) {
- String name = header.getName();
- if (headerName.equalsIgnoreCase(name)) {
- return true;
- }
- }
- return false;
+ return headers.stream()
+ .map(Header::getName)
+ .anyMatch(headerName::equalsIgnoreCase);
}
private boolean matches(SearchQuery.ContainsOperator operator, String headerName,
http://git-wip-us.apache.org/repos/asf/james-project/blob/cb0f621f/mailet/ai/src/main/java/org/apache/james/ai/classic/Tokenizer.java
----------------------------------------------------------------------
diff --git a/mailet/ai/src/main/java/org/apache/james/ai/classic/Tokenizer.java b/mailet/ai/src/main/java/org/apache/james/ai/classic/Tokenizer.java
index af268ad..d61957a 100644
--- a/mailet/ai/src/main/java/org/apache/james/ai/classic/Tokenizer.java
+++ b/mailet/ai/src/main/java/org/apache/james/ai/classic/Tokenizer.java
@@ -21,6 +21,7 @@ package org.apache.james.ai.classic;
import java.io.IOException;
import java.io.Reader;
+import java.util.stream.IntStream;
/**
* Tokenizes streaming mail input.
@@ -70,12 +71,8 @@ public abstract class Tokenizer {
protected abstract void next(String token);
private boolean allDigits(String s) {
- for (int i = 0; i < s.length(); i++) {
- if (!Character.isDigit(s.charAt(i))) {
- return false;
- }
- }
- return true;
+ return IntStream.range(0, s.length())
+ .allMatch(i -> Character.isDigit(s.charAt(i)));
}
private String nextToken(Reader reader) throws java.io.IOException {
http://git-wip-us.apache.org/repos/asf/james-project/blob/cb0f621f/mailet/base/src/main/java/org/apache/mailet/base/AutomaticallySentMailDetectorImpl.java
----------------------------------------------------------------------
diff --git a/mailet/base/src/main/java/org/apache/mailet/base/AutomaticallySentMailDetectorImpl.java b/mailet/base/src/main/java/org/apache/mailet/base/AutomaticallySentMailDetectorImpl.java
index cdf9e50..d95a061 100644
--- a/mailet/base/src/main/java/org/apache/mailet/base/AutomaticallySentMailDetectorImpl.java
+++ b/mailet/base/src/main/java/org/apache/mailet/base/AutomaticallySentMailDetectorImpl.java
@@ -23,6 +23,7 @@ import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
+import java.util.Arrays;
import javax.mail.MessagingException;
@@ -87,11 +88,8 @@ public class AutomaticallySentMailDetectorImpl implements AutomaticallySentMailD
public boolean isAutoSubmitted(Mail mail) throws MessagingException {
String[] headers = mail.getMessage().getHeader(AUTO_SUBMITTED_HEADER);
if (headers != null) {
- for (String header : headers) {
- if (header.equalsIgnoreCase(AUTO_REPLIED_VALUE)) {
- return true;
- }
- }
+ return Arrays.stream(headers)
+ .anyMatch(header -> header.equalsIgnoreCase(AUTO_REPLIED_VALUE));
}
return false;
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/cb0f621f/mailet/standard/src/main/java/org/apache/james/transport/matchers/HasHeader.java
----------------------------------------------------------------------
diff --git a/mailet/standard/src/main/java/org/apache/james/transport/matchers/HasHeader.java b/mailet/standard/src/main/java/org/apache/james/transport/matchers/HasHeader.java
index d982a61..1fe2108 100644
--- a/mailet/standard/src/main/java/org/apache/james/transport/matchers/HasHeader.java
+++ b/mailet/standard/src/main/java/org/apache/james/transport/matchers/HasHeader.java
@@ -20,6 +20,15 @@
package org.apache.james.transport.matchers;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.List;
+import java.util.StringTokenizer;
+
+import javax.mail.MessagingException;
+import javax.mail.internet.MimeMessage;
+
import org.apache.james.mime4j.codec.DecodeMonitor;
import org.apache.james.mime4j.codec.DecoderUtil;
import org.apache.james.mime4j.util.MimeUtil;
@@ -27,14 +36,6 @@ import org.apache.mailet.Mail;
import org.apache.mailet.MailAddress;
import org.apache.mailet.base.GenericMatcher;
-import javax.mail.MessagingException;
-import javax.mail.internet.MimeMessage;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.List;
-import java.util.StringTokenizer;
-
/**
* use: <pre><code><mailet match="HasHeader={<header>[=value]}+" class="..." /></code></pre>
* <p/>
@@ -83,11 +84,8 @@ public class HasHeader extends GenericMatcher {
public boolean isMatching(MimeMessage mimeMessage) throws MessagingException {
String[] headerArray = mimeMessage.getHeader(headerName);
if (headerArray != null && headerArray.length > 0) {
- for (String value : headerArray) {
- if (headerValue.equals(sanitizeHeaderField(value))) {
- return true;
- }
- }
+ return Arrays.stream(headerArray)
+ .anyMatch(value -> headerValue.equals(sanitizeHeaderField(value)));
}
return false;
}
@@ -96,7 +94,7 @@ public class HasHeader extends GenericMatcher {
private List<HeaderCondition> headerConditions;
public void init() throws MessagingException {
- headerConditions = new ArrayList<HeaderCondition>();
+ headerConditions = new ArrayList<>();
StringTokenizer conditionTokenizer = new StringTokenizer(getCondition(), CONDITION_SEPARATOR);
while (conditionTokenizer.hasMoreTokens()) {
headerConditions.add(parseHeaderCondition(conditionTokenizer.nextToken().trim()));
http://git-wip-us.apache.org/repos/asf/james-project/blob/cb0f621f/mpt/core/src/main/java/org/apache/james/mpt/helper/ScriptBuilder.java
----------------------------------------------------------------------
diff --git a/mpt/core/src/main/java/org/apache/james/mpt/helper/ScriptBuilder.java b/mpt/core/src/main/java/org/apache/james/mpt/helper/ScriptBuilder.java
index 589fac2..f431a29 100644
--- a/mpt/core/src/main/java/org/apache/james/mpt/helper/ScriptBuilder.java
+++ b/mpt/core/src/main/java/org/apache/james/mpt/helper/ScriptBuilder.java
@@ -28,6 +28,7 @@ import java.nio.channels.ReadableByteChannel;
import java.nio.channels.SocketChannel;
import java.nio.channels.WritableByteChannel;
import java.nio.charset.Charset;
+import java.util.Arrays;
import java.util.Locale;
import org.apache.commons.lang.StringUtils;
@@ -1459,13 +1460,8 @@ public class ScriptBuilder {
}
private boolean ignoreLine(String line) {
- boolean result = false;
- for (String entry : IGNORE_LINES_CONTAINING) {
- if (line.indexOf(entry) > 0) {
- result = true;
- break;
- }
- }
+ boolean result = Arrays.stream(IGNORE_LINES_CONTAINING)
+ .anyMatch(entry -> line.indexOf(entry) > 0);
for (int i = 0; i < IGNORE_LINES_STARTING_WITH.length && !result; i++) {
if (line.startsWith(IGNORE_LINES_STARTING_WITH[i])) {
result = true;
http://git-wip-us.apache.org/repos/asf/james-project/blob/cb0f621f/protocols/api/pom.xml
----------------------------------------------------------------------
diff --git a/protocols/api/pom.xml b/protocols/api/pom.xml
index 3d44414..8d0f0fd 100644
--- a/protocols/api/pom.xml
+++ b/protocols/api/pom.xml
@@ -39,6 +39,10 @@
<artifactId>guava</artifactId>
</dependency>
<dependency>
+ <groupId>com.github.steveash.guavate</groupId>
+ <artifactId>guavate</artifactId>
+ </dependency>
+ <dependency>
<groupId>commons-configuration</groupId>
<artifactId>commons-configuration</artifactId>
</dependency>
http://git-wip-us.apache.org/repos/asf/james-project/blob/cb0f621f/protocols/api/src/main/java/org/apache/james/protocols/api/handler/AbstractProtocolHandlerChain.java
----------------------------------------------------------------------
diff --git a/protocols/api/src/main/java/org/apache/james/protocols/api/handler/AbstractProtocolHandlerChain.java b/protocols/api/src/main/java/org/apache/james/protocols/api/handler/AbstractProtocolHandlerChain.java
index 146c3f6..23c1f08 100644
--- a/protocols/api/src/main/java/org/apache/james/protocols/api/handler/AbstractProtocolHandlerChain.java
+++ b/protocols/api/src/main/java/org/apache/james/protocols/api/handler/AbstractProtocolHandlerChain.java
@@ -20,6 +20,7 @@ package org.apache.james.protocols.api.handler;
import java.util.LinkedList;
import java.util.List;
+import java.util.stream.Collectors;
/**
@@ -41,14 +42,11 @@ public abstract class AbstractProtocolHandlerChain implements ProtocolHandlerCha
*/
@SuppressWarnings("unchecked")
public <T> LinkedList<T> getHandlers(Class<T> type) {
- LinkedList<T> result = new LinkedList<T>();
List<ProtocolHandler> handlers = getHandlers();
- for (ProtocolHandler handler : handlers) {
- if (type.isInstance(handler)) {
- result.add((T) handler);
- }
- }
- return result;
+ return handlers.stream()
+ .filter(type::isInstance)
+ .map(handler -> (T) handler)
+ .collect(Collectors.toCollection(LinkedList::new));
}
/**
http://git-wip-us.apache.org/repos/asf/james-project/blob/cb0f621f/protocols/api/src/main/java/org/apache/james/protocols/api/handler/ProtocolHandlerChainImpl.java
----------------------------------------------------------------------
diff --git a/protocols/api/src/main/java/org/apache/james/protocols/api/handler/ProtocolHandlerChainImpl.java b/protocols/api/src/main/java/org/apache/james/protocols/api/handler/ProtocolHandlerChainImpl.java
index 3ca9437..4eb4f8f 100644
--- a/protocols/api/src/main/java/org/apache/james/protocols/api/handler/ProtocolHandlerChainImpl.java
+++ b/protocols/api/src/main/java/org/apache/james/protocols/api/handler/ProtocolHandlerChainImpl.java
@@ -259,10 +259,7 @@ public class ProtocolHandlerChainImpl extends AbstractProtocolHandlerChain imple
* @see java.util.List#subList(int, int)
*/
public List<ProtocolHandler> subList(int fromIndex, int toIndex) {
- List<ProtocolHandler> sList = new ArrayList<ProtocolHandler>();
- for (Object handler : handlers.subList(fromIndex, toIndex)) {
- sList.add((ProtocolHandler) handler);
- }
+ List<ProtocolHandler> sList = new ArrayList<>(handlers.subList(fromIndex, toIndex));
if (readyOnly) {
return Collections.unmodifiableList(sList);
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/cb0f621f/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 039a01d..e19db8b 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
@@ -30,11 +30,14 @@ import java.util.Collections;
import java.util.List;
import java.util.UUID;
import java.util.concurrent.CountDownLatch;
+import java.util.stream.IntStream;
import org.apache.james.protocols.api.future.FutureResponseImpl;
import org.apache.james.protocols.api.handler.LineHandler;
import org.junit.Test;
+import com.github.steveash.guavate.Guavate;
+
/**
* Test-case for PROTOCOLS-62
*
@@ -45,11 +48,10 @@ public class AbstractProtocolTransportTest {
@Test
public void testWriteOrder() throws InterruptedException, UnsupportedEncodingException {
- final List<Response> messages = new ArrayList<Response>();
- for (int i = 0; i < 2000; i++) {
- messages.add(new TestResponse());
- }
-
+ final List<Response> messages = IntStream.range(0, 2000)
+ .mapToObj(i -> new TestResponse())
+ .collect(Guavate.toImmutableList());
+
checkWrittenResponses(messages);
}
@@ -67,22 +69,21 @@ public class AbstractProtocolTransportTest {
@Test
public void testWriteOrderFutureResponse() throws InterruptedException, UnsupportedEncodingException {
- final List<Response> messages = new ArrayList<Response>();
- for (int i = 0; i < 2000; i++) {
- messages.add(new FutureResponseImpl());
- }
- notifyFutureResponses(messages, false);
+ final List<Response> messages = IntStream.range(0, 2000)
+ .mapToObj(i -> new FutureResponseImpl())
+ .collect(Guavate.toImmutableList());
+ notifyFutureResponses(messages, false);
checkWrittenResponses(messages);
}
@Test
public void testWriteOrderFutureResponseReverseNotify() throws InterruptedException, UnsupportedEncodingException {
- final List<Response> messages = new ArrayList<Response>();
- for (int i = 0; i < 2000; i++) {
- messages.add(new FutureResponseImpl());
- }
+ final List<Response> messages = IntStream.range(0, 2000)
+ .mapToObj(i -> new FutureResponseImpl())
+ .collect(Guavate.toImmutableList());
+
notifyFutureResponses(messages, true);
checkWrittenResponses(messages);
http://git-wip-us.apache.org/repos/asf/james-project/blob/cb0f621f/protocols/imap/src/main/java/org/apache/james/imap/api/message/UidRange.java
----------------------------------------------------------------------
diff --git a/protocols/imap/src/main/java/org/apache/james/imap/api/message/UidRange.java b/protocols/imap/src/main/java/org/apache/james/imap/api/message/UidRange.java
index cf1455e..d972442 100644
--- a/protocols/imap/src/main/java/org/apache/james/imap/api/message/UidRange.java
+++ b/protocols/imap/src/main/java/org/apache/james/imap/api/message/UidRange.java
@@ -22,6 +22,7 @@ package org.apache.james.imap.api.message;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;
+import java.util.stream.Collectors;
import org.apache.james.mailbox.MessageUid;
import org.apache.james.mailbox.model.MessageRange;
@@ -80,11 +81,9 @@ public final class UidRange implements Iterable<MessageUid> {
private static LinkedList<UidRange> toUidRanges(List<Range<MessageUid>> mergedRanges) {
- LinkedList<UidRange> result = new LinkedList<UidRange>();
- for (Range<MessageUid> range: mergedRanges) {
- result.add(new UidRange(range.lowerEndpoint(), range.upperEndpoint()));
- }
- return result;
+ return mergedRanges.stream()
+ .map(range -> new UidRange(range.lowerEndpoint(), range.upperEndpoint()))
+ .collect(Collectors.toCollection(LinkedList::new));
}
private final MessageRange range;
http://git-wip-us.apache.org/repos/asf/james-project/blob/cb0f621f/protocols/imap/src/main/java/org/apache/james/imap/processor/SearchProcessor.java
----------------------------------------------------------------------
diff --git a/protocols/imap/src/main/java/org/apache/james/imap/processor/SearchProcessor.java b/protocols/imap/src/main/java/org/apache/james/imap/processor/SearchProcessor.java
index 2713d73..3d59941 100644
--- a/protocols/imap/src/main/java/org/apache/james/imap/processor/SearchProcessor.java
+++ b/protocols/imap/src/main/java/org/apache/james/imap/processor/SearchProcessor.java
@@ -134,7 +134,7 @@ public class SearchProcessor extends AbstractMailboxProcessor<SearchRequest> imp
for (long id : ids) {
idList.add(id);
}
-
+
List<IdRange> idsAsRanges = new ArrayList<IdRange>();
for (Long id: idList) {
idsAsRanges.add(new IdRange(id));
@@ -219,13 +219,7 @@ public class SearchProcessor extends AbstractMailboxProcessor<SearchRequest> imp
}
private long[] toArray(Collection<Long> results) {
- final Iterator<Long> it = results.iterator();
- final int length = results.size();
- long[] ids = new long[length];
- for (int i = 0; i < length; i++) {
- ids[i] = ((Long) it.next()).longValue();
- }
- return ids;
+ return results.stream().mapToLong(x -> x).toArray();
}
/**
http://git-wip-us.apache.org/repos/asf/james-project/blob/cb0f621f/protocols/imap/src/main/java/org/apache/james/imap/processor/fetch/MessageResultUtils.java
----------------------------------------------------------------------
diff --git a/protocols/imap/src/main/java/org/apache/james/imap/processor/fetch/MessageResultUtils.java b/protocols/imap/src/main/java/org/apache/james/imap/processor/fetch/MessageResultUtils.java
index 411f6dc..6c83560 100644
--- a/protocols/imap/src/main/java/org/apache/james/imap/processor/fetch/MessageResultUtils.java
+++ b/protocols/imap/src/main/java/org/apache/james/imap/processor/fetch/MessageResultUtils.java
@@ -20,6 +20,7 @@
package org.apache.james.imap.processor.fetch;
import java.util.ArrayList;
+import java.util.Arrays;
import java.util.Collection;
import java.util.Iterator;
import java.util.List;
@@ -70,11 +71,9 @@ public class MessageResultUtils {
MessageResult.Header header = iterator.next();
final String headerName = header.getName();
if (headerName != null) {
- for (String name : names) {
- if (headerName.equalsIgnoreCase(name)) {
- results.add(header);
- break;
- }
+ if (Arrays.stream(names)
+ .anyMatch(headerName::equalsIgnoreCase)) {
+ results.add(header);
}
}
}
@@ -114,17 +113,11 @@ public class MessageResultUtils {
}
private static boolean contains(Collection<String> names, MessageResult.Header header) throws MailboxException {
- boolean match = false;
final String headerName = header.getName();
if (headerName != null) {
- for (String name : names) {
- if (name.equalsIgnoreCase(headerName)) {
- match = true;
- break;
- }
- }
+ return names.stream().anyMatch(name -> name.equalsIgnoreCase(headerName));
}
- return match;
+ return false;
}
/**
@@ -189,13 +182,8 @@ public class MessageResultUtils {
MessageResult.Header header = iterator.next();
final String headerName = header.getName();
if (headerName != null) {
- boolean match = false;
- for (String name : names) {
- if (headerName.equalsIgnoreCase(name)) {
- match = true;
- break;
- }
- }
+ boolean match = Arrays.stream(names)
+ .anyMatch(headerName::equalsIgnoreCase);
if (!match) {
results.add(header);
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/cb0f621f/protocols/lmtp/src/test/java/org/apache/james/protocols/lmtp/AbstractLMTPSServerTest.java
----------------------------------------------------------------------
diff --git a/protocols/lmtp/src/test/java/org/apache/james/protocols/lmtp/AbstractLMTPSServerTest.java b/protocols/lmtp/src/test/java/org/apache/james/protocols/lmtp/AbstractLMTPSServerTest.java
index 7363969..96d7c34 100644
--- a/protocols/lmtp/src/test/java/org/apache/james/protocols/lmtp/AbstractLMTPSServerTest.java
+++ b/protocols/lmtp/src/test/java/org/apache/james/protocols/lmtp/AbstractLMTPSServerTest.java
@@ -93,13 +93,10 @@ public abstract class AbstractLMTPSServerTest extends AbstractLMTPServerTest{
for (int i = 0; i < rcptCount; i++) {
replies.add(getReply());
}
-
- for (int code: replies) {
- if (SMTPReply.isPositiveCompletion(code)) {
- return true;
- }
- }
- return false;
+
+ return replies.stream()
+ .mapToInt(code -> code)
+ .anyMatch(SMTPReply::isPositiveCompletion);
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/cb0f621f/protocols/lmtp/src/test/java/org/apache/james/protocols/lmtp/AbstractLMTPServerTest.java
----------------------------------------------------------------------
diff --git a/protocols/lmtp/src/test/java/org/apache/james/protocols/lmtp/AbstractLMTPServerTest.java b/protocols/lmtp/src/test/java/org/apache/james/protocols/lmtp/AbstractLMTPServerTest.java
index 333a961..6f7ceb3 100644
--- a/protocols/lmtp/src/test/java/org/apache/james/protocols/lmtp/AbstractLMTPServerTest.java
+++ b/protocols/lmtp/src/test/java/org/apache/james/protocols/lmtp/AbstractLMTPServerTest.java
@@ -301,13 +301,10 @@ public abstract class AbstractLMTPServerTest extends AbstractSMTPServerTest{
for (int i = 0; i < rcptCount; i++) {
replies.add(getReply());
}
-
- for (int code: replies) {
- if (SMTPReply.isPositiveCompletion(code)) {
- return true;
- }
- }
- return false;
+
+ return replies.stream()
+ .mapToInt(code -> code)
+ .anyMatch(SMTPReply::isPositiveCompletion);
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/cb0f621f/protocols/pom.xml
----------------------------------------------------------------------
diff --git a/protocols/pom.xml b/protocols/pom.xml
index 20ab218..02bb164 100644
--- a/protocols/pom.xml
+++ b/protocols/pom.xml
@@ -157,6 +157,11 @@
<version>${apache-commons-io.version}</version>
</dependency>
<dependency>
+ <groupId>com.github.steveash.guavate</groupId>
+ <artifactId>guavate</artifactId>
+ <version>1.0.0</version>
+ </dependency>
+ <dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>18.0</version>
http://git-wip-us.apache.org/repos/asf/james-project/blob/cb0f621f/protocols/pop3/src/main/java/org/apache/james/protocols/pop3/core/MessageMetaDataUtils.java
----------------------------------------------------------------------
diff --git a/protocols/pop3/src/main/java/org/apache/james/protocols/pop3/core/MessageMetaDataUtils.java b/protocols/pop3/src/main/java/org/apache/james/protocols/pop3/core/MessageMetaDataUtils.java
index 2b6add0..6f69806 100644
--- a/protocols/pop3/src/main/java/org/apache/james/protocols/pop3/core/MessageMetaDataUtils.java
+++ b/protocols/pop3/src/main/java/org/apache/james/protocols/pop3/core/MessageMetaDataUtils.java
@@ -20,6 +20,7 @@
package org.apache.james.protocols.pop3.core;
import java.util.List;
+import java.util.stream.IntStream;
import org.apache.james.protocols.api.ProtocolSession.State;
import org.apache.james.protocols.pop3.POP3Session;
@@ -56,12 +57,7 @@ public class MessageMetaDataUtils {
return false;
}
- for (int i = 0; i < uid.length(); i++) {
- if ((uid.charAt(i) >= 0x21 && uid.charAt(i) <= 0x7E) == false) {
- return false;
- }
- }
-
- return true;
+ return IntStream.range(0, uid.length())
+ .allMatch(i -> uid.charAt(i) >= 0x21 && uid.charAt(i) <= 0x7E);
}
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/cb0f621f/protocols/pop3/src/main/java/org/apache/james/protocols/pop3/mailbox/ImapMailbox.java
----------------------------------------------------------------------
diff --git a/protocols/pop3/src/main/java/org/apache/james/protocols/pop3/mailbox/ImapMailbox.java b/protocols/pop3/src/main/java/org/apache/james/protocols/pop3/mailbox/ImapMailbox.java
index 00c2195..5998e64 100644
--- a/protocols/pop3/src/main/java/org/apache/james/protocols/pop3/mailbox/ImapMailbox.java
+++ b/protocols/pop3/src/main/java/org/apache/james/protocols/pop3/mailbox/ImapMailbox.java
@@ -20,6 +20,7 @@ package org.apache.james.protocols.pop3.mailbox;
import java.io.IOException;
import java.io.InputStream;
+import java.util.Arrays;
/**
* An IMAP Mailbox adapter which is used in POP3 to retrieve messages
@@ -80,10 +81,9 @@ public abstract class ImapMailbox implements Mailbox {
public abstract void remove(long... uids) throws IOException;
public void remove(String... uids) throws NumberFormatException, IOException {
- long imapUids[] = new long[uids.length];
- for (int i = 0; i < uids.length; i++) {
- imapUids[i] = Long.parseLong(uids[i]);
- }
+ long imapUids[] = Arrays.stream(uids)
+ .mapToLong(Long::parseLong)
+ .toArray();
this.remove(imapUids);
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/cb0f621f/protocols/pop3/src/test/java/org/apache/james/protocols/pop3/AbstractStartTlsPOP3ServerTest.java
----------------------------------------------------------------------
diff --git a/protocols/pop3/src/test/java/org/apache/james/protocols/pop3/AbstractStartTlsPOP3ServerTest.java b/protocols/pop3/src/test/java/org/apache/james/protocols/pop3/AbstractStartTlsPOP3ServerTest.java
index e3fe5d3..128e388 100644
--- a/protocols/pop3/src/test/java/org/apache/james/protocols/pop3/AbstractStartTlsPOP3ServerTest.java
+++ b/protocols/pop3/src/test/java/org/apache/james/protocols/pop3/AbstractStartTlsPOP3ServerTest.java
@@ -22,6 +22,7 @@ import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
import java.net.InetSocketAddress;
+import java.util.Arrays;
import org.apache.commons.net.pop3.POP3Reply;
import org.apache.commons.net.pop3.POP3SClient;
@@ -78,13 +79,8 @@ public abstract class AbstractStartTlsPOP3ServerTest {
assertEquals(POP3Reply.OK, client.sendCommand("CAPA"));
client.getAdditionalReply();
- boolean startTlsCapa = false;
- for (String cap: client.getReplyStrings()) {
- if (cap.equalsIgnoreCase("STLS")) {
- startTlsCapa = true;
- break;
- }
- }
+ boolean startTlsCapa = Arrays.stream(client.getReplyStrings())
+ .anyMatch(cap -> cap.equalsIgnoreCase("STLS"));
assertTrue(startTlsCapa);
assertTrue(client.execTLS());
http://git-wip-us.apache.org/repos/asf/james-project/blob/cb0f621f/protocols/pop3/src/test/java/org/apache/james/protocols/pop3/utils/MockMailbox.java
----------------------------------------------------------------------
diff --git a/protocols/pop3/src/test/java/org/apache/james/protocols/pop3/utils/MockMailbox.java b/protocols/pop3/src/test/java/org/apache/james/protocols/pop3/utils/MockMailbox.java
index c2dbe27..308dac8 100644
--- a/protocols/pop3/src/test/java/org/apache/james/protocols/pop3/utils/MockMailbox.java
+++ b/protocols/pop3/src/test/java/org/apache/james/protocols/pop3/utils/MockMailbox.java
@@ -22,7 +22,6 @@ import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.SequenceInputStream;
-import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@@ -32,6 +31,8 @@ import org.apache.james.protocols.pop3.mailbox.ImapMailbox;
import org.apache.james.protocols.pop3.mailbox.ImapMessageMetaData;
import org.apache.james.protocols.pop3.mailbox.MessageMetaData;
+import com.github.steveash.guavate.Guavate;
+
@SuppressWarnings("deprecation")
public class MockMailbox extends ImapMailbox {
@@ -75,11 +76,10 @@ public class MockMailbox extends ImapMailbox {
}
public List<MessageMetaData> getMessages() throws IOException {
- List<MessageMetaData> meta = new ArrayList<MessageMetaData>();
- for (Message m: messages.values()) {
- meta.add(m.meta);
- }
- return meta;
+ return messages.values()
+ .stream()
+ .map(m -> m.meta)
+ .collect(Guavate.toImmutableList());
}
public void remove(long... uids) throws IOException {
http://git-wip-us.apache.org/repos/asf/james-project/blob/cb0f621f/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/SMTPProtocolHandlerChain.java
----------------------------------------------------------------------
diff --git a/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/SMTPProtocolHandlerChain.java b/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/SMTPProtocolHandlerChain.java
index 1f3faff..1fd0d8f 100644
--- a/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/SMTPProtocolHandlerChain.java
+++ b/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/SMTPProtocolHandlerChain.java
@@ -138,22 +138,12 @@ public class SMTPProtocolHandlerChain extends ProtocolHandlerChainImpl {
@Override
public boolean addAll(Collection<? extends ProtocolHandler> c) {
- for (ProtocolHandler handler: c) {
- if (!checkForAuth(handler)) {
- return false;
- }
- }
- return super.addAll(c);
+ return c.stream().allMatch(this::checkForAuth) && super.addAll(c);
}
@Override
public boolean addAll(int index, Collection<? extends ProtocolHandler> c) {
- for (ProtocolHandler handler: c) {
- if (!checkForAuth(handler)) {
- return false;
- }
- }
- return super.addAll(index, c);
+ return c.stream().allMatch(this::checkForAuth) && super.addAll(index, c);
}
@Override
http://git-wip-us.apache.org/repos/asf/james-project/blob/cb0f621f/protocols/smtp/src/test/java/org/apache/james/protocols/smtp/netty/NettyStartTlsSMTPServerTest.java
----------------------------------------------------------------------
diff --git a/protocols/smtp/src/test/java/org/apache/james/protocols/smtp/netty/NettyStartTlsSMTPServerTest.java b/protocols/smtp/src/test/java/org/apache/james/protocols/smtp/netty/NettyStartTlsSMTPServerTest.java
index a979e81..25e627e 100644
--- a/protocols/smtp/src/test/java/org/apache/james/protocols/smtp/netty/NettyStartTlsSMTPServerTest.java
+++ b/protocols/smtp/src/test/java/org/apache/james/protocols/smtp/netty/NettyStartTlsSMTPServerTest.java
@@ -22,6 +22,7 @@ import static org.assertj.core.api.Assertions.assertThat;
import java.net.InetSocketAddress;
import java.net.Socket;
+import java.util.Arrays;
import java.util.Locale;
import java.util.Properties;
@@ -148,12 +149,9 @@ public class NettyStartTlsSMTPServerTest {
}
public boolean isStartTLSAnnounced() {
- for (String reply: client.getReplyStrings()) {
- if (reply.toUpperCase(Locale.US).endsWith("STARTTLS")) {
- return true;
- }
- }
- return false;
+ return Arrays.stream(client.getReplyStrings())
+ .anyMatch(reply -> reply.toUpperCase(Locale.US)
+ .endsWith("STARTTLS"));
}
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/cb0f621f/server/container/cli/src/main/java/org/apache/james/cli/type/CmdType.java
----------------------------------------------------------------------
diff --git a/server/container/cli/src/main/java/org/apache/james/cli/type/CmdType.java b/server/container/cli/src/main/java/org/apache/james/cli/type/CmdType.java
index b94e0da..d3d0f74 100644
--- a/server/container/cli/src/main/java/org/apache/james/cli/type/CmdType.java
+++ b/server/container/cli/src/main/java/org/apache/james/cli/type/CmdType.java
@@ -18,6 +18,8 @@
****************************************************************/
package org.apache.james.cli.type;
+import java.util.Arrays;
+
/**
* Enumeration of valid command types.
*/
@@ -92,11 +94,10 @@ public enum CmdType {
*/
public static CmdType lookup(String command) {
if (command != null) {
- for (CmdType cmd : values()) {
- if (cmd.getCommand().equalsIgnoreCase(command)) {
- return cmd;
- }
- }
+ return Arrays.stream(values())
+ .filter(cmd -> cmd.getCommand().equalsIgnoreCase(command))
+ .findFirst()
+ .orElse(null);
}
return null;
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/cb0f621f/server/container/core/src/test/java/org/apache/james/core/MimeMessageWrapperTest.java
----------------------------------------------------------------------
diff --git a/server/container/core/src/test/java/org/apache/james/core/MimeMessageWrapperTest.java b/server/container/core/src/test/java/org/apache/james/core/MimeMessageWrapperTest.java
index 449eedc..2f06915 100644
--- a/server/container/core/src/test/java/org/apache/james/core/MimeMessageWrapperTest.java
+++ b/server/container/core/src/test/java/org/apache/james/core/MimeMessageWrapperTest.java
@@ -225,15 +225,9 @@ public class MimeMessageWrapperTest extends MimeMessageFromStreamTest {
mw.saveChanges();
BufferedReader reader = new BufferedReader(new InputStreamReader(mw.getMessageInputStream()));
- String line;
- boolean headerUpdated = false;
- while ((line = reader.readLine()) != null) {
- if (line.equals("X-Test: X-Value")) {
- headerUpdated = true;
- break;
- }
- }
+ boolean headerUpdated = reader.lines()
+ .anyMatch(line -> line.equals("X-Test: X-Value"));
reader.close();
assertTrue(headerUpdated);
}
@@ -250,15 +244,9 @@ public class MimeMessageWrapperTest extends MimeMessageFromStreamTest {
mw.saveChanges();
BufferedReader reader = new BufferedReader(new InputStreamReader(mw.getMessageInputStream()));
- String line;
- boolean contentUpdated = false;
- while ((line = reader.readLine()) != null) {
- if (line.equals(newContent)) {
- contentUpdated = true;
- break;
- }
- }
+ boolean contentUpdated = reader.lines()
+ .anyMatch(line -> line.equals(newContent));
reader.close();
assertTrue(contentUpdated);
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/cb0f621f/server/container/mailbox-adapter/src/main/java/org/apache/james/adapter/mailbox/MailboxManagerManagement.java
----------------------------------------------------------------------
diff --git a/server/container/mailbox-adapter/src/main/java/org/apache/james/adapter/mailbox/MailboxManagerManagement.java b/server/container/mailbox-adapter/src/main/java/org/apache/james/adapter/mailbox/MailboxManagerManagement.java
index 5f794a8..8afca6a 100644
--- a/server/container/mailbox-adapter/src/main/java/org/apache/james/adapter/mailbox/MailboxManagerManagement.java
+++ b/server/container/mailbox-adapter/src/main/java/org/apache/james/adapter/mailbox/MailboxManagerManagement.java
@@ -21,7 +21,6 @@ package org.apache.james.adapter.mailbox;
import java.io.FileInputStream;
import java.io.InputStream;
import java.util.ArrayList;
-import java.util.Collections;
import java.util.Date;
import java.util.List;
@@ -42,6 +41,7 @@ import org.apache.james.mailbox.model.MailboxPath;
import org.apache.james.mailbox.model.MailboxQuery;
import org.slf4j.Logger;
+import com.github.steveash.guavate.Guavate;
import com.google.common.base.Preconditions;
/**
@@ -107,10 +107,10 @@ public class MailboxManagerManagement extends StandardMBean implements MailboxMa
session = mailboxManager.createSystemSession(username, log);
mailboxManager.startProcessingRequest(session);
List<MailboxMetaData> mList = retrieveAllUserMailboxes(username, session);
- for (MailboxMetaData aMList : mList) {
- boxes.add(aMList.getPath().getName());
- }
- Collections.sort(boxes);
+ boxes = mList.stream()
+ .map(aMList -> aMList.getPath().getName())
+ .sorted()
+ .collect(Guavate.toImmutableList());
} catch (MailboxException e) {
log.error("Error list mailboxes for user " + username, e);
} finally {
http://git-wip-us.apache.org/repos/asf/james-project/blob/cb0f621f/server/container/util/src/main/java/org/apache/james/util/bayesian/BayesianAnalyzer.java
----------------------------------------------------------------------
diff --git a/server/container/util/src/main/java/org/apache/james/util/bayesian/BayesianAnalyzer.java b/server/container/util/src/main/java/org/apache/james/util/bayesian/BayesianAnalyzer.java
index fe2ebca..d775a75 100644
--- a/server/container/util/src/main/java/org/apache/james/util/bayesian/BayesianAnalyzer.java
+++ b/server/container/util/src/main/java/org/apache/james/util/bayesian/BayesianAnalyzer.java
@@ -31,6 +31,7 @@ import java.util.Map;
import java.util.Set;
import java.util.SortedSet;
import java.util.TreeSet;
+import java.util.stream.IntStream;
/**
* <p>
@@ -707,11 +708,7 @@ public class BayesianAnalyzer {
}
private boolean allDigits(String s) {
- for (int i = 0; i < s.length(); i++) {
- if (!Character.isDigit(s.charAt(i))) {
- return false;
- }
- }
- return true;
+ return IntStream.range(0, s.length())
+ .allMatch(i -> Character.isDigit(s.charAt(i)));
}
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/cb0f621f/server/data/data-file/src/main/java/org/apache/james/sieverepository/file/SieveFileRepository.java
----------------------------------------------------------------------
diff --git a/server/data/data-file/src/main/java/org/apache/james/sieverepository/file/SieveFileRepository.java b/server/data/data-file/src/main/java/org/apache/james/sieverepository/file/SieveFileRepository.java
index 60f5351..c6d315e 100644
--- a/server/data/data-file/src/main/java/org/apache/james/sieverepository/file/SieveFileRepository.java
+++ b/server/data/data-file/src/main/java/org/apache/james/sieverepository/file/SieveFileRepository.java
@@ -178,12 +178,10 @@ public class SieveFileRepository implements SieveRepository {
*/
@Override
public void haveSpace(String user, String name, long size) throws QuotaExceededException, StorageException {
- long usedSpace = 0;
- for (File file : getUserDirectory(user).listFiles()) {
- if (!(file.getName().equals(name) || SYSTEM_FILES.contains(file.getName()))) {
- usedSpace = usedSpace + file.length();
- }
- }
+ long usedSpace = Arrays.stream(getUserDirectory(user).listFiles())
+ .filter(file -> !(file.getName().equals(name) || SYSTEM_FILES.contains(file.getName())))
+ .mapToLong(File::length)
+ .sum();
long quota = Long.MAX_VALUE;
File file = getQuotaFile(user);
http://git-wip-us.apache.org/repos/asf/james-project/blob/cb0f621f/server/data/data-ldap/pom.xml
----------------------------------------------------------------------
diff --git a/server/data/data-ldap/pom.xml b/server/data/data-ldap/pom.xml
index da79b91..761680f 100644
--- a/server/data/data-ldap/pom.xml
+++ b/server/data/data-ldap/pom.xml
@@ -50,6 +50,10 @@
<artifactId>commons-configuration</artifactId>
</dependency>
<dependency>
+ <groupId>com.github.steveash.guavate</groupId>
+ <artifactId>guavate</artifactId>
+ </dependency>
+ <dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
</dependency>
http://git-wip-us.apache.org/repos/asf/james-project/blob/cb0f621f/server/data/data-ldap/src/main/java/org/apache/james/user/ldap/ReadOnlyUsersLDAPRepository.java
----------------------------------------------------------------------
diff --git a/server/data/data-ldap/src/main/java/org/apache/james/user/ldap/ReadOnlyUsersLDAPRepository.java b/server/data/data-ldap/src/main/java/org/apache/james/user/ldap/ReadOnlyUsersLDAPRepository.java
index e2007cb..f7f48ef 100644
--- a/server/data/data-ldap/src/main/java/org/apache/james/user/ldap/ReadOnlyUsersLDAPRepository.java
+++ b/server/data/data-ldap/src/main/java/org/apache/james/user/ldap/ReadOnlyUsersLDAPRepository.java
@@ -54,6 +54,7 @@ import org.apache.james.util.retry.naming.ldap.RetryingLdapContext;
import org.apache.mailet.MailAddress;
import org.slf4j.Logger;
+import com.github.steveash.guavate.Guavate;
import com.google.common.base.Optional;
/**
@@ -715,19 +716,17 @@ public class ReadOnlyUsersLDAPRepository implements UsersRepository, Configurabl
* @see UsersRepository#list()
*/
public Iterator<String> list() throws UsersRepositoryException {
- List<String> result = new ArrayList<String>();
try {
-
- for (ReadOnlyLDAPUser readOnlyLDAPUser : buildUserCollection(getValidUsers())) {
- result.add(readOnlyLDAPUser.getUserName());
- }
+ return buildUserCollection(getValidUsers())
+ .stream()
+ .map(ReadOnlyLDAPUser::getUserName)
+ .collect(Guavate.toImmutableList())
+ .iterator();
} catch (NamingException namingException) {
throw new UsersRepositoryException(
"Unable to retrieve users list from LDAP due to unknown naming error.",
namingException);
}
-
- return result.iterator();
}
private Collection<String> getValidUsers() throws NamingException {
http://git-wip-us.apache.org/repos/asf/james-project/blob/cb0f621f/server/data/data-library/pom.xml
----------------------------------------------------------------------
diff --git a/server/data/data-library/pom.xml b/server/data/data-library/pom.xml
index 1d33e2e..00c8c27 100644
--- a/server/data/data-library/pom.xml
+++ b/server/data/data-library/pom.xml
@@ -54,6 +54,10 @@
<artifactId>apache-mailet-api</artifactId>
</dependency>
<dependency>
+ <groupId>com.github.steveash.guavate</groupId>
+ <artifactId>guavate</artifactId>
+ </dependency>
+ <dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
</dependency>
http://git-wip-us.apache.org/repos/asf/james-project/blob/cb0f621f/server/data/data-library/src/main/java/org/apache/james/domainlist/lib/AbstractDomainList.java
----------------------------------------------------------------------
diff --git a/server/data/data-library/src/main/java/org/apache/james/domainlist/lib/AbstractDomainList.java b/server/data/data-library/src/main/java/org/apache/james/domainlist/lib/AbstractDomainList.java
index e238d4b..8c0a6e1 100644
--- a/server/data/data-library/src/main/java/org/apache/james/domainlist/lib/AbstractDomainList.java
+++ b/server/data/data-library/src/main/java/org/apache/james/domainlist/lib/AbstractDomainList.java
@@ -23,7 +23,6 @@ import java.net.InetAddress;
import java.net.UnknownHostException;
import java.util.ArrayList;
import java.util.Arrays;
-import java.util.Collection;
import java.util.List;
import java.util.Locale;
@@ -37,6 +36,7 @@ import org.apache.james.lifecycle.api.LogEnabled;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import com.github.steveash.guavate.Guavate;
import com.google.common.annotations.VisibleForTesting;
import com.google.common.base.Strings;
import com.google.common.base.Throwables;
@@ -211,38 +211,25 @@ public abstract class AbstractDomainList implements DomainList, LogEnabled, Conf
* @return domainIP List of ipaddress for domains
*/
private static List<String> getDomainsIP(List<String> domains, DNSService dns, Logger log) {
- List<String> domainIP = new ArrayList<String>();
- if (domains.size() > 0) {
- for (String domain : domains) {
- List<String> domList = getDomainIP(domain, dns, log);
-
- for (String aDomList : domList) {
- if (!domainIP.contains(aDomList)) {
- domainIP.add(aDomList);
- }
- }
- }
- }
- return domainIP;
+ return domains.stream()
+ .flatMap(domain -> getDomainIP(domain, dns, log).stream())
+ .distinct()
+ .collect(Guavate.toImmutableList());
}
/**
* @see #getDomainsIP(List, DNSService, Logger)
*/
private static List<String> getDomainIP(String domain, DNSService dns, Logger log) {
- List<String> domainIP = new ArrayList<String>();
try {
- Collection<InetAddress> addrs = dns.getAllByName(domain);
- for (InetAddress addr : addrs) {
- String ip = addr.getHostAddress();
- if (!domainIP.contains(ip)) {
- domainIP.add(ip);
- }
- }
+ return dns.getAllByName(domain).stream()
+ .map(InetAddress::getHostAddress)
+ .distinct()
+ .collect(Guavate.toImmutableList());
} catch (UnknownHostException e) {
log.error("Cannot get IP address(es) for " + domain);
+ return ImmutableList.of();
}
- return domainIP;
}
/**
http://git-wip-us.apache.org/repos/asf/james-project/blob/cb0f621f/server/data/data-library/src/main/java/org/apache/james/repository/file/AbstractFileRepository.java
----------------------------------------------------------------------
diff --git a/server/data/data-library/src/main/java/org/apache/james/repository/file/AbstractFileRepository.java b/server/data/data-library/src/main/java/org/apache/james/repository/file/AbstractFileRepository.java
index 3f6409e..2472fed 100644
--- a/server/data/data-library/src/main/java/org/apache/james/repository/file/AbstractFileRepository.java
+++ b/server/data/data-library/src/main/java/org/apache/james/repository/file/AbstractFileRepository.java
@@ -27,9 +27,8 @@ import java.io.FilenameFilter;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
-import java.util.ArrayList;
+import java.util.Arrays;
import java.util.Iterator;
-import java.util.List;
import javax.annotation.PostConstruct;
import javax.inject.Inject;
@@ -294,14 +293,10 @@ public abstract class AbstractFileRepository implements Repository, Configurable
public Iterator<String> list() {
final File storeDir = new File(m_baseDirectory.getAbsolutePath());
final String[] names = storeDir.list(m_filter);
- final List<String> list = new ArrayList<String>();
- for (String name : names) {
- String decoded = decode(name);
- list.add(decoded);
- }
-
- return list.iterator();
+ return Arrays.stream(names)
+ .map(this::decode)
+ .iterator();
}
/**
http://git-wip-us.apache.org/repos/asf/james-project/blob/cb0f621f/server/data/data-library/src/main/java/org/apache/james/repository/file/ExtensionFileFilter.java
----------------------------------------------------------------------
diff --git a/server/data/data-library/src/main/java/org/apache/james/repository/file/ExtensionFileFilter.java b/server/data/data-library/src/main/java/org/apache/james/repository/file/ExtensionFileFilter.java
index a5ab933..2820a4a 100644
--- a/server/data/data-library/src/main/java/org/apache/james/repository/file/ExtensionFileFilter.java
+++ b/server/data/data-library/src/main/java/org/apache/james/repository/file/ExtensionFileFilter.java
@@ -21,6 +21,7 @@ package org.apache.james.repository.file;
import java.io.File;
import java.io.FilenameFilter;
+import java.util.Arrays;
/**
* This filters files based on the extension (what the filename ends with). This
@@ -51,11 +52,6 @@ public class ExtensionFileFilter implements FilenameFilter {
}
public boolean accept(File file, String name) {
- for (String m_extension : m_extensions) {
- if (name.endsWith(m_extension)) {
- return true;
- }
- }
- return false;
+ return Arrays.stream(m_extensions).anyMatch(name::endsWith);
}
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/cb0f621f/server/mailet/mailetcontainer-camel/pom.xml
----------------------------------------------------------------------
diff --git a/server/mailet/mailetcontainer-camel/pom.xml b/server/mailet/mailetcontainer-camel/pom.xml
index 0ec7778..0d4c959 100644
--- a/server/mailet/mailetcontainer-camel/pom.xml
+++ b/server/mailet/mailetcontainer-camel/pom.xml
@@ -88,6 +88,10 @@
<artifactId>commons-configuration</artifactId>
</dependency>
<dependency>
+ <groupId>com.github.steveash.guavate</groupId>
+ <artifactId>guavate</artifactId>
+ </dependency>
+ <dependency>
<groupId>com.sun.mail</groupId>
<artifactId>javax.mail</artifactId>
</dependency>
http://git-wip-us.apache.org/repos/asf/james-project/blob/cb0f621f/server/mailet/mailetcontainer-camel/src/main/java/org/apache/james/mailetcontainer/lib/AbstractStateMailetProcessor.java
----------------------------------------------------------------------
diff --git a/server/mailet/mailetcontainer-camel/src/main/java/org/apache/james/mailetcontainer/lib/AbstractStateMailetProcessor.java b/server/mailet/mailetcontainer-camel/src/main/java/org/apache/james/mailetcontainer/lib/AbstractStateMailetProcessor.java
index 2086e40..7912568 100644
--- a/server/mailet/mailetcontainer-camel/src/main/java/org/apache/james/mailetcontainer/lib/AbstractStateMailetProcessor.java
+++ b/server/mailet/mailetcontainer-camel/src/main/java/org/apache/james/mailetcontainer/lib/AbstractStateMailetProcessor.java
@@ -54,6 +54,8 @@ import org.apache.mailet.base.GenericMailet;
import org.apache.mailet.base.MatcherInverter;
import org.slf4j.Logger;
+import com.github.steveash.guavate.Guavate;
+
/**
* Abstract base class for {@link MailProcessor} implementations which want to
* process {@link Mail} via {@link Matcher} and {@link Mailet}
@@ -179,11 +181,9 @@ public abstract class AbstractStateMailetProcessor implements MailProcessor, Con
* @return mailets
*/
public List<Mailet> getMailets() {
- List<Mailet> mailets = new ArrayList<Mailet>();
- for (MatcherMailetPair pair : pairs) {
- mailets.add(pair.getMailet());
- }
- return Collections.unmodifiableList(mailets);
+ return pairs.stream()
+ .map(MatcherMailetPair::getMailet)
+ .collect(Guavate.toImmutableList());
}
/**
@@ -192,11 +192,9 @@ public abstract class AbstractStateMailetProcessor implements MailProcessor, Con
* @return matchers
*/
public List<Matcher> getMatchers() {
- List<Matcher> matchers = new ArrayList<Matcher>();
- for (MatcherMailetPair pair : pairs) {
- matchers.add(pair.getMatcher());
- }
- return Collections.unmodifiableList(matchers);
+ return pairs.stream()
+ .map(MatcherMailetPair::getMatcher)
+ .collect(Guavate.toImmutableList());
}
public void addListener(MailetProcessorListener listener) {
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org