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 2018/06/14 08:35:22 UTC

[04/13] james-project git commit: JAMES-2418 Rely on Stream rather than on collections for getUrls

JAMES-2418 Rely on Stream rather than on collections for getUrls


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

Branch: refs/heads/master
Commit: 87b3b1850d5365240289887568505ff266e9aa23
Parents: fb4e7c6
Author: benwa <bt...@linagora.com>
Authored: Tue Jun 12 09:52:58 2018 +0700
Committer: benwa <bt...@linagora.com>
Committed: Thu Jun 14 15:16:59 2018 +0700

----------------------------------------------------------------------
 .../org/apache/james/utils/InMemoryMailRepositoryStore.java | 5 +++--
 .../org/apache/james/utils/MailRepositoryProbeImpl.java     | 4 +++-
 .../mailrepositorystore/MailRepositoryStoreBeanFactory.java | 6 +++---
 .../james/mailrepository/api/MailRepositoryStore.java       | 3 ++-
 .../james/mailrepository/api/MailRepositoryUrlStore.java    | 4 ++--
 .../cassandra/CassandraMailRepositoryUrlStore.java          | 9 +++------
 .../james/mailrepository/jpa/JPAMailRepositoryUrlStore.java | 9 +++------
 .../james/mailrepository/mock/MockMailRepositoryStore.java  | 7 +++----
 .../mailrepository/memory/MemoryMailRepositoryUrlStore.java | 6 +++---
 .../james/webadmin/service/MailRepositoryStoreService.java  | 1 -
 .../james/webadmin/routes/MailRepositoriesRoutesTest.java   | 7 +++++--
 .../webadmin/service/MailRepositoryStoreServiceTest.java    | 9 +++++----
 12 files changed, 35 insertions(+), 35 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/87b3b185/server/container/guice/guice-common/src/main/java/org/apache/james/utils/InMemoryMailRepositoryStore.java
----------------------------------------------------------------------
diff --git a/server/container/guice/guice-common/src/main/java/org/apache/james/utils/InMemoryMailRepositoryStore.java b/server/container/guice/guice-common/src/main/java/org/apache/james/utils/InMemoryMailRepositoryStore.java
index 6ec37a4..1d809f5 100644
--- a/server/container/guice/guice-common/src/main/java/org/apache/james/utils/InMemoryMailRepositoryStore.java
+++ b/server/container/guice/guice-common/src/main/java/org/apache/james/utils/InMemoryMailRepositoryStore.java
@@ -26,6 +26,7 @@ import java.util.Optional;
 import java.util.Set;
 import java.util.concurrent.ConcurrentHashMap;
 import java.util.concurrent.ConcurrentMap;
+import java.util.stream.Stream;
 
 import org.apache.commons.configuration.CombinedConfiguration;
 import org.apache.commons.configuration.ConfigurationException;
@@ -65,8 +66,8 @@ public class InMemoryMailRepositoryStore implements MailRepositoryStore, Configu
     }
 
     @Override
-    public List<MailRepositoryUrl> getUrls() {
-        return ImmutableList.copyOf(urlStore.list());
+    public Stream<MailRepositoryUrl> getUrls() {
+        return urlStore.list();
     }
 
     @Override

http://git-wip-us.apache.org/repos/asf/james-project/blob/87b3b185/server/container/guice/guice-common/src/main/java/org/apache/james/utils/MailRepositoryProbeImpl.java
----------------------------------------------------------------------
diff --git a/server/container/guice/guice-common/src/main/java/org/apache/james/utils/MailRepositoryProbeImpl.java b/server/container/guice/guice-common/src/main/java/org/apache/james/utils/MailRepositoryProbeImpl.java
index 71f7dec..b908450 100644
--- a/server/container/guice/guice-common/src/main/java/org/apache/james/utils/MailRepositoryProbeImpl.java
+++ b/server/container/guice/guice-common/src/main/java/org/apache/james/utils/MailRepositoryProbeImpl.java
@@ -27,6 +27,7 @@ import org.apache.james.mailrepository.api.MailKey;
 import org.apache.james.mailrepository.api.MailRepositoryStore;
 import org.apache.james.mailrepository.api.MailRepositoryUrl;
 
+import com.github.steveash.guavate.Guavate;
 import com.google.common.collect.ImmutableList;
 
 public class MailRepositoryProbeImpl implements GuiceProbe {
@@ -56,7 +57,8 @@ public class MailRepositoryProbeImpl implements GuiceProbe {
     }
 
     public List<MailRepositoryUrl> listRepositoryUrls() {
-        return ImmutableList.copyOf(repositoryStore.getUrls());
+        return repositoryStore.getUrls()
+            .collect(Guavate.toImmutableList());
     }
 
 }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/james-project/blob/87b3b185/server/container/spring/src/main/java/org/apache/james/container/spring/bean/factory/mailrepositorystore/MailRepositoryStoreBeanFactory.java
----------------------------------------------------------------------
diff --git a/server/container/spring/src/main/java/org/apache/james/container/spring/bean/factory/mailrepositorystore/MailRepositoryStoreBeanFactory.java b/server/container/spring/src/main/java/org/apache/james/container/spring/bean/factory/mailrepositorystore/MailRepositoryStoreBeanFactory.java
index b83af66..a05b3ca 100644
--- a/server/container/spring/src/main/java/org/apache/james/container/spring/bean/factory/mailrepositorystore/MailRepositoryStoreBeanFactory.java
+++ b/server/container/spring/src/main/java/org/apache/james/container/spring/bean/factory/mailrepositorystore/MailRepositoryStoreBeanFactory.java
@@ -18,11 +18,11 @@
  ****************************************************************/
 package org.apache.james.container.spring.bean.factory.mailrepositorystore;
 
-import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 import java.util.Optional;
+import java.util.stream.Stream;
 
 import javax.annotation.PostConstruct;
 
@@ -201,8 +201,8 @@ public class MailRepositoryStoreBeanFactory extends AbstractBeanFactory implemen
     }
 
     @Override
-    public synchronized List<MailRepositoryUrl> getUrls() {
-        return new ArrayList<>(repositories.keySet());
+    public synchronized Stream<MailRepositoryUrl> getUrls() {
+        return repositories.keySet().stream();
     }
 
 }

http://git-wip-us.apache.org/repos/asf/james-project/blob/87b3b185/server/data/data-api/src/main/java/org/apache/james/mailrepository/api/MailRepositoryStore.java
----------------------------------------------------------------------
diff --git a/server/data/data-api/src/main/java/org/apache/james/mailrepository/api/MailRepositoryStore.java b/server/data/data-api/src/main/java/org/apache/james/mailrepository/api/MailRepositoryStore.java
index e13c31c..1ae2b5d 100644
--- a/server/data/data-api/src/main/java/org/apache/james/mailrepository/api/MailRepositoryStore.java
+++ b/server/data/data-api/src/main/java/org/apache/james/mailrepository/api/MailRepositoryStore.java
@@ -21,6 +21,7 @@ package org.apache.james.mailrepository.api;
 
 import java.util.List;
 import java.util.Optional;
+import java.util.stream.Stream;
 
 public interface MailRepositoryStore {
 
@@ -53,7 +54,7 @@ public interface MailRepositoryStore {
      * 
      * @return urls
      */
-    List<MailRepositoryUrl> getUrls();
+    Stream<MailRepositoryUrl> getUrls();
 
     class MailRepositoryStoreException extends Exception {
         public MailRepositoryStoreException(String msg, Throwable t) {

http://git-wip-us.apache.org/repos/asf/james-project/blob/87b3b185/server/data/data-api/src/main/java/org/apache/james/mailrepository/api/MailRepositoryUrlStore.java
----------------------------------------------------------------------
diff --git a/server/data/data-api/src/main/java/org/apache/james/mailrepository/api/MailRepositoryUrlStore.java b/server/data/data-api/src/main/java/org/apache/james/mailrepository/api/MailRepositoryUrlStore.java
index d16232a..f30b332 100644
--- a/server/data/data-api/src/main/java/org/apache/james/mailrepository/api/MailRepositoryUrlStore.java
+++ b/server/data/data-api/src/main/java/org/apache/james/mailrepository/api/MailRepositoryUrlStore.java
@@ -19,13 +19,13 @@
 
 package org.apache.james.mailrepository.api;
 
-import java.util.Set;
+import java.util.stream.Stream;
 
 public interface MailRepositoryUrlStore {
 
     void add(MailRepositoryUrl url);
 
-    Set<MailRepositoryUrl> list();
+    Stream<MailRepositoryUrl> list();
 
     boolean contains(MailRepositoryUrl url);
 }

http://git-wip-us.apache.org/repos/asf/james-project/blob/87b3b185/server/data/data-cassandra/src/main/java/org/apache/james/mailrepository/cassandra/CassandraMailRepositoryUrlStore.java
----------------------------------------------------------------------
diff --git a/server/data/data-cassandra/src/main/java/org/apache/james/mailrepository/cassandra/CassandraMailRepositoryUrlStore.java b/server/data/data-cassandra/src/main/java/org/apache/james/mailrepository/cassandra/CassandraMailRepositoryUrlStore.java
index 65296fc..9d9fc02 100644
--- a/server/data/data-cassandra/src/main/java/org/apache/james/mailrepository/cassandra/CassandraMailRepositoryUrlStore.java
+++ b/server/data/data-cassandra/src/main/java/org/apache/james/mailrepository/cassandra/CassandraMailRepositoryUrlStore.java
@@ -19,15 +19,13 @@
 
 package org.apache.james.mailrepository.cassandra;
 
-import java.util.Set;
+import java.util.stream.Stream;
 
 import javax.inject.Inject;
 
 import org.apache.james.mailrepository.api.MailRepositoryUrl;
 import org.apache.james.mailrepository.api.MailRepositoryUrlStore;
 
-import com.github.steveash.guavate.Guavate;
-
 public class CassandraMailRepositoryUrlStore implements MailRepositoryUrlStore {
 
     private final UrlsDao urlsDao;
@@ -43,10 +41,9 @@ public class CassandraMailRepositoryUrlStore implements MailRepositoryUrlStore {
     }
 
     @Override
-    public Set<MailRepositoryUrl> list() {
+    public Stream<MailRepositoryUrl> list() {
         return urlsDao.retrieveUsedUrls()
-            .join()
-            .collect(Guavate.toImmutableSet());
+            .join();
     }
 
     @Override

http://git-wip-us.apache.org/repos/asf/james-project/blob/87b3b185/server/data/data-jpa/src/main/java/org/apache/james/mailrepository/jpa/JPAMailRepositoryUrlStore.java
----------------------------------------------------------------------
diff --git a/server/data/data-jpa/src/main/java/org/apache/james/mailrepository/jpa/JPAMailRepositoryUrlStore.java b/server/data/data-jpa/src/main/java/org/apache/james/mailrepository/jpa/JPAMailRepositoryUrlStore.java
index 576b774..068c4f6 100644
--- a/server/data/data-jpa/src/main/java/org/apache/james/mailrepository/jpa/JPAMailRepositoryUrlStore.java
+++ b/server/data/data-jpa/src/main/java/org/apache/james/mailrepository/jpa/JPAMailRepositoryUrlStore.java
@@ -19,7 +19,7 @@
 
 package org.apache.james.mailrepository.jpa;
 
-import java.util.Set;
+import java.util.stream.Stream;
 
 import javax.inject.Inject;
 import javax.persistence.EntityManagerFactory;
@@ -28,8 +28,6 @@ import org.apache.james.backends.jpa.TransactionRunner;
 import org.apache.james.mailrepository.api.MailRepositoryUrl;
 import org.apache.james.mailrepository.api.MailRepositoryUrlStore;
 
-import com.github.steveash.guavate.Guavate;
-
 public class JPAMailRepositoryUrlStore implements MailRepositoryUrlStore {
     private final TransactionRunner transactionRunner;
 
@@ -45,14 +43,13 @@ public class JPAMailRepositoryUrlStore implements MailRepositoryUrlStore {
     }
 
     @Override
-    public Set<MailRepositoryUrl> list() {
+    public Stream<MailRepositoryUrl> list() {
         return transactionRunner.runAndRetrieveResult(entityManager ->
             entityManager
                 .createNamedQuery("listUrls", JPAUrl.class)
                 .getResultList()
                 .stream()
-                .map(JPAUrl::toMailRepositoryUrl)
-                .collect(Guavate.toImmutableSet()));
+                .map(JPAUrl::toMailRepositoryUrl));
     }
 
     @Override

http://git-wip-us.apache.org/repos/asf/james-project/blob/87b3b185/server/data/data-library/src/test/java/org/apache/james/mailrepository/mock/MockMailRepositoryStore.java
----------------------------------------------------------------------
diff --git a/server/data/data-library/src/test/java/org/apache/james/mailrepository/mock/MockMailRepositoryStore.java b/server/data/data-library/src/test/java/org/apache/james/mailrepository/mock/MockMailRepositoryStore.java
index f232e43..dc3e1d9 100644
--- a/server/data/data-library/src/test/java/org/apache/james/mailrepository/mock/MockMailRepositoryStore.java
+++ b/server/data/data-library/src/test/java/org/apache/james/mailrepository/mock/MockMailRepositoryStore.java
@@ -19,11 +19,10 @@
 
 package org.apache.james.mailrepository.mock;
 
-import java.util.ArrayList;
 import java.util.HashMap;
-import java.util.List;
 import java.util.Map;
 import java.util.Optional;
+import java.util.stream.Stream;
 
 import org.apache.james.mailrepository.api.MailRepository;
 import org.apache.james.mailrepository.api.MailRepositoryStore;
@@ -48,8 +47,8 @@ public class MockMailRepositoryStore implements MailRepositoryStore {
     }
 
     @Override
-    public List<MailRepositoryUrl> getUrls() {
-        return new ArrayList<>(storedObjectMap.keySet());
+    public Stream<MailRepositoryUrl> getUrls() {
+        return storedObjectMap.keySet().stream();
     }
 
 }

http://git-wip-us.apache.org/repos/asf/james-project/blob/87b3b185/server/data/data-memory/src/main/java/org/apache/james/mailrepository/memory/MemoryMailRepositoryUrlStore.java
----------------------------------------------------------------------
diff --git a/server/data/data-memory/src/main/java/org/apache/james/mailrepository/memory/MemoryMailRepositoryUrlStore.java b/server/data/data-memory/src/main/java/org/apache/james/mailrepository/memory/MemoryMailRepositoryUrlStore.java
index c6ab960..130bd5d 100644
--- a/server/data/data-memory/src/main/java/org/apache/james/mailrepository/memory/MemoryMailRepositoryUrlStore.java
+++ b/server/data/data-memory/src/main/java/org/apache/james/mailrepository/memory/MemoryMailRepositoryUrlStore.java
@@ -20,11 +20,11 @@
 package org.apache.james.mailrepository.memory;
 
 import java.util.Set;
+import java.util.stream.Stream;
 
 import org.apache.james.mailrepository.api.MailRepositoryUrl;
 import org.apache.james.mailrepository.api.MailRepositoryUrlStore;
 
-import com.google.common.collect.ImmutableSet;
 import com.google.common.collect.Sets;
 
 public class MemoryMailRepositoryUrlStore implements MailRepositoryUrlStore {
@@ -40,8 +40,8 @@ public class MemoryMailRepositoryUrlStore implements MailRepositoryUrlStore {
     }
 
     @Override
-    public Set<MailRepositoryUrl> list() {
-        return ImmutableSet.copyOf(urls);
+    public Stream<MailRepositoryUrl> list() {
+        return urls.stream();
     }
 
     @Override

http://git-wip-us.apache.org/repos/asf/james-project/blob/87b3b185/server/protocols/webadmin/webadmin-mailrepository/src/main/java/org/apache/james/webadmin/service/MailRepositoryStoreService.java
----------------------------------------------------------------------
diff --git a/server/protocols/webadmin/webadmin-mailrepository/src/main/java/org/apache/james/webadmin/service/MailRepositoryStoreService.java b/server/protocols/webadmin/webadmin-mailrepository/src/main/java/org/apache/james/webadmin/service/MailRepositoryStoreService.java
index 7a0d691..d8e0e95 100644
--- a/server/protocols/webadmin/webadmin-mailrepository/src/main/java/org/apache/james/webadmin/service/MailRepositoryStoreService.java
+++ b/server/protocols/webadmin/webadmin-mailrepository/src/main/java/org/apache/james/webadmin/service/MailRepositoryStoreService.java
@@ -55,7 +55,6 @@ public class MailRepositoryStoreService {
 
     public List<MailRepositoryResponse> listMailRepositories() {
         return mailRepositoryStore.getUrls()
-            .stream()
             .map(MailRepositoryResponse::new)
             .collect(Guavate.toImmutableList());
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/87b3b185/server/protocols/webadmin/webadmin-mailrepository/src/test/java/org/apache/james/webadmin/routes/MailRepositoriesRoutesTest.java
----------------------------------------------------------------------
diff --git a/server/protocols/webadmin/webadmin-mailrepository/src/test/java/org/apache/james/webadmin/routes/MailRepositoriesRoutesTest.java b/server/protocols/webadmin/webadmin-mailrepository/src/test/java/org/apache/james/webadmin/routes/MailRepositoriesRoutesTest.java
index 73f8539..2fdcea3 100644
--- a/server/protocols/webadmin/webadmin-mailrepository/src/test/java/org/apache/james/webadmin/routes/MailRepositoriesRoutesTest.java
+++ b/server/protocols/webadmin/webadmin-mailrepository/src/test/java/org/apache/james/webadmin/routes/MailRepositoriesRoutesTest.java
@@ -42,6 +42,7 @@ import static org.mockito.Mockito.when;
 import java.nio.charset.StandardCharsets;
 import java.util.List;
 import java.util.Optional;
+import java.util.stream.Stream;
 
 import org.apache.james.mailrepository.api.MailKey;
 import org.apache.james.mailrepository.api.MailRepositoryStore;
@@ -170,6 +171,8 @@ public class MailRepositoriesRoutesTest {
 
     @Test
     public void getMailRepositoriesShouldReturnEmptyWhenEmpty() {
+        when(mailRepositoryStore.getUrls()).thenReturn(Stream.empty());
+
         List<Object> mailRepositories =
             when()
                 .get()
@@ -187,7 +190,7 @@ public class MailRepositoriesRoutesTest {
     @Test
     public void getMailRepositoriesShouldReturnRepositoryWhenOne() {
         when(mailRepositoryStore.getUrls())
-            .thenReturn(ImmutableList.of(URL_MY_REPO));
+            .thenReturn(Stream.of(URL_MY_REPO));
 
         when()
             .get()
@@ -202,7 +205,7 @@ public class MailRepositoriesRoutesTest {
     public void getMailRepositoriesShouldReturnTwoRepositoriesWhenTwo() {
         ImmutableList<MailRepositoryUrl> myRepositories = ImmutableList.of(URL_MY_REPO, MailRepositoryUrl.from("url://mySecondRepo"));
         when(mailRepositoryStore.getUrls())
-            .thenReturn(myRepositories);
+            .thenReturn(myRepositories.stream());
 
         List<String> mailRepositories =
             when()

http://git-wip-us.apache.org/repos/asf/james-project/blob/87b3b185/server/protocols/webadmin/webadmin-mailrepository/src/test/java/org/apache/james/webadmin/service/MailRepositoryStoreServiceTest.java
----------------------------------------------------------------------
diff --git a/server/protocols/webadmin/webadmin-mailrepository/src/test/java/org/apache/james/webadmin/service/MailRepositoryStoreServiceTest.java b/server/protocols/webadmin/webadmin-mailrepository/src/test/java/org/apache/james/webadmin/service/MailRepositoryStoreServiceTest.java
index 927c5136..b505244 100644
--- a/server/protocols/webadmin/webadmin-mailrepository/src/test/java/org/apache/james/webadmin/service/MailRepositoryStoreServiceTest.java
+++ b/server/protocols/webadmin/webadmin-mailrepository/src/test/java/org/apache/james/webadmin/service/MailRepositoryStoreServiceTest.java
@@ -25,6 +25,7 @@ import static org.mockito.Mockito.when;
 
 import java.nio.charset.StandardCharsets;
 import java.util.Optional;
+import java.util.stream.Stream;
 
 import javax.mail.internet.MimeMessage;
 
@@ -43,8 +44,6 @@ import org.apache.mailet.base.test.FakeMail;
 import org.junit.Before;
 import org.junit.Test;
 
-import com.google.common.collect.ImmutableList;
-
 public class MailRepositoryStoreServiceTest {
     private static final MailRepositoryUrl FIRST_REPOSITORY = MailRepositoryUrl.from("url://repository");
     private static final MailRepositoryUrl SECOND_REPOSITORY = MailRepositoryUrl.from("url://repository2");
@@ -64,13 +63,15 @@ public class MailRepositoryStoreServiceTest {
 
     @Test
     public void listMailRepositoriesShouldReturnEmptyWhenEmpty() {
+        when(mailRepositoryStore.getUrls()).thenReturn(Stream.empty());
+
         assertThat(testee.listMailRepositories()).isEmpty();
     }
 
     @Test
     public void listMailRepositoriesShouldReturnOneRepositoryWhenOne() {
         when(mailRepositoryStore.getUrls())
-            .thenReturn(ImmutableList.of(FIRST_REPOSITORY));
+            .thenReturn(Stream.of(FIRST_REPOSITORY));
         assertThat(testee.listMailRepositories())
             .extracting(MailRepositoryResponse::getRepository)
             .containsOnly(FIRST_REPOSITORY.asString());
@@ -79,7 +80,7 @@ public class MailRepositoryStoreServiceTest {
     @Test
     public void listMailRepositoriesShouldReturnTwoRepositoriesWhentwo() {
         when(mailRepositoryStore.getUrls())
-            .thenReturn(ImmutableList.of(FIRST_REPOSITORY, SECOND_REPOSITORY));
+            .thenReturn(Stream.of(FIRST_REPOSITORY, SECOND_REPOSITORY));
         assertThat(testee.listMailRepositories())
             .extracting(MailRepositoryResponse::getRepository)
             .containsOnly(FIRST_REPOSITORY.asString(), SECOND_REPOSITORY.asString());


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