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]
