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/04/18 11:43:05 UTC

[2/4] james-project git commit: JAMES-2366 Fix a bug in getAllMappings

JAMES-2366 Fix a bug in getAllMappings

We were never actually examining the detailed content of this call.

It turned out to be buggy for both HBASE and Cassandra. I fixed it for Cassandra implementation.


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

Branch: refs/heads/master
Commit: aeda0fff08f81e1c760d4641ae06743f2d15725a
Parents: 01dd746
Author: benwa <bt...@linagora.com>
Authored: Tue Apr 17 15:20:04 2018 +0700
Committer: benwa <bt...@linagora.com>
Committed: Wed Apr 18 18:42:25 2018 +0700

----------------------------------------------------------------------
 .../CassandraRecipientRewriteTable.java         |  2 +-
 .../hbase/HBaseRecipientRewriteTableTest.java   |  7 ++++++
 .../lib/AbstractRecipientRewriteTableTest.java  | 25 ++++++++++++++++++++
 .../WebAdminServerIntegrationTest.java          | 16 +++++++++++++
 4 files changed, 49 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/aeda0fff/server/data/data-cassandra/src/main/java/org/apache/james/rrt/cassandra/CassandraRecipientRewriteTable.java
----------------------------------------------------------------------
diff --git a/server/data/data-cassandra/src/main/java/org/apache/james/rrt/cassandra/CassandraRecipientRewriteTable.java b/server/data/data-cassandra/src/main/java/org/apache/james/rrt/cassandra/CassandraRecipientRewriteTable.java
index e4bdd03..0a2b098 100644
--- a/server/data/data-cassandra/src/main/java/org/apache/james/rrt/cassandra/CassandraRecipientRewriteTable.java
+++ b/server/data/data-cassandra/src/main/java/org/apache/james/rrt/cassandra/CassandraRecipientRewriteTable.java
@@ -171,7 +171,7 @@ public class CassandraRecipientRewriteTable extends AbstractRecipientRewriteTabl
         }
 
         public String asKey() {
-            return getUser() + "@" + getDomain();
+            return getUser() + "@" + getDomain().asString();
         }
     }
 

http://git-wip-us.apache.org/repos/asf/james-project/blob/aeda0fff/server/data/data-hbase/src/test/java/org/apache/james/rrt/hbase/HBaseRecipientRewriteTableTest.java
----------------------------------------------------------------------
diff --git a/server/data/data-hbase/src/test/java/org/apache/james/rrt/hbase/HBaseRecipientRewriteTableTest.java b/server/data/data-hbase/src/test/java/org/apache/james/rrt/hbase/HBaseRecipientRewriteTableTest.java
index d425db9..81e2c59 100644
--- a/server/data/data-hbase/src/test/java/org/apache/james/rrt/hbase/HBaseRecipientRewriteTableTest.java
+++ b/server/data/data-hbase/src/test/java/org/apache/james/rrt/hbase/HBaseRecipientRewriteTableTest.java
@@ -28,6 +28,7 @@ import org.apache.james.system.hbase.TablePool;
 import org.apache.james.user.hbase.def.HUsersRepository;
 import org.junit.After;
 import org.junit.Before;
+import org.junit.Ignore;
 
 /**
  * Tests for the HBase RecipientRewriteTable implementation.
@@ -60,4 +61,10 @@ public class HBaseRecipientRewriteTableTest extends AbstractRecipientRewriteTabl
         rrt.configure(new DefaultConfigurationBuilder());
         return rrt;
     }
+
+    @Ignore("JAMES-2376 HBASE RRT getAllMappings is buggy")
+    @Override
+    public void getAllMappingsShouldListAllEntries() {
+
+    }
 }

http://git-wip-us.apache.org/repos/asf/james-project/blob/aeda0fff/server/data/data-library/src/test/java/org/apache/james/rrt/lib/AbstractRecipientRewriteTableTest.java
----------------------------------------------------------------------
diff --git a/server/data/data-library/src/test/java/org/apache/james/rrt/lib/AbstractRecipientRewriteTableTest.java b/server/data/data-library/src/test/java/org/apache/james/rrt/lib/AbstractRecipientRewriteTableTest.java
index 143fb27..69b6d28 100644
--- a/server/data/data-library/src/test/java/org/apache/james/rrt/lib/AbstractRecipientRewriteTableTest.java
+++ b/server/data/data-library/src/test/java/org/apache/james/rrt/lib/AbstractRecipientRewriteTableTest.java
@@ -23,6 +23,7 @@ import static org.assertj.core.api.Assertions.assertThatThrownBy;
 
 import java.util.Map;
 
+import org.apache.commons.lang3.tuple.Pair;
 import org.apache.james.core.Domain;
 import org.apache.james.lifecycle.api.LifecycleUtil;
 import org.apache.james.rrt.api.RecipientRewriteTable;
@@ -113,6 +114,30 @@ public abstract class AbstractRecipientRewriteTableTest {
     }
 
     @Test
+    public void getAllMappingsShouldListAllEntries() throws ErrorMappingException, RecipientRewriteTableException {
+        String user = "test";
+        String user2 = "test2";
+        String regex = "(.*)@localhost";
+        String regex2 = "(.+)@test";
+
+
+        addMapping(user, Domain.LOCALHOST, regex, Type.Regex);
+        addMapping(user, Domain.LOCALHOST, regex2, Type.Regex);
+        addMapping(user2, Domain.LOCALHOST, user + "@" + Domain.LOCALHOST.asString(), Type.Address);
+
+        assertThat(virtualUserTable.getAllMappings())
+            .describedAs("One mappingline")
+            .containsOnly(
+                Pair.of(user + "@" + Domain.LOCALHOST.asString(), MappingsImpl.builder()
+                    .add(MappingImpl.regex(regex))
+                    .add(MappingImpl.regex(regex2))
+                    .build()),
+                Pair.of(user2 + "@" + Domain.LOCALHOST.asString(), MappingsImpl.builder()
+                    .add(MappingImpl.address(user + "@" + Domain.LOCALHOST.asString()))
+                    .build()));
+    }
+
+    @Test
     public void testStoreAndRetrieveAddressMapping() throws ErrorMappingException, RecipientRewriteTableException {
 
         String user = "test";

http://git-wip-us.apache.org/repos/asf/james-project/blob/aeda0fff/server/protocols/webadmin-integration-test/src/test/java/org/apache/james/webadmin/integration/WebAdminServerIntegrationTest.java
----------------------------------------------------------------------
diff --git a/server/protocols/webadmin-integration-test/src/test/java/org/apache/james/webadmin/integration/WebAdminServerIntegrationTest.java b/server/protocols/webadmin-integration-test/src/test/java/org/apache/james/webadmin/integration/WebAdminServerIntegrationTest.java
index f2d0d7f..d882331 100644
--- a/server/protocols/webadmin-integration-test/src/test/java/org/apache/james/webadmin/integration/WebAdminServerIntegrationTest.java
+++ b/server/protocols/webadmin-integration-test/src/test/java/org/apache/james/webadmin/integration/WebAdminServerIntegrationTest.java
@@ -296,6 +296,22 @@ public class WebAdminServerIntegrationTest {
     }
 
     @Test
+    public void addressForwardsEndpointShouldListForwardAddresses() throws Exception {
+        dataProbe.addForwardMapping("from1", "domain.com", "user1@domain.com");
+        dataProbe.addForwardMapping("from2", "domain.com", "user2@domain.com");
+
+        List<String> members = when()
+            .get("/address/forwards")
+        .then()
+            .statusCode(HttpStatus.OK_200)
+            .contentType(JSON_CONTENT_TYPE)
+            .extract()
+            .jsonPath()
+            .getList(".");
+        assertThat(members).containsOnly("from1@domain.com", "from2@domain.com");
+    }
+
+    @Test
     public void getSwaggerShouldReturnJsonDataForSwagger() throws Exception {
         when()
             .get(SwaggerRoutes.SWAGGER_ENDPOINT)


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