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/07/06 09:27:27 UTC

[01/21] james-project git commit: JAMES-2455 GET forwards destination should not be impacted by other mappings

Repository: james-project
Updated Branches:
  refs/heads/master 9d023beae -> a35e7157f


JAMES-2455 GET forwards destination should not be impacted by other mappings


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

Branch: refs/heads/master
Commit: deea61d79134b504e7e9fa1550b46a356bed09f4
Parents: 9d023be
Author: benwa <bt...@linagora.com>
Authored: Thu Jul 5 10:03:27 2018 +0700
Committer: benwa <bt...@linagora.com>
Committed: Thu Jul 5 12:14:31 2018 +0700

----------------------------------------------------------------------
 .../james/webadmin/routes/ForwardRoutes.java    |  6 +--
 .../webadmin/routes/ForwardRoutesTest.java      | 41 ++++++++++++++++++++
 2 files changed, 44 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/deea61d7/server/protocols/webadmin/webadmin-data/src/main/java/org/apache/james/webadmin/routes/ForwardRoutes.java
----------------------------------------------------------------------
diff --git a/server/protocols/webadmin/webadmin-data/src/main/java/org/apache/james/webadmin/routes/ForwardRoutes.java b/server/protocols/webadmin/webadmin-data/src/main/java/org/apache/james/webadmin/routes/ForwardRoutes.java
index 8ea0ec0..20370d6 100644
--- a/server/protocols/webadmin/webadmin-data/src/main/java/org/apache/james/webadmin/routes/ForwardRoutes.java
+++ b/server/protocols/webadmin/webadmin-data/src/main/java/org/apache/james/webadmin/routes/ForwardRoutes.java
@@ -228,12 +228,12 @@ public class ForwardRoutes implements Routes {
     })
     public ImmutableSet<ForwardDestinationResponse> listForwardDestinations(Request request, Response response) throws RecipientRewriteTable.ErrorMappingException, RecipientRewriteTableException {
         MailAddress baseAddress = parseMailAddress(request.params(FORWARD_BASE_ADDRESS));
-        Mappings mappings = recipientRewriteTable.getMappings(baseAddress.getLocalPart(), baseAddress.getDomain());
+        Mappings mappings = recipientRewriteTable.getMappings(baseAddress.getLocalPart(), baseAddress.getDomain())
+            .select(Mapping.Type.Forward);
 
         ensureNonEmptyMappings(mappings);
 
-        return mappings.select(Mapping.Type.Forward)
-                .asStream()
+        return mappings.asStream()
                 .map(mapping -> mapping.asMailAddress()
                         .orElseThrow(() -> new IllegalStateException(String.format("Can not compute address for mapping %s", mapping.asString()))))
                 .map(MailAddress::asString)

http://git-wip-us.apache.org/repos/asf/james-project/blob/deea61d7/server/protocols/webadmin/webadmin-data/src/test/java/org/apache/james/webadmin/routes/ForwardRoutesTest.java
----------------------------------------------------------------------
diff --git a/server/protocols/webadmin/webadmin-data/src/test/java/org/apache/james/webadmin/routes/ForwardRoutesTest.java b/server/protocols/webadmin/webadmin-data/src/test/java/org/apache/james/webadmin/routes/ForwardRoutesTest.java
index 89d9ded..4767c55 100644
--- a/server/protocols/webadmin/webadmin-data/src/test/java/org/apache/james/webadmin/routes/ForwardRoutesTest.java
+++ b/server/protocols/webadmin/webadmin-data/src/test/java/org/apache/james/webadmin/routes/ForwardRoutesTest.java
@@ -44,6 +44,7 @@ import org.apache.james.domainlist.memory.MemoryDomainList;
 import org.apache.james.metrics.logger.DefaultMetricFactory;
 import org.apache.james.rrt.api.RecipientRewriteTable;
 import org.apache.james.rrt.api.RecipientRewriteTableException;
+import org.apache.james.rrt.lib.Mapping;
 import org.apache.james.rrt.lib.MappingSource;
 import org.apache.james.rrt.memory.MemoryRecipientRewriteTable;
 import org.apache.james.user.api.UsersRepository;
@@ -174,6 +175,46 @@ class ForwardRoutesTest {
         }
 
         @Test
+        void getForwardShouldReturnNotFoundWhenNonForwardMappings() {
+            memoryRecipientRewriteTable.addMapping(
+                MappingSource.fromDomain(DOMAIN),
+                Mapping.domain(Domain.of("target.tld")));
+
+            Map<String, Object> errors = when()
+                .get(ALICE)
+            .then()
+                .statusCode(HttpStatus.NOT_FOUND_404)
+                .contentType(ContentType.JSON)
+                .extract()
+                .body()
+                .jsonPath()
+                .getMap(".");
+
+            assertThat(errors)
+                .containsEntry("statusCode", HttpStatus.NOT_FOUND_404)
+                .containsEntry("type", "InvalidArgument")
+                .containsEntry("message", "The forward does not exist");
+        }
+
+        @Test
+        void getForwardShouldReturnNotFoundWhenNoForwardMappings() {
+            Map<String, Object> errors = when()
+                .get(ALICE)
+            .then()
+                .statusCode(HttpStatus.NOT_FOUND_404)
+                .contentType(ContentType.JSON)
+                .extract()
+                .body()
+                .jsonPath()
+                .getMap(".");
+
+            assertThat(errors)
+                .containsEntry("statusCode", HttpStatus.NOT_FOUND_404)
+                .containsEntry("type", "InvalidArgument")
+                .containsEntry("message", "The forward does not exist");
+        }
+
+        @Test
         void putUserInForwardShouldReturnNoContent() {
             when()
                 .put(ALICE + SEPARATOR + "targets" + SEPARATOR + BOB)


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


[04/21] james-project git commit: JAMES-2455 Avoid recursive resolution when getting group members

Posted by bt...@apache.org.
JAMES-2455 Avoid recursive resolution when getting group members

For instance if a forward destination have an other forward, the final forward was displayed,
and not the one I previously configured.

Forward destinations with other mappings might also be skept.


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

Branch: refs/heads/master
Commit: cc8b7547d609c9a605ba7495a21b93d6ae57df20
Parents: 161019d
Author: benwa <bt...@linagora.com>
Authored: Thu Jul 5 12:49:20 2018 +0700
Committer: benwa <bt...@linagora.com>
Committed: Thu Jul 5 12:55:22 2018 +0700

----------------------------------------------------------------------
 .../james/webadmin/routes/ForwardRoutes.java    |  6 +++--
 .../webadmin/routes/ForwardRoutesTest.java      | 23 +++++++++++++++++---
 2 files changed, 24 insertions(+), 5 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/cc8b7547/server/protocols/webadmin/webadmin-data/src/main/java/org/apache/james/webadmin/routes/ForwardRoutes.java
----------------------------------------------------------------------
diff --git a/server/protocols/webadmin/webadmin-data/src/main/java/org/apache/james/webadmin/routes/ForwardRoutes.java b/server/protocols/webadmin/webadmin-data/src/main/java/org/apache/james/webadmin/routes/ForwardRoutes.java
index 20370d6..086d4f0 100644
--- a/server/protocols/webadmin/webadmin-data/src/main/java/org/apache/james/webadmin/routes/ForwardRoutes.java
+++ b/server/protocols/webadmin/webadmin-data/src/main/java/org/apache/james/webadmin/routes/ForwardRoutes.java
@@ -47,6 +47,7 @@ import org.apache.james.rrt.api.RecipientRewriteTableException;
 import org.apache.james.rrt.lib.Mapping;
 import org.apache.james.rrt.lib.MappingSource;
 import org.apache.james.rrt.lib.Mappings;
+import org.apache.james.rrt.lib.MappingsImpl;
 import org.apache.james.user.api.UsersRepository;
 import org.apache.james.user.api.UsersRepositoryException;
 import org.apache.james.util.OptionalUtils;
@@ -226,9 +227,10 @@ public class ForwardRoutes implements Routes {
         @ApiResponse(code = HttpStatus.INTERNAL_SERVER_ERROR_500,
             message = "Internal server error - Something went bad on the server side.")
     })
-    public ImmutableSet<ForwardDestinationResponse> listForwardDestinations(Request request, Response response) throws RecipientRewriteTable.ErrorMappingException, RecipientRewriteTableException {
+    public ImmutableSet<ForwardDestinationResponse> listForwardDestinations(Request request, Response response) throws RecipientRewriteTableException {
         MailAddress baseAddress = parseMailAddress(request.params(FORWARD_BASE_ADDRESS));
-        Mappings mappings = recipientRewriteTable.getMappings(baseAddress.getLocalPart(), baseAddress.getDomain())
+        Mappings mappings = Optional.ofNullable(recipientRewriteTable.getUserDomainMappings(MappingSource.fromMailAddress(baseAddress)))
+            .orElse(MappingsImpl.empty())
             .select(Mapping.Type.Forward);
 
         ensureNonEmptyMappings(mappings);

http://git-wip-us.apache.org/repos/asf/james-project/blob/cc8b7547/server/protocols/webadmin/webadmin-data/src/test/java/org/apache/james/webadmin/routes/ForwardRoutesTest.java
----------------------------------------------------------------------
diff --git a/server/protocols/webadmin/webadmin-data/src/test/java/org/apache/james/webadmin/routes/ForwardRoutesTest.java b/server/protocols/webadmin/webadmin-data/src/test/java/org/apache/james/webadmin/routes/ForwardRoutesTest.java
index 4767c55..41fdb95 100644
--- a/server/protocols/webadmin/webadmin-data/src/test/java/org/apache/james/webadmin/routes/ForwardRoutesTest.java
+++ b/server/protocols/webadmin/webadmin-data/src/test/java/org/apache/james/webadmin/routes/ForwardRoutesTest.java
@@ -157,6 +157,23 @@ class ForwardRoutesTest {
         }
 
         @Test
+        void getShouldNotResolveRecurseForwards() {
+            with()
+                .put(ALICE + SEPARATOR + "targets" + SEPARATOR + BOB);
+
+            with()
+                .put(BOB + SEPARATOR + "targets" + SEPARATOR + CEDRIC);
+
+
+            when()
+                .get(ALICE)
+                .then()
+                .contentType(ContentType.JSON)
+                .statusCode(HttpStatus.OK_200)
+                .body("mailAddress", hasItems(BOB));
+        }
+
+        @Test
         void getNotRegisteredForwardShouldReturnNotFound() {
             Map<String, Object> errors = when()
                 .get("unknown@domain.travel")
@@ -683,7 +700,7 @@ class ForwardRoutesTest {
         void getShouldReturnErrorWhenRecipientRewriteTableExceptionIsThrown() throws Exception {
             doThrow(RecipientRewriteTableException.class)
                 .when(memoryRecipientRewriteTable)
-                .getMappings(anyString(), any());
+                .getUserDomainMappings(any());
 
             when()
                 .get(ALICE)
@@ -695,7 +712,7 @@ class ForwardRoutesTest {
         void getShouldReturnErrorWhenErrorMappingExceptionIsThrown() throws Exception {
             doThrow(RecipientRewriteTable.ErrorMappingException.class)
                 .when(memoryRecipientRewriteTable)
-                .getMappings(anyString(), any());
+                .getUserDomainMappings(any());
 
             when()
                 .get(ALICE)
@@ -707,7 +724,7 @@ class ForwardRoutesTest {
         void getShouldReturnErrorWhenRuntimeExceptionIsThrown() throws Exception {
             doThrow(RuntimeException.class)
                 .when(memoryRecipientRewriteTable)
-                .getMappings(anyString(), any());
+                .getUserDomainMappings(any());
 
             when()
                 .get(ALICE)


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


[02/21] james-project git commit: JAMES-2455 GET group members should not be impacted by other mappings

Posted by bt...@apache.org.
JAMES-2455 GET group members should not be impacted by other mappings


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

Branch: refs/heads/master
Commit: d79d4529c6f2236517d7a1cd4c9eeffe93450be6
Parents: deea61d
Author: benwa <bt...@linagora.com>
Authored: Thu Jul 5 10:03:57 2018 +0700
Committer: benwa <bt...@linagora.com>
Committed: Thu Jul 5 12:14:35 2018 +0700

----------------------------------------------------------------------
 .../james/webadmin/routes/GroupsRoutes.java     |  5 ++-
 .../james/webadmin/routes/GroupsRoutesTest.java | 41 ++++++++++++++++++++
 2 files changed, 44 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/d79d4529/server/protocols/webadmin/webadmin-data/src/main/java/org/apache/james/webadmin/routes/GroupsRoutes.java
----------------------------------------------------------------------
diff --git a/server/protocols/webadmin/webadmin-data/src/main/java/org/apache/james/webadmin/routes/GroupsRoutes.java b/server/protocols/webadmin/webadmin-data/src/main/java/org/apache/james/webadmin/routes/GroupsRoutes.java
index 85771f8..7f7a6ed 100644
--- a/server/protocols/webadmin/webadmin-data/src/main/java/org/apache/james/webadmin/routes/GroupsRoutes.java
+++ b/server/protocols/webadmin/webadmin-data/src/main/java/org/apache/james/webadmin/routes/GroupsRoutes.java
@@ -236,11 +236,12 @@ public class GroupsRoutes implements Routes {
     })
     public ImmutableSortedSet<String> listGroupMembers(Request request, Response response) throws RecipientRewriteTable.ErrorMappingException, RecipientRewriteTableException {
         MailAddress groupAddress = parseMailAddress(request.params(GROUP_ADDRESS));
-        Mappings mappings = recipientRewriteTable.getMappings(groupAddress.getLocalPart(), groupAddress.getDomain());
+        Mappings mappings = recipientRewriteTable.getMappings(groupAddress.getLocalPart(), groupAddress.getDomain())
+            .select(Mapping.Type.Group);
 
         ensureNonEmptyMappings(mappings);
 
-        return mappings.select(Mapping.Type.Group)
+        return mappings
                 .asStream()
                 .map(Mapping::asMailAddress)
                 .flatMap(OptionalUtils::toStream)

http://git-wip-us.apache.org/repos/asf/james-project/blob/d79d4529/server/protocols/webadmin/webadmin-data/src/test/java/org/apache/james/webadmin/routes/GroupsRoutesTest.java
----------------------------------------------------------------------
diff --git a/server/protocols/webadmin/webadmin-data/src/test/java/org/apache/james/webadmin/routes/GroupsRoutesTest.java b/server/protocols/webadmin/webadmin-data/src/test/java/org/apache/james/webadmin/routes/GroupsRoutesTest.java
index 5da0d8c..805aa43 100644
--- a/server/protocols/webadmin/webadmin-data/src/test/java/org/apache/james/webadmin/routes/GroupsRoutesTest.java
+++ b/server/protocols/webadmin/webadmin-data/src/test/java/org/apache/james/webadmin/routes/GroupsRoutesTest.java
@@ -41,6 +41,7 @@ import org.apache.james.domainlist.memory.MemoryDomainList;
 import org.apache.james.metrics.logger.DefaultMetricFactory;
 import org.apache.james.rrt.api.RecipientRewriteTable;
 import org.apache.james.rrt.api.RecipientRewriteTableException;
+import org.apache.james.rrt.lib.Mapping;
 import org.apache.james.rrt.lib.MappingSource;
 import org.apache.james.rrt.memory.MemoryRecipientRewriteTable;
 import org.apache.james.user.api.UsersRepository;
@@ -171,6 +172,46 @@ class GroupsRoutesTest {
         }
 
         @Test
+        void getGroupShouldReturnNotFoundWhenNonGroupMappings() {
+            memoryRecipientRewriteTable.addMapping(
+                MappingSource.fromDomain(DOMAIN),
+                Mapping.domain(Domain.of("target.tld")));
+
+            Map<String, Object> errors = when()
+                .get(GROUP1)
+            .then()
+                .statusCode(HttpStatus.NOT_FOUND_404)
+                .contentType(ContentType.JSON)
+                .extract()
+                .body()
+                .jsonPath()
+                .getMap(".");
+
+            assertThat(errors)
+                .containsEntry("statusCode", HttpStatus.NOT_FOUND_404)
+                .containsEntry("type", "InvalidArgument")
+                .containsEntry("message", "The group does not exist");
+        }
+
+        @Test
+        void getGroupShouldReturnNotFoundWhenNoGroupMappings() {
+            Map<String, Object> errors = when()
+                .get(GROUP1)
+            .then()
+                .statusCode(HttpStatus.NOT_FOUND_404)
+                .contentType(ContentType.JSON)
+                .extract()
+                .body()
+                .jsonPath()
+                .getMap(".");
+
+            assertThat(errors)
+                .containsEntry("statusCode", HttpStatus.NOT_FOUND_404)
+                .containsEntry("type", "InvalidArgument")
+                .containsEntry("message", "The group does not exist");
+        }
+
+        @Test
         void putUserInGroupShouldReturnNoContent() {
             when()
                 .put(GROUP1 + SEPARATOR + USER_A)


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


[03/21] james-project git commit: JAMES-2455 Fixing invalid log in RRTs

Posted by bt...@apache.org.
JAMES-2455 Fixing invalid log in RRTs


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

Branch: refs/heads/master
Commit: ca1208231b441a0ebaa1303989a48021e8710d3a
Parents: d79d452
Author: benwa <bt...@linagora.com>
Authored: Thu Jul 5 12:15:14 2018 +0700
Committer: benwa <bt...@linagora.com>
Committed: Thu Jul 5 12:15:14 2018 +0700

----------------------------------------------------------------------
 .../org/apache/james/rrt/lib/AbstractRecipientRewriteTable.java  | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/ca120823/server/data/data-library/src/main/java/org/apache/james/rrt/lib/AbstractRecipientRewriteTable.java
----------------------------------------------------------------------
diff --git a/server/data/data-library/src/main/java/org/apache/james/rrt/lib/AbstractRecipientRewriteTable.java b/server/data/data-library/src/main/java/org/apache/james/rrt/lib/AbstractRecipientRewriteTable.java
index 328de7a..7eefdcc 100644
--- a/server/data/data-library/src/main/java/org/apache/james/rrt/lib/AbstractRecipientRewriteTable.java
+++ b/server/data/data-library/src/main/java/org/apache/james/rrt/lib/AbstractRecipientRewriteTable.java
@@ -284,7 +284,7 @@ public abstract class AbstractRecipientRewriteTable implements RecipientRewriteT
         checkHasValidAddress(mapping);
         checkDuplicateMapping(source, mapping);
 
-        LOGGER.info("Add forward mapping => {} for source: {}", mapping, source.asString());
+        LOGGER.info("Add group mapping => {} for source: {}", mapping, source.asString());
         addMapping(source, mapping);
     }
 
@@ -293,7 +293,7 @@ public abstract class AbstractRecipientRewriteTable implements RecipientRewriteT
         Mapping mapping = Mapping.group(address)
             .appendDomainFromThrowingSupplierIfNone(this::defaultDomain);
 
-        LOGGER.info("Remove forward mapping => {} for source: {}", mapping, source.asString());
+        LOGGER.info("Remove group mapping => {} for source: {}", mapping, source.asString());
         removeMapping(source, mapping);
     }
 


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


[14/21] james-project git commit: MAILBOX-342 Simplify TestCassandraMailboxSessionMapperFactory

Posted by bt...@apache.org.
MAILBOX-342 Simplify TestCassandraMailboxSessionMapperFactory


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

Branch: refs/heads/master
Commit: 25b14fc632c3471fe5faf3cb0d5a338cb10ce70e
Parents: d6de402
Author: benwa <bt...@linagora.com>
Authored: Thu Jul 5 15:43:43 2018 +0700
Committer: benwa <bt...@linagora.com>
Committed: Fri Jul 6 16:25:50 2018 +0700

----------------------------------------------------------------------
 ...estCassandraMailboxSessionMapperFactory.java | 54 ++------------------
 .../cassandra/mail/utils/GuiceUtils.java        | 17 ++++--
 2 files changed, 16 insertions(+), 55 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/25b14fc6/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/TestCassandraMailboxSessionMapperFactory.java
----------------------------------------------------------------------
diff --git a/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/TestCassandraMailboxSessionMapperFactory.java b/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/TestCassandraMailboxSessionMapperFactory.java
index 61eb0c4..0c59550 100644
--- a/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/TestCassandraMailboxSessionMapperFactory.java
+++ b/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/TestCassandraMailboxSessionMapperFactory.java
@@ -21,29 +21,8 @@ package org.apache.james.mailbox.cassandra;
 
 import org.apache.james.backends.cassandra.init.CassandraTypesProvider;
 import org.apache.james.backends.cassandra.init.configuration.CassandraConfiguration;
-import org.apache.james.backends.cassandra.utils.CassandraUtils;
-import org.apache.james.blob.cassandra.CassandraBlobId;
-import org.apache.james.blob.cassandra.CassandraBlobsDAO;
 import org.apache.james.mailbox.cassandra.ids.CassandraMessageId;
-import org.apache.james.mailbox.cassandra.mail.CassandraACLMapper;
-import org.apache.james.mailbox.cassandra.mail.CassandraApplicableFlagDAO;
-import org.apache.james.mailbox.cassandra.mail.CassandraAttachmentDAO;
-import org.apache.james.mailbox.cassandra.mail.CassandraAttachmentDAOV2;
-import org.apache.james.mailbox.cassandra.mail.CassandraAttachmentMessageIdDAO;
-import org.apache.james.mailbox.cassandra.mail.CassandraAttachmentOwnerDAO;
-import org.apache.james.mailbox.cassandra.mail.CassandraDeletedMessageDAO;
-import org.apache.james.mailbox.cassandra.mail.CassandraFirstUnseenDAO;
-import org.apache.james.mailbox.cassandra.mail.CassandraMailboxCounterDAO;
-import org.apache.james.mailbox.cassandra.mail.CassandraMailboxDAO;
-import org.apache.james.mailbox.cassandra.mail.CassandraMailboxPathDAOImpl;
-import org.apache.james.mailbox.cassandra.mail.CassandraMailboxPathV2DAO;
-import org.apache.james.mailbox.cassandra.mail.CassandraMailboxRecentsDAO;
-import org.apache.james.mailbox.cassandra.mail.CassandraMessageDAO;
-import org.apache.james.mailbox.cassandra.mail.CassandraMessageIdDAO;
-import org.apache.james.mailbox.cassandra.mail.CassandraMessageIdToImapUidDAO;
-import org.apache.james.mailbox.cassandra.mail.CassandraModSeqProvider;
-import org.apache.james.mailbox.cassandra.mail.CassandraUidProvider;
-import org.apache.james.mailbox.cassandra.mail.CassandraUserMailboxRightsDAO;
+import org.apache.james.mailbox.cassandra.mail.utils.GuiceUtils;
 
 import com.datastax.driver.core.Session;
 
@@ -57,35 +36,8 @@ public class TestCassandraMailboxSessionMapperFactory {
     public static CassandraMailboxSessionMapperFactory forTests(Session session, CassandraTypesProvider typesProvider,
                                                                 CassandraMessageId.Factory factory, CassandraConfiguration cassandraConfiguration) {
 
-        CassandraUtils utils = new CassandraUtils(cassandraConfiguration);
-        CassandraBlobsDAO cassandraBlobsDAO = new CassandraBlobsDAO(session);
-        CassandraBlobId.Factory blobIdFactory = new CassandraBlobId.Factory();
-
-        return new CassandraMailboxSessionMapperFactory(
-            new CassandraUidProvider(session),
-            new CassandraModSeqProvider(session),
-            session,
-            new CassandraMessageDAO(session, typesProvider, cassandraBlobsDAO, blobIdFactory, utils, factory),
-            new CassandraMessageIdDAO(session, factory),
-            new CassandraMessageIdToImapUidDAO(session, factory),
-            new CassandraMailboxCounterDAO(session),
-            new CassandraMailboxRecentsDAO(session),
-            new CassandraMailboxDAO(session, typesProvider),
-            new CassandraMailboxPathDAOImpl(session, typesProvider),
-            new CassandraMailboxPathV2DAO(session, CassandraUtils.WITH_DEFAULT_CONFIGURATION),
-            new CassandraFirstUnseenDAO(session),
-            new CassandraApplicableFlagDAO(session),
-            new CassandraAttachmentDAO(session, utils, cassandraConfiguration),
-            new CassandraAttachmentDAOV2(blobIdFactory, session),
-            new CassandraDeletedMessageDAO(session),
-            cassandraBlobsDAO, new CassandraAttachmentMessageIdDAO(session, factory, utils),
-            new CassandraAttachmentOwnerDAO(session, utils),
-            new CassandraACLMapper(session,
-                new CassandraUserMailboxRightsDAO(session, utils),
-                cassandraConfiguration),
-            new CassandraUserMailboxRightsDAO(session, utils),
-            utils,
-            cassandraConfiguration);
+        return GuiceUtils.testInjector(session, typesProvider, factory, cassandraConfiguration)
+            .getInstance(CassandraMailboxSessionMapperFactory.class);
     }
 
 }

http://git-wip-us.apache.org/repos/asf/james-project/blob/25b14fc6/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/utils/GuiceUtils.java
----------------------------------------------------------------------
diff --git a/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/utils/GuiceUtils.java b/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/utils/GuiceUtils.java
index 31dc895..8a1ee7a 100644
--- a/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/utils/GuiceUtils.java
+++ b/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/utils/GuiceUtils.java
@@ -36,13 +36,22 @@ import com.google.inject.util.Modules;
 
 public class GuiceUtils {
     public static Injector testInjector(CassandraCluster cluster) {
+        Session session = cluster.getConf();
+        CassandraTypesProvider typesProvider = cluster.getTypesProvider();
+        CassandraMessageId.Factory messageIdFactory = new CassandraMessageId.Factory();
+        CassandraConfiguration configuration = CassandraConfiguration.DEFAULT_CONFIGURATION;
+
+        return testInjector(session, typesProvider, messageIdFactory, configuration);
+    }
+
+    public static Injector testInjector(Session session, CassandraTypesProvider typesProvider, CassandraMessageId.Factory messageIdFactory, CassandraConfiguration configuration) {
         return Guice.createInjector(
             Modules.combine(
-                binder -> binder.bind(MessageId.Factory.class).toInstance(new CassandraMessageId.Factory()),
+                binder -> binder.bind(MessageId.Factory.class).toInstance(messageIdFactory),
                 binder -> binder.bind(BlobId.Factory.class).toInstance(new CassandraBlobId.Factory()),
                 binder -> binder.bind(ObjectStore.class).to(CassandraBlobsDAO.class),
-                binder -> binder.bind(Session.class).toInstance(cluster.getConf()),
-                binder -> binder.bind(CassandraTypesProvider.class).toInstance(cluster.getTypesProvider()),
-                binder -> binder.bind(CassandraConfiguration.class).toInstance(CassandraConfiguration.DEFAULT_CONFIGURATION)));
+                binder -> binder.bind(Session.class).toInstance(session),
+                binder -> binder.bind(CassandraTypesProvider.class).toInstance(typesProvider),
+                binder -> binder.bind(CassandraConfiguration.class).toInstance(configuration)));
     }
 }


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


[13/21] james-project git commit: MAILBOX-342 Simplify yet a bit more CassandraSubscriptionManagerTest

Posted by bt...@apache.org.
MAILBOX-342 Simplify yet a bit more CassandraSubscriptionManagerTest


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

Branch: refs/heads/master
Commit: a0cab7657a2a6729a1ce5280e1ad09ace0a9ff28
Parents: b0bf0e4
Author: benwa <bt...@linagora.com>
Authored: Thu Jul 5 11:22:32 2018 +0700
Committer: benwa <bt...@linagora.com>
Committed: Fri Jul 6 16:25:50 2018 +0700

----------------------------------------------------------------------
 .../cassandra/CassandraSubscriptionManagerTest.java   | 14 ++++++--------
 1 file changed, 6 insertions(+), 8 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/a0cab765/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/CassandraSubscriptionManagerTest.java
----------------------------------------------------------------------
diff --git a/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/CassandraSubscriptionManagerTest.java b/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/CassandraSubscriptionManagerTest.java
index 4a41d49..2835838 100644
--- a/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/CassandraSubscriptionManagerTest.java
+++ b/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/CassandraSubscriptionManagerTest.java
@@ -47,9 +47,7 @@ import org.apache.james.mailbox.cassandra.mail.CassandraModSeqProvider;
 import org.apache.james.mailbox.cassandra.mail.CassandraUidProvider;
 import org.apache.james.mailbox.cassandra.mail.CassandraUserMailboxRightsDAO;
 import org.apache.james.mailbox.cassandra.modules.CassandraMailboxCounterModule;
-import org.apache.james.mailbox.cassandra.modules.CassandraModSeqModule;
 import org.apache.james.mailbox.cassandra.modules.CassandraSubscriptionModule;
-import org.apache.james.mailbox.cassandra.modules.CassandraUidModule;
 import org.apache.james.mailbox.exception.SubscriptionException;
 import org.junit.After;
 import org.junit.Before;
@@ -68,10 +66,8 @@ public class CassandraSubscriptionManagerTest extends AbstractSubscriptionManage
     public void init() {
         CassandraModuleComposite modules = new CassandraModuleComposite(
             new CassandraSubscriptionModule(),
-            new CassandraMailboxCounterModule(),
-            new CassandraUidModule(),
-            new CassandraModSeqModule());
-        cassandra = CassandraCluster.create(modules, cassandraServer.getIp(), cassandraServer.getBindingPort());
+            new CassandraMailboxCounterModule());
+        cassandra = CassandraCluster.create(modules, cassandraServer.getHost());
         super.setup();
     }
 
@@ -101,10 +97,12 @@ public class CassandraSubscriptionManagerTest extends AbstractSubscriptionManage
         CassandraACLMapper aclMapper = null;
         CassandraUserMailboxRightsDAO userMailboxRightsDAO = null;
         ObjectStore objectStore = null;
+        CassandraUidProvider uidProvider = null;
+        CassandraModSeqProvider modSeqProvider = null;
         return new CassandraSubscriptionManager(
             new CassandraMailboxSessionMapperFactory(
-                new CassandraUidProvider(cassandra.getConf()),
-                new CassandraModSeqProvider(cassandra.getConf()),
+                uidProvider,
+                modSeqProvider,
                 cassandra.getConf(),
                 messageDAO,
                 messageIdDAO,


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


[17/21] james-project git commit: MAILBOX-342 Simplify CassandraPerUserMaxQuotaManagerTest

Posted by bt...@apache.org.
MAILBOX-342 Simplify CassandraPerUserMaxQuotaManagerTest


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

Branch: refs/heads/master
Commit: e9ff0dcea200ab9891be5650323b86a167c50c74
Parents: 93a122d
Author: benwa <bt...@linagora.com>
Authored: Thu Jul 5 16:44:21 2018 +0700
Committer: benwa <bt...@linagora.com>
Committed: Fri Jul 6 16:25:51 2018 +0700

----------------------------------------------------------------------
 .../cassandra/quota/CassandraPerUserMaxQuotaManagerTest.java  | 7 +++----
 1 file changed, 3 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/e9ff0dce/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/quota/CassandraPerUserMaxQuotaManagerTest.java
----------------------------------------------------------------------
diff --git a/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/quota/CassandraPerUserMaxQuotaManagerTest.java b/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/quota/CassandraPerUserMaxQuotaManagerTest.java
index 57fec83..0ffb069 100644
--- a/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/quota/CassandraPerUserMaxQuotaManagerTest.java
+++ b/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/quota/CassandraPerUserMaxQuotaManagerTest.java
@@ -21,6 +21,7 @@ package org.apache.james.mailbox.cassandra.quota;
 
 import org.apache.james.backends.cassandra.CassandraCluster;
 import org.apache.james.backends.cassandra.DockerCassandraRule;
+import org.apache.james.mailbox.cassandra.mail.utils.GuiceUtils;
 import org.apache.james.mailbox.cassandra.modules.CassandraQuotaModule;
 import org.apache.james.mailbox.quota.MaxQuotaManager;
 import org.apache.james.mailbox.store.quota.GenericMaxQuotaManagerTest;
@@ -36,10 +37,8 @@ public class CassandraPerUserMaxQuotaManagerTest extends GenericMaxQuotaManagerT
     @Override
     protected MaxQuotaManager provideMaxQuotaManager() {
         cassandra = CassandraCluster.create(new CassandraQuotaModule(), cassandraServer.getIp(), cassandraServer.getBindingPort());
-        return new CassandraPerUserMaxQuotaManager(
-            new CassandraPerUserMaxQuotaDao(cassandra.getConf()),
-            new CassandraPerDomainMaxQuotaDao(cassandra.getConf()),
-            new CassandraGlobalMaxQuotaDao(cassandra.getConf()));
+        return GuiceUtils.testInjector(cassandra)
+            .getInstance(CassandraPerUserMaxQuotaManager.class);
     }
 
     @After


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


[06/21] james-project git commit: JAMES-2247 Increase poll delay where needed for stability

Posted by bt...@apache.org.
JAMES-2247 Increase poll delay where needed for stability


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

Branch: refs/heads/master
Commit: 4ba29b35779a66164c76130f72a838286a3a5f1b
Parents: cc8b754
Author: benwa <bt...@linagora.com>
Authored: Fri Jul 6 11:47:45 2018 +0700
Committer: benwa <bt...@linagora.com>
Committed: Fri Jul 6 13:31:09 2018 +0700

----------------------------------------------------------------------
 .../integration/ForwardIntegrationTest.java     | 21 +++++++++++++++-----
 .../integration/SetMessagesMethodTest.java      |  5 ++++-
 2 files changed, 20 insertions(+), 6 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/4ba29b35/server/protocols/jmap-integration-testing/jmap-integration-testing-common/src/test/java/org/apache/james/jmap/methods/integration/ForwardIntegrationTest.java
----------------------------------------------------------------------
diff --git a/server/protocols/jmap-integration-testing/jmap-integration-testing-common/src/test/java/org/apache/james/jmap/methods/integration/ForwardIntegrationTest.java b/server/protocols/jmap-integration-testing/jmap-integration-testing-common/src/test/java/org/apache/james/jmap/methods/integration/ForwardIntegrationTest.java
index 1b5550f..d91876a 100644
--- a/server/protocols/jmap-integration-testing/jmap-integration-testing-common/src/test/java/org/apache/james/jmap/methods/integration/ForwardIntegrationTest.java
+++ b/server/protocols/jmap-integration-testing/jmap-integration-testing-common/src/test/java/org/apache/james/jmap/methods/integration/ForwardIntegrationTest.java
@@ -55,6 +55,7 @@ import org.junit.Before;
 import org.junit.Rule;
 import org.junit.Test;
 
+import com.jayway.awaitility.Duration;
 import com.jayway.restassured.RestAssured;
 import com.jayway.restassured.specification.RequestSpecification;
 
@@ -126,7 +127,9 @@ public abstract class ForwardIntegrationTest {
         .post("/jmap");
 
         AccessToken bobAccessToken = authenticateJamesUser(baseUri(jmapServer), BOB, BOB_PASSWORD);
-        calmlyAwait.atMost(30, TimeUnit.SECONDS).until(() -> isAnyMessageFoundInRecipientsMailboxes(bobAccessToken));
+        calmlyAwait
+            .pollDelay(Duration.FIVE_HUNDRED_MILLISECONDS)
+            .atMost(30, TimeUnit.SECONDS).until(() -> isAnyMessageFoundInRecipientsMailboxes(bobAccessToken));
         given()
             .header("Authorization", bobAccessToken.serialize())
             .body("[[\"getMessageList\", {}, \"#0\"]]")
@@ -173,7 +176,9 @@ public abstract class ForwardIntegrationTest {
         .post("/jmap");
 
         AccessToken bobAccessToken = authenticateJamesUser(baseUri(jmapServer), BOB, BOB_PASSWORD);
-        calmlyAwait.atMost(30, TimeUnit.SECONDS).until(() -> isAnyMessageFoundInRecipientsMailboxes(bobAccessToken));
+        calmlyAwait
+            .pollDelay(Duration.FIVE_HUNDRED_MILLISECONDS)
+            .atMost(30, TimeUnit.SECONDS).until(() -> isAnyMessageFoundInRecipientsMailboxes(bobAccessToken));
         given()
             .header("Authorization", bobAccessToken.serialize())
             .body("[[\"getMessageList\", {}, \"#0\"]]")
@@ -230,7 +235,9 @@ public abstract class ForwardIntegrationTest {
         .post("/jmap");
 
         AccessToken bobAccessToken = authenticateJamesUser(baseUri(jmapServer), BOB, BOB_PASSWORD);
-        calmlyAwait.atMost(30, TimeUnit.SECONDS).until(() -> isAnyMessageFoundInRecipientsMailboxes(bobAccessToken));
+        calmlyAwait
+            .pollDelay(Duration.FIVE_HUNDRED_MILLISECONDS)
+            .atMost(30, TimeUnit.SECONDS).until(() -> isAnyMessageFoundInRecipientsMailboxes(bobAccessToken));
         given()
             .header("Authorization", bobAccessToken.serialize())
             .body("[[\"getMessageList\", {}, \"#0\"]]")
@@ -277,7 +284,9 @@ public abstract class ForwardIntegrationTest {
             .body(requestBody)
         .post("/jmap");
 
-        calmlyAwait.atMost(30, TimeUnit.SECONDS).until(() -> isAnyMessageFoundInRecipientsMailboxes(aliceAccessToken));
+        calmlyAwait
+            .pollDelay(Duration.FIVE_HUNDRED_MILLISECONDS)
+            .atMost(30, TimeUnit.SECONDS).until(() -> isAnyMessageFoundInRecipientsMailboxes(aliceAccessToken));
         given()
             .header("Authorization", aliceAccessToken.serialize())
             .body("[[\"getMessageList\", {}, \"#0\"]]")
@@ -323,7 +332,9 @@ public abstract class ForwardIntegrationTest {
         .post("/jmap");
 
         AccessToken bobAccessToken = authenticateJamesUser(baseUri(jmapServer), BOB, BOB_PASSWORD);
-        calmlyAwait.atMost(30, TimeUnit.SECONDS).until(() -> isAnyMessageFoundInRecipientsMailboxes(bobAccessToken));
+        calmlyAwait
+            .pollDelay(Duration.FIVE_HUNDRED_MILLISECONDS)
+            .atMost(30, TimeUnit.SECONDS).until(() -> isAnyMessageFoundInRecipientsMailboxes(bobAccessToken));
 
         given()
             .header("Authorization", aliceAccessToken.serialize())

http://git-wip-us.apache.org/repos/asf/james-project/blob/4ba29b35/server/protocols/jmap-integration-testing/jmap-integration-testing-common/src/test/java/org/apache/james/jmap/methods/integration/SetMessagesMethodTest.java
----------------------------------------------------------------------
diff --git a/server/protocols/jmap-integration-testing/jmap-integration-testing-common/src/test/java/org/apache/james/jmap/methods/integration/SetMessagesMethodTest.java b/server/protocols/jmap-integration-testing/jmap-integration-testing-common/src/test/java/org/apache/james/jmap/methods/integration/SetMessagesMethodTest.java
index f3cbaa3..24ba7fd 100644
--- a/server/protocols/jmap-integration-testing/jmap-integration-testing-common/src/test/java/org/apache/james/jmap/methods/integration/SetMessagesMethodTest.java
+++ b/server/protocols/jmap-integration-testing/jmap-integration-testing-common/src/test/java/org/apache/james/jmap/methods/integration/SetMessagesMethodTest.java
@@ -122,6 +122,7 @@ import org.junit.Test;
 import com.google.common.collect.ImmutableList;
 import com.google.common.collect.Lists;
 import com.google.common.io.ByteStreams;
+import com.jayway.awaitility.Duration;
 import com.jayway.restassured.RestAssured;
 import com.jayway.restassured.builder.RequestSpecBuilder;
 import com.jayway.restassured.http.ContentType;
@@ -2069,7 +2070,9 @@ public abstract class SetMessagesMethodTest {
             .body(moveDraftToOutBox)
             .post("/jmap");
 
-        calmlyAwait.atMost(30, TimeUnit.SECONDS).until(() -> isAnyMessageFoundInRecipientsMailboxes(bobAccessToken));
+        calmlyAwait
+            .pollDelay(Duration.FIVE_HUNDRED_MILLISECONDS)
+            .atMost(30, TimeUnit.SECONDS).until(() -> isAnyMessageFoundInRecipientsMailboxes(bobAccessToken));
     }
 
     @Test


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


[21/21] james-project git commit: JAMES-2435 Fix Jekyll's docker

Posted by bt...@apache.org.
JAMES-2435 Fix Jekyll's docker


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

Branch: refs/heads/master
Commit: 46b7fea174393747e17d9ec79f83f29a9acac608
Parents: de03819
Author: Raphael Ouazana <ra...@linagora.com>
Authored: Thu Jul 5 16:20:09 2018 +0200
Committer: benwa <bt...@linagora.com>
Committed: Fri Jul 6 16:26:35 2018 +0700

----------------------------------------------------------------------
 dockerfiles/site/homepage/Dockerfile | 7 +++----
 1 file changed, 3 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/46b7fea1/dockerfiles/site/homepage/Dockerfile
----------------------------------------------------------------------
diff --git a/dockerfiles/site/homepage/Dockerfile b/dockerfiles/site/homepage/Dockerfile
index 82ccf88..b5741d6 100644
--- a/dockerfiles/site/homepage/Dockerfile
+++ b/dockerfiles/site/homepage/Dockerfile
@@ -1,9 +1,8 @@
-FROM ruby:2.2
+FROM ruby:2.3
 
-RUN apt-key update \
-  && apt-get update \
+RUN apt-get update \
   && apt-get install -y \
-    node \
+    nodejs \
     python-pygments \
   && apt-get clean \
   && rm -rf /var/lib/apt/lists/


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


[07/21] james-project git commit: MAILBOX-342 Don't use mapper provider for MailboxMapperTest

Posted by bt...@apache.org.
MAILBOX-342 Don't use mapper provider for MailboxMapperTest

In Cassandra test by limiting loaded modules, 28s -> 12s


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

Branch: refs/heads/master
Commit: 10e9d87dd235405cdcf22e587e986bde26fdd779
Parents: f204fa7
Author: benwa <bt...@linagora.com>
Authored: Thu Jul 5 11:29:18 2018 +0700
Committer: benwa <bt...@linagora.com>
Committed: Fri Jul 6 16:25:50 2018 +0700

----------------------------------------------------------------------
 .../mail/CassandraGenericMailboxMapperTest.java | 39 ++++++++------------
 .../mailbox/jpa/mail/JpaMailboxMapperTest.java  | 21 ++++++++---
 .../inmemory/mail/MemoryMailboxMapperTest.java  | 21 ++++++++---
 .../store/mail/model/MailboxMapperTest.java     | 13 +++----
 4 files changed, 52 insertions(+), 42 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/10e9d87d/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraGenericMailboxMapperTest.java
----------------------------------------------------------------------
diff --git a/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraGenericMailboxMapperTest.java b/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraGenericMailboxMapperTest.java
index c92d4bd..c7dea0f 100644
--- a/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraGenericMailboxMapperTest.java
+++ b/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraGenericMailboxMapperTest.java
@@ -22,21 +22,15 @@ package org.apache.james.mailbox.cassandra.mail;
 import org.apache.james.backends.cassandra.CassandraCluster;
 import org.apache.james.backends.cassandra.DockerCassandraRule;
 import org.apache.james.backends.cassandra.init.CassandraModuleComposite;
-import org.apache.james.blob.cassandra.CassandraBlobModule;
+import org.apache.james.mailbox.cassandra.ids.CassandraId;
+import org.apache.james.mailbox.cassandra.mail.utils.GuiceUtils;
 import org.apache.james.mailbox.cassandra.modules.CassandraAclModule;
-import org.apache.james.mailbox.cassandra.modules.CassandraAnnotationModule;
-import org.apache.james.mailbox.cassandra.modules.CassandraApplicableFlagsModule;
-import org.apache.james.mailbox.cassandra.modules.CassandraAttachmentModule;
-import org.apache.james.mailbox.cassandra.modules.CassandraDeletedMessageModule;
-import org.apache.james.mailbox.cassandra.modules.CassandraFirstUnseenModule;
-import org.apache.james.mailbox.cassandra.modules.CassandraMailboxCounterModule;
 import org.apache.james.mailbox.cassandra.modules.CassandraMailboxModule;
-import org.apache.james.mailbox.cassandra.modules.CassandraMailboxRecentsModule;
-import org.apache.james.mailbox.cassandra.modules.CassandraMessageModule;
 import org.apache.james.mailbox.cassandra.modules.CassandraModSeqModule;
 import org.apache.james.mailbox.cassandra.modules.CassandraUidModule;
+import org.apache.james.mailbox.model.MailboxId;
+import org.apache.james.mailbox.store.mail.MailboxMapper;
 import org.apache.james.mailbox.store.mail.model.MailboxMapperTest;
-import org.apache.james.mailbox.store.mail.model.MapperProvider;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.ClassRule;
@@ -53,18 +47,9 @@ public class CassandraGenericMailboxMapperTest extends MailboxMapperTest {
         CassandraModuleComposite modules = new CassandraModuleComposite(
                 new CassandraAclModule(),
                 new CassandraMailboxModule(),
-                new CassandraMessageModule(),
-                new CassandraMailboxCounterModule(),
-                new CassandraMailboxRecentsModule(),
                 new CassandraModSeqModule(),
-                new CassandraUidModule(),
-                new CassandraAttachmentModule(),
-                new CassandraAnnotationModule(),
-                new CassandraFirstUnseenModule(),
-                new CassandraApplicableFlagsModule(),
-                new CassandraDeletedMessageModule(),
-                new CassandraBlobModule());
-        this.cassandra = CassandraCluster.create(modules, cassandraServer.getIp(), cassandraServer.getBindingPort());
+                new CassandraUidModule());
+        this.cassandra = CassandraCluster.create(modules, cassandraServer.getHost());
         super.setUp();
     }
     
@@ -72,9 +57,15 @@ public class CassandraGenericMailboxMapperTest extends MailboxMapperTest {
     public void tearDown() {
         cassandra.close();
     }
-    
+
+    @Override
+    protected MailboxMapper createMailboxMapper() {
+        return GuiceUtils.testInjector(cassandra)
+            .getInstance(CassandraMailboxMapper.class);
+    }
+
     @Override
-    protected MapperProvider createMapperProvider() {
-        return new CassandraMapperProvider(cassandra);
+    protected MailboxId generateId() {
+        return CassandraId.timeBased();
     }
 }

http://git-wip-us.apache.org/repos/asf/james-project/blob/10e9d87d/mailbox/jpa/src/test/java/org/apache/james/mailbox/jpa/mail/JpaMailboxMapperTest.java
----------------------------------------------------------------------
diff --git a/mailbox/jpa/src/test/java/org/apache/james/mailbox/jpa/mail/JpaMailboxMapperTest.java b/mailbox/jpa/src/test/java/org/apache/james/mailbox/jpa/mail/JpaMailboxMapperTest.java
index 2d0bbc5..36b0a84 100644
--- a/mailbox/jpa/src/test/java/org/apache/james/mailbox/jpa/mail/JpaMailboxMapperTest.java
+++ b/mailbox/jpa/src/test/java/org/apache/james/mailbox/jpa/mail/JpaMailboxMapperTest.java
@@ -19,10 +19,14 @@
 
 package org.apache.james.mailbox.jpa.mail;
 
+import java.util.concurrent.atomic.AtomicInteger;
+
 import org.apache.james.backends.jpa.JpaTestCluster;
+import org.apache.james.mailbox.jpa.JPAId;
 import org.apache.james.mailbox.jpa.JPAMailboxFixture;
+import org.apache.james.mailbox.model.MailboxId;
+import org.apache.james.mailbox.store.mail.MailboxMapper;
 import org.apache.james.mailbox.store.mail.model.MailboxMapperTest;
-import org.apache.james.mailbox.store.mail.model.MapperProvider;
 import org.junit.After;
 import org.junit.Before;
 
@@ -30,17 +34,24 @@ public class JpaMailboxMapperTest extends MailboxMapperTest {
 
     public static final JpaTestCluster JPA_TEST_CLUSTER = JpaTestCluster.create(JPAMailboxFixture.MAILBOX_PERSISTANCE_CLASSES);
 
+    private final AtomicInteger counter = new AtomicInteger();
+
     @Override
     @Before
     public void setUp() throws Exception {
         super.setUp();
     }
-    
+
     @Override
-    protected MapperProvider createMapperProvider() {
-        return new JPAMapperProvider(JPA_TEST_CLUSTER);
+    protected MailboxMapper createMailboxMapper() {
+        return new TransactionalMailboxMapper(new JPAMailboxMapper(JPA_TEST_CLUSTER.getEntityManagerFactory()));
     }
-    
+
+    @Override
+    protected MailboxId generateId() {
+        return JPAId.of(counter.incrementAndGet());
+    }
+
     @After
     public void cleanUp() {
         JPA_TEST_CLUSTER.clear(JPAMailboxFixture.MAILBOX_TABLE_NAMES);

http://git-wip-us.apache.org/repos/asf/james-project/blob/10e9d87d/mailbox/memory/src/test/java/org/apache/james/mailbox/inmemory/mail/MemoryMailboxMapperTest.java
----------------------------------------------------------------------
diff --git a/mailbox/memory/src/test/java/org/apache/james/mailbox/inmemory/mail/MemoryMailboxMapperTest.java b/mailbox/memory/src/test/java/org/apache/james/mailbox/inmemory/mail/MemoryMailboxMapperTest.java
index 32dc85a..3f29233 100644
--- a/mailbox/memory/src/test/java/org/apache/james/mailbox/inmemory/mail/MemoryMailboxMapperTest.java
+++ b/mailbox/memory/src/test/java/org/apache/james/mailbox/inmemory/mail/MemoryMailboxMapperTest.java
@@ -19,20 +19,31 @@
 
 package org.apache.james.mailbox.inmemory.mail;
 
+import java.util.concurrent.atomic.AtomicInteger;
+
+import org.apache.james.mailbox.inmemory.InMemoryId;
+import org.apache.james.mailbox.model.MailboxId;
+import org.apache.james.mailbox.store.mail.MailboxMapper;
 import org.apache.james.mailbox.store.mail.model.MailboxMapperTest;
-import org.apache.james.mailbox.store.mail.model.MapperProvider;
 import org.junit.Before;
 
 public class MemoryMailboxMapperTest extends MailboxMapperTest {
-    
+
+    private final AtomicInteger counter = new AtomicInteger();
+
     @Override
     @Before
     public void setUp() throws Exception {
         super.setUp();
     }
-    
+
+    @Override
+    protected MailboxMapper createMailboxMapper() {
+        return new InMemoryMailboxMapper();
+    }
+
     @Override
-    protected MapperProvider createMapperProvider() {
-        return new InMemoryMapperProvider();
+    protected MailboxId generateId() {
+        return InMemoryId.of(counter.incrementAndGet());
     }
 }

http://git-wip-us.apache.org/repos/asf/james-project/blob/10e9d87d/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/MailboxMapperTest.java
----------------------------------------------------------------------
diff --git a/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/MailboxMapperTest.java b/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/MailboxMapperTest.java
index 43704b7..97f1206 100644
--- a/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/MailboxMapperTest.java
+++ b/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/MailboxMapperTest.java
@@ -32,7 +32,6 @@ import org.apache.james.mailbox.model.MailboxId;
 import org.apache.james.mailbox.model.MailboxPath;
 import org.apache.james.mailbox.store.mail.MailboxMapper;
 import org.apache.james.mailbox.store.mail.model.impl.SimpleMailbox;
-import org.junit.Assume;
 import org.junit.Test;
 
 /**
@@ -76,15 +75,13 @@ public abstract class MailboxMapperTest {
     private Mailbox bobDifferentNamespaceMailbox;
 
     private MailboxMapper mailboxMapper;
-    private MapperProvider mapperProvider;
 
-    protected abstract MapperProvider createMapperProvider();
+    protected abstract MailboxMapper createMailboxMapper();
 
-    public void setUp() throws Exception {
-        this.mapperProvider = createMapperProvider();
-        Assume.assumeTrue(mapperProvider.getSupportedCapabilities().contains(MapperProvider.Capabilities.MAILBOX));
+    protected abstract MailboxId generateId();
 
-        this.mailboxMapper = mapperProvider.createMailboxMapper();
+    public void setUp() throws Exception {
+        this.mailboxMapper = createMailboxMapper();
         
         initData();
     }
@@ -300,7 +297,7 @@ public abstract class MailboxMapperTest {
 
     private SimpleMailbox createMailbox(MailboxPath mailboxPath) {
         SimpleMailbox mailbox = new SimpleMailbox(mailboxPath, UID_VALIDITY);
-        mailbox.setMailboxId(mapperProvider.generateId());
+        mailbox.setMailboxId(generateId());
         return mailbox;
     }
 


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


[08/21] james-project git commit: MAILBOX-342 Don't use mapper provider for AnnotationMapperTest

Posted by bt...@apache.org.
MAILBOX-342 Don't use mapper provider for AnnotationMapperTest

In Cassandra test by limiting loaded modules, 27s -> 4s


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

Branch: refs/heads/master
Commit: 4bd253a64c5347756238984f4f9268a1cedb6abd
Parents: ddb928d
Author: benwa <bt...@linagora.com>
Authored: Thu Jul 5 10:20:45 2018 +0700
Committer: benwa <bt...@linagora.com>
Committed: Fri Jul 6 16:25:50 2018 +0700

----------------------------------------------------------------------
 .../mail/CassandraAnnotationMapper.java         |  3 ++
 .../mail/CassandraAnnotationMapperTest.java     | 46 ++++++--------------
 .../jpa/mail/JpaAnnotationMapperTest.java       | 25 +++++++++--
 .../mail/MemoryAnnotationMapperTest.java        | 21 ++++++---
 .../store/mail/model/AnnotationMapperTest.java  | 13 +++---
 5 files changed, 59 insertions(+), 49 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/4bd253a6/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraAnnotationMapper.java
----------------------------------------------------------------------
diff --git a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraAnnotationMapper.java b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraAnnotationMapper.java
index f689e39..7a96dd7 100644
--- a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraAnnotationMapper.java
+++ b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraAnnotationMapper.java
@@ -33,6 +33,8 @@ import java.util.Set;
 import java.util.stream.Collectors;
 import java.util.stream.Stream;
 
+import javax.inject.Inject;
+
 import org.apache.james.backends.cassandra.utils.CassandraUtils;
 import org.apache.james.mailbox.cassandra.ids.CassandraId;
 import org.apache.james.mailbox.cassandra.table.CassandraAnnotationTable;
@@ -54,6 +56,7 @@ public class CassandraAnnotationMapper extends NonTransactionalMapper implements
     private final Session session;
     private final CassandraUtils cassandraUtils;
 
+    @Inject
     public CassandraAnnotationMapper(Session session, CassandraUtils cassandraUtils) {
         this.session = session;
         this.cassandraUtils = cassandraUtils;

http://git-wip-us.apache.org/repos/asf/james-project/blob/4bd253a6/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraAnnotationMapperTest.java
----------------------------------------------------------------------
diff --git a/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraAnnotationMapperTest.java b/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraAnnotationMapperTest.java
index fd8e8e3..53aca9e 100644
--- a/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraAnnotationMapperTest.java
+++ b/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraAnnotationMapperTest.java
@@ -21,22 +21,12 @@ package org.apache.james.mailbox.cassandra.mail;
 
 import org.apache.james.backends.cassandra.CassandraCluster;
 import org.apache.james.backends.cassandra.DockerCassandraRule;
-import org.apache.james.backends.cassandra.init.CassandraModuleComposite;
-import org.apache.james.blob.cassandra.CassandraBlobModule;
-import org.apache.james.mailbox.cassandra.modules.CassandraAclModule;
+import org.apache.james.mailbox.cassandra.ids.CassandraId;
+import org.apache.james.mailbox.cassandra.mail.utils.GuiceUtils;
 import org.apache.james.mailbox.cassandra.modules.CassandraAnnotationModule;
-import org.apache.james.mailbox.cassandra.modules.CassandraApplicableFlagsModule;
-import org.apache.james.mailbox.cassandra.modules.CassandraAttachmentModule;
-import org.apache.james.mailbox.cassandra.modules.CassandraDeletedMessageModule;
-import org.apache.james.mailbox.cassandra.modules.CassandraFirstUnseenModule;
-import org.apache.james.mailbox.cassandra.modules.CassandraMailboxCounterModule;
-import org.apache.james.mailbox.cassandra.modules.CassandraMailboxModule;
-import org.apache.james.mailbox.cassandra.modules.CassandraMailboxRecentsModule;
-import org.apache.james.mailbox.cassandra.modules.CassandraMessageModule;
-import org.apache.james.mailbox.cassandra.modules.CassandraModSeqModule;
-import org.apache.james.mailbox.cassandra.modules.CassandraUidModule;
+import org.apache.james.mailbox.model.MailboxId;
+import org.apache.james.mailbox.store.mail.AnnotationMapper;
 import org.apache.james.mailbox.store.mail.model.AnnotationMapperTest;
-import org.apache.james.mailbox.store.mail.model.MapperProvider;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.ClassRule;
@@ -50,21 +40,7 @@ public class CassandraAnnotationMapperTest extends AnnotationMapperTest {
     @Override
     @Before
     public void setUp() throws Exception {
-        CassandraModuleComposite modules = new CassandraModuleComposite(
-                new CassandraAclModule(),
-                new CassandraMailboxModule(),
-                new CassandraMessageModule(),
-                new CassandraMailboxCounterModule(),
-                new CassandraMailboxRecentsModule(),
-                new CassandraModSeqModule(),
-                new CassandraUidModule(),
-                new CassandraAttachmentModule(),
-                new CassandraAnnotationModule(),
-                new CassandraFirstUnseenModule(),
-                new CassandraApplicableFlagsModule(),
-                new CassandraDeletedMessageModule(),
-                new CassandraBlobModule());
-        this.cassandra = CassandraCluster.create(modules, cassandraServer.getIp(), cassandraServer.getBindingPort());
+        this.cassandra = CassandraCluster.create(new CassandraAnnotationModule(), cassandraServer.getHost());
         super.setUp();
     }
     
@@ -72,9 +48,15 @@ public class CassandraAnnotationMapperTest extends AnnotationMapperTest {
     public void tearDown() {
         cassandra.close();
     }
-    
+
+    @Override
+    protected AnnotationMapper createAnnotationMapper() {
+        return GuiceUtils.testInjector(cassandra)
+            .getInstance(CassandraAnnotationMapper.class);
+    }
+
     @Override
-    protected MapperProvider createMapperProvider() {
-        return new CassandraMapperProvider(cassandra);
+    protected MailboxId generateMailboxId() {
+        return CassandraId.timeBased();
     }
 }

http://git-wip-us.apache.org/repos/asf/james-project/blob/4bd253a6/mailbox/jpa/src/test/java/org/apache/james/mailbox/jpa/mail/JpaAnnotationMapperTest.java
----------------------------------------------------------------------
diff --git a/mailbox/jpa/src/test/java/org/apache/james/mailbox/jpa/mail/JpaAnnotationMapperTest.java b/mailbox/jpa/src/test/java/org/apache/james/mailbox/jpa/mail/JpaAnnotationMapperTest.java
index e6b0dfa..c697b2e 100644
--- a/mailbox/jpa/src/test/java/org/apache/james/mailbox/jpa/mail/JpaAnnotationMapperTest.java
+++ b/mailbox/jpa/src/test/java/org/apache/james/mailbox/jpa/mail/JpaAnnotationMapperTest.java
@@ -19,24 +19,41 @@
 
 package org.apache.james.mailbox.jpa.mail;
 
+import java.util.concurrent.atomic.AtomicInteger;
+
 import org.apache.james.backends.jpa.JpaTestCluster;
+import org.apache.james.mailbox.jpa.JPAId;
 import org.apache.james.mailbox.jpa.JPAMailboxFixture;
+import org.apache.james.mailbox.model.MailboxId;
+import org.apache.james.mailbox.store.mail.AnnotationMapper;
 import org.apache.james.mailbox.store.mail.model.AnnotationMapperTest;
-import org.apache.james.mailbox.store.mail.model.MapperProvider;
+import org.junit.After;
 import org.junit.Before;
 
 public class JpaAnnotationMapperTest extends AnnotationMapperTest {
 
     public static final JpaTestCluster JPA_TEST_CLUSTER = JpaTestCluster.create(JPAMailboxFixture.MAILBOX_PERSISTANCE_CLASSES);
 
+    private final AtomicInteger counter = new AtomicInteger();
+
     @Override
     @Before
     public void setUp() throws Exception {
         super.setUp();
     }
-    
+
+    @After
+    public void tearDown() {
+        JPA_TEST_CLUSTER.clear(JPAMailboxFixture.MAILBOX_TABLE_NAMES);
+    }
+
+    @Override
+    protected AnnotationMapper createAnnotationMapper() {
+        return new TransactionalAnnotationMapper(new JPAAnnotationMapper(JPA_TEST_CLUSTER.getEntityManagerFactory()));
+    }
+
     @Override
-    protected MapperProvider createMapperProvider() {
-        return new JPAMapperProvider(JPA_TEST_CLUSTER);
+    protected MailboxId generateMailboxId() {
+        return JPAId.of(counter.incrementAndGet());
     }
 }

http://git-wip-us.apache.org/repos/asf/james-project/blob/4bd253a6/mailbox/memory/src/test/java/org/apache/james/mailbox/inmemory/mail/MemoryAnnotationMapperTest.java
----------------------------------------------------------------------
diff --git a/mailbox/memory/src/test/java/org/apache/james/mailbox/inmemory/mail/MemoryAnnotationMapperTest.java b/mailbox/memory/src/test/java/org/apache/james/mailbox/inmemory/mail/MemoryAnnotationMapperTest.java
index 1e3c04e..6e736fb 100644
--- a/mailbox/memory/src/test/java/org/apache/james/mailbox/inmemory/mail/MemoryAnnotationMapperTest.java
+++ b/mailbox/memory/src/test/java/org/apache/james/mailbox/inmemory/mail/MemoryAnnotationMapperTest.java
@@ -19,20 +19,31 @@
 
 package org.apache.james.mailbox.inmemory.mail;
 
+import java.util.concurrent.atomic.AtomicInteger;
+
+import org.apache.james.mailbox.inmemory.InMemoryId;
+import org.apache.james.mailbox.model.MailboxId;
+import org.apache.james.mailbox.store.mail.AnnotationMapper;
 import org.apache.james.mailbox.store.mail.model.AnnotationMapperTest;
-import org.apache.james.mailbox.store.mail.model.MapperProvider;
 import org.junit.Before;
 
 public class MemoryAnnotationMapperTest extends AnnotationMapperTest {
-    
+
+    private final AtomicInteger counter = new AtomicInteger();
+
     @Override
     @Before
     public void setUp() throws Exception {
         super.setUp();
     }
-    
+
+    @Override
+    protected AnnotationMapper createAnnotationMapper() {
+        return new InMemoryAnnotationMapper();
+    }
+
     @Override
-    protected MapperProvider createMapperProvider() {
-        return new InMemoryMapperProvider();
+    protected MailboxId generateMailboxId() {
+        return InMemoryId.of(counter.incrementAndGet());
     }
 }

http://git-wip-us.apache.org/repos/asf/james-project/blob/4bd253a6/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/AnnotationMapperTest.java
----------------------------------------------------------------------
diff --git a/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/AnnotationMapperTest.java b/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/AnnotationMapperTest.java
index 06b8f2a..e1552fb 100644
--- a/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/AnnotationMapperTest.java
+++ b/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/AnnotationMapperTest.java
@@ -26,7 +26,6 @@ import org.apache.james.mailbox.model.MailboxAnnotation;
 import org.apache.james.mailbox.model.MailboxAnnotationKey;
 import org.apache.james.mailbox.model.MailboxId;
 import org.apache.james.mailbox.store.mail.AnnotationMapper;
-import org.junit.Assume;
 import org.junit.Rule;
 import org.junit.Test;
 import org.junit.rules.ExpectedException;
@@ -51,20 +50,18 @@ public abstract class AnnotationMapperTest {
     private static final MailboxAnnotation PRIVATE_GRANDCHILD_ANNOTATION = MailboxAnnotation.newInstance(PRIVATE_GRANDCHILD_KEY, "My private comment");
 
     private AnnotationMapper annotationMapper;
-    private MapperProvider mapperProvider;
     private MailboxId mailboxId;
 
     @Rule
     public ExpectedException expected = ExpectedException.none();
 
-    protected abstract MapperProvider createMapperProvider();
+    protected abstract AnnotationMapper createAnnotationMapper();
 
-    public void setUp() throws Exception {
-        mapperProvider = createMapperProvider();
-        Assume.assumeTrue(mapperProvider.getSupportedCapabilities().contains(MapperProvider.Capabilities.ANNOTATION));
+    protected abstract MailboxId generateMailboxId();
 
-        this.annotationMapper = mapperProvider.createAnnotationMapper();
-        this.mailboxId = mapperProvider.generateId();
+    public void setUp() throws Exception {
+        this.annotationMapper = createAnnotationMapper();
+        this.mailboxId = generateMailboxId();
     }
 
     @Test


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


[19/21] james-project git commit: JAMES-2435 Improve visibility of how-tos

Posted by bt...@apache.org.
JAMES-2435 Improve visibility of how-tos


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

Branch: refs/heads/master
Commit: 98e7eee88910ffafd3f0e0bd48c3e81db4dd13e7
Parents: 46b7fea
Author: Raphael Ouazana <ra...@linagora.com>
Authored: Thu Jul 5 16:16:03 2018 +0200
Committer: benwa <bt...@linagora.com>
Committed: Fri Jul 6 16:26:35 2018 +0700

----------------------------------------------------------------------
 src/homepage/index.html | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/98e7eee8/src/homepage/index.html
----------------------------------------------------------------------
diff --git a/src/homepage/index.html b/src/homepage/index.html
index 53bf2a3..333b3fa 100644
--- a/src/homepage/index.html
+++ b/src/homepage/index.html
@@ -87,7 +87,9 @@ layout: default
               <a href="images/james-smtp-relay.png" data-lightbox="james-schema" data-title="James SMTP relay" alt="James SMTP relay" class="james-schema"><span class="fa fa-sitemap"></span>using james as smtp relay<span class="fa fa-long-arrow-right"></span></a>
               <a href="images/james-imap-server.png" data-lightbox="james-schema" data-title="James IMAP server" alt="James IMAP server" class="james-schema"><span class="fa fa-sitemap"></span>using james as an imap server<span class="fa fa-long-arrow-right"></span></a><br/><br/>
 
-              <p>Available how-tos for James features are detailed <a href="howTo">here</a>.</p>
+              <a href="howTo/index.html" data-title="How To" alt="How To" class="james-schema">
+                <span class="fa fa-sitemap"></span>Click here to see how-tos for some James features<span class="fa fa-long-arrow-right"></span>
+              </a>
 
               <h2 class="big-h2"><span class="fa fa-wrench"></span> <span>James is a <b>living Open Source project</b> (all developments and implementations are based on open technical standards), any function which is not already available from <b>can be developed!</b></span></h2>
             </div>


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


[05/21] james-project git commit: JAMES-2455 Avoid recursive resolution when getting group members

Posted by bt...@apache.org.
JAMES-2455 Avoid recursive resolution when getting group members

For instance if a group member has forwards, he was not displayed in the group.


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

Branch: refs/heads/master
Commit: 161019ddfa4eb1863fc72e61fbee061b4a4da91e
Parents: ca12082
Author: benwa <bt...@linagora.com>
Authored: Thu Jul 5 12:47:58 2018 +0700
Committer: benwa <bt...@linagora.com>
Committed: Thu Jul 5 12:55:22 2018 +0700

----------------------------------------------------------------------
 .../org/apache/james/rrt/lib/MappingSource.java |  4 +++
 server/protocols/webadmin/webadmin-data/pom.xml |  4 +++
 .../james/webadmin/routes/GroupsRoutes.java     |  6 +++--
 .../james/webadmin/routes/GroupsRoutesTest.java | 28 +++++++++++++++++---
 4 files changed, 37 insertions(+), 5 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/161019dd/server/data/data-api/src/main/java/org/apache/james/rrt/lib/MappingSource.java
----------------------------------------------------------------------
diff --git a/server/data/data-api/src/main/java/org/apache/james/rrt/lib/MappingSource.java b/server/data/data-api/src/main/java/org/apache/james/rrt/lib/MappingSource.java
index 5539089..7bd6298 100644
--- a/server/data/data-api/src/main/java/org/apache/james/rrt/lib/MappingSource.java
+++ b/server/data/data-api/src/main/java/org/apache/james/rrt/lib/MappingSource.java
@@ -48,6 +48,10 @@ public class MappingSource implements Serializable {
         return new MappingSource(Optional.of(domain), Optional.empty(), Optional.empty());
     }
 
+    public static MappingSource fromMailAddress(MailAddress address) {
+        return fromUser(User.fromMailAddress(address));
+    }
+
     public static MappingSource fromUser(String localPart, String domain) {
         return fromUser(localPart, Domain.of(domain));
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/161019dd/server/protocols/webadmin/webadmin-data/pom.xml
----------------------------------------------------------------------
diff --git a/server/protocols/webadmin/webadmin-data/pom.xml b/server/protocols/webadmin/webadmin-data/pom.xml
index c007063..12757d0 100644
--- a/server/protocols/webadmin/webadmin-data/pom.xml
+++ b/server/protocols/webadmin/webadmin-data/pom.xml
@@ -47,6 +47,10 @@
         </dependency>
         <dependency>
             <groupId>${project.groupId}</groupId>
+            <artifactId>james-server-data-library</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>${project.groupId}</groupId>
             <artifactId>james-server-data-memory</artifactId>
             <scope>test</scope>
         </dependency>

http://git-wip-us.apache.org/repos/asf/james-project/blob/161019dd/server/protocols/webadmin/webadmin-data/src/main/java/org/apache/james/webadmin/routes/GroupsRoutes.java
----------------------------------------------------------------------
diff --git a/server/protocols/webadmin/webadmin-data/src/main/java/org/apache/james/webadmin/routes/GroupsRoutes.java b/server/protocols/webadmin/webadmin-data/src/main/java/org/apache/james/webadmin/routes/GroupsRoutes.java
index 7f7a6ed..24ac5ec 100644
--- a/server/protocols/webadmin/webadmin-data/src/main/java/org/apache/james/webadmin/routes/GroupsRoutes.java
+++ b/server/protocols/webadmin/webadmin-data/src/main/java/org/apache/james/webadmin/routes/GroupsRoutes.java
@@ -49,6 +49,7 @@ import org.apache.james.rrt.api.RecipientRewriteTableException;
 import org.apache.james.rrt.lib.Mapping;
 import org.apache.james.rrt.lib.MappingSource;
 import org.apache.james.rrt.lib.Mappings;
+import org.apache.james.rrt.lib.MappingsImpl;
 import org.apache.james.user.api.UsersRepository;
 import org.apache.james.user.api.UsersRepositoryException;
 import org.apache.james.util.OptionalUtils;
@@ -234,9 +235,10 @@ public class GroupsRoutes implements Routes {
         @ApiResponse(code = HttpStatus.INTERNAL_SERVER_ERROR_500,
             message = "Internal server error - Something went bad on the server side.")
     })
-    public ImmutableSortedSet<String> listGroupMembers(Request request, Response response) throws RecipientRewriteTable.ErrorMappingException, RecipientRewriteTableException {
+    public ImmutableSortedSet<String> listGroupMembers(Request request, Response response) throws RecipientRewriteTableException {
         MailAddress groupAddress = parseMailAddress(request.params(GROUP_ADDRESS));
-        Mappings mappings = recipientRewriteTable.getMappings(groupAddress.getLocalPart(), groupAddress.getDomain())
+        Mappings mappings = Optional.ofNullable(recipientRewriteTable.getUserDomainMappings(MappingSource.fromMailAddress(groupAddress)))
+            .orElse(MappingsImpl.empty())
             .select(Mapping.Type.Group);
 
         ensureNonEmptyMappings(mappings);

http://git-wip-us.apache.org/repos/asf/james-project/blob/161019dd/server/protocols/webadmin/webadmin-data/src/test/java/org/apache/james/webadmin/routes/GroupsRoutesTest.java
----------------------------------------------------------------------
diff --git a/server/protocols/webadmin/webadmin-data/src/test/java/org/apache/james/webadmin/routes/GroupsRoutesTest.java b/server/protocols/webadmin/webadmin-data/src/test/java/org/apache/james/webadmin/routes/GroupsRoutesTest.java
index 805aa43..09ae779 100644
--- a/server/protocols/webadmin/webadmin-data/src/test/java/org/apache/james/webadmin/routes/GroupsRoutesTest.java
+++ b/server/protocols/webadmin/webadmin-data/src/test/java/org/apache/james/webadmin/routes/GroupsRoutesTest.java
@@ -35,6 +35,7 @@ import java.util.List;
 import java.util.Map;
 
 import org.apache.james.core.Domain;
+import org.apache.james.core.User;
 import org.apache.james.dnsservice.api.DNSService;
 import org.apache.james.domainlist.api.DomainList;
 import org.apache.james.domainlist.memory.MemoryDomainList;
@@ -121,6 +122,27 @@ class GroupsRoutesTest {
                 .body(is("[]"));
         }
 
+
+        @Test
+        void getShouldNotResolveRecurseGroups() throws Exception {
+            when().put(GROUP1 + SEPARATOR + USER_A);
+
+            memoryRecipientRewriteTable.addForwardMapping(MappingSource.fromUser(User.fromUsername(USER_A)),
+                "b@" + DOMAIN.name());
+
+            List<String> addresses =
+                when()
+                    .get(GROUP1)
+                .then()
+                    .contentType(ContentType.JSON)
+                    .statusCode(HttpStatus.OK_200)
+                    .extract()
+                    .body()
+                    .jsonPath()
+                    .getList(".");
+            assertThat(addresses).containsExactly(USER_A);
+        }
+
         @Test
         void getGroupsShouldListExistingGroupsInAlphabeticOrder() {
             given()
@@ -686,7 +708,7 @@ class GroupsRoutesTest {
         void getShouldReturnErrorWhenRecipientRewriteTableExceptionIsThrown() throws Exception {
             doThrow(RecipientRewriteTableException.class)
                 .when(memoryRecipientRewriteTable)
-                .getMappings(anyString(), any());
+                .getUserDomainMappings(any());
 
             when()
                 .get(GROUP1)
@@ -698,7 +720,7 @@ class GroupsRoutesTest {
         void getShouldReturnErrorWhenErrorMappingExceptionIsThrown() throws Exception {
             doThrow(RecipientRewriteTable.ErrorMappingException.class)
                 .when(memoryRecipientRewriteTable)
-                .getMappings(anyString(), any());
+                .getUserDomainMappings(any());
 
             when()
                 .get(GROUP1)
@@ -710,7 +732,7 @@ class GroupsRoutesTest {
         void getShouldReturnErrorWhenRuntimeExceptionIsThrown() throws Exception {
             doThrow(RuntimeException.class)
                 .when(memoryRecipientRewriteTable)
-                .getMappings(anyString(), any());
+                .getUserDomainMappings(any());
 
             when()
                 .get(GROUP1)


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


[16/21] james-project git commit: MAILBOX-342 Simplify CassandraACLMapperTest

Posted by bt...@apache.org.
MAILBOX-342 Simplify CassandraACLMapperTest


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

Branch: refs/heads/master
Commit: 93a122d8ecdfe1bbdf5e4cbeed740d697531d209
Parents: 25b14fc
Author: benwa <bt...@linagora.com>
Authored: Thu Jul 5 16:02:58 2018 +0700
Committer: benwa <bt...@linagora.com>
Committed: Fri Jul 6 16:25:51 2018 +0700

----------------------------------------------------------------------
 .../james/mailbox/cassandra/mail/CassandraACLMapperTest.java   | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/93a122d8/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraACLMapperTest.java
----------------------------------------------------------------------
diff --git a/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraACLMapperTest.java b/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraACLMapperTest.java
index 3970d9e..0bf13a7 100644
--- a/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraACLMapperTest.java
+++ b/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraACLMapperTest.java
@@ -35,6 +35,7 @@ import org.apache.james.backends.cassandra.DockerCassandraRule;
 import org.apache.james.backends.cassandra.init.configuration.CassandraConfiguration;
 import org.apache.james.backends.cassandra.utils.CassandraUtils;
 import org.apache.james.mailbox.cassandra.ids.CassandraId;
+import org.apache.james.mailbox.cassandra.mail.utils.GuiceUtils;
 import org.apache.james.mailbox.cassandra.modules.CassandraAclModule;
 import org.apache.james.mailbox.cassandra.table.CassandraACLTable;
 import org.apache.james.mailbox.exception.MailboxException;
@@ -56,9 +57,8 @@ public class CassandraACLMapperTest {
     @Before
     public void setUp() {
         cassandra = CassandraCluster.create(new CassandraAclModule(), cassandraServer.getIp(), cassandraServer.getBindingPort());
-        cassandraACLMapper = new CassandraACLMapper(cassandra.getConf(),
-            new CassandraUserMailboxRightsDAO(cassandra.getConf(), CassandraUtils.WITH_DEFAULT_CONFIGURATION),
-            CassandraConfiguration.DEFAULT_CONFIGURATION);
+        cassandraACLMapper = GuiceUtils.testInjector(cassandra)
+            .getInstance(CassandraACLMapper.class);
         executor = Executors.newFixedThreadPool(2);
     }
 


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


[09/21] james-project git commit: MAILBOX-342 Provide a Guice based mechanism for easy Mapper instanciation

Posted by bt...@apache.org.
MAILBOX-342 Provide a Guice based mechanism for easy Mapper instanciation

Guice use avoid constructor hell, while not requiring a full mapper factory (which requires all tables thus is slow).


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

Branch: refs/heads/master
Commit: ddb928dc701e5db86c75b6b82a2a4cbf0eb8c1cc
Parents: 4ba29b3
Author: benwa <bt...@linagora.com>
Authored: Thu Jul 5 11:24:49 2018 +0700
Committer: benwa <bt...@linagora.com>
Committed: Fri Jul 6 16:25:50 2018 +0700

----------------------------------------------------------------------
 .../cassandra/mail/utils/GuiceUtils.java        | 48 ++++++++++++++++++++
 1 file changed, 48 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/ddb928dc/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/utils/GuiceUtils.java
----------------------------------------------------------------------
diff --git a/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/utils/GuiceUtils.java b/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/utils/GuiceUtils.java
new file mode 100644
index 0000000..31dc895
--- /dev/null
+++ b/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/utils/GuiceUtils.java
@@ -0,0 +1,48 @@
+/****************************************************************
+ * Licensed to the Apache Software Foundation (ASF) under one   *
+ * or more contributor license agreements.  See the NOTICE file *
+ * distributed with this work for additional information        *
+ * regarding copyright ownership.  The ASF licenses this file   *
+ * to you under the Apache License, Version 2.0 (the            *
+ * "License"); you may not use this file except in compliance   *
+ * with the License.  You may obtain a copy of the License at   *
+ *                                                              *
+ *   http://www.apache.org/licenses/LICENSE-2.0                 *
+ *                                                              *
+ * Unless required by applicable law or agreed to in writing,   *
+ * software distributed under the License is distributed on an  *
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY       *
+ * KIND, either express or implied.  See the License for the    *
+ * specific language governing permissions and limitations      *
+ * under the License.                                           *
+ ****************************************************************/
+
+package org.apache.james.mailbox.cassandra.mail.utils;
+
+import org.apache.james.backends.cassandra.CassandraCluster;
+import org.apache.james.backends.cassandra.init.CassandraTypesProvider;
+import org.apache.james.backends.cassandra.init.configuration.CassandraConfiguration;
+import org.apache.james.blob.api.BlobId;
+import org.apache.james.blob.api.ObjectStore;
+import org.apache.james.blob.cassandra.CassandraBlobId;
+import org.apache.james.blob.cassandra.CassandraBlobsDAO;
+import org.apache.james.mailbox.cassandra.ids.CassandraMessageId;
+import org.apache.james.mailbox.model.MessageId;
+
+import com.datastax.driver.core.Session;
+import com.google.inject.Guice;
+import com.google.inject.Injector;
+import com.google.inject.util.Modules;
+
+public class GuiceUtils {
+    public static Injector testInjector(CassandraCluster cluster) {
+        return Guice.createInjector(
+            Modules.combine(
+                binder -> binder.bind(MessageId.Factory.class).toInstance(new CassandraMessageId.Factory()),
+                binder -> binder.bind(BlobId.Factory.class).toInstance(new CassandraBlobId.Factory()),
+                binder -> binder.bind(ObjectStore.class).to(CassandraBlobsDAO.class),
+                binder -> binder.bind(Session.class).toInstance(cluster.getConf()),
+                binder -> binder.bind(CassandraTypesProvider.class).toInstance(cluster.getTypesProvider()),
+                binder -> binder.bind(CassandraConfiguration.class).toInstance(CassandraConfiguration.DEFAULT_CONFIGURATION)));
+    }
+}


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


[10/21] james-project git commit: MAILBOX-342 Don't use mapper provider for AttachmentMapperTest

Posted by bt...@apache.org.
MAILBOX-342 Don't use mapper provider for AttachmentMapperTest

In Cassandra test by limiting loaded modules, 25s -> 8s


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

Branch: refs/heads/master
Commit: f204fa7bdbe46f0ab75be3fd94fbe478264f3455
Parents: 4bd253a
Author: benwa <bt...@linagora.com>
Authored: Thu Jul 5 11:24:34 2018 +0700
Committer: benwa <bt...@linagora.com>
Committed: Fri Jul 6 16:25:50 2018 +0700

----------------------------------------------------------------------
 mailbox/cassandra/pom.xml                       |  5 +++
 .../mail/CassandraAttachmentMapperTest.java     | 34 ++++----------------
 .../mail/MemoryAttachmentMapperTest.java        |  8 ++---
 .../store/mail/model/AttachmentMapperTest.java  |  7 ++--
 4 files changed, 18 insertions(+), 36 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/f204fa7b/mailbox/cassandra/pom.xml
----------------------------------------------------------------------
diff --git a/mailbox/cassandra/pom.xml b/mailbox/cassandra/pom.xml
index 9380413..c7ce077 100644
--- a/mailbox/cassandra/pom.xml
+++ b/mailbox/cassandra/pom.xml
@@ -110,6 +110,11 @@
             <artifactId>guava</artifactId>
         </dependency>
         <dependency>
+            <groupId>com.google.inject</groupId>
+            <artifactId>guice</artifactId>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
             <groupId>com.jayway.awaitility</groupId>
             <artifactId>awaitility</artifactId>
             <scope>test</scope>

http://git-wip-us.apache.org/repos/asf/james-project/blob/f204fa7b/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraAttachmentMapperTest.java
----------------------------------------------------------------------
diff --git a/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraAttachmentMapperTest.java b/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraAttachmentMapperTest.java
index 14ddd79..82a1ff2 100644
--- a/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraAttachmentMapperTest.java
+++ b/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraAttachmentMapperTest.java
@@ -24,22 +24,12 @@ import org.apache.james.backends.cassandra.DockerCassandraRule;
 import org.apache.james.backends.cassandra.init.CassandraModuleComposite;
 import org.apache.james.blob.cassandra.CassandraBlobModule;
 import org.apache.james.mailbox.cassandra.ids.CassandraMessageId;
-import org.apache.james.mailbox.cassandra.modules.CassandraAclModule;
-import org.apache.james.mailbox.cassandra.modules.CassandraAnnotationModule;
-import org.apache.james.mailbox.cassandra.modules.CassandraApplicableFlagsModule;
+import org.apache.james.mailbox.cassandra.mail.utils.GuiceUtils;
 import org.apache.james.mailbox.cassandra.modules.CassandraAttachmentModule;
-import org.apache.james.mailbox.cassandra.modules.CassandraDeletedMessageModule;
-import org.apache.james.mailbox.cassandra.modules.CassandraFirstUnseenModule;
-import org.apache.james.mailbox.cassandra.modules.CassandraMailboxCounterModule;
-import org.apache.james.mailbox.cassandra.modules.CassandraMailboxModule;
-import org.apache.james.mailbox.cassandra.modules.CassandraMailboxRecentsModule;
-import org.apache.james.mailbox.cassandra.modules.CassandraMessageModule;
-import org.apache.james.mailbox.cassandra.modules.CassandraModSeqModule;
-import org.apache.james.mailbox.cassandra.modules.CassandraUidModule;
 import org.apache.james.mailbox.exception.MailboxException;
 import org.apache.james.mailbox.model.MessageId;
+import org.apache.james.mailbox.store.mail.AttachmentMapper;
 import org.apache.james.mailbox.store.mail.model.AttachmentMapperTest;
-import org.apache.james.mailbox.store.mail.model.MapperProvider;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.ClassRule;
@@ -54,20 +44,9 @@ public class CassandraAttachmentMapperTest extends AttachmentMapperTest {
     @Before
     public void setUp() throws MailboxException {
         CassandraModuleComposite modules = new CassandraModuleComposite(
-                new CassandraAclModule(),
-                new CassandraMailboxModule(),
-                new CassandraMessageModule(),
-                new CassandraMailboxCounterModule(),
-                new CassandraMailboxRecentsModule(),
-                new CassandraModSeqModule(),
-                new CassandraUidModule(),
                 new CassandraAttachmentModule(),
-                new CassandraAnnotationModule(),
-                new CassandraFirstUnseenModule(),
-                new CassandraApplicableFlagsModule(),
-                new CassandraDeletedMessageModule(),
                 new CassandraBlobModule());
-        this.cassandra = CassandraCluster.create(modules, cassandraServer.getIp(), cassandraServer.getBindingPort());
+        this.cassandra = CassandraCluster.create(modules, cassandraServer.getHost());
         super.setUp();
     }
     
@@ -75,10 +54,11 @@ public class CassandraAttachmentMapperTest extends AttachmentMapperTest {
     public void tearDown() {
         cassandra.close();
     }
-    
+
     @Override
-    protected MapperProvider createMapperProvider() {
-        return new CassandraMapperProvider(cassandra);
+    protected AttachmentMapper createAttachmentMapper() {
+        return GuiceUtils.testInjector(cassandra)
+            .getInstance(CassandraAttachmentMapper.class);
     }
 
     @Override

http://git-wip-us.apache.org/repos/asf/james-project/blob/f204fa7b/mailbox/memory/src/test/java/org/apache/james/mailbox/inmemory/mail/MemoryAttachmentMapperTest.java
----------------------------------------------------------------------
diff --git a/mailbox/memory/src/test/java/org/apache/james/mailbox/inmemory/mail/MemoryAttachmentMapperTest.java b/mailbox/memory/src/test/java/org/apache/james/mailbox/inmemory/mail/MemoryAttachmentMapperTest.java
index 650d758..b379621 100644
--- a/mailbox/memory/src/test/java/org/apache/james/mailbox/inmemory/mail/MemoryAttachmentMapperTest.java
+++ b/mailbox/memory/src/test/java/org/apache/james/mailbox/inmemory/mail/MemoryAttachmentMapperTest.java
@@ -22,8 +22,8 @@ package org.apache.james.mailbox.inmemory.mail;
 import org.apache.james.mailbox.exception.MailboxException;
 import org.apache.james.mailbox.inmemory.InMemoryMessageId;
 import org.apache.james.mailbox.model.MessageId;
+import org.apache.james.mailbox.store.mail.AttachmentMapper;
 import org.apache.james.mailbox.store.mail.model.AttachmentMapperTest;
-import org.apache.james.mailbox.store.mail.model.MapperProvider;
 import org.junit.Before;
 
 public class MemoryAttachmentMapperTest extends AttachmentMapperTest {
@@ -33,10 +33,10 @@ public class MemoryAttachmentMapperTest extends AttachmentMapperTest {
     public void setUp() throws MailboxException {
         super.setUp();
     }
-    
+
     @Override
-    protected MapperProvider createMapperProvider() {
-        return new InMemoryMapperProvider();
+    protected AttachmentMapper createAttachmentMapper() {
+        return new InMemoryAttachmentMapper();
     }
 
     @Override

http://git-wip-us.apache.org/repos/asf/james-project/blob/f204fa7b/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/AttachmentMapperTest.java
----------------------------------------------------------------------
diff --git a/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/AttachmentMapperTest.java b/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/AttachmentMapperTest.java
index 5aea667..63f50c2 100644
--- a/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/AttachmentMapperTest.java
+++ b/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/AttachmentMapperTest.java
@@ -31,7 +31,6 @@ import org.apache.james.mailbox.model.Attachment;
 import org.apache.james.mailbox.model.AttachmentId;
 import org.apache.james.mailbox.model.MessageId;
 import org.apache.james.mailbox.store.mail.AttachmentMapper;
-import org.junit.Assume;
 import org.junit.Rule;
 import org.junit.Test;
 import org.junit.rules.ExpectedException;
@@ -48,14 +47,12 @@ public abstract class AttachmentMapperTest {
     @Rule
     public ExpectedException expected = ExpectedException.none();
 
-    protected abstract MapperProvider createMapperProvider();
+    protected abstract AttachmentMapper createAttachmentMapper();
 
     protected abstract MessageId generateMessageId();
 
     public void setUp() throws MailboxException {
-        MapperProvider mapperProvider = createMapperProvider();
-        Assume.assumeTrue(mapperProvider.getSupportedCapabilities().contains(MapperProvider.Capabilities.ATTACHMENT));
-        this.attachmentMapper = mapperProvider.createAttachmentMapper();
+        this.attachmentMapper = createAttachmentMapper();
     }
 
     @Test


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


[20/21] james-project git commit: JAMES-2435 Ugly hack to align how-tos

Posted by bt...@apache.org.
JAMES-2435 Ugly hack to align how-tos


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

Branch: refs/heads/master
Commit: a35e7157f02672a936db9d226a5c936c65607be3
Parents: 98e7eee
Author: Raphael Ouazana <ra...@linagora.com>
Authored: Thu Jul 5 16:55:26 2018 +0200
Committer: benwa <bt...@linagora.com>
Committed: Fri Jul 6 16:26:35 2018 +0700

----------------------------------------------------------------------
 src/homepage/howTo/index.html | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/a35e7157/src/homepage/howTo/index.html
----------------------------------------------------------------------
diff --git a/src/homepage/howTo/index.html b/src/homepage/howTo/index.html
index 0c1b1b7..2e36571 100644
--- a/src/homepage/howTo/index.html
+++ b/src/homepage/howTo/index.html
@@ -74,7 +74,7 @@ layout: default
                  data-title="Configuring SPF"
                  alt="Configuring SPF"
                  class="james-schema" >
-                <span class="fa fa-sitemap"></span>Configuring SPF<span class="fa fa-long-arrow-right"></span>
+                <span class="fa fa-sitemap"></span>Configuring &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SPF&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="fa fa-long-arrow-right"></span>
               </a>
 
               <br/>


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


[11/21] james-project git commit: MAILBOX-342 Don't use mapper provider for MailboxMapperAclTest

Posted by bt...@apache.org.
MAILBOX-342 Don't use mapper provider for MailboxMapperAclTest

In Cassandra test by limiting loaded modules, 33s -> 13s


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

Branch: refs/heads/master
Commit: 6c8b5fc00685d1ae642e82a980ca28ce4b3c5d03
Parents: 10e9d87
Author: benwa <bt...@linagora.com>
Authored: Thu Jul 5 10:56:09 2018 +0700
Committer: benwa <bt...@linagora.com>
Committed: Fri Jul 6 16:25:50 2018 +0700

----------------------------------------------------------------------
 .../mail/CassandraMailboxMapperAclTest.java     | 45 ++++++++------------
 .../mail/MemoryMailboxMapperAclTest.java        | 18 ++++++--
 .../store/mail/model/MailboxMapperACLTest.java  | 17 +++-----
 3 files changed, 39 insertions(+), 41 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/6c8b5fc0/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraMailboxMapperAclTest.java
----------------------------------------------------------------------
diff --git a/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraMailboxMapperAclTest.java b/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraMailboxMapperAclTest.java
index 251a508..6e65bac 100644
--- a/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraMailboxMapperAclTest.java
+++ b/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraMailboxMapperAclTest.java
@@ -22,21 +22,15 @@ package org.apache.james.mailbox.cassandra.mail;
 import org.apache.james.backends.cassandra.CassandraCluster;
 import org.apache.james.backends.cassandra.DockerCassandraRule;
 import org.apache.james.backends.cassandra.init.CassandraModuleComposite;
-import org.apache.james.blob.cassandra.CassandraBlobModule;
+import org.apache.james.mailbox.cassandra.ids.CassandraId;
+import org.apache.james.mailbox.cassandra.mail.utils.GuiceUtils;
 import org.apache.james.mailbox.cassandra.modules.CassandraAclModule;
-import org.apache.james.mailbox.cassandra.modules.CassandraAnnotationModule;
-import org.apache.james.mailbox.cassandra.modules.CassandraApplicableFlagsModule;
-import org.apache.james.mailbox.cassandra.modules.CassandraAttachmentModule;
-import org.apache.james.mailbox.cassandra.modules.CassandraDeletedMessageModule;
-import org.apache.james.mailbox.cassandra.modules.CassandraFirstUnseenModule;
-import org.apache.james.mailbox.cassandra.modules.CassandraMailboxCounterModule;
 import org.apache.james.mailbox.cassandra.modules.CassandraMailboxModule;
-import org.apache.james.mailbox.cassandra.modules.CassandraMailboxRecentsModule;
-import org.apache.james.mailbox.cassandra.modules.CassandraMessageModule;
 import org.apache.james.mailbox.cassandra.modules.CassandraModSeqModule;
 import org.apache.james.mailbox.cassandra.modules.CassandraUidModule;
+import org.apache.james.mailbox.model.MailboxId;
+import org.apache.james.mailbox.store.mail.MailboxMapper;
 import org.apache.james.mailbox.store.mail.model.MailboxMapperACLTest;
-import org.apache.james.mailbox.store.mail.model.MapperProvider;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.ClassRule;
@@ -51,20 +45,11 @@ public class CassandraMailboxMapperAclTest extends MailboxMapperACLTest {
     @Before
     public void setUp() throws Exception {
         CassandraModuleComposite modules = new CassandraModuleComposite(
-                new CassandraAclModule(),
-                new CassandraMailboxModule(),
-                new CassandraMessageModule(),
-                new CassandraMailboxCounterModule(),
-                new CassandraMailboxRecentsModule(),
-                new CassandraModSeqModule(),
-                new CassandraUidModule(),
-                new CassandraAttachmentModule(),
-                new CassandraAnnotationModule(),
-                new CassandraFirstUnseenModule(),
-                new CassandraApplicableFlagsModule(),
-                new CassandraDeletedMessageModule(),
-                new CassandraBlobModule());
-        this.cassandra = CassandraCluster.create(modules, cassandraServer.getIp(), cassandraServer.getBindingPort());
+            new CassandraAclModule(),
+            new CassandraMailboxModule(),
+            new CassandraModSeqModule(),
+            new CassandraUidModule());
+        this.cassandra = CassandraCluster.create(modules, cassandraServer.getHost());
         super.setUp();
     }
     
@@ -72,9 +57,15 @@ public class CassandraMailboxMapperAclTest extends MailboxMapperACLTest {
     public void tearDown() {
         cassandra.close();
     }
-    
+
+    @Override
+    protected MailboxMapper createMailboxMapper() {
+        return GuiceUtils.testInjector(cassandra)
+            .getInstance(CassandraMailboxMapper.class);
+    }
+
     @Override
-    protected MapperProvider createMapperProvider() {
-        return new CassandraMapperProvider(cassandra);
+    protected MailboxId generateId() {
+        return CassandraId.timeBased();
     }
 }

http://git-wip-us.apache.org/repos/asf/james-project/blob/6c8b5fc0/mailbox/memory/src/test/java/org/apache/james/mailbox/inmemory/mail/MemoryMailboxMapperAclTest.java
----------------------------------------------------------------------
diff --git a/mailbox/memory/src/test/java/org/apache/james/mailbox/inmemory/mail/MemoryMailboxMapperAclTest.java b/mailbox/memory/src/test/java/org/apache/james/mailbox/inmemory/mail/MemoryMailboxMapperAclTest.java
index 10b037a..df6d73f 100644
--- a/mailbox/memory/src/test/java/org/apache/james/mailbox/inmemory/mail/MemoryMailboxMapperAclTest.java
+++ b/mailbox/memory/src/test/java/org/apache/james/mailbox/inmemory/mail/MemoryMailboxMapperAclTest.java
@@ -19,20 +19,30 @@
 
 package org.apache.james.mailbox.inmemory.mail;
 
+import java.util.concurrent.atomic.AtomicInteger;
+
+import org.apache.james.mailbox.inmemory.InMemoryId;
+import org.apache.james.mailbox.model.MailboxId;
+import org.apache.james.mailbox.store.mail.MailboxMapper;
 import org.apache.james.mailbox.store.mail.model.MailboxMapperACLTest;
-import org.apache.james.mailbox.store.mail.model.MapperProvider;
 import org.junit.Before;
 
 public class MemoryMailboxMapperAclTest extends MailboxMapperACLTest {
+    private final AtomicInteger counter = new AtomicInteger();
     
     @Override
     @Before
     public void setUp() throws Exception {
         super.setUp();
     }
-    
+
+    @Override
+    protected MailboxMapper createMailboxMapper() {
+        return new InMemoryMailboxMapper();
+    }
+
     @Override
-    protected MapperProvider createMapperProvider() {
-        return new InMemoryMapperProvider();
+    protected MailboxId generateId() {
+        return InMemoryId.of(counter.incrementAndGet());
     }
 }

http://git-wip-us.apache.org/repos/asf/james-project/blob/6c8b5fc0/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/MailboxMapperACLTest.java
----------------------------------------------------------------------
diff --git a/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/MailboxMapperACLTest.java b/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/MailboxMapperACLTest.java
index f8f0636..0a6fd6d 100644
--- a/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/MailboxMapperACLTest.java
+++ b/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/MailboxMapperACLTest.java
@@ -28,10 +28,10 @@ import org.apache.james.mailbox.model.MailboxACL.EntryKey;
 import org.apache.james.mailbox.model.MailboxACL.NameType;
 import org.apache.james.mailbox.model.MailboxACL.Rfc4314Rights;
 import org.apache.james.mailbox.model.MailboxACL.Right;
+import org.apache.james.mailbox.model.MailboxId;
 import org.apache.james.mailbox.model.MailboxPath;
 import org.apache.james.mailbox.store.mail.MailboxMapper;
 import org.apache.james.mailbox.store.mail.model.impl.SimpleMailbox;
-import org.junit.Assume;
 import org.junit.Rule;
 import org.junit.Test;
 import org.junit.rules.ExpectedException;
@@ -47,18 +47,15 @@ public abstract class MailboxMapperACLTest {
 
     @Rule
     public ExpectedException expected = ExpectedException.none();
-    private MailboxMapper mailboxMapper;
-    private MapperProvider mapperProvider;
 
-    protected abstract MapperProvider createMapperProvider();
+    private MailboxMapper mailboxMapper;
 
-    public void setUp() throws Exception {
-        this.mapperProvider = createMapperProvider();
-        Assume.assumeTrue(mapperProvider.getSupportedCapabilities().contains(MapperProvider.Capabilities.MAILBOX));
-        Assume.assumeTrue(mapperProvider.getSupportedCapabilities().contains(MapperProvider.Capabilities.ACL_STORAGE));
+    protected abstract MailboxMapper createMailboxMapper();
 
-        this.mailboxMapper = mapperProvider.createMailboxMapper();
+    protected abstract MailboxId generateId();
 
+    public void setUp() throws Exception {
+        mailboxMapper = createMailboxMapper();
         MailboxPath benwaInboxPath = MailboxPath.forUser("benwa", "INBOX");
         benwaInboxMailbox = createMailbox(benwaInboxPath);
         mailboxMapper.save(benwaInboxMailbox);
@@ -239,7 +236,7 @@ public abstract class MailboxMapperACLTest {
 
     private SimpleMailbox createMailbox(MailboxPath mailboxPath) {
         SimpleMailbox mailbox = new SimpleMailbox(mailboxPath, UID_VALIDITY);
-        mailbox.setMailboxId(mapperProvider.generateId());
+        mailbox.setMailboxId(generateId());
         return mailbox;
     }
 


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


[18/21] james-project git commit: JAMES-2435 Fix some typos on how-tos

Posted by bt...@apache.org.
JAMES-2435 Fix some typos on how-tos


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

Branch: refs/heads/master
Commit: de03819e06a6ac3221f1f595745192039bcbf8ef
Parents: e9ff0dc
Author: Raphael Ouazana <ra...@linagora.com>
Authored: Thu Jul 5 15:56:09 2018 +0200
Committer: benwa <bt...@linagora.com>
Committed: Fri Jul 6 16:26:34 2018 +0700

----------------------------------------------------------------------
 src/homepage/howTo/imap-server.html     | 8 ++++----
 src/homepage/howTo/index.html           | 4 ++--
 src/homepage/howTo/mail-processing.html | 6 +++---
 src/homepage/howTo/spf.html             | 6 +++---
 4 files changed, 12 insertions(+), 12 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/de03819e/src/homepage/howTo/imap-server.html
----------------------------------------------------------------------
diff --git a/src/homepage/howTo/imap-server.html b/src/homepage/howTo/imap-server.html
index aff1bb2..8459f4c 100644
--- a/src/homepage/howTo/imap-server.html
+++ b/src/homepage/howTo/imap-server.html
@@ -76,7 +76,7 @@ layout: default
                     </header>
 
                     <p>
-                        Someone willing to send you an email will first have to discover which IP your mail server have.
+                        Someone willing to send you an email will first have to discover which IP your mail server has.
                         The way this is achieved is through MX (means Mail eXchange) DNS record.
                     </p>
 
@@ -88,7 +88,7 @@ layout: default
                         <li>Ask <code>company.com</code> DNS server its MX entries</li>
                         <li><code>company.com</code> respond that it is <code>mx.company.com</code></li>
                         <li>Bob resolves <code>mx.company.com</code> ip address...</li>
-                        <li>And can establish a connection to <code>mx.company.com</code> to send an email to Alice</li>
+                        <li>...and can establish a connection to <code>mx.company.com</code> to send an email to Alice</li>
                     </ol>
 
                     <p>All is needed is a MX entry in domain name resolution pointing to the future IP of your James server.</p>
@@ -97,7 +97,7 @@ layout: default
                         <h2><b>JAMES architecture</b></h2>
                     </header>
 
-                    <p>JPA guice docker image relies on an embedded derby database for storing data. Note that Apache Lucene library
+                    <p>JPA guice docker image relies on an embedded Derby database for storing data. Note that Apache Lucene library
                         is used for email search. A mail queue is implemented on top of an embedded Apache ActiveMQ. Hence James do not need
                         any external service for being running.
                     </p>
@@ -176,7 +176,7 @@ linagora/james-jpa-guice:latest</code></pre>
                     <pre><code>docker exec james_run java -jar /root/james-cli.jar AddDomain domain.tld
 docker exec james_run java -jar /root/james-cli.jar AddUser user@domain.tld secretPassword</code></pre>
 
-                    <p>The command line client can be used for several other purposes like managing quota, setting addresses redirections, etc..</p>
+                    <p>The command line client can be used for several other purposes like managing quota, setting addresses redirections, etc.</p>
 
                     <header class="major">
                         <h2><b>Additional features</b></h2>

http://git-wip-us.apache.org/repos/asf/james-project/blob/de03819e/src/homepage/howTo/index.html
----------------------------------------------------------------------
diff --git a/src/homepage/howTo/index.html b/src/homepage/howTo/index.html
index 127ba6a..0c1b1b7 100644
--- a/src/homepage/howTo/index.html
+++ b/src/homepage/howTo/index.html
@@ -52,8 +52,8 @@ layout: default
               <header class="major">
                 <h2>James how to's...</h2>
               </header>
-              <p class="align-left">James can be used for a wide variety of cases here is a little list of what you can use it for.<br/>
-                This section explains in detail how to achieve these cool features in a straightforward way...</p>
+              <p class="align-left">James can be used for a wide variety of cases. Here is a little list of what you can use it for.<br/>
+                This section explains in detail how to achieve these cool features in a straightforward way.</p>
 
               <a href="mail-processing.html"
                  data-lightbox="james-schema"

http://git-wip-us.apache.org/repos/asf/james-project/blob/de03819e/src/homepage/howTo/mail-processing.html
----------------------------------------------------------------------
diff --git a/src/homepage/howTo/mail-processing.html b/src/homepage/howTo/mail-processing.html
index 9c07441..ba09342 100644
--- a/src/homepage/howTo/mail-processing.html
+++ b/src/homepage/howTo/mail-processing.html
@@ -50,7 +50,7 @@ layout: default
           <div class="">
             <div class="content align-left">
               <header class="major">
-                <h1>How to customize mail processing...</h1>
+                <h1>How to customize mail processing</h1>
               </header>
                 <header class="major">
                     <h2><b>Mail processing component overview</b></h2>
@@ -163,7 +163,7 @@ layout: default
               <p>Note that we can interact with the mail server through the mailet context for sending mails, knowing postmaster, etc...</p>
 
                 <p><b>GenericMailet</b> exposes us the 'init parameters' that had been configured for this mailet. We will
-                    use it to retireve <b>reason</b> and <b>promotionCode</b>.
+                    use it to retrieve <b>reason</b> and <b>promotionCode</b>.
                     We can do it in the <b>init()</b> method exposed by the generic mailet:</p>
 
                 <pre><code>    @Override
@@ -179,7 +179,7 @@ layout: default
         }
     }</code></pre>
 
-            <p>You can retrieve the sources of this mini-project on <a href="https://github.com/apache/james-project/examples/custom-mailets">GitHub</a></p>
+            <p>You can retrieve the sources of this mini-project on <a href="https://github.com/apache/james-project/tree/master/examples/custom-mailets">GitHub</a></p>
 
             <header class="major">
                <h2><b>Loading custom mailets with James</b></h2>

http://git-wip-us.apache.org/repos/asf/james-project/blob/de03819e/src/homepage/howTo/spf.html
----------------------------------------------------------------------
diff --git a/src/homepage/howTo/spf.html b/src/homepage/howTo/spf.html
index a0b69e9..023c3a1 100644
--- a/src/homepage/howTo/spf.html
+++ b/src/homepage/howTo/spf.html
@@ -60,7 +60,7 @@ layout: default
 
                     <p>
                         The Sender Policy Framework (SPF) is an open standard specifying a technical method to prevent
-                        sender address forgery, might help you to do this.
+                        sender address forgery. It might help you to do this.
                     </p>
 
                     <p>
@@ -88,7 +88,7 @@ layout: default
                     <pre><code>@ IN TXT “v=spf1 +a:james.test-domain.com -all”
 @ IN SPF “v=spf1 +a:james.test-domain.com -all”</code></pre>
 
-                    <p>That way other mail servers knows only <i>james.test-domain.com</i> can send mails for <i>test-domain.com</i>.</p>
+                    <p>That way other mail servers know only <i>james.test-domain.com</i> can send mails for <i>test-domain.com</i>.</p>
 
 
                     <header class="major">
@@ -98,7 +98,7 @@ layout: default
                     <p>
                         Now we will see how to verify SPF records of incoming emails. For this we can customize mail processing,
                         and specify actions upon SPF record validity. For introducing these components, James relies on the
-                        <a href="https://james.apache.org/jspf/">JSPF</a>library.
+                        <a href="https://james.apache.org/jspf/">JSPF</a> library.
                     </p>
 
                     <p>We just need to edit the <code>mailetcontainer.xml</code> configuration file as follow:</p>


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


[15/21] james-project git commit: MAILBOX-342 Improve data provisioning logic in MailboxManagerTest

Posted by bt...@apache.org.
MAILBOX-342 Improve data provisioning logic in MailboxManagerTest

117 mailboxes were always provisioned.

Avoid this leads to cool, free test speed improvments:

 - Cassandra: 6 min 44 -> 1 min 46
 - Memory: 8s -> 1,4s
 - MailDir (x2): 11s -> 2s
 - JCR: 1 min 45 -> 14s

No stats for HBase, JPA


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

Branch: refs/heads/master
Commit: d6de40258077707cfb04615d5a0b221698ad922e
Parents: a0cab76
Author: benwa <bt...@linagora.com>
Authored: Thu Jul 5 15:20:10 2018 +0700
Committer: benwa <bt...@linagora.com>
Committed: Fri Jul 6 16:25:50 2018 +0700

----------------------------------------------------------------------
 .../apache/james/mailbox/MessageManager.java    |   5 +
 .../james/mailbox/MailboxManagerTest.java       |  10 +-
 .../james/mailbox/mock/DataProvisioner.java     | 131 +++++++++++++++
 .../james/mailbox/mock/MockMailboxManager.java  | 164 -------------------
 .../cassandra/CassandraMailboxManagerTest.java  |  10 ++
 .../james/mailbox/copier/MailboxCopierTest.java |  10 +-
 6 files changed, 157 insertions(+), 173 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/d6de4025/mailbox/api/src/main/java/org/apache/james/mailbox/MessageManager.java
----------------------------------------------------------------------
diff --git a/mailbox/api/src/main/java/org/apache/james/mailbox/MessageManager.java b/mailbox/api/src/main/java/org/apache/james/mailbox/MessageManager.java
index 27123b3..41e79c8 100644
--- a/mailbox/api/src/main/java/org/apache/james/mailbox/MessageManager.java
+++ b/mailbox/api/src/main/java/org/apache/james/mailbox/MessageManager.java
@@ -22,6 +22,7 @@ package org.apache.james.mailbox;
 import java.io.ByteArrayInputStream;
 import java.io.IOException;
 import java.io.InputStream;
+import java.nio.charset.StandardCharsets;
 import java.util.Date;
 import java.util.EnumSet;
 import java.util.Iterator;
@@ -209,6 +210,10 @@ public interface MessageManager {
                 return build(new ByteArrayInputStream(msgIn));
             }
 
+            public AppendCommand build(String msgIn) {
+                return build(msgIn.getBytes(StandardCharsets.UTF_8));
+            }
+
             public AppendCommand build(Message message) throws IOException {
                 return build(DefaultMessageWriter.asBytes(message));
             }

http://git-wip-us.apache.org/repos/asf/james-project/blob/d6de4025/mailbox/api/src/test/java/org/apache/james/mailbox/MailboxManagerTest.java
----------------------------------------------------------------------
diff --git a/mailbox/api/src/test/java/org/apache/james/mailbox/MailboxManagerTest.java b/mailbox/api/src/test/java/org/apache/james/mailbox/MailboxManagerTest.java
index b729b64..2f42eec 100644
--- a/mailbox/api/src/test/java/org/apache/james/mailbox/MailboxManagerTest.java
+++ b/mailbox/api/src/test/java/org/apache/james/mailbox/MailboxManagerTest.java
@@ -32,7 +32,7 @@ import org.apache.james.mailbox.MailboxManager.MailboxCapabilities;
 import org.apache.james.mailbox.MessageManager.AppendCommand;
 import org.apache.james.mailbox.exception.AnnotationException;
 import org.apache.james.mailbox.exception.MailboxException;
-import org.apache.james.mailbox.mock.MockMailboxManager;
+import org.apache.james.mailbox.mock.DataProvisioner;
 import org.apache.james.mailbox.model.MailboxACL;
 import org.apache.james.mailbox.model.MailboxAnnotation;
 import org.apache.james.mailbox.model.MailboxAnnotationKey;
@@ -97,7 +97,7 @@ public abstract class MailboxManagerTest {
     protected abstract MailboxManager provideMailboxManager() throws MailboxException;
 
     public void setUp() throws Exception {
-        this.mailboxManager = new MockMailboxManager(provideMailboxManager()).getMockMailboxManager();
+        this.mailboxManager = provideMailboxManager();
 
         this.message = Message.Builder.of()
             .setSubject("test")
@@ -230,8 +230,10 @@ public abstract class MailboxManagerTest {
     public void listShouldReturnMailboxes() throws MailboxException, UnsupportedEncodingException {
         session = mailboxManager.createSystemSession("manager");
         mailboxManager.startProcessingRequest(session);
-        
-        assertThat(mailboxManager.list(session)).hasSize(MockMailboxManager.EXPECTED_MAILBOXES_COUNT);
+
+        DataProvisioner.feedMailboxManager(mailboxManager);
+
+        assertThat(mailboxManager.list(session)).hasSize(DataProvisioner.EXPECTED_MAILBOXES_COUNT);
     }
 
     @Test

http://git-wip-us.apache.org/repos/asf/james-project/blob/d6de4025/mailbox/api/src/test/java/org/apache/james/mailbox/mock/DataProvisioner.java
----------------------------------------------------------------------
diff --git a/mailbox/api/src/test/java/org/apache/james/mailbox/mock/DataProvisioner.java b/mailbox/api/src/test/java/org/apache/james/mailbox/mock/DataProvisioner.java
new file mode 100644
index 0000000..8914a6e
--- /dev/null
+++ b/mailbox/api/src/test/java/org/apache/james/mailbox/mock/DataProvisioner.java
@@ -0,0 +1,131 @@
+/****************************************************************
+ * Licensed to the Apache Software Foundation (ASF) under one   *
+ * or more contributor license agreements.  See the NOTICE file *
+ * distributed with this work for additional information        *
+ * regarding copyright ownership.  The ASF licenses this file   *
+ * to you under the Apache License, Version 2.0 (the            *
+ * "License"); you may not use this file except in compliance   *
+ * with the License.  You may obtain a copy of the License at   *
+ *                                                              *
+ *   http://www.apache.org/licenses/LICENSE-2.0                 *
+ *                                                              *
+ * Unless required by applicable law or agreed to in writing,   *
+ * software distributed under the License is distributed on an  *
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY       *
+ * KIND, either express or implied.  See the License for the    *
+ * specific language governing permissions and limitations      *
+ * under the License.                                           *
+ ****************************************************************/
+package org.apache.james.mailbox.mock;
+
+import java.util.stream.IntStream;
+
+import javax.mail.Flags;
+
+import org.apache.james.mailbox.MailboxManager;
+import org.apache.james.mailbox.MailboxSession;
+import org.apache.james.mailbox.MessageManager;
+import org.apache.james.mailbox.exception.MailboxException;
+import org.apache.james.mailbox.model.MailboxConstants;
+import org.apache.james.mailbox.model.MailboxPath;
+
+import com.github.fge.lambdas.Throwing;
+
+public class DataProvisioner {
+    
+    /**
+     * Number of Domains to be created in the Mailbox Manager.
+     */
+    public static final int DOMAIN_COUNT = 3;
+    
+    /**
+     * Number of Users (with INBOX) to be created in the Mailbox Manager.
+     */
+    public static final int USER_COUNT = 3;
+    
+    /**
+     * Number of Sub Mailboxes (mailbox in INBOX) to be created in the Mailbox Manager.
+     */
+    public static final int SUB_MAILBOXES_COUNT = 3;
+    
+    /**
+     * Number of Sub Sub Mailboxes (mailbox in a mailbox under INBOX) to be created in the Mailbox Manager.
+     */
+    public static final int SUB_SUB_MAILBOXES_COUNT = 3;
+    
+    /**
+     * The expected Mailboxes count calculated based on the feeded mails.
+     */
+    public static final int EXPECTED_MAILBOXES_COUNT = DOMAIN_COUNT * 
+                     (USER_COUNT + // INBOX
+                      USER_COUNT * SUB_MAILBOXES_COUNT + // INBOX.SUB_FOLDER
+                      USER_COUNT * SUB_MAILBOXES_COUNT * SUB_SUB_MAILBOXES_COUNT);  // INBOX.SUB_FOLDER.SUBSUB_FOLDER
+    
+    /**
+     * Number of Messages per Mailbox to be created in the Mailbox Manager.
+     */
+    public static final int MESSAGE_PER_MAILBOX_COUNT = 3;
+    
+    /**
+     * Utility method to feed the Mailbox Manager with a number of 
+     * mailboxes and messages per mailbox.
+     */
+    public static void feedMailboxManager(MailboxManager mailboxManager) {
+        IntStream.range(0, DOMAIN_COUNT)
+            .mapToObj(i -> "localhost" + i)
+            .forEach(domain -> provisionDomain(mailboxManager, domain));
+    }
+
+    public static void provisionDomain(MailboxManager mailboxManager, String domain) {
+        IntStream.range(0, USER_COUNT)
+            .mapToObj(i -> "user" + i + "@" + domain)
+            .forEach(Throwing.consumer(user -> provisionUser(mailboxManager, user)));
+    }
+
+    private static void provisionUser(MailboxManager mailboxManager, String user) throws MailboxException {
+        MailboxSession mailboxSession = mailboxManager.createSystemSession(user);
+        mailboxManager.startProcessingRequest(mailboxSession);
+
+        createMailbox(mailboxManager, mailboxSession, MailboxPath.inbox(mailboxSession));
+
+        IntStream.range(0, SUB_MAILBOXES_COUNT)
+            .mapToObj(i -> MailboxConstants.INBOX + ".SUB_FOLDER_" + i)
+            .peek(name -> createMailbox(mailboxManager, mailboxSession, MailboxPath.forUser(user, name)))
+            .forEach(name ->  createSubSubMailboxes(mailboxManager, mailboxSession, name));
+
+        mailboxManager.endProcessingRequest(mailboxSession);
+        mailboxManager.logout(mailboxSession, true);
+    }
+
+    private static void createSubSubMailboxes(MailboxManager mailboxManager,MailboxSession mailboxSession, String subFolderName) {
+        IntStream.range(0, SUB_SUB_MAILBOXES_COUNT)
+            .mapToObj(i -> subFolderName + ".SUBSUB_FOLDER_" + i)
+            .forEach(name -> createMailbox(mailboxManager, mailboxSession, MailboxPath.forUser(mailboxSession.getUser().getUserName(), name)));
+
+    }
+
+    private static void createMailbox(MailboxManager mailboxManager, MailboxSession mailboxSession, MailboxPath mailboxPath) {
+        try {
+            mailboxManager.createMailbox(mailboxPath, mailboxSession);
+            MessageManager messageManager = mailboxManager.getMailbox(mailboxPath, mailboxSession);
+
+            IntStream.range(0, MESSAGE_PER_MAILBOX_COUNT)
+                .forEach(i -> appendMessage(messageManager, mailboxSession));
+        } catch (MailboxException e) {
+            throw new RuntimeException(e);
+        }
+    }
+
+    private static void appendMessage(MessageManager messageManager, MailboxSession mailboxSession) {
+        try {
+            messageManager.appendMessage(
+                MessageManager.AppendCommand.builder()
+                    .recent()
+                    .withFlags(new Flags(Flags.Flag.RECENT))
+                    .build(MockMail.MAIL_TEXT_PLAIN),
+                mailboxSession);
+        } catch (MailboxException e) {
+            throw new RuntimeException(e);
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/james-project/blob/d6de4025/mailbox/api/src/test/java/org/apache/james/mailbox/mock/MockMailboxManager.java
----------------------------------------------------------------------
diff --git a/mailbox/api/src/test/java/org/apache/james/mailbox/mock/MockMailboxManager.java b/mailbox/api/src/test/java/org/apache/james/mailbox/mock/MockMailboxManager.java
deleted file mode 100644
index da8a360..0000000
--- a/mailbox/api/src/test/java/org/apache/james/mailbox/mock/MockMailboxManager.java
+++ /dev/null
@@ -1,164 +0,0 @@
-/****************************************************************
- * Licensed to the Apache Software Foundation (ASF) under one   *
- * or more contributor license agreements.  See the NOTICE file *
- * distributed with this work for additional information        *
- * regarding copyright ownership.  The ASF licenses this file   *
- * to you under the Apache License, Version 2.0 (the            *
- * "License"); you may not use this file except in compliance   *
- * with the License.  You may obtain a copy of the License at   *
- *                                                              *
- *   http://www.apache.org/licenses/LICENSE-2.0                 *
- *                                                              *
- * Unless required by applicable law or agreed to in writing,   *
- * software distributed under the License is distributed on an  *
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY       *
- * KIND, either express or implied.  See the License for the    *
- * specific language governing permissions and limitations      *
- * under the License.                                           *
- ****************************************************************/
-package org.apache.james.mailbox.mock;
-
-import java.io.ByteArrayInputStream;
-import java.io.UnsupportedEncodingException;
-import java.util.Calendar;
-
-import javax.mail.Flags;
-
-import org.apache.james.mailbox.MailboxManager;
-import org.apache.james.mailbox.MailboxSession;
-import org.apache.james.mailbox.MessageManager;
-import org.apache.james.mailbox.exception.MailboxException;
-import org.apache.james.mailbox.model.MailboxPath;
-
-/**
- * A mock mailbox manager.
- *
- */
-public class MockMailboxManager {
-    
-    /**
-     * The mock mailbox manager constructed based on a provided mailboxmanager.
-     */
-    private final MailboxManager mockMailboxManager;
-    
-    /**
-     * Number of Domains to be created in the Mailbox Manager.
-     */
-    public static final int DOMAIN_COUNT = 3;
-    
-    /**
-     * Number of Users (with INBOX) to be created in the Mailbox Manager.
-     */
-    public static final int USER_COUNT = 3;
-    
-    /**
-     * Number of Sub Mailboxes (mailbox in INBOX) to be created in the Mailbox Manager.
-     */
-    public static final int SUB_MAILBOXES_COUNT = 3;
-    
-    /**
-     * Number of Sub Sub Mailboxes (mailbox in a mailbox under INBOX) to be created in the Mailbox Manager.
-     */
-    public static final int SUB_SUB_MAILBOXES_COUNT = 3;
-    
-    /**
-     * The expected Mailboxes count calculated based on the feeded mails.
-     */
-    public static final int EXPECTED_MAILBOXES_COUNT = DOMAIN_COUNT * 
-                     (USER_COUNT + // INBOX
-                      USER_COUNT * SUB_MAILBOXES_COUNT + // INBOX.SUB_FOLDER
-                      USER_COUNT * SUB_MAILBOXES_COUNT * SUB_SUB_MAILBOXES_COUNT);  // INBOX.SUB_FOLDER.SUBSUB_FOLDER
-    
-    /**
-     * Number of Messages per Mailbox to be created in the Mailbox Manager.
-     */
-    public static final int MESSAGE_PER_MAILBOX_COUNT = 3;
-    
-    /**
-     * Construct a mock mailboxManager based on a valid mailboxManager.
-     * The mailboxManager will be feeded with mailboxes and mails.
-     * 
-     * @param mailboxManager
-     * @throws UnsupportedEncodingException 
-     * @throws MailboxException 
-     */
-    public MockMailboxManager(MailboxManager mailboxManager) throws MailboxException, UnsupportedEncodingException {
-        this.mockMailboxManager = mailboxManager;
-        feedMockMailboxManager();
-    }
-    
-    /**
-     * @return
-     */
-    public MailboxManager getMockMailboxManager() {
-        return mockMailboxManager;
-    }
-    
-    /**
-     * Utility method to feed the Mailbox Manager with a number of 
-     * mailboxes and messages per mailbox.
-     * 
-     * @throws MailboxException
-     * @throws UnsupportedEncodingException
-     */
-    private void feedMockMailboxManager() throws MailboxException, UnsupportedEncodingException {
-
-        MailboxPath mailboxPath = null;
-        
-        for (int i = 0; i < DOMAIN_COUNT; i++) {
-
-            for (int j = 0; j < USER_COUNT; j++) {
-                
-                String user = "user" + j + "@localhost" + i;
-                
-                String folderName = "INBOX";
-
-                MailboxSession mailboxSession = getMockMailboxManager().createSystemSession(user);
-                mailboxPath = MailboxPath.forUser(user, folderName);
-                createMailbox(mailboxSession, mailboxPath);
-                
-                for (int k = 0; k < SUB_MAILBOXES_COUNT; k++) {
-                    
-                    String subFolderName = folderName + ".SUB_FOLDER_" + k;
-                    mailboxPath = MailboxPath.forUser(user, subFolderName);
-                    createMailbox(mailboxSession, mailboxPath);
-                    
-                    for (int l = 0; l < SUB_SUB_MAILBOXES_COUNT; l++) {
-
-                        String subSubfolderName = subFolderName + ".SUBSUB_FOLDER_" + l;
-                        mailboxPath = MailboxPath.forUser(user, subSubfolderName);
-                        createMailbox(mailboxSession, mailboxPath);
-
-                    }
-                        
-                }
-
-                getMockMailboxManager().logout(mailboxSession, true);
-        
-            }
-            
-        }
-        
-    }
-    
-    /**
-     * 
-     * @param mailboxPath
-     * @throws MailboxException
-     * @throws UnsupportedEncodingException 
-     */
-    private void createMailbox(MailboxSession mailboxSession, MailboxPath mailboxPath) throws MailboxException, UnsupportedEncodingException {
-        getMockMailboxManager().startProcessingRequest(mailboxSession);
-        getMockMailboxManager().createMailbox(mailboxPath, mailboxSession);
-        MessageManager messageManager = getMockMailboxManager().getMailbox(mailboxPath, mailboxSession);
-        for (int j = 0; j < MESSAGE_PER_MAILBOX_COUNT; j++) {
-            messageManager.appendMessage(new ByteArrayInputStream(MockMail.MAIL_TEXT_PLAIN.getBytes("UTF-8")), 
-                    Calendar.getInstance().getTime(), 
-                    mailboxSession, 
-                    true, 
-                    new Flags(Flags.Flag.RECENT));
-        }
-        getMockMailboxManager().endProcessingRequest(mailboxSession);
-    }
-    
-}

http://git-wip-us.apache.org/repos/asf/james-project/blob/d6de4025/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/CassandraMailboxManagerTest.java
----------------------------------------------------------------------
diff --git a/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/CassandraMailboxManagerTest.java b/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/CassandraMailboxManagerTest.java
index 4594300..795afec 100644
--- a/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/CassandraMailboxManagerTest.java
+++ b/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/CassandraMailboxManagerTest.java
@@ -19,6 +19,7 @@
 package org.apache.james.mailbox.cassandra;
 
 import org.apache.james.backends.cassandra.CassandraCluster;
+import org.apache.james.backends.cassandra.ContainerLifecycleConfiguration;
 import org.apache.james.backends.cassandra.DockerCassandraRule;
 import org.apache.james.backends.cassandra.init.CassandraModuleComposite;
 import org.apache.james.blob.cassandra.CassandraBlobModule;
@@ -41,10 +42,19 @@ import org.apache.james.mailbox.cassandra.modules.CassandraUidModule;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.ClassRule;
+import org.junit.Rule;
+import org.junit.rules.TestRule;
 
 public class CassandraMailboxManagerTest extends MailboxManagerTest {
 
     @ClassRule public static DockerCassandraRule cassandraServer = new DockerCassandraRule();
+
+    public static ContainerLifecycleConfiguration cassandraLifecycleConfiguration = ContainerLifecycleConfiguration.withDefaultIterationsBetweenRestart()
+        .container(cassandraServer.getRawContainer())
+        .build();
+
+    @Rule
+    public TestRule cassandraLifecycleTestRule = cassandraLifecycleConfiguration.asTestRule();
     
     private CassandraCluster cassandra;
     

http://git-wip-us.apache.org/repos/asf/james-project/blob/d6de4025/mailbox/tool/src/test/java/org/apache/james/mailbox/copier/MailboxCopierTest.java
----------------------------------------------------------------------
diff --git a/mailbox/tool/src/test/java/org/apache/james/mailbox/copier/MailboxCopierTest.java b/mailbox/tool/src/test/java/org/apache/james/mailbox/copier/MailboxCopierTest.java
index 126bc39..77d4c42 100644
--- a/mailbox/tool/src/test/java/org/apache/james/mailbox/copier/MailboxCopierTest.java
+++ b/mailbox/tool/src/test/java/org/apache/james/mailbox/copier/MailboxCopierTest.java
@@ -31,7 +31,7 @@ import org.apache.james.mailbox.acl.SimpleGroupMembershipResolver;
 import org.apache.james.mailbox.exception.BadCredentialsException;
 import org.apache.james.mailbox.exception.MailboxException;
 import org.apache.james.mailbox.inmemory.manager.InMemoryIntegrationResources;
-import org.apache.james.mailbox.mock.MockMailboxManager;
+import org.apache.james.mailbox.mock.DataProvisioner;
 import org.apache.james.mailbox.model.MailboxPath;
 import org.apache.james.mailbox.store.StoreMailboxManager;
 import org.junit.Before;
@@ -97,8 +97,8 @@ public class MailboxCopierTest {
          if (dstMemMailboxManager instanceof StoreMailboxManager) {
              ((StoreMailboxManager) dstMemMailboxManager).init();
          }
-    
-        srcMemMailboxManager = new MockMailboxManager(srcMemMailboxManager).getMockMailboxManager();
+
+        DataProvisioner.feedMailboxManager(srcMemMailboxManager);
        
         assertMailboxManagerSize(srcMemMailboxManager, 1);
         
@@ -124,13 +124,13 @@ public class MailboxCopierTest {
 
         List<MailboxPath> mailboxPathList = mailboxManager.list(mailboxSession);
         
-        assertThat(mailboxPathList).hasSize(MockMailboxManager.EXPECTED_MAILBOXES_COUNT);
+        assertThat(mailboxPathList).hasSize(DataProvisioner.EXPECTED_MAILBOXES_COUNT);
         
         for (MailboxPath mailboxPath: mailboxPathList) {
             MailboxSession userSession = mailboxManager.createSystemSession(mailboxPath.getUser());
             mailboxManager.startProcessingRequest(mailboxSession);
             MessageManager messageManager = mailboxManager.getMailbox(mailboxPath, userSession);
-            assertThat(messageManager.getMetaData(false, userSession, FetchGroup.NO_UNSEEN).getMessageCount()).isEqualTo(MockMailboxManager.MESSAGE_PER_MAILBOX_COUNT * multiplicationFactor);
+            assertThat(messageManager.getMetaData(false, userSession, FetchGroup.NO_UNSEEN).getMessageCount()).isEqualTo(DataProvisioner.MESSAGE_PER_MAILBOX_COUNT * multiplicationFactor);
         }
         
         mailboxManager.endProcessingRequest(mailboxSession);


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


[12/21] james-project git commit: MAILBOX-342 Simplify CassandraMailboxMapperConcurrencyTest

Posted by bt...@apache.org.
MAILBOX-342 Simplify CassandraMailboxMapperConcurrencyTest


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

Branch: refs/heads/master
Commit: b0bf0e4851f5d156624189a1fb072523d78fca17
Parents: 6c8b5fc
Author: benwa <bt...@linagora.com>
Authored: Thu Jul 5 10:57:55 2018 +0700
Committer: benwa <bt...@linagora.com>
Committed: Fri Jul 6 16:25:50 2018 +0700

----------------------------------------------------------------------
 .../CassandraMailboxMapperConcurrencyTest.java  | 20 +++++---------------
 1 file changed, 5 insertions(+), 15 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/b0bf0e48/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraMailboxMapperConcurrencyTest.java
----------------------------------------------------------------------
diff --git a/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraMailboxMapperConcurrencyTest.java b/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraMailboxMapperConcurrencyTest.java
index 20e339d..cceb4f3 100644
--- a/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraMailboxMapperConcurrencyTest.java
+++ b/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraMailboxMapperConcurrencyTest.java
@@ -27,8 +27,7 @@ import java.util.concurrent.TimeUnit;
 import org.apache.james.backends.cassandra.CassandraCluster;
 import org.apache.james.backends.cassandra.DockerCassandraRule;
 import org.apache.james.backends.cassandra.init.CassandraModuleComposite;
-import org.apache.james.backends.cassandra.init.configuration.CassandraConfiguration;
-import org.apache.james.backends.cassandra.utils.CassandraUtils;
+import org.apache.james.mailbox.cassandra.mail.utils.GuiceUtils;
 import org.apache.james.mailbox.cassandra.modules.CassandraAclModule;
 import org.apache.james.mailbox.cassandra.modules.CassandraMailboxModule;
 import org.apache.james.mailbox.model.MailboxPath;
@@ -55,19 +54,10 @@ public class CassandraMailboxMapperConcurrencyTest {
     @Before
     public void setUp() {
         CassandraModuleComposite modules = new CassandraModuleComposite(new CassandraMailboxModule(), new CassandraAclModule());
-        cassandra = CassandraCluster.create(modules, cassandraServer.getIp(), cassandraServer.getBindingPort());
-        CassandraMailboxDAO mailboxDAO = new CassandraMailboxDAO(cassandra.getConf(), cassandra.getTypesProvider());
-        CassandraMailboxPathDAOImpl mailboxPathDAO = new CassandraMailboxPathDAOImpl(cassandra.getConf(), cassandra.getTypesProvider());
-        CassandraMailboxPathV2DAO mailboxPathV2DAO = new CassandraMailboxPathV2DAO(cassandra.getConf(), CassandraUtils.WITH_DEFAULT_CONFIGURATION);
-        CassandraUserMailboxRightsDAO userMailboxRightsDAO = new CassandraUserMailboxRightsDAO(cassandra.getConf(), CassandraUtils.WITH_DEFAULT_CONFIGURATION);
-        testee = new CassandraMailboxMapper(
-            mailboxDAO,
-            mailboxPathDAO,
-            mailboxPathV2DAO,
-            userMailboxRightsDAO,
-            new CassandraACLMapper(cassandra.getConf(),
-                userMailboxRightsDAO,
-                CassandraConfiguration.DEFAULT_CONFIGURATION));
+        cassandra = CassandraCluster.create(modules, cassandraServer.getHost());
+
+        testee = GuiceUtils.testInjector(cassandra)
+            .getInstance(CassandraMailboxMapper.class);
     }
 
     @After


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