JAMES-2642 alias webadmin integration test

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

Branch: refs/heads/master
Commit: 3a00fa2adeb956ede1daf3fbad393d8b62170cb9
Parents: 9fd0b6a
Author: Rene Cordier <[email protected]>
Authored: Tue Jan 15 10:36:05 2019 +0700
Committer: Benoit Tellier <[email protected]>
Committed: Thu Jan 17 13:49:09 2019 +0700

----------------------------------------------------------------------
 .../james/cli/probe/impl/JmxDataProbe.java      | 22 ++++++++++++
 .../org/apache/james/utils/DataProbeImpl.java   | 12 +++++++
 .../java/org/apache/james/probe/DataProbe.java  |  4 +++
 .../RecipientRewriteTableManagementMBean.java   | 36 ++++++++++++++++----
 .../lib/RecipientRewriteTableManagement.java    | 12 +++++++
 .../WebAdminServerIntegrationTest.java          | 16 +++++++++
 6 files changed, 96 insertions(+), 6 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/3a00fa2a/server/container/cli/src/main/java/org/apache/james/cli/probe/impl/JmxDataProbe.java
----------------------------------------------------------------------
diff --git 
a/server/container/cli/src/main/java/org/apache/james/cli/probe/impl/JmxDataProbe.java
 
b/server/container/cli/src/main/java/org/apache/james/cli/probe/impl/JmxDataProbe.java
index fae65ac..cb50af9 100644
--- 
a/server/container/cli/src/main/java/org/apache/james/cli/probe/impl/JmxDataProbe.java
+++ 
b/server/container/cli/src/main/java/org/apache/james/cli/probe/impl/JmxDataProbe.java
@@ -281,4 +281,26 @@ public class JmxDataProbe implements DataProbe, JmxProbe {
             virtualUserTableProxy.removeGroupMapping(toUser, toDomain, 
fromAddress);
         }
     }
+
+    @Override
+    public void addAliasMapping(String fromAlias, String fromDomain, String 
toAddress) throws Exception {
+        try (Closeable closeable =
+                 MDCBuilder.create()
+                     .addContext(MDCBuilder.PROTOCOL, JMX)
+                     .addContext(MDCBuilder.ACTION, "addAliasMapping")
+                     .build()) {
+            virtualUserTableProxy.addAliasMapping(fromAlias, fromDomain, 
toAddress);
+        }
+    }
+
+    @Override
+    public void removeAliasMapping(String fromAlias, String fromDomain, String 
toAddress) throws Exception {
+        try (Closeable closeable =
+                 MDCBuilder.create()
+                     .addContext(MDCBuilder.PROTOCOL, JMX)
+                     .addContext(MDCBuilder.ACTION, "removeAliasMapping")
+                     .build()) {
+            virtualUserTableProxy.removeAliasMapping(fromAlias, fromDomain, 
toAddress);
+        }
+    }
 }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/james-project/blob/3a00fa2a/server/container/guice/guice-common/src/main/java/org/apache/james/utils/DataProbeImpl.java
----------------------------------------------------------------------
diff --git 
a/server/container/guice/guice-common/src/main/java/org/apache/james/utils/DataProbeImpl.java
 
b/server/container/guice/guice-common/src/main/java/org/apache/james/utils/DataProbeImpl.java
index 314ec07..e56c8b5 100644
--- 
a/server/container/guice/guice-common/src/main/java/org/apache/james/utils/DataProbeImpl.java
+++ 
b/server/container/guice/guice-common/src/main/java/org/apache/james/utils/DataProbeImpl.java
@@ -168,4 +168,16 @@ public class DataProbeImpl implements GuiceProbe, 
DataProbe {
         MappingSource source = MappingSource.fromUser(toUser, toDomain);
         recipientRewriteTable.removeGroupMapping(source, fromAddress);
     }
+
+    @Override
+    public void addAliasMapping(String fromAlias, String fromDomain, String 
toAddress) throws Exception {
+        MappingSource source = MappingSource.fromUser(fromAlias, fromDomain);
+        recipientRewriteTable.addAliasMapping(source, toAddress);
+    }
+
+    @Override
+    public void removeAliasMapping(String fromAlias, String fromDomain, String 
toAddress) throws Exception {
+        MappingSource source = MappingSource.fromUser(fromAlias, fromDomain);
+        recipientRewriteTable.removeAliasMapping(source, toAddress);
+    }
 }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/james-project/blob/3a00fa2a/server/data/data-api/src/main/java/org/apache/james/probe/DataProbe.java
----------------------------------------------------------------------
diff --git 
a/server/data/data-api/src/main/java/org/apache/james/probe/DataProbe.java 
b/server/data/data-api/src/main/java/org/apache/james/probe/DataProbe.java
index 6832fcd..cdaf8fc 100644
--- a/server/data/data-api/src/main/java/org/apache/james/probe/DataProbe.java
+++ b/server/data/data-api/src/main/java/org/apache/james/probe/DataProbe.java
@@ -92,4 +92,8 @@ public interface DataProbe {
     void addGroupMapping(String toUser, String toDomain, String fromAddress) 
throws Exception;
 
     void removeGroupMapping(String toUser, String toDomain, String 
fromAddress) throws Exception;
+
+    void addAliasMapping(String fromAlias, String fromDomain, String 
toAddress) throws Exception;
+
+    void removeAliasMapping(String fromAlias, String fromDomain, String 
toAddress) throws Exception;
 }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/james-project/blob/3a00fa2a/server/data/data-api/src/main/java/org/apache/james/rrt/api/RecipientRewriteTableManagementMBean.java
----------------------------------------------------------------------
diff --git 
a/server/data/data-api/src/main/java/org/apache/james/rrt/api/RecipientRewriteTableManagementMBean.java
 
b/server/data/data-api/src/main/java/org/apache/james/rrt/api/RecipientRewriteTableManagementMBean.java
index 30dac12..7afc90b 100644
--- 
a/server/data/data-api/src/main/java/org/apache/james/rrt/api/RecipientRewriteTableManagementMBean.java
+++ 
b/server/data/data-api/src/main/java/org/apache/james/rrt/api/RecipientRewriteTableManagementMBean.java
@@ -188,11 +188,11 @@ public interface RecipientRewriteTableManagementMBean {
     /***
      * Add forward mapping
      *
-     * @param toUser
+     * @param user
      *            the username part of the mail address destination defined 
for this forward.
-     * @param toDomain
+     * @param domain
      *            the domain part of the mail address destination defined for 
this forward.
-     * @param fromAddress The base address of the forward. Mails for this 
address will be sent to the added forward destination.
+     * @param address The base address of the forward. Mails for this address 
will be sent to the added forward destination.
      * @throws Exception If an error occurred
      */
     void addForwardMapping(String user, String domain, String address) throws 
Exception;
@@ -212,11 +212,11 @@ public interface RecipientRewriteTableManagementMBean {
     /***
      * Add group mapping
      *
-     * @param toUser
+     * @param user
      *            the username part of the mail address destination defined 
for this group.
-     * @param toDomain
+     * @param domain
      *            the domain part of the mail address destination defined for 
this group.
-     * @param fromAddress The base address of the group. Mails for this 
address will be sent to the added group destination.
+     * @param address The base address of the group. Mails for this address 
will be sent to the added group destination.
      * @throws Exception If an error occurred
      */
     void addGroupMapping(String user, String domain, String address) throws 
Exception;
@@ -232,4 +232,28 @@ public interface RecipientRewriteTableManagementMBean {
      * @throws Exception If an error occurred
      */
     void removeGroupMapping(String toUser, String toDomain, String 
fromAddress) throws Exception;
+
+    /***
+     * Add alias mapping
+     *
+     * @param fromAlias
+     *            the name part of the alias source.
+     * @param fromDomain
+     *            the domain part of the alias source.
+     * @param toAddress the mail address destination of the alias. Mails sent 
to the alias will be redirected to this destination mail.
+     * @throws Exception If an error occurred
+     */
+    void addAliasMapping(String fromAlias, String fromDomain, String 
toAddress) throws Exception;
+
+    /**
+     * Remove alias mapping
+     *
+     * @param fromAlias
+     *            the name part of the alias source.
+     * @param fromDomain
+     *            the domain part of the alias source.
+     * @param toAddress the mail address destination of the alias. Mails sent 
to the alias will not be redirected anymore to this destination mail.
+     * @throws Exception If an error occurred
+     */
+    void removeAliasMapping(String fromAlias, String fromDomain, String 
toAddress) throws Exception;
 }

http://git-wip-us.apache.org/repos/asf/james-project/blob/3a00fa2a/server/data/data-library/src/main/java/org/apache/james/rrt/lib/RecipientRewriteTableManagement.java
----------------------------------------------------------------------
diff --git 
a/server/data/data-library/src/main/java/org/apache/james/rrt/lib/RecipientRewriteTableManagement.java
 
b/server/data/data-library/src/main/java/org/apache/james/rrt/lib/RecipientRewriteTableManagement.java
index 92cf309..fe18351 100644
--- 
a/server/data/data-library/src/main/java/org/apache/james/rrt/lib/RecipientRewriteTableManagement.java
+++ 
b/server/data/data-library/src/main/java/org/apache/james/rrt/lib/RecipientRewriteTableManagement.java
@@ -144,4 +144,16 @@ public class RecipientRewriteTableManagement extends 
StandardMBean implements Re
         MappingSource source = MappingSource.fromUser(toUser, toDomain);
         rrt.removeForwardMapping(source, fromAddress);
     }
+
+    @Override
+    public void addAliasMapping(String fromAlias, String fromDomain, String 
toAddress) throws RecipientRewriteTableException {
+        MappingSource source = MappingSource.fromUser(fromAlias, fromDomain);
+        rrt.addAliasMapping(source, toAddress);
+    }
+
+    @Override
+    public void removeAliasMapping(String fromAlias, String fromDomain, String 
toAddress) throws RecipientRewriteTableException {
+        MappingSource source = MappingSource.fromUser(fromAlias, fromDomain);
+        rrt.removeAliasMapping(source, toAddress);
+    }
 }

http://git-wip-us.apache.org/repos/asf/james-project/blob/3a00fa2a/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 23c0e2e..33b53da 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
@@ -310,6 +310,22 @@ public class WebAdminServerIntegrationTest {
     }
 
     @Test
+    public void addressAliasesEndpointShouldListAliasesAddresses() throws 
Exception {
+        dataProbe.addAliasMapping("alias1", "domain.com", "[email protected]");
+        dataProbe.addAliasMapping("alias2", "domain.com", "[email protected]");
+
+        List<String> members = when()
+            .get("/address/aliases")
+        .then()
+            .statusCode(HttpStatus.OK_200)
+            .contentType(JSON_CONTENT_TYPE)
+            .extract()
+            .jsonPath()
+            .getList(".");
+        assertThat(members).containsOnly("[email protected]", "[email protected]");
+    }
+
+    @Test
     public void getSwaggerShouldReturnJsonDataForSwagger() {
         when()
             .get(SwaggerRoutes.SWAGGER_ENDPOINT)


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to