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 ad...@apache.org on 2018/04/06 13:20:21 UTC

[02/24] james-project git commit: JAMES-2366 Add Forward mapping handling in DataProbe

JAMES-2366 Add Forward mapping handling in DataProbe


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

Branch: refs/heads/master
Commit: 71a465ef8b1b8908a35a4036a81775f1dd247a14
Parents: fd6f10a
Author: Antoine Duprat <ad...@linagora.com>
Authored: Thu Mar 29 11:24:54 2018 +0200
Committer: Antoine Duprat <ad...@linagora.com>
Committed: Fri Apr 6 14:39:16 2018 +0200

----------------------------------------------------------------------
 .../james/cli/probe/impl/JmxDataProbe.java      | 22 ++++++++++++++++++
 .../org/apache/james/utils/DataProbeImpl.java   | 10 ++++++++
 .../java/org/apache/james/probe/DataProbe.java  |  3 +++
 .../RecipientRewriteTableManagementMBean.java   | 24 ++++++++++++++++++++
 .../lib/RecipientRewriteTableManagement.java    | 18 +++++++++++++++
 5 files changed, 77 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/71a465ef/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 631e11b..4e24f18 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
@@ -237,4 +237,26 @@ public class JmxDataProbe implements DataProbe, JmxProbe {
             virtualUserTableProxy.addDomainMapping(aliasDomain, deliveryDomain);
         }
     }
+
+    @Override
+    public void addForwardMapping(String user, String domain, String address) throws Exception {
+        try (Closeable closeable =
+                MDCBuilder.create()
+                    .addContext(MDCBuilder.PROTOCOL, JMX)
+                    .addContext(MDCBuilder.ACTION, "addForwardMapping")
+                    .build()) {
+           virtualUserTableProxy.addForwardMapping(user, domain, address);
+       }
+   }
+
+    @Override
+    public void removeForwardMapping(String user, String domain, String address) throws Exception {
+        try (Closeable closeable =
+                MDCBuilder.create()
+                    .addContext(MDCBuilder.PROTOCOL, JMX)
+                    .addContext(MDCBuilder.ACTION, "removeForwardMapping")
+                    .build()) {
+           virtualUserTableProxy.removeForwardMapping(user, domain, address);
+       }
+   }
 }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/james-project/blob/71a465ef/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 b911dc9..1e70007 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
@@ -133,4 +133,14 @@ public class DataProbeImpl implements GuiceProbe, DataProbe {
     public void addDomainAliasMapping(String aliasDomain, String deliveryDomain) throws Exception {
         recipientRewriteTable.addAliasDomainMapping(Domain.of(aliasDomain), Domain.of(deliveryDomain));
     }
+
+    @Override
+    public void addForwardMapping(String user, String domain, String address) throws Exception {
+        recipientRewriteTable.addForwardMapping(user, Domain.of(domain), address);
+    }
+
+    @Override
+    public void removeForwardMapping(String user, String domain, String address) throws Exception {
+        recipientRewriteTable.removeForwardMapping(user, Domain.of(domain), address);
+    }
 }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/james-project/blob/71a465ef/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 31488d7..2dc6f8c 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
@@ -58,4 +58,7 @@ public interface DataProbe {
 
     void addDomainAliasMapping(String aliasDomain, String deliveryDomain) throws Exception;
 
+    void addForwardMapping(String toUser, String toDomain, String fromAddress) throws Exception;
+
+    void removeForwardMapping(String toUser, String toDomain, String fromAddress) throws Exception;
 }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/james-project/blob/71a465ef/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 19def77..dec0e4d 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
@@ -187,4 +187,28 @@ public interface RecipientRewriteTableManagementMBean {
      *            If an error occurred
      */
     Map<String, Mappings> getAllMappings() throws Exception;
+
+    /***
+     * Add forward mapping
+     *
+     * @param toUser
+     *            the username part of the mail address destination defined for this forward.
+     * @param toDomain
+     *            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.
+     * @throws Exception If an error occurred
+     */
+    void addForwardMapping(String user, String domain, String address) throws Exception;
+
+    /**
+     * Remove forward mapping
+     * 
+     * @param toUser
+     *            the username part of the mail address destination defined for this forward.
+     * @param toDomain
+     *            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 no more sent to the removed forward destination.
+     * @throws Exception If an error occurred
+     */
+    void removeForwardMapping(String toUser, String toDomain, String fromAddress) throws Exception;
 }

http://git-wip-us.apache.org/repos/asf/james-project/blob/71a465ef/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 7e22a3e..57c7346 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
@@ -155,4 +155,22 @@ public class RecipientRewriteTableManagement extends StandardMBean implements Re
         }
     }
 
+    @Override
+    public void addForwardMapping(String user, String domain, String address) throws Exception {
+        try {
+            rrt.addForwardMapping(user, Domain.of(domain), address);
+        } catch (RecipientRewriteTableException e) {
+            throw new Exception(e.getMessage());
+        }
+    }
+
+    @Override
+    public void removeForwardMapping(String user, String domain, String address) throws Exception {
+        try {
+            rrt.removeForwardMapping(user, Domain.of(domain), address);
+        } catch (RecipientRewriteTableException e) {
+            throw new Exception(e.getMessage());
+        }
+    }
+
 }


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