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 2017/09/01 10:40:06 UTC

[1/5] james-project git commit: JAMES-2121 Disallown creation of duplicate mappings

Repository: james-project
Updated Branches:
  refs/heads/master 8d9287ff9 -> e9c1a72b7


JAMES-2121 Disallown creation of duplicate 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/d8995759
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/d8995759
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/d8995759

Branch: refs/heads/master
Commit: d89957592fb401f50adc7f67a0016a2cb7207173
Parents: 8d9287f
Author: Raphael Ouazana <ra...@linagora.com>
Authored: Wed Aug 30 16:38:11 2017 +0200
Committer: benwa <bt...@linagora.com>
Committed: Fri Sep 1 17:26:17 2017 +0700

----------------------------------------------------------------------
 .../java/org/apache/james/rrt/lib/Mappings.java  |  2 +-
 .../rrt/file/XMLRecipientRewriteTableTest.java   |  8 ++++++++
 .../rrt/lib/AbstractRecipientRewriteTable.java   |  8 ++++----
 .../org/apache/james/rrt/lib/MappingImpl.java    |  3 +--
 .../org/apache/james/rrt/lib/MappingsImpl.java   |  3 +--
 .../lib/AbstractRecipientRewriteTableTest.java   | 19 +++++++++++++++++++
 .../apache/james/rrt/lib/MappingImplTest.java    |  5 +++++
 7 files changed, 39 insertions(+), 9 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/d8995759/server/data/data-api/src/main/java/org/apache/james/rrt/lib/Mappings.java
----------------------------------------------------------------------
diff --git a/server/data/data-api/src/main/java/org/apache/james/rrt/lib/Mappings.java b/server/data/data-api/src/main/java/org/apache/james/rrt/lib/Mappings.java
index 21324aa..a4f27ff 100644
--- a/server/data/data-api/src/main/java/org/apache/james/rrt/lib/Mappings.java
+++ b/server/data/data-api/src/main/java/org/apache/james/rrt/lib/Mappings.java
@@ -26,7 +26,7 @@ import org.apache.james.rrt.lib.Mapping.Type;
 
 public interface Mappings extends Iterable<Mapping> {
 
-    boolean contains(String mapping);
+    boolean contains(Mapping mapping);
 
     int size();
 

http://git-wip-us.apache.org/repos/asf/james-project/blob/d8995759/server/data/data-file/src/test/java/org/apache/james/rrt/file/XMLRecipientRewriteTableTest.java
----------------------------------------------------------------------
diff --git a/server/data/data-file/src/test/java/org/apache/james/rrt/file/XMLRecipientRewriteTableTest.java b/server/data/data-file/src/test/java/org/apache/james/rrt/file/XMLRecipientRewriteTableTest.java
index 3d3d900..108c191 100644
--- a/server/data/data-file/src/test/java/org/apache/james/rrt/file/XMLRecipientRewriteTableTest.java
+++ b/server/data/data-file/src/test/java/org/apache/james/rrt/file/XMLRecipientRewriteTableTest.java
@@ -31,6 +31,8 @@ import org.apache.james.rrt.lib.MappingsImpl;
 import org.apache.james.rrt.lib.MappingsImpl.Builder;
 import org.apache.commons.configuration.DefaultConfigurationBuilder;
 import org.junit.Before;
+import org.junit.Ignore;
+import org.junit.Test;
 
 /**
  * Test the XML Virtual User Table implementation.
@@ -51,6 +53,12 @@ public class XMLRecipientRewriteTableTest extends AbstractRecipientRewriteTableT
         return new XMLRecipientRewriteTable();
     }
 
+    @Test
+    @Ignore("addMapping doesn't handle checking for duplicate in this test implementation")
+    @Override
+    public void addMappingShouldThrowWhenMappingAlreadyExists() {
+    }
+
     @Override
     protected boolean addMapping(String user, String domain, String mapping, int type) throws
             RecipientRewriteTableException {

http://git-wip-us.apache.org/repos/asf/james-project/blob/d8995759/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 0680e6a..6af844b 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
@@ -193,7 +193,7 @@ public abstract class AbstractRecipientRewriteTable implements RecipientRewriteT
             throw new RecipientRewriteTableException("Invalid regex: " + regex, e);
         }
 
-        checkMapping(user, domain, regex);
+        checkMapping(user, domain, MappingImpl.regex(regex));
         LOGGER.info("Add regex mapping => " + regex + " for user: " + user + " domain: " + domain);
         addMappingInternal(user, domain, RecipientRewriteTable.REGEX_PREFIX + regex);
 
@@ -225,7 +225,7 @@ public abstract class AbstractRecipientRewriteTable implements RecipientRewriteT
         } catch (ParseException e) {
             throw new RecipientRewriteTableException("Invalid emailAddress: " + address, e);
         }
-        checkMapping(user, domain, address);
+        checkMapping(user, domain, MappingImpl.address(address));
         LOGGER.info("Add address mapping => " + address + " for user: " + user + " domain: " + domain);
         addMappingInternal(user, domain, address);
 
@@ -252,7 +252,7 @@ public abstract class AbstractRecipientRewriteTable implements RecipientRewriteT
      *      java.lang.String, java.lang.String)
      */
     public void addErrorMapping(String user, String domain, String error) throws RecipientRewriteTableException {
-        checkMapping(user, domain, error);
+        checkMapping(user, domain, MappingImpl.error(error));
         LOGGER.info("Add error mapping => " + error + " for user: " + user + " domain: " + domain);
         addMappingInternal(user, domain, RecipientRewriteTable.ERROR_PREFIX + error);
 
@@ -445,7 +445,7 @@ public abstract class AbstractRecipientRewriteTable implements RecipientRewriteT
         }
     }
 
-    private void checkMapping(String user, String domain, String mapping) throws RecipientRewriteTableException {
+    private void checkMapping(String user, String domain, Mapping mapping) throws RecipientRewriteTableException {
         Mappings mappings = getUserDomainMappings(user, domain);
         if (mappings != null && mappings.contains(mapping)) {
             throw new RecipientRewriteTableException("Mapping " + mapping + " for user " + user + " domain " + domain + " already exist!");

http://git-wip-us.apache.org/repos/asf/james-project/blob/d8995759/server/data/data-library/src/main/java/org/apache/james/rrt/lib/MappingImpl.java
----------------------------------------------------------------------
diff --git a/server/data/data-library/src/main/java/org/apache/james/rrt/lib/MappingImpl.java b/server/data/data-library/src/main/java/org/apache/james/rrt/lib/MappingImpl.java
index 113b83b..ebf1fd5 100644
--- a/server/data/data-library/src/main/java/org/apache/james/rrt/lib/MappingImpl.java
+++ b/server/data/data-library/src/main/java/org/apache/james/rrt/lib/MappingImpl.java
@@ -24,7 +24,6 @@ import java.io.Serializable;
 
 import org.apache.james.rrt.api.RecipientRewriteTable;
 
-import com.google.common.base.MoreObjects;
 import com.google.common.base.Objects;
 import com.google.common.base.Preconditions;
 
@@ -114,7 +113,7 @@ public class MappingImpl implements Mapping, Serializable {
     
     @Override
     public String toString() {
-        return MoreObjects.toStringHelper(getClass()).add("mapping", mapping).toString();
+        return "MappingImpl{mapping=" + mapping + "}";
     }
     
 }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/james-project/blob/d8995759/server/data/data-library/src/main/java/org/apache/james/rrt/lib/MappingsImpl.java
----------------------------------------------------------------------
diff --git a/server/data/data-library/src/main/java/org/apache/james/rrt/lib/MappingsImpl.java b/server/data/data-library/src/main/java/org/apache/james/rrt/lib/MappingsImpl.java
index eacc55e..a9b61da 100644
--- a/server/data/data-library/src/main/java/org/apache/james/rrt/lib/MappingsImpl.java
+++ b/server/data/data-library/src/main/java/org/apache/james/rrt/lib/MappingsImpl.java
@@ -127,8 +127,7 @@ public class MappingsImpl implements Mappings, Serializable {
     }
 
     @Override
-    @SuppressWarnings("unlikely-arg-type")
-    public boolean contains(String mapping) {
+    public boolean contains(Mapping mapping) {
         return mappings.contains(mapping);
     }
 

http://git-wip-us.apache.org/repos/asf/james-project/blob/d8995759/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 d2539dd..f481102 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
@@ -328,6 +328,25 @@ public abstract class AbstractRecipientRewriteTableTest {
                         .build());
     }
 
+    @Test
+    public void addMappingShouldThrowWhenMappingAlreadyExists() throws Exception {
+        String user = "test";
+        String domain = "localhost";
+        String address = "test@localhost2";
+
+        assertThat(addMapping(user, domain, address, ADDRESS_TYPE)).isTrue();
+        assertThat(addMapping(user, domain, address, ADDRESS_TYPE)).isFalse();
+    }
+
+    @Test
+    public void addMappingShouldNotThrowWhenMappingAlreadyExistsWithAnOtherType() throws Exception {
+        String user = "test";
+        String domain = "localhost";
+        String address = "test@localhost2";
+
+        assertThat(addMapping(user, domain, address, ADDRESS_TYPE)).isTrue();
+        assertThat(addMapping(user, domain, address, ERROR_TYPE)).isTrue();
+    }
 
     protected abstract AbstractRecipientRewriteTable getRecipientRewriteTable() throws Exception;
 

http://git-wip-us.apache.org/repos/asf/james-project/blob/d8995759/server/data/data-library/src/test/java/org/apache/james/rrt/lib/MappingImplTest.java
----------------------------------------------------------------------
diff --git a/server/data/data-library/src/test/java/org/apache/james/rrt/lib/MappingImplTest.java b/server/data/data-library/src/test/java/org/apache/james/rrt/lib/MappingImplTest.java
index 88f4e3d..5844fdc 100644
--- a/server/data/data-library/src/test/java/org/apache/james/rrt/lib/MappingImplTest.java
+++ b/server/data/data-library/src/test/java/org/apache/james/rrt/lib/MappingImplTest.java
@@ -127,4 +127,9 @@ public class MappingImplTest {
     public void getErrorMessageShouldReturnWhenErrorWithoutMessage() {
         assertThat(MappingImpl.error("").getErrorMessage()).isEqualTo("");
     }
+
+    @Test
+    public void toStringShouldReturnValuePrefixedAsByMoreObject() {
+        assertThat(MappingImpl.of("value").toString()).isEqualTo("MappingImpl{mapping=value}");
+    }
 }


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


[2/5] james-project git commit: JAMES-2121 Also slightly improve internal add method for mappings

Posted by bt...@apache.org.
JAMES-2121 Also slightly improve internal add method for 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/589f347f
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/589f347f
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/589f347f

Branch: refs/heads/master
Commit: 589f347f4cb113418087dc496c41ae0112c30ada
Parents: abcaa55
Author: Raphael Ouazana <ra...@linagora.com>
Authored: Wed Aug 30 17:21:34 2017 +0200
Committer: benwa <bt...@linagora.com>
Committed: Fri Sep 1 17:26:22 2017 +0700

----------------------------------------------------------------------
 .../CassandraRecipientRewriteTable.java         |  4 ++--
 .../rrt/file/XMLRecipientRewriteTable.java      |  2 +-
 .../rrt/hbase/HBaseRecipientRewriteTable.java   |  4 ++--
 .../rrt/jdbc/JDBCRecipientRewriteTable.java     | 12 ++++------
 .../james/rrt/jpa/JPARecipientRewriteTable.java |  9 +++----
 .../rrt/lib/AbstractRecipientRewriteTable.java  | 10 ++++----
 .../org/apache/james/rrt/lib/MappingsImpl.java  |  2 +-
 .../rrt/memory/MemoryRecipientRewriteTable.java | 25 +++++++++-----------
 8 files changed, 29 insertions(+), 39 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/589f347f/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 1c124b5..963060a 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
@@ -91,11 +91,11 @@ public class CassandraRecipientRewriteTable extends AbstractRecipientRewriteTabl
     }
 
     @Override
-    protected void addMappingInternal(String user, String domain, String mapping) throws RecipientRewriteTableException {
+    protected void addMappingInternal(String user, String domain, Mapping mapping) throws RecipientRewriteTableException {
         executor.executeVoid(insertStatement.bind()
             .setString(USER, getFixedUser(user))
             .setString(DOMAIN, getFixedDomain(domain))
-            .setString(MAPPING, mapping))
+            .setString(MAPPING, mapping.asString()))
             .join();
     }
 

http://git-wip-us.apache.org/repos/asf/james-project/blob/589f347f/server/data/data-file/src/main/java/org/apache/james/rrt/file/XMLRecipientRewriteTable.java
----------------------------------------------------------------------
diff --git a/server/data/data-file/src/main/java/org/apache/james/rrt/file/XMLRecipientRewriteTable.java b/server/data/data-file/src/main/java/org/apache/james/rrt/file/XMLRecipientRewriteTable.java
index 99dba38..bab777e 100644
--- a/server/data/data-file/src/main/java/org/apache/james/rrt/file/XMLRecipientRewriteTable.java
+++ b/server/data/data-file/src/main/java/org/apache/james/rrt/file/XMLRecipientRewriteTable.java
@@ -92,7 +92,7 @@ public class XMLRecipientRewriteTable extends AbstractRecipientRewriteTable {
     }
 
     @Override
-    protected void addMappingInternal(String user, String domain, String mapping) throws RecipientRewriteTableException {
+    protected void addMappingInternal(String user, String domain, Mapping mapping) throws RecipientRewriteTableException {
         throw new RecipientRewriteTableException("Read-Only implementation");
     }
 

http://git-wip-us.apache.org/repos/asf/james-project/blob/589f347f/server/data/data-hbase/src/main/java/org/apache/james/rrt/hbase/HBaseRecipientRewriteTable.java
----------------------------------------------------------------------
diff --git a/server/data/data-hbase/src/main/java/org/apache/james/rrt/hbase/HBaseRecipientRewriteTable.java b/server/data/data-hbase/src/main/java/org/apache/james/rrt/hbase/HBaseRecipientRewriteTable.java
index 0ab3eb3..93709ab 100644
--- a/server/data/data-hbase/src/main/java/org/apache/james/rrt/hbase/HBaseRecipientRewriteTable.java
+++ b/server/data/data-hbase/src/main/java/org/apache/james/rrt/hbase/HBaseRecipientRewriteTable.java
@@ -58,7 +58,7 @@ public class HBaseRecipientRewriteTable extends AbstractRecipientRewriteTable {
      * @see org.apache.james.rrt.lib.AbstractRecipientRewriteTable#addMappingInternal(String, String, String)
      */
     @Override
-    protected void addMappingInternal(String user, String domain, String mapping) throws RecipientRewriteTableException {
+    protected void addMappingInternal(String user, String domain, Mapping mapping) throws RecipientRewriteTableException {
         String fixedUser = getFixedUser(user);
         String fixedDomain = getFixedDomain(domain);
         Mappings map = getUserDomainMappings(fixedUser, fixedDomain);
@@ -66,7 +66,7 @@ public class HBaseRecipientRewriteTable extends AbstractRecipientRewriteTable {
             Mappings updatedMappings = MappingsImpl.from(map).add(mapping).build();
             doUpdateMapping(fixedUser, fixedDomain, updatedMappings.serialize());
         } else {
-            doAddMapping(fixedUser, fixedDomain, mapping);
+            doAddMapping(fixedUser, fixedDomain, mapping.asString());
         }
     }
 

http://git-wip-us.apache.org/repos/asf/james-project/blob/589f347f/server/data/data-jdbc/src/main/java/org/apache/james/rrt/jdbc/JDBCRecipientRewriteTable.java
----------------------------------------------------------------------
diff --git a/server/data/data-jdbc/src/main/java/org/apache/james/rrt/jdbc/JDBCRecipientRewriteTable.java b/server/data/data-jdbc/src/main/java/org/apache/james/rrt/jdbc/JDBCRecipientRewriteTable.java
index 2f2f6b1..fccd1e7 100644
--- a/server/data/data-jdbc/src/main/java/org/apache/james/rrt/jdbc/JDBCRecipientRewriteTable.java
+++ b/server/data/data-jdbc/src/main/java/org/apache/james/rrt/jdbc/JDBCRecipientRewriteTable.java
@@ -194,20 +194,16 @@ public class JDBCRecipientRewriteTable extends AbstractRecipientRewriteTable {
 
     }
 
-    /**
-     * @throws RecipientRewriteTableException
-     * @see org.apache.james.rrt.lib.AbstractRecipientRewriteTable#addMappingInternal(String,
-     *      String, String)
-     */
-    protected void addMappingInternal(String user, String domain, String regex) throws RecipientRewriteTableException {
+    @Override
+    protected void addMappingInternal(String user, String domain, Mapping mapping) throws RecipientRewriteTableException {
         String fixedUser = getFixedUser(user);
         String fixedDomain = getFixedDomain(domain);
         Mappings map = getUserDomainMappings(fixedUser, fixedDomain);
         if (map != null && map.size() != 0) {
-            Mappings updatedMappings = MappingsImpl.from(map).add(regex).build();
+            Mappings updatedMappings = MappingsImpl.from(map).add(mapping).build();
             doUpdateMapping(fixedUser, fixedDomain, updatedMappings.serialize());
         }
-        doAddMapping(fixedUser, fixedDomain, regex);
+        doAddMapping(fixedUser, fixedDomain, mapping.asString());
     }
 
     /**

http://git-wip-us.apache.org/repos/asf/james-project/blob/589f347f/server/data/data-jpa/src/main/java/org/apache/james/rrt/jpa/JPARecipientRewriteTable.java
----------------------------------------------------------------------
diff --git a/server/data/data-jpa/src/main/java/org/apache/james/rrt/jpa/JPARecipientRewriteTable.java b/server/data/data-jpa/src/main/java/org/apache/james/rrt/jpa/JPARecipientRewriteTable.java
index aac5456..8e11b95 100644
--- a/server/data/data-jpa/src/main/java/org/apache/james/rrt/jpa/JPARecipientRewriteTable.java
+++ b/server/data/data-jpa/src/main/java/org/apache/james/rrt/jpa/JPARecipientRewriteTable.java
@@ -61,11 +61,8 @@ public class JPARecipientRewriteTable extends AbstractRecipientRewriteTable {
         this.entityManagerFactory = entityManagerFactory;
     }
 
-    /**
-     * @throws RecipientRewriteTableException
-     * @see org.apache.james.rrt.lib.AbstractRecipientRewriteTable#addMappingInternal(String, String, String)
-     */
-    protected void addMappingInternal(String user, String domain, String mapping) throws RecipientRewriteTableException {
+    @Override
+    protected void addMappingInternal(String user, String domain, Mapping mapping) throws RecipientRewriteTableException {
         String fixedUser = getFixedUser(user);
         String fixedDomain = getFixedDomain(domain);
         Mappings map = getUserDomainMappings(fixedUser, fixedDomain);
@@ -73,7 +70,7 @@ public class JPARecipientRewriteTable extends AbstractRecipientRewriteTable {
             Mappings updatedMappings = MappingsImpl.from(map).add(mapping).build();
             doUpdateMapping(fixedUser, fixedDomain, updatedMappings.serialize());
         } else {
-            doAddMapping(fixedUser, fixedDomain, mapping);
+            doAddMapping(fixedUser, fixedDomain, mapping.asString());
         }
     }
 

http://git-wip-us.apache.org/repos/asf/james-project/blob/589f347f/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 5fae77e..ff40572 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
@@ -195,7 +195,7 @@ public abstract class AbstractRecipientRewriteTable implements RecipientRewriteT
 
         checkMapping(user, domain, MappingImpl.regex(regex));
         LOGGER.info("Add regex mapping => " + regex + " for user: " + user + " domain: " + domain);
-        addMappingInternal(user, domain, RecipientRewriteTable.REGEX_PREFIX + regex);
+        addMappingInternal(user, domain, MappingImpl.regex(regex));
 
     }
 
@@ -227,7 +227,7 @@ public abstract class AbstractRecipientRewriteTable implements RecipientRewriteT
         }
         checkMapping(user, domain, MappingImpl.address(address));
         LOGGER.info("Add address mapping => " + address + " for user: " + user + " domain: " + domain);
-        addMappingInternal(user, domain, address);
+        addMappingInternal(user, domain, MappingImpl.address(address));
 
     }
 
@@ -254,7 +254,7 @@ public abstract class AbstractRecipientRewriteTable implements RecipientRewriteT
     public void addErrorMapping(String user, String domain, String error) throws RecipientRewriteTableException {
         checkMapping(user, domain, MappingImpl.error(error));
         LOGGER.info("Add error mapping => " + error + " for user: " + user + " domain: " + domain);
-        addMappingInternal(user, domain, RecipientRewriteTable.ERROR_PREFIX + error);
+        addMappingInternal(user, domain, MappingImpl.error(error));
 
     }
 
@@ -339,7 +339,7 @@ public abstract class AbstractRecipientRewriteTable implements RecipientRewriteT
      */
     public void addAliasDomainMapping(String aliasDomain, String realDomain) throws RecipientRewriteTableException {
         LOGGER.info("Add domain mapping: " + aliasDomain + " => " + realDomain);
-        addMappingInternal(null, aliasDomain, RecipientRewriteTable.ALIASDOMAIN_PREFIX + realDomain);
+        addMappingInternal(null, aliasDomain, MappingImpl.domain(realDomain));
     }
 
     /**
@@ -362,7 +362,7 @@ public abstract class AbstractRecipientRewriteTable implements RecipientRewriteT
      *            the mapping
      * @throws RecipientRewriteTableException
      */
-    protected abstract void addMappingInternal(String user, String domain, String mapping) throws RecipientRewriteTableException;
+    protected abstract void addMappingInternal(String user, String domain, Mapping mapping) throws RecipientRewriteTableException;
 
     /**
      * Remove mapping

http://git-wip-us.apache.org/repos/asf/james-project/blob/589f347f/server/data/data-library/src/main/java/org/apache/james/rrt/lib/MappingsImpl.java
----------------------------------------------------------------------
diff --git a/server/data/data-library/src/main/java/org/apache/james/rrt/lib/MappingsImpl.java b/server/data/data-library/src/main/java/org/apache/james/rrt/lib/MappingsImpl.java
index c8932de..2267829 100644
--- a/server/data/data-library/src/main/java/org/apache/james/rrt/lib/MappingsImpl.java
+++ b/server/data/data-library/src/main/java/org/apache/james/rrt/lib/MappingsImpl.java
@@ -68,7 +68,7 @@ public class MappingsImpl implements Mappings, Serializable {
             .build();
     }
     
-    private static MappingsImpl fromMappings(Stream<Mapping> mappings) {
+    public static MappingsImpl fromMappings(Stream<Mapping> mappings) {
         return mappings
             .reduce(builder(), (builder, mapping) -> builder.add(mapping), (builder1, builder2) -> builder1.addAll(builder2.build()))
             .build();

http://git-wip-us.apache.org/repos/asf/james-project/blob/589f347f/server/data/data-memory/src/main/java/org/apache/james/rrt/memory/MemoryRecipientRewriteTable.java
----------------------------------------------------------------------
diff --git a/server/data/data-memory/src/main/java/org/apache/james/rrt/memory/MemoryRecipientRewriteTable.java b/server/data/data-memory/src/main/java/org/apache/james/rrt/memory/MemoryRecipientRewriteTable.java
index 84525ab..a95de2d 100644
--- a/server/data/data-memory/src/main/java/org/apache/james/rrt/memory/MemoryRecipientRewriteTable.java
+++ b/server/data/data-memory/src/main/java/org/apache/james/rrt/memory/MemoryRecipientRewriteTable.java
@@ -24,6 +24,7 @@ import java.util.Collection;
 import java.util.List;
 import java.util.Map;
 import java.util.Optional;
+import java.util.stream.Stream;
 
 import org.apache.james.rrt.api.RecipientRewriteTableException;
 import org.apache.james.rrt.lib.AbstractRecipientRewriteTable;
@@ -32,8 +33,6 @@ import org.apache.james.rrt.lib.Mappings;
 import org.apache.james.rrt.lib.MappingsImpl;
 
 import com.google.common.base.Objects;
-import com.google.common.collect.Iterables;
-import com.google.common.collect.Lists;
 import com.google.common.collect.Maps;
 import com.google.common.collect.Multimaps;
 
@@ -42,9 +41,9 @@ public class MemoryRecipientRewriteTable extends AbstractRecipientRewriteTable {
     private static class InMemoryMappingEntry {
         private final String user;
         private final String domain;
-        private final String mapping;
+        private final Mapping mapping;
 
-        public InMemoryMappingEntry(String user, String domain, String mapping) {
+        public InMemoryMappingEntry(String user, String domain, Mapping mapping) {
             this.user = user;
             this.domain = domain;
             this.mapping = mapping;
@@ -58,7 +57,7 @@ public class MemoryRecipientRewriteTable extends AbstractRecipientRewriteTable {
             return domain;
         }
 
-        public String getMapping() {
+        public Mapping getMapping() {
             return mapping;
         }
 
@@ -92,13 +91,13 @@ public class MemoryRecipientRewriteTable extends AbstractRecipientRewriteTable {
     }
 
     @Override
-    protected void addMappingInternal(String user, String domain, String mapping) throws RecipientRewriteTableException {
+    protected void addMappingInternal(String user, String domain, Mapping mapping) throws RecipientRewriteTableException {
         mappingEntries.add(new InMemoryMappingEntry(getFixedUser(user), getFixedDomain(domain), mapping));
     }
 
     @Override
     protected void removeMappingInternal(String user, String domain, Mapping mapping) throws RecipientRewriteTableException {
-        mappingEntries.remove(new InMemoryMappingEntry(getFixedUser(user), getFixedDomain(domain), mapping.asString()));
+        mappingEntries.remove(new InMemoryMappingEntry(getFixedUser(user), getFixedDomain(domain), mapping));
     }
 
     @Override
@@ -125,7 +124,7 @@ public class MemoryRecipientRewriteTable extends AbstractRecipientRewriteTable {
         Map<String, Collection<Mappings>> userMappingsMap = Multimaps.transformEntries(
             Multimaps.index(mappingEntries, InMemoryMappingEntry::asKey),
             (Maps.EntryTransformer<String, InMemoryMappingEntry, Mappings>)
-                (s, mappingEntry) -> MappingsImpl.fromRawString(mappingEntry.getMapping()))
+                (s, mappingEntry) -> MappingsImpl.fromMappings(Stream.of(mappingEntry.getMapping())))
             .asMap();
         return Maps.transformEntries(userMappingsMap,
             (s, mappingsList) -> {
@@ -138,12 +137,10 @@ public class MemoryRecipientRewriteTable extends AbstractRecipientRewriteTable {
     }
 
     private Optional<Mappings> retrieveMappings(final String user, final String domain) {
-        List<String> userEntries = Lists.newArrayList(
-            Iterables.transform(
-                Iterables.filter(mappingEntries,
-                    mappingEntry -> user.equals(mappingEntry.getUser()) && domain.equals(mappingEntry.getDomain())),
-                InMemoryMappingEntry::getMapping));
-        return MappingsImpl.fromCollection(userEntries).toOptional();
+        Stream<Mapping> userEntries = mappingEntries.stream()
+            .filter(mappingEntry -> user.equals(mappingEntry.getUser()) && domain.equals(mappingEntry.getDomain()))
+            .map(InMemoryMappingEntry::getMapping);
+        return MappingsImpl.fromMappings(userEntries).toOptional();
     }
 
 }


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


[4/5] james-project git commit: JAMES-2121 Rename test to the same name of the class it tests

Posted by bt...@apache.org.
JAMES-2121 Rename test to the same name of the class it tests


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

Branch: refs/heads/master
Commit: e9c1a72b77b70ea094dd941604bf947dfa1509d0
Parents: e30e017
Author: Raphael Ouazana <ra...@linagora.com>
Authored: Thu Aug 31 17:12:59 2017 +0200
Committer: benwa <bt...@linagora.com>
Committed: Fri Sep 1 17:26:22 2017 +0700

----------------------------------------------------------------------
 .../InMemoryRecipientRewriteTableTest.java      | 75 --------------------
 .../memory/MemoryRecipientRewriteTableTest.java | 75 ++++++++++++++++++++
 2 files changed, 75 insertions(+), 75 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/e9c1a72b/server/data/data-memory/src/test/java/org/apache/james/rrt/memory/InMemoryRecipientRewriteTableTest.java
----------------------------------------------------------------------
diff --git a/server/data/data-memory/src/test/java/org/apache/james/rrt/memory/InMemoryRecipientRewriteTableTest.java b/server/data/data-memory/src/test/java/org/apache/james/rrt/memory/InMemoryRecipientRewriteTableTest.java
deleted file mode 100644
index de089c2..0000000
--- a/server/data/data-memory/src/test/java/org/apache/james/rrt/memory/InMemoryRecipientRewriteTableTest.java
+++ /dev/null
@@ -1,75 +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.rrt.memory;
-
-import org.apache.commons.configuration.DefaultConfigurationBuilder;
-import org.apache.james.rrt.api.RecipientRewriteTableException;
-import org.apache.james.rrt.lib.AbstractRecipientRewriteTable;
-import org.apache.james.rrt.lib.AbstractRecipientRewriteTableTest;
-
-public class InMemoryRecipientRewriteTableTest extends AbstractRecipientRewriteTableTest {
-
-    @Override
-    protected AbstractRecipientRewriteTable getRecipientRewriteTable() throws Exception {
-        AbstractRecipientRewriteTable rrt = new MemoryRecipientRewriteTable();
-        rrt.configure(new DefaultConfigurationBuilder());
-        return rrt;
-    }
-
-    @Override
-    protected void addMapping(String user, String domain, String mapping, int type) throws RecipientRewriteTableException {
-        switch (type) {
-        case ERROR_TYPE:
-            virtualUserTable.addErrorMapping(user, domain, mapping);
-            break;
-        case REGEX_TYPE:
-            virtualUserTable.addRegexMapping(user, domain, mapping);
-            break;
-        case ADDRESS_TYPE:
-            virtualUserTable.addAddressMapping(user, domain, mapping);
-            break;
-        case ALIASDOMAIN_TYPE:
-            virtualUserTable.addAliasDomainMapping(domain, mapping);
-            break;
-        default:
-            throw new RuntimeException("Invalid mapping type: " + type);
-        }
-    }
-
-    @Override
-    protected void removeMapping(String user, String domain, String mapping, int type) throws RecipientRewriteTableException {
-        switch (type) {
-        case ERROR_TYPE:
-            virtualUserTable.removeErrorMapping(user, domain, mapping);
-            break;
-        case REGEX_TYPE:
-            virtualUserTable.removeRegexMapping(user, domain, mapping);
-            break;
-        case ADDRESS_TYPE:
-            virtualUserTable.removeAddressMapping(user, domain, mapping);
-            break;
-        case ALIASDOMAIN_TYPE:
-            virtualUserTable.removeAliasDomainMapping(domain, mapping);
-            break;
-        default:
-            throw new RuntimeException("Invalid mapping type: " + type);
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/james-project/blob/e9c1a72b/server/data/data-memory/src/test/java/org/apache/james/rrt/memory/MemoryRecipientRewriteTableTest.java
----------------------------------------------------------------------
diff --git a/server/data/data-memory/src/test/java/org/apache/james/rrt/memory/MemoryRecipientRewriteTableTest.java b/server/data/data-memory/src/test/java/org/apache/james/rrt/memory/MemoryRecipientRewriteTableTest.java
new file mode 100644
index 0000000..b099737
--- /dev/null
+++ b/server/data/data-memory/src/test/java/org/apache/james/rrt/memory/MemoryRecipientRewriteTableTest.java
@@ -0,0 +1,75 @@
+/****************************************************************
+ * 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.rrt.memory;
+
+import org.apache.commons.configuration.DefaultConfigurationBuilder;
+import org.apache.james.rrt.api.RecipientRewriteTableException;
+import org.apache.james.rrt.lib.AbstractRecipientRewriteTable;
+import org.apache.james.rrt.lib.AbstractRecipientRewriteTableTest;
+
+public class MemoryRecipientRewriteTableTest extends AbstractRecipientRewriteTableTest {
+
+    @Override
+    protected AbstractRecipientRewriteTable getRecipientRewriteTable() throws Exception {
+        AbstractRecipientRewriteTable rrt = new MemoryRecipientRewriteTable();
+        rrt.configure(new DefaultConfigurationBuilder());
+        return rrt;
+    }
+
+    @Override
+    protected void addMapping(String user, String domain, String mapping, int type) throws RecipientRewriteTableException {
+        switch (type) {
+        case ERROR_TYPE:
+            virtualUserTable.addErrorMapping(user, domain, mapping);
+            break;
+        case REGEX_TYPE:
+            virtualUserTable.addRegexMapping(user, domain, mapping);
+            break;
+        case ADDRESS_TYPE:
+            virtualUserTable.addAddressMapping(user, domain, mapping);
+            break;
+        case ALIASDOMAIN_TYPE:
+            virtualUserTable.addAliasDomainMapping(domain, mapping);
+            break;
+        default:
+            throw new RuntimeException("Invalid mapping type: " + type);
+        }
+    }
+
+    @Override
+    protected void removeMapping(String user, String domain, String mapping, int type) throws RecipientRewriteTableException {
+        switch (type) {
+        case ERROR_TYPE:
+            virtualUserTable.removeErrorMapping(user, domain, mapping);
+            break;
+        case REGEX_TYPE:
+            virtualUserTable.removeRegexMapping(user, domain, mapping);
+            break;
+        case ADDRESS_TYPE:
+            virtualUserTable.removeAddressMapping(user, domain, mapping);
+            break;
+        case ALIASDOMAIN_TYPE:
+            virtualUserTable.removeAliasDomainMapping(domain, mapping);
+            break;
+        default:
+            throw new RuntimeException("Invalid mapping type: " + type);
+        }
+    }
+}


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


[5/5] james-project git commit: JAMES-2121 Also improve remove mapping

Posted by bt...@apache.org.
JAMES-2121 Also improve remove mapping


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

Branch: refs/heads/master
Commit: abcaa55878342e8c4b3cd2d171a6e9ecf827db71
Parents: d899575
Author: Raphael Ouazana <ra...@linagora.com>
Authored: Wed Aug 30 16:57:38 2017 +0200
Committer: benwa <bt...@linagora.com>
Committed: Fri Sep 1 17:26:22 2017 +0700

----------------------------------------------------------------------
 .../java/org/apache/james/rrt/lib/Mappings.java    |  2 +-
 .../cassandra/CassandraRecipientRewriteTable.java  |  5 +++--
 .../james/rrt/file/XMLRecipientRewriteTable.java   |  3 ++-
 .../rrt/file/XMLRecipientRewriteTableTest.java     |  9 +++++----
 .../rrt/hbase/HBaseRecipientRewriteTable.java      | 17 +++++++++--------
 .../james/rrt/jdbc/JDBCRecipientRewriteTable.java  | 11 ++++-------
 .../james/rrt/jpa/JPARecipientRewriteTable.java    | 10 ++++------
 .../rrt/lib/AbstractRecipientRewriteTable.java     | 10 +++++-----
 .../java/org/apache/james/rrt/lib/MappingImpl.java |  1 -
 .../org/apache/james/rrt/lib/MappingsImpl.java     |  3 +--
 .../rrt/memory/MemoryRecipientRewriteTable.java    |  5 +++--
 11 files changed, 37 insertions(+), 39 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/abcaa558/server/data/data-api/src/main/java/org/apache/james/rrt/lib/Mappings.java
----------------------------------------------------------------------
diff --git a/server/data/data-api/src/main/java/org/apache/james/rrt/lib/Mappings.java b/server/data/data-api/src/main/java/org/apache/james/rrt/lib/Mappings.java
index a4f27ff..4fdd8f1 100644
--- a/server/data/data-api/src/main/java/org/apache/james/rrt/lib/Mappings.java
+++ b/server/data/data-api/src/main/java/org/apache/james/rrt/lib/Mappings.java
@@ -30,7 +30,7 @@ public interface Mappings extends Iterable<Mapping> {
 
     int size();
 
-    Mappings remove(String mapping);
+    Mappings remove(Mapping mapping);
 
     boolean isEmpty();
 

http://git-wip-us.apache.org/repos/asf/james-project/blob/abcaa558/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 60642e2..1c124b5 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
@@ -36,6 +36,7 @@ import org.apache.james.backends.cassandra.utils.CassandraAsyncExecutor;
 import org.apache.james.backends.cassandra.utils.CassandraUtils;
 import org.apache.james.rrt.api.RecipientRewriteTableException;
 import org.apache.james.rrt.lib.AbstractRecipientRewriteTable;
+import org.apache.james.rrt.lib.Mapping;
 import org.apache.james.rrt.lib.Mappings;
 import org.apache.james.rrt.lib.MappingsImpl;
 
@@ -99,11 +100,11 @@ public class CassandraRecipientRewriteTable extends AbstractRecipientRewriteTabl
     }
 
     @Override
-    protected void removeMappingInternal(String user, String domain, String mapping) throws RecipientRewriteTableException {
+    protected void removeMappingInternal(String user, String domain, Mapping mapping) throws RecipientRewriteTableException {
         executor.executeVoid(deleteStatement.bind()
                 .setString(USER, getFixedUser(user))
                 .setString(DOMAIN, getFixedDomain(domain))
-                .setString(MAPPING, mapping))
+                .setString(MAPPING, mapping.asString()))
             .join();
     }
 

http://git-wip-us.apache.org/repos/asf/james-project/blob/abcaa558/server/data/data-file/src/main/java/org/apache/james/rrt/file/XMLRecipientRewriteTable.java
----------------------------------------------------------------------
diff --git a/server/data/data-file/src/main/java/org/apache/james/rrt/file/XMLRecipientRewriteTable.java b/server/data/data-file/src/main/java/org/apache/james/rrt/file/XMLRecipientRewriteTable.java
index 6132f3f..99dba38 100644
--- a/server/data/data-file/src/main/java/org/apache/james/rrt/file/XMLRecipientRewriteTable.java
+++ b/server/data/data-file/src/main/java/org/apache/james/rrt/file/XMLRecipientRewriteTable.java
@@ -25,6 +25,7 @@ import org.apache.commons.configuration.ConfigurationException;
 import org.apache.commons.configuration.HierarchicalConfiguration;
 import org.apache.james.rrt.api.RecipientRewriteTableException;
 import org.apache.james.rrt.lib.AbstractRecipientRewriteTable;
+import org.apache.james.rrt.lib.Mapping;
 import org.apache.james.rrt.lib.Mappings;
 import org.apache.james.rrt.lib.MappingsImpl;
 import org.apache.james.rrt.lib.RecipientRewriteTableUtil;
@@ -96,7 +97,7 @@ public class XMLRecipientRewriteTable extends AbstractRecipientRewriteTable {
     }
 
     @Override
-    protected void removeMappingInternal(String user, String domain, String mapping) throws RecipientRewriteTableException {
+    protected void removeMappingInternal(String user, String domain, Mapping mapping) throws RecipientRewriteTableException {
         throw new RecipientRewriteTableException("Read-Only implementation");
     }
 }

http://git-wip-us.apache.org/repos/asf/james-project/blob/abcaa558/server/data/data-file/src/test/java/org/apache/james/rrt/file/XMLRecipientRewriteTableTest.java
----------------------------------------------------------------------
diff --git a/server/data/data-file/src/test/java/org/apache/james/rrt/file/XMLRecipientRewriteTableTest.java b/server/data/data-file/src/test/java/org/apache/james/rrt/file/XMLRecipientRewriteTableTest.java
index 108c191..0a11783 100644
--- a/server/data/data-file/src/test/java/org/apache/james/rrt/file/XMLRecipientRewriteTableTest.java
+++ b/server/data/data-file/src/test/java/org/apache/james/rrt/file/XMLRecipientRewriteTableTest.java
@@ -26,6 +26,7 @@ import org.apache.james.rrt.api.RecipientRewriteTable;
 import org.apache.james.rrt.api.RecipientRewriteTableException;
 import org.apache.james.rrt.lib.AbstractRecipientRewriteTable;
 import org.apache.james.rrt.lib.AbstractRecipientRewriteTableTest;
+import org.apache.james.rrt.lib.MappingImpl;
 import org.apache.james.rrt.lib.Mappings;
 import org.apache.james.rrt.lib.MappingsImpl;
 import org.apache.james.rrt.lib.MappingsImpl.Builder;
@@ -110,13 +111,13 @@ public class XMLRecipientRewriteTableTest extends AbstractRecipientRewriteTableT
         removeMappingsFromConfig(user, domain, mappings);
 
         if (type == ERROR_TYPE) {
-            mappings = mappings.remove(RecipientRewriteTable.ERROR_PREFIX + mapping);
+            mappings = mappings.remove(MappingImpl.error(mapping));
         } else if (type == REGEX_TYPE) {
-            mappings = mappings.remove(RecipientRewriteTable.REGEX_PREFIX + mapping);
+            mappings = mappings.remove(MappingImpl.regex(mapping));
         } else if (type == ADDRESS_TYPE) {
-            mappings = mappings.remove(mapping);
+            mappings = mappings.remove(MappingImpl.address(mapping));
         } else if (type == ALIASDOMAIN_TYPE) {
-            mappings = mappings.remove(RecipientRewriteTable.ALIASDOMAIN_PREFIX + mapping);
+            mappings = mappings.remove(MappingImpl.domain(mapping));
         }
 
         if (mappings.size() > 0) {

http://git-wip-us.apache.org/repos/asf/james-project/blob/abcaa558/server/data/data-hbase/src/main/java/org/apache/james/rrt/hbase/HBaseRecipientRewriteTable.java
----------------------------------------------------------------------
diff --git a/server/data/data-hbase/src/main/java/org/apache/james/rrt/hbase/HBaseRecipientRewriteTable.java b/server/data/data-hbase/src/main/java/org/apache/james/rrt/hbase/HBaseRecipientRewriteTable.java
index 42731c2..0ab3eb3 100644
--- a/server/data/data-hbase/src/main/java/org/apache/james/rrt/hbase/HBaseRecipientRewriteTable.java
+++ b/server/data/data-hbase/src/main/java/org/apache/james/rrt/hbase/HBaseRecipientRewriteTable.java
@@ -24,12 +24,6 @@ import java.util.List;
 import java.util.Map;
 import java.util.Optional;
 
-import org.apache.james.rrt.api.RecipientRewriteTableException;
-import org.apache.james.rrt.hbase.def.HRecipientRewriteTable;
-import org.apache.james.rrt.lib.AbstractRecipientRewriteTable;
-import org.apache.james.rrt.lib.Mappings;
-import org.apache.james.rrt.lib.MappingsImpl;
-import org.apache.james.system.hbase.TablePool;
 import org.apache.hadoop.hbase.KeyValue;
 import org.apache.hadoop.hbase.client.Delete;
 import org.apache.hadoop.hbase.client.Get;
@@ -39,6 +33,13 @@ import org.apache.hadoop.hbase.client.Result;
 import org.apache.hadoop.hbase.client.ResultScanner;
 import org.apache.hadoop.hbase.client.Scan;
 import org.apache.hadoop.hbase.util.Bytes;
+import org.apache.james.rrt.api.RecipientRewriteTableException;
+import org.apache.james.rrt.hbase.def.HRecipientRewriteTable;
+import org.apache.james.rrt.lib.AbstractRecipientRewriteTable;
+import org.apache.james.rrt.lib.Mapping;
+import org.apache.james.rrt.lib.Mappings;
+import org.apache.james.rrt.lib.MappingsImpl;
+import org.apache.james.system.hbase.TablePool;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -206,7 +207,7 @@ public class HBaseRecipientRewriteTable extends AbstractRecipientRewriteTable {
      * @see org.apache.james.rrt.lib.AbstractRecipientRewriteTable#removeMappingInternal(String, String, String)
      */
     @Override
-    protected void removeMappingInternal(String user, String domain, String mapping) throws
+    protected void removeMappingInternal(String user, String domain, Mapping mapping) throws
             RecipientRewriteTableException {
         String fixedUser = getFixedUser(user);
         String fixedDomain = getFixedDomain(domain);
@@ -215,7 +216,7 @@ public class HBaseRecipientRewriteTable extends AbstractRecipientRewriteTable {
             Mappings updatedMappings = map.remove(mapping);
             doUpdateMapping(fixedUser, fixedDomain, updatedMappings.serialize());
         } else {
-            doRemoveMapping(fixedUser, fixedDomain, mapping);
+            doRemoveMapping(fixedUser, fixedDomain, mapping.asString());
         }
     }
 

http://git-wip-us.apache.org/repos/asf/james-project/blob/abcaa558/server/data/data-jdbc/src/main/java/org/apache/james/rrt/jdbc/JDBCRecipientRewriteTable.java
----------------------------------------------------------------------
diff --git a/server/data/data-jdbc/src/main/java/org/apache/james/rrt/jdbc/JDBCRecipientRewriteTable.java b/server/data/data-jdbc/src/main/java/org/apache/james/rrt/jdbc/JDBCRecipientRewriteTable.java
index 3c27de2..2f2f6b1 100644
--- a/server/data/data-jdbc/src/main/java/org/apache/james/rrt/jdbc/JDBCRecipientRewriteTable.java
+++ b/server/data/data-jdbc/src/main/java/org/apache/james/rrt/jdbc/JDBCRecipientRewriteTable.java
@@ -38,6 +38,7 @@ import org.apache.commons.configuration.HierarchicalConfiguration;
 import org.apache.james.filesystem.api.FileSystem;
 import org.apache.james.rrt.api.RecipientRewriteTableException;
 import org.apache.james.rrt.lib.AbstractRecipientRewriteTable;
+import org.apache.james.rrt.lib.Mapping;
 import org.apache.james.rrt.lib.Mappings;
 import org.apache.james.rrt.lib.MappingsImpl;
 import org.apache.james.util.sql.JDBCUtil;
@@ -310,12 +311,8 @@ public class JDBCRecipientRewriteTable extends AbstractRecipientRewriteTable {
         return null;
     }
 
-    /**
-     * @throws RecipientRewriteTableException
-     * @see org.apache.james.rrt.lib.AbstractRecipientRewriteTable#removeMappingInternal(String,
-     *      String, String)
-     */
-    protected void removeMappingInternal(String user, String domain, String mapping) throws RecipientRewriteTableException {
+    @Override
+    protected void removeMappingInternal(String user, String domain, Mapping mapping) throws RecipientRewriteTableException {
         String fixedUser = getFixedUser(user);
         String fixedDomain = getFixedDomain(domain);
         Mappings map = getUserDomainMappings(fixedUser, fixedDomain);
@@ -323,7 +320,7 @@ public class JDBCRecipientRewriteTable extends AbstractRecipientRewriteTable {
             Mappings updatedMappings = map.remove(mapping);
             doUpdateMapping(fixedUser, fixedDomain, updatedMappings.serialize());
         } else {
-            doRemoveMapping(fixedUser, fixedDomain, mapping);
+            doRemoveMapping(fixedUser, fixedDomain, mapping.asString());
         }
     }
 

http://git-wip-us.apache.org/repos/asf/james-project/blob/abcaa558/server/data/data-jpa/src/main/java/org/apache/james/rrt/jpa/JPARecipientRewriteTable.java
----------------------------------------------------------------------
diff --git a/server/data/data-jpa/src/main/java/org/apache/james/rrt/jpa/JPARecipientRewriteTable.java b/server/data/data-jpa/src/main/java/org/apache/james/rrt/jpa/JPARecipientRewriteTable.java
index b19760e..aac5456 100644
--- a/server/data/data-jpa/src/main/java/org/apache/james/rrt/jpa/JPARecipientRewriteTable.java
+++ b/server/data/data-jpa/src/main/java/org/apache/james/rrt/jpa/JPARecipientRewriteTable.java
@@ -32,6 +32,7 @@ import javax.persistence.PersistenceUnit;
 import org.apache.james.rrt.api.RecipientRewriteTableException;
 import org.apache.james.rrt.jpa.model.JPARecipientRewrite;
 import org.apache.james.rrt.lib.AbstractRecipientRewriteTable;
+import org.apache.james.rrt.lib.Mapping;
 import org.apache.james.rrt.lib.Mappings;
 import org.apache.james.rrt.lib.MappingsImpl;
 import org.slf4j.Logger;
@@ -171,11 +172,8 @@ public class JPARecipientRewriteTable extends AbstractRecipientRewriteTable {
         return null;
     }
 
-    /**
-     * @throws RecipientRewriteTableException
-     * @see org.apache.james.rrt.lib.AbstractRecipientRewriteTable#removeMappingInternal(String, String, String)
-     */
-    protected void removeMappingInternal(String user, String domain, String mapping) throws RecipientRewriteTableException {
+    @Override
+    protected void removeMappingInternal(String user, String domain, Mapping mapping) throws RecipientRewriteTableException {
         String fixedUser = getFixedUser(user);
         String fixedDomain = getFixedDomain(domain);
         Mappings map = getUserDomainMappings(fixedUser, fixedDomain);
@@ -183,7 +181,7 @@ public class JPARecipientRewriteTable extends AbstractRecipientRewriteTable {
             Mappings updatedMappings = map.remove(mapping);
             doUpdateMapping(fixedUser, fixedDomain, updatedMappings.serialize());
         } else {
-            doRemoveMapping(fixedUser, fixedDomain, mapping);
+            doRemoveMapping(fixedUser, fixedDomain, mapping.asString());
         }
     }
 

http://git-wip-us.apache.org/repos/asf/james-project/blob/abcaa558/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 6af844b..5fae77e 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
@@ -205,7 +205,7 @@ public abstract class AbstractRecipientRewriteTable implements RecipientRewriteT
      */
     public void removeRegexMapping(String user, String domain, String regex) throws RecipientRewriteTableException {
         LOGGER.info("Remove regex mapping => " + regex + " for user: " + user + " domain: " + domain);
-        removeMappingInternal(user, domain, RecipientRewriteTable.REGEX_PREFIX + regex);
+        removeMappingInternal(user, domain, MappingImpl.regex(regex));
     }
 
     /**
@@ -244,7 +244,7 @@ public abstract class AbstractRecipientRewriteTable implements RecipientRewriteT
             }
         }
         LOGGER.info("Remove address mapping => " + address + " for user: " + user + " domain: " + domain);
-        removeMappingInternal(user, domain, address);
+        removeMappingInternal(user, domain, MappingImpl.address(address));
     }
 
     /**
@@ -264,7 +264,7 @@ public abstract class AbstractRecipientRewriteTable implements RecipientRewriteT
      */
     public void removeErrorMapping(String user, String domain, String error) throws RecipientRewriteTableException {
         LOGGER.info("Remove error mapping => " + error + " for user: " + user + " domain: " + domain);
-        removeMappingInternal(user, domain, RecipientRewriteTable.ERROR_PREFIX + error);
+        removeMappingInternal(user, domain, MappingImpl.error(error));
     }
 
     /**
@@ -348,7 +348,7 @@ public abstract class AbstractRecipientRewriteTable implements RecipientRewriteT
      */
     public void removeAliasDomainMapping(String aliasDomain, String realDomain) throws RecipientRewriteTableException {
         LOGGER.info("Remove domain mapping: " + aliasDomain + " => " + realDomain);
-        removeMappingInternal(null, aliasDomain, RecipientRewriteTable.ALIASDOMAIN_PREFIX + realDomain);
+        removeMappingInternal(null, aliasDomain, MappingImpl.domain(realDomain));
     }
 
     /**
@@ -375,7 +375,7 @@ public abstract class AbstractRecipientRewriteTable implements RecipientRewriteT
      *            the mapping
      * @throws RecipientRewriteTableException
      */
-    protected abstract void removeMappingInternal(String user, String domain, String mapping) throws RecipientRewriteTableException;
+    protected abstract void removeMappingInternal(String user, String domain, Mapping mapping) throws RecipientRewriteTableException;
 
     /**
      * Return Collection of all mappings for the given username and domain

http://git-wip-us.apache.org/repos/asf/james-project/blob/abcaa558/server/data/data-library/src/main/java/org/apache/james/rrt/lib/MappingImpl.java
----------------------------------------------------------------------
diff --git a/server/data/data-library/src/main/java/org/apache/james/rrt/lib/MappingImpl.java b/server/data/data-library/src/main/java/org/apache/james/rrt/lib/MappingImpl.java
index ebf1fd5..4f0c97a 100644
--- a/server/data/data-library/src/main/java/org/apache/james/rrt/lib/MappingImpl.java
+++ b/server/data/data-library/src/main/java/org/apache/james/rrt/lib/MappingImpl.java
@@ -34,7 +34,6 @@ public class MappingImpl implements Mapping, Serializable {
 
     private static final String ADDRESS_PREFIX = "";
 
-
     public static MappingImpl of(String mapping) {
         return new MappingImpl("", mapping);
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/abcaa558/server/data/data-library/src/main/java/org/apache/james/rrt/lib/MappingsImpl.java
----------------------------------------------------------------------
diff --git a/server/data/data-library/src/main/java/org/apache/james/rrt/lib/MappingsImpl.java b/server/data/data-library/src/main/java/org/apache/james/rrt/lib/MappingsImpl.java
index a9b61da..c8932de 100644
--- a/server/data/data-library/src/main/java/org/apache/james/rrt/lib/MappingsImpl.java
+++ b/server/data/data-library/src/main/java/org/apache/james/rrt/lib/MappingsImpl.java
@@ -137,8 +137,7 @@ public class MappingsImpl implements Mappings, Serializable {
     }
 
     @Override
-    public Mappings remove(String mappingAsString) {
-        MappingImpl mapping = MappingImpl.of(mappingAsString);
+    public Mappings remove(Mapping mapping) {
         if (mappings.contains(mapping)) {
             ArrayList<Mapping> updatedMappings = Lists.newArrayList(mappings);
             updatedMappings.remove(mapping);

http://git-wip-us.apache.org/repos/asf/james-project/blob/abcaa558/server/data/data-memory/src/main/java/org/apache/james/rrt/memory/MemoryRecipientRewriteTable.java
----------------------------------------------------------------------
diff --git a/server/data/data-memory/src/main/java/org/apache/james/rrt/memory/MemoryRecipientRewriteTable.java b/server/data/data-memory/src/main/java/org/apache/james/rrt/memory/MemoryRecipientRewriteTable.java
index 86b07ab..84525ab 100644
--- a/server/data/data-memory/src/main/java/org/apache/james/rrt/memory/MemoryRecipientRewriteTable.java
+++ b/server/data/data-memory/src/main/java/org/apache/james/rrt/memory/MemoryRecipientRewriteTable.java
@@ -27,6 +27,7 @@ import java.util.Optional;
 
 import org.apache.james.rrt.api.RecipientRewriteTableException;
 import org.apache.james.rrt.lib.AbstractRecipientRewriteTable;
+import org.apache.james.rrt.lib.Mapping;
 import org.apache.james.rrt.lib.Mappings;
 import org.apache.james.rrt.lib.MappingsImpl;
 
@@ -96,8 +97,8 @@ public class MemoryRecipientRewriteTable extends AbstractRecipientRewriteTable {
     }
 
     @Override
-    protected void removeMappingInternal(String user, String domain, String mapping) throws RecipientRewriteTableException {
-        mappingEntries.remove(new InMemoryMappingEntry(getFixedUser(user), getFixedDomain(domain), mapping));
+    protected void removeMappingInternal(String user, String domain, Mapping mapping) throws RecipientRewriteTableException {
+        mappingEntries.remove(new InMemoryMappingEntry(getFixedUser(user), getFixedDomain(domain), mapping.asString()));
     }
 
     @Override


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


[3/5] james-project git commit: JAMES-2121 Rewrite RRT test to not swallow exceptions in booleans

Posted by bt...@apache.org.
JAMES-2121 Rewrite RRT test to not swallow exceptions in booleans


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

Branch: refs/heads/master
Commit: e30e0174d6743879711a8ee77021ec8c6e4e37d0
Parents: 589f347
Author: Raphael Ouazana <ra...@linagora.com>
Authored: Thu Aug 31 15:13:56 2017 +0200
Committer: benwa <bt...@linagora.com>
Committed: Fri Sep 1 17:26:22 2017 +0700

----------------------------------------------------------------------
 .../CassandraRecipientRewriteTableTest.java     | 72 +++++++++----------
 .../rrt/file/XMLRecipientRewriteTableTest.java  | 17 ++---
 .../hbase/HBaseRecipientRewriteTableTest.java   | 71 +++++++++---------
 .../rrt/jdbc/JDBCRecipientRewriteTableTest.java | 75 +++++++++-----------
 .../rrt/jpa/JPARecipientRewriteTableTest.java   | 66 +++++++++--------
 .../lib/AbstractRecipientRewriteTableTest.java  | 66 +++++++++--------
 .../InMemoryRecipientRewriteTableTest.java      | 73 +++++++++----------
 7 files changed, 204 insertions(+), 236 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/e30e0174/server/data/data-cassandra/src/test/java/org/apache/james/rrt/cassandra/CassandraRecipientRewriteTableTest.java
----------------------------------------------------------------------
diff --git a/server/data/data-cassandra/src/test/java/org/apache/james/rrt/cassandra/CassandraRecipientRewriteTableTest.java b/server/data/data-cassandra/src/test/java/org/apache/james/rrt/cassandra/CassandraRecipientRewriteTableTest.java
index 122161c..171dd71 100644
--- a/server/data/data-cassandra/src/test/java/org/apache/james/rrt/cassandra/CassandraRecipientRewriteTableTest.java
+++ b/server/data/data-cassandra/src/test/java/org/apache/james/rrt/cassandra/CassandraRecipientRewriteTableTest.java
@@ -56,50 +56,42 @@ public class CassandraRecipientRewriteTableTest extends AbstractRecipientRewrite
     }
 
     @Override
-    protected boolean addMapping(String user, String domain, String mapping, int type) throws RecipientRewriteTableException {
-        try {
-            switch (type) {
-            case ERROR_TYPE:
-                virtualUserTable.addErrorMapping(user, domain, mapping);
-                return true;
-            case REGEX_TYPE:
-                virtualUserTable.addRegexMapping(user, domain, mapping);
-                return true;
-            case ADDRESS_TYPE:
-                virtualUserTable.addAddressMapping(user, domain, mapping);
-                return true;
-            case ALIASDOMAIN_TYPE:
-                virtualUserTable.addAliasDomainMapping(domain, mapping);
-                return true;
-            default:
-                return false;
-            }
-        } catch (RecipientRewriteTableException e) {
-            return false;
+    protected void addMapping(String user, String domain, String mapping, int type) throws RecipientRewriteTableException {
+        switch (type) {
+        case ERROR_TYPE:
+            virtualUserTable.addErrorMapping(user, domain, mapping);
+            break;
+        case REGEX_TYPE:
+            virtualUserTable.addRegexMapping(user, domain, mapping);
+            break;
+        case ADDRESS_TYPE:
+            virtualUserTable.addAddressMapping(user, domain, mapping);
+            break;
+        case ALIASDOMAIN_TYPE:
+            virtualUserTable.addAliasDomainMapping(domain, mapping);
+            break;
+        default:
+            throw new RuntimeException("Invalid mapping type: " + type);
         }
     }
 
     @Override
-    protected boolean removeMapping(String user, String domain, String mapping, int type) throws RecipientRewriteTableException {
-        try {
-            switch (type) {
-            case ERROR_TYPE:
-                virtualUserTable.removeErrorMapping(user, domain, mapping);
-                return true;
-            case REGEX_TYPE:
-                virtualUserTable.removeRegexMapping(user, domain, mapping);
-                return true;
-            case ADDRESS_TYPE:
-                virtualUserTable.removeAddressMapping(user, domain, mapping);
-                return true;
-            case ALIASDOMAIN_TYPE:
-                virtualUserTable.removeAliasDomainMapping(domain, mapping);
-                return true;
-            default:
-                return false;
-            }
-        } catch (RecipientRewriteTableException e) {
-            return false;
+    protected void removeMapping(String user, String domain, String mapping, int type) throws RecipientRewriteTableException {
+        switch (type) {
+        case ERROR_TYPE:
+            virtualUserTable.removeErrorMapping(user, domain, mapping);
+            break;
+        case REGEX_TYPE:
+            virtualUserTable.removeRegexMapping(user, domain, mapping);
+            break;
+        case ADDRESS_TYPE:
+            virtualUserTable.removeAddressMapping(user, domain, mapping);
+            break;
+        case ALIASDOMAIN_TYPE:
+            virtualUserTable.removeAliasDomainMapping(domain, mapping);
+            break;
+        default:
+            throw new RuntimeException("Invalid mapping type: " + type);
         }
     }
 

http://git-wip-us.apache.org/repos/asf/james-project/blob/e30e0174/server/data/data-file/src/test/java/org/apache/james/rrt/file/XMLRecipientRewriteTableTest.java
----------------------------------------------------------------------
diff --git a/server/data/data-file/src/test/java/org/apache/james/rrt/file/XMLRecipientRewriteTableTest.java b/server/data/data-file/src/test/java/org/apache/james/rrt/file/XMLRecipientRewriteTableTest.java
index 0a11783..b5a5771 100644
--- a/server/data/data-file/src/test/java/org/apache/james/rrt/file/XMLRecipientRewriteTableTest.java
+++ b/server/data/data-file/src/test/java/org/apache/james/rrt/file/XMLRecipientRewriteTableTest.java
@@ -61,7 +61,7 @@ public class XMLRecipientRewriteTableTest extends AbstractRecipientRewriteTableT
     }
 
     @Override
-    protected boolean addMapping(String user, String domain, String mapping, int type) throws
+    protected void addMapping(String user, String domain, String mapping, int type) throws
             RecipientRewriteTableException {
 
         Mappings mappings = virtualUserTable.getUserDomainMappings(user, domain);
@@ -91,21 +91,21 @@ public class XMLRecipientRewriteTableTest extends AbstractRecipientRewriteTableT
         try {
             virtualUserTable.configure(defaultConfiguration);
         } catch (Exception e) {
-            return updatedMappings.size() <= 0;
+            if (updatedMappings.size() > 0) {
+                throw new RecipientRewriteTableException("Error update mapping", e);
+            }
         }
 
-        return true;
-
     }
 
     @Override
-    protected boolean removeMapping(String user, String domain, String mapping, int type) throws
+    protected void removeMapping(String user, String domain, String mapping, int type) throws
             RecipientRewriteTableException {
 
         Mappings mappings = virtualUserTable.getUserDomainMappings(user, domain);
 
         if (mappings == null) {
-            return false;
+            throw new RecipientRewriteTableException("Cannot remove from null mappings");
         }
 
         removeMappingsFromConfig(user, domain, mappings);
@@ -127,9 +127,10 @@ public class XMLRecipientRewriteTableTest extends AbstractRecipientRewriteTableT
         try {
             virtualUserTable.configure(defaultConfiguration);
         } catch (Exception e) {
-            return mappings.size() <= 0;
+            if (mappings.size() > 0) {
+                throw new RecipientRewriteTableException("Error update mapping", e);
+            }
         }
-        return true;
     }
 
     private void removeMappingsFromConfig(String user, String domain, Mappings mappings) {

http://git-wip-us.apache.org/repos/asf/james-project/blob/e30e0174/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 04dc114..e8769ca 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
@@ -53,50 +53,43 @@ public class HBaseRecipientRewriteTableTest extends AbstractRecipientRewriteTabl
         return rrt;
     }
 
-    /**
-     */
     @Override
-    protected boolean addMapping(String user, String domain, String mapping, int type) throws
-            RecipientRewriteTableException {
-        try {
-            if (type == ERROR_TYPE) {
-                virtualUserTable.addErrorMapping(user, domain, mapping);
-            } else if (type == REGEX_TYPE) {
-                virtualUserTable.addRegexMapping(user, domain, mapping);
-            } else if (type == ADDRESS_TYPE) {
-                virtualUserTable.addAddressMapping(user, domain, mapping);
-            } else if (type == ALIASDOMAIN_TYPE) {
-                virtualUserTable.addAliasDomainMapping(domain, mapping);
-            } else {
-                return false;
-            }
-            return true;
-        } catch (RecipientRewriteTableException e) {
-            return false;
+    protected void addMapping(String user, String domain, String mapping, int type) throws RecipientRewriteTableException {
+        switch (type) {
+        case ERROR_TYPE:
+            virtualUserTable.addErrorMapping(user, domain, mapping);
+            break;
+        case REGEX_TYPE:
+            virtualUserTable.addRegexMapping(user, domain, mapping);
+            break;
+        case ADDRESS_TYPE:
+            virtualUserTable.addAddressMapping(user, domain, mapping);
+            break;
+        case ALIASDOMAIN_TYPE:
+            virtualUserTable.addAliasDomainMapping(domain, mapping);
+            break;
+        default:
+            throw new RuntimeException("Invalid mapping type: " + type);
         }
     }
 
-    /**
-     * @see org.apache.james.rrt.lib.AbstractRecipientRewriteTableTest#removeMapping(String, String, String, int)
-     */
     @Override
-    protected boolean removeMapping(String user, String domain, String mapping, int type) throws
-            RecipientRewriteTableException {
-        try {
-            if (type == ERROR_TYPE) {
-                virtualUserTable.removeErrorMapping(user, domain, mapping);
-            } else if (type == REGEX_TYPE) {
-                virtualUserTable.removeRegexMapping(user, domain, mapping);
-            } else if (type == ADDRESS_TYPE) {
-                virtualUserTable.removeAddressMapping(user, domain, mapping);
-            } else if (type == ALIASDOMAIN_TYPE) {
-                virtualUserTable.removeAliasDomainMapping(domain, mapping);
-            } else {
-                return false;
-            }
-            return true;
-        } catch (RecipientRewriteTableException e) {
-            return false;
+    protected void removeMapping(String user, String domain, String mapping, int type) throws RecipientRewriteTableException {
+        switch (type) {
+        case ERROR_TYPE:
+            virtualUserTable.removeErrorMapping(user, domain, mapping);
+            break;
+        case REGEX_TYPE:
+            virtualUserTable.removeRegexMapping(user, domain, mapping);
+            break;
+        case ADDRESS_TYPE:
+            virtualUserTable.removeAddressMapping(user, domain, mapping);
+            break;
+        case ALIASDOMAIN_TYPE:
+            virtualUserTable.removeAliasDomainMapping(domain, mapping);
+            break;
+        default:
+            throw new RuntimeException("Invalid mapping type: " + type);
         }
     }
 }

http://git-wip-us.apache.org/repos/asf/james-project/blob/e30e0174/server/data/data-jdbc/src/test/java/org/apache/james/rrt/jdbc/JDBCRecipientRewriteTableTest.java
----------------------------------------------------------------------
diff --git a/server/data/data-jdbc/src/test/java/org/apache/james/rrt/jdbc/JDBCRecipientRewriteTableTest.java b/server/data/data-jdbc/src/test/java/org/apache/james/rrt/jdbc/JDBCRecipientRewriteTableTest.java
index a2caeed..bd5d614 100644
--- a/server/data/data-jdbc/src/test/java/org/apache/james/rrt/jdbc/JDBCRecipientRewriteTableTest.java
+++ b/server/data/data-jdbc/src/test/java/org/apache/james/rrt/jdbc/JDBCRecipientRewriteTableTest.java
@@ -57,54 +57,43 @@ public class JDBCRecipientRewriteTableTest extends AbstractRecipientRewriteTable
         return ds;
     }
 
-    /**
-     * @see org.apache.james.rrt.lib.AbstractRecipientRewriteTableTest#addMapping(java.lang.String,
-     *      java.lang.String, java.lang.String, int)
-     */
     @Override
-    protected boolean addMapping(String user, String domain, String mapping, int type) throws
-            RecipientRewriteTableException {
-        try {
-            if (type == ERROR_TYPE) {
-                virtualUserTable.addErrorMapping(user, domain, mapping);
-            } else if (type == REGEX_TYPE) {
-                virtualUserTable.addRegexMapping(user, domain, mapping);
-            } else if (type == ADDRESS_TYPE) {
-                virtualUserTable.addAddressMapping(user, domain, mapping);
-            } else if (type == ALIASDOMAIN_TYPE) {
-                virtualUserTable.addAliasDomainMapping(domain, mapping);
-            } else {
-                return false;
-            }
-        } catch (RecipientRewriteTableException ex) {
-            return false;
+    protected void addMapping(String user, String domain, String mapping, int type) throws RecipientRewriteTableException {
+        switch (type) {
+        case ERROR_TYPE:
+            virtualUserTable.addErrorMapping(user, domain, mapping);
+            break;
+        case REGEX_TYPE:
+            virtualUserTable.addRegexMapping(user, domain, mapping);
+            break;
+        case ADDRESS_TYPE:
+            virtualUserTable.addAddressMapping(user, domain, mapping);
+            break;
+        case ALIASDOMAIN_TYPE:
+            virtualUserTable.addAliasDomainMapping(domain, mapping);
+            break;
+        default:
+            throw new RuntimeException("Invalid mapping type: " + type);
         }
-        return true;
     }
 
-    /**
-     * @see org.apache.james.rrt.lib.AbstractRecipientRewriteTableTest#removeMapping(java.lang.String,
-     *      java.lang.String, java.lang.String, int)
-     */
     @Override
-    protected boolean removeMapping(String user, String domain, String mapping, int type) throws
-            RecipientRewriteTableException {
-        try {
-
-            if (type == ERROR_TYPE) {
-                virtualUserTable.removeErrorMapping(user, domain, mapping);
-            } else if (type == REGEX_TYPE) {
-                virtualUserTable.removeRegexMapping(user, domain, mapping);
-            } else if (type == ADDRESS_TYPE) {
-                virtualUserTable.removeAddressMapping(user, domain, mapping);
-            } else if (type == ALIASDOMAIN_TYPE) {
-                virtualUserTable.removeAliasDomainMapping(domain, mapping);
-            } else {
-                return false;
-            }
-        } catch (RecipientRewriteTableException ex) {
-            return false;
+    protected void removeMapping(String user, String domain, String mapping, int type) throws RecipientRewriteTableException {
+        switch (type) {
+        case ERROR_TYPE:
+            virtualUserTable.removeErrorMapping(user, domain, mapping);
+            break;
+        case REGEX_TYPE:
+            virtualUserTable.removeRegexMapping(user, domain, mapping);
+            break;
+        case ADDRESS_TYPE:
+            virtualUserTable.removeAddressMapping(user, domain, mapping);
+            break;
+        case ALIASDOMAIN_TYPE:
+            virtualUserTable.removeAliasDomainMapping(domain, mapping);
+            break;
+        default:
+            throw new RuntimeException("Invalid mapping type: " + type);
         }
-        return true;
     }
 }

http://git-wip-us.apache.org/repos/asf/james-project/blob/e30e0174/server/data/data-jpa/src/test/java/org/apache/james/rrt/jpa/JPARecipientRewriteTableTest.java
----------------------------------------------------------------------
diff --git a/server/data/data-jpa/src/test/java/org/apache/james/rrt/jpa/JPARecipientRewriteTableTest.java b/server/data/data-jpa/src/test/java/org/apache/james/rrt/jpa/JPARecipientRewriteTableTest.java
index e82f506..5b49a8a 100644
--- a/server/data/data-jpa/src/test/java/org/apache/james/rrt/jpa/JPARecipientRewriteTableTest.java
+++ b/server/data/data-jpa/src/test/java/org/apache/james/rrt/jpa/JPARecipientRewriteTableTest.java
@@ -42,44 +42,42 @@ public class JPARecipientRewriteTableTest extends AbstractRecipientRewriteTableT
     }
 
     @Override
-    protected boolean addMapping(String user, String domain, String mapping, int type) throws
-            RecipientRewriteTableException {
-        try {
-            if (type == ERROR_TYPE) {
-                virtualUserTable.addErrorMapping(user, domain, mapping);
-            } else if (type == REGEX_TYPE) {
-                virtualUserTable.addRegexMapping(user, domain, mapping);
-            } else if (type == ADDRESS_TYPE) {
-                virtualUserTable.addAddressMapping(user, domain, mapping);
-            } else if (type == ALIASDOMAIN_TYPE) {
-                virtualUserTable.addAliasDomainMapping(domain, mapping);
-            } else {
-                return false;
-            }
-            return true;
-        } catch (RecipientRewriteTableException e) {
-            return false;
+    protected void addMapping(String user, String domain, String mapping, int type) throws RecipientRewriteTableException {
+        switch (type) {
+        case ERROR_TYPE:
+            virtualUserTable.addErrorMapping(user, domain, mapping);
+            break;
+        case REGEX_TYPE:
+            virtualUserTable.addRegexMapping(user, domain, mapping);
+            break;
+        case ADDRESS_TYPE:
+            virtualUserTable.addAddressMapping(user, domain, mapping);
+            break;
+        case ALIASDOMAIN_TYPE:
+            virtualUserTable.addAliasDomainMapping(domain, mapping);
+            break;
+        default:
+            throw new RuntimeException("Invalid mapping type: " + type);
         }
     }
 
     @Override
-    protected boolean removeMapping(String user, String domain, String mapping, int type) throws
-            RecipientRewriteTableException {
-        try {
-            if (type == ERROR_TYPE) {
-                virtualUserTable.removeErrorMapping(user, domain, mapping);
-            } else if (type == REGEX_TYPE) {
-                virtualUserTable.removeRegexMapping(user, domain, mapping);
-            } else if (type == ADDRESS_TYPE) {
-                virtualUserTable.removeAddressMapping(user, domain, mapping);
-            } else if (type == ALIASDOMAIN_TYPE) {
-                virtualUserTable.removeAliasDomainMapping(domain, mapping);
-            } else {
-                return false;
-            }
-            return true;
-        } catch (RecipientRewriteTableException e) {
-            return false;
+    protected void removeMapping(String user, String domain, String mapping, int type) throws RecipientRewriteTableException {
+        switch (type) {
+        case ERROR_TYPE:
+            virtualUserTable.removeErrorMapping(user, domain, mapping);
+            break;
+        case REGEX_TYPE:
+            virtualUserTable.removeRegexMapping(user, domain, mapping);
+            break;
+        case ADDRESS_TYPE:
+            virtualUserTable.removeAddressMapping(user, domain, mapping);
+            break;
+        case ALIASDOMAIN_TYPE:
+            virtualUserTable.removeAliasDomainMapping(domain, mapping);
+            break;
+        default:
+            throw new RuntimeException("Invalid mapping type: " + type);
         }
     }
 }

http://git-wip-us.apache.org/repos/asf/james-project/blob/e30e0174/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 f481102..67a414d 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
@@ -29,7 +29,9 @@ import org.apache.james.rrt.api.RecipientRewriteTable.ErrorMappingException;
 import org.apache.james.rrt.api.RecipientRewriteTableException;
 import org.junit.After;
 import org.junit.Before;
+import org.junit.Rule;
 import org.junit.Test;
+import org.junit.rules.ExpectedException;
 
 /**
  * The abstract test for the virtual user table. Contains tests related to
@@ -38,6 +40,8 @@ import org.junit.Test;
  */
 public abstract class AbstractRecipientRewriteTableTest {
 
+    @Rule public ExpectedException expectedException = ExpectedException.none();
+
     protected AbstractRecipientRewriteTable virtualUserTable;
     protected final static int REGEX_TYPE = 0;
     protected final static int ERROR_TYPE = 1;
@@ -92,11 +96,11 @@ public abstract class AbstractRecipientRewriteTableTest {
 
             assertThat(virtualUserTable.getMappings(user, domain)).describedAs("No mapping").isNull();
 
-            assertThat(addMapping(user, domain, regex, REGEX_TYPE)).describedAs("Added virtual mapping").isTrue();
-            assertThat(addMapping(user, domain, regex2, REGEX_TYPE)).describedAs("Added virtual mapping").isTrue();
+            addMapping(user, domain, regex, REGEX_TYPE);
+            addMapping(user, domain, regex2, REGEX_TYPE);
             assertThat(virtualUserTable.getMappings(user, domain)).describedAs("Two mappings").hasSize(2);
             assertThat(virtualUserTable.getAllMappings()).describedAs("One mappingline").hasSize(1);
-            assertThat(removeMapping(user, domain, regex, REGEX_TYPE)).describedAs("remove virtual mapping").isTrue();
+            removeMapping(user, domain, regex, REGEX_TYPE);
             
             try {
                 virtualUserTable.addRegexMapping(user, domain, invalidRegex);
@@ -105,7 +109,7 @@ public abstract class AbstractRecipientRewriteTableTest {
             }
             
             assertThat(catched).describedAs("Invalid Mapping throw exception").isTrue();
-            assertThat(removeMapping(user, domain, regex2, REGEX_TYPE)).describedAs("remove virtual mapping").isTrue();
+            removeMapping(user, domain, regex2, REGEX_TYPE);
 
             
             assertThat(virtualUserTable.getMappings(user, domain)).describedAs("No mapping").isNull();
@@ -130,13 +134,13 @@ public abstract class AbstractRecipientRewriteTableTest {
 
             assertThat(virtualUserTable.getMappings(user, domain)).describedAs("No mapping").isNull();
 
-            assertThat(addMapping(user, domain, address, ADDRESS_TYPE)).describedAs("Added virtual mapping").isTrue();
-            assertThat(addMapping(user, domain, address2, ADDRESS_TYPE)).describedAs("Added virtual mapping").isTrue();
+            addMapping(user, domain, address, ADDRESS_TYPE);
+            addMapping(user, domain, address2, ADDRESS_TYPE);
 
             assertThat(virtualUserTable.getMappings(user, domain)).describedAs("Two mappings").hasSize(2);
             assertThat(virtualUserTable.getAllMappings()).describedAs("One mappingline").hasSize(1);
 
-            assertThat(removeMapping(user, domain, address, ADDRESS_TYPE)).describedAs("remove virtual mapping").isTrue();
+            removeMapping(user, domain, address, ADDRESS_TYPE);
 
             /*
              * TEMPORARILY REMOVE JDBC specific test String invalidAddress=
@@ -149,7 +153,7 @@ public abstract class AbstractRecipientRewriteTableTest {
              */
 
             
-            assertThat(removeMapping(user, domain, address2, ADDRESS_TYPE)).describedAs("remove virtual mapping").isTrue();
+            removeMapping(user, domain, address2, ADDRESS_TYPE);
 
             assertThat(virtualUserTable.getMappings(user, domain)).describedAs("No mapping").isNull();
             assertThat(virtualUserTable.getAllMappings()).describedAs("No mapping").isNull();
@@ -171,7 +175,7 @@ public abstract class AbstractRecipientRewriteTableTest {
         try {
             assertThat(virtualUserTable.getMappings(user, domain)).describedAs("No mapping").isNull();
 
-            assertThat(addMapping(user, domain, error, ERROR_TYPE)).describedAs("Added virtual mapping").isTrue();
+            addMapping(user, domain, error, ERROR_TYPE);
             assertThat(virtualUserTable.getAllMappings()).describedAs("One mappingline").hasSize(1);
 
             try {
@@ -181,7 +185,7 @@ public abstract class AbstractRecipientRewriteTableTest {
             }
             assertThat(catched).describedAs("Error Mapping throw exception").isTrue();
 
-            assertThat(removeMapping(user, domain, error, ERROR_TYPE)).describedAs("remove virtual mapping").isTrue();
+            removeMapping(user, domain, error, ERROR_TYPE);
 
             assertThat(virtualUserTable.getMappings(user, domain)).describedAs("No mapping").isNull();
             assertThat(virtualUserTable.getAllMappings()).describedAs("No mapping").isNull();
@@ -205,14 +209,14 @@ public abstract class AbstractRecipientRewriteTableTest {
 
             assertThat(virtualUserTable.getMappings(user, domain)).describedAs("No mapping").isNull();
 
-            assertThat(addMapping(RecipientRewriteTable.WILDCARD, domain, address, ADDRESS_TYPE)).describedAs("Added virtual mapping").isTrue();
-            assertThat(addMapping(user, domain, address2, ADDRESS_TYPE)).describedAs("Added virtual mapping").isTrue();
+            addMapping(RecipientRewriteTable.WILDCARD, domain, address, ADDRESS_TYPE);
+            addMapping(user, domain, address2, ADDRESS_TYPE);
 
             assertThat(virtualUserTable.getMappings(user, domain)).describedAs("One mappings").hasSize(1);
             assertThat(virtualUserTable.getMappings(user2, domain)).describedAs("One mappings").hasSize(1);
 
-            assertThat(removeMapping(user, domain, address2, ADDRESS_TYPE)).describedAs("remove virtual mapping").isTrue();
-            assertThat(removeMapping(RecipientRewriteTable.WILDCARD, domain, address, ADDRESS_TYPE)).describedAs("remove virtual mapping").isTrue();
+            removeMapping(user, domain, address2, ADDRESS_TYPE);
+            removeMapping(RecipientRewriteTable.WILDCARD, domain, address, ADDRESS_TYPE);
             
             assertThat(virtualUserTable.getMappings(user, domain)).describedAs("No mapping").isNull();
             assertThat(virtualUserTable.getMappings(user2, domain)).describedAs("No mapping").isNull();
@@ -239,10 +243,10 @@ public abstract class AbstractRecipientRewriteTableTest {
         try {
             assertThat(virtualUserTable.getAllMappings()).describedAs("No mapping").isNull();
 
-            assertThat(addMapping(user1, domain1, user2 + "@" + domain2, ADDRESS_TYPE)).describedAs("Added mapping").isTrue();
-            assertThat(addMapping(user2, domain2, user3 + "@" + domain3, ADDRESS_TYPE)).describedAs("Added mapping").isTrue();
+            addMapping(user1, domain1, user2 + "@" + domain2, ADDRESS_TYPE);
+            addMapping(user2, domain2, user3 + "@" + domain3, ADDRESS_TYPE);
             assertThat(virtualUserTable.getMappings(user1, domain1)).containsOnly(MappingImpl.address(user3 + "@" + domain3));
-            assertThat(addMapping(user3, domain3, user1 + "@" + domain1, ADDRESS_TYPE)).describedAs("Added mapping").isTrue();
+            addMapping(user3, domain3, user1 + "@" + domain1, ADDRESS_TYPE);
             
             try {
                 virtualUserTable.getMappings(user1, domain1);
@@ -272,20 +276,16 @@ public abstract class AbstractRecipientRewriteTableTest {
 
         try {
 
-            assertThat(addMapping(RecipientRewriteTable.WILDCARD, aliasDomain, user2 + "@" + domain,
-                    ADDRESS_TYPE)).describedAs("Add mapping").isTrue();
-            assertThat(addMapping(RecipientRewriteTable.WILDCARD, aliasDomain, domain,
-                    ALIASDOMAIN_TYPE)).describedAs("Add aliasDomain mapping").isTrue();
+            addMapping(RecipientRewriteTable.WILDCARD, aliasDomain, user2 + "@" + domain, ADDRESS_TYPE);
+            addMapping(RecipientRewriteTable.WILDCARD, aliasDomain, domain, ALIASDOMAIN_TYPE);
 
             assertThat(virtualUserTable.getMappings(user, aliasDomain))
                 .describedAs("Domain mapped as first, Address mapped as second")
                 .containsExactly(MappingImpl.address(user + "@" + domain), MappingImpl.address(user2 + "@" + domain));
 
-            assertThat(removeMapping(RecipientRewriteTable.WILDCARD, aliasDomain, user2 + "@" + domain,
-                    ADDRESS_TYPE)).describedAs("Remove mapping").isTrue();
+            removeMapping(RecipientRewriteTable.WILDCARD, aliasDomain, user2 + "@" + domain, ADDRESS_TYPE);
 
-            assertThat(removeMapping(RecipientRewriteTable.WILDCARD, aliasDomain, domain,
-                    ALIASDOMAIN_TYPE)).describedAs("Remove aliasDomain mapping").isTrue();
+            removeMapping(RecipientRewriteTable.WILDCARD, aliasDomain, domain, ALIASDOMAIN_TYPE);
 
         } catch (IllegalArgumentException e) {
             fail("Storing failed");
@@ -334,8 +334,10 @@ public abstract class AbstractRecipientRewriteTableTest {
         String domain = "localhost";
         String address = "test@localhost2";
 
-        assertThat(addMapping(user, domain, address, ADDRESS_TYPE)).isTrue();
-        assertThat(addMapping(user, domain, address, ADDRESS_TYPE)).isFalse();
+        expectedException.expect(RecipientRewriteTableException.class);
+
+        addMapping(user, domain, address, ADDRESS_TYPE);
+        addMapping(user, domain, address, ADDRESS_TYPE);
     }
 
     @Test
@@ -344,16 +346,18 @@ public abstract class AbstractRecipientRewriteTableTest {
         String domain = "localhost";
         String address = "test@localhost2";
 
-        assertThat(addMapping(user, domain, address, ADDRESS_TYPE)).isTrue();
-        assertThat(addMapping(user, domain, address, ERROR_TYPE)).isTrue();
+        addMapping(user, domain, address, ADDRESS_TYPE);
+        addMapping(user, domain, address, REGEX_TYPE);
+        
+        assertThat(virtualUserTable.getMappings(user, domain)).hasSize(2);
     }
 
     protected abstract AbstractRecipientRewriteTable getRecipientRewriteTable() throws Exception;
 
-    protected abstract boolean addMapping(String user, String domain, String mapping, int type) throws
+    protected abstract void addMapping(String user, String domain, String mapping, int type) throws
             RecipientRewriteTableException;
 
-    protected abstract boolean removeMapping(String user, String domain, String mapping, int type) throws
+    protected abstract void removeMapping(String user, String domain, String mapping, int type) throws
             RecipientRewriteTableException;
 
     private void removeMapping(String user, String domain, String rawMapping) throws RecipientRewriteTableException {

http://git-wip-us.apache.org/repos/asf/james-project/blob/e30e0174/server/data/data-memory/src/test/java/org/apache/james/rrt/memory/InMemoryRecipientRewriteTableTest.java
----------------------------------------------------------------------
diff --git a/server/data/data-memory/src/test/java/org/apache/james/rrt/memory/InMemoryRecipientRewriteTableTest.java b/server/data/data-memory/src/test/java/org/apache/james/rrt/memory/InMemoryRecipientRewriteTableTest.java
index 210e56f..de089c2 100644
--- a/server/data/data-memory/src/test/java/org/apache/james/rrt/memory/InMemoryRecipientRewriteTableTest.java
+++ b/server/data/data-memory/src/test/java/org/apache/james/rrt/memory/InMemoryRecipientRewriteTableTest.java
@@ -34,51 +34,42 @@ public class InMemoryRecipientRewriteTableTest extends AbstractRecipientRewriteT
     }
 
     @Override
-    protected boolean addMapping(String user, String domain, String mapping, int type) throws RecipientRewriteTableException {
-        try {
-            switch (type) {
-            case ERROR_TYPE:
-                virtualUserTable.addErrorMapping(user, domain, mapping);
-                return true;
-            case REGEX_TYPE:
-                virtualUserTable.addRegexMapping(user, domain, mapping);
-                return true;
-            case ADDRESS_TYPE:
-                virtualUserTable.addAddressMapping(user, domain, mapping);
-                return true;
-            case ALIASDOMAIN_TYPE:
-                virtualUserTable.addAliasDomainMapping(domain, mapping);
-                return true;
-            default:
-                return false;
-            }
-        } catch (RecipientRewriteTableException e) {
-            return false;
+    protected void addMapping(String user, String domain, String mapping, int type) throws RecipientRewriteTableException {
+        switch (type) {
+        case ERROR_TYPE:
+            virtualUserTable.addErrorMapping(user, domain, mapping);
+            break;
+        case REGEX_TYPE:
+            virtualUserTable.addRegexMapping(user, domain, mapping);
+            break;
+        case ADDRESS_TYPE:
+            virtualUserTable.addAddressMapping(user, domain, mapping);
+            break;
+        case ALIASDOMAIN_TYPE:
+            virtualUserTable.addAliasDomainMapping(domain, mapping);
+            break;
+        default:
+            throw new RuntimeException("Invalid mapping type: " + type);
         }
     }
 
     @Override
-    protected boolean removeMapping(String user, String domain, String mapping, int type) throws RecipientRewriteTableException {
-        try {
-            switch (type) {
-            case ERROR_TYPE:
-                virtualUserTable.removeErrorMapping(user, domain, mapping);
-                return true;
-            case REGEX_TYPE:
-                virtualUserTable.removeRegexMapping(user, domain, mapping);
-                return true;
-            case ADDRESS_TYPE:
-                virtualUserTable.removeAddressMapping(user, domain, mapping);
-                return true;
-            case ALIASDOMAIN_TYPE:
-                virtualUserTable.removeAliasDomainMapping(domain, mapping);
-                return true;
-            default:
-                return false;
-            }
-        } catch (RecipientRewriteTableException e) {
-            return false;
+    protected void removeMapping(String user, String domain, String mapping, int type) throws RecipientRewriteTableException {
+        switch (type) {
+        case ERROR_TYPE:
+            virtualUserTable.removeErrorMapping(user, domain, mapping);
+            break;
+        case REGEX_TYPE:
+            virtualUserTable.removeRegexMapping(user, domain, mapping);
+            break;
+        case ADDRESS_TYPE:
+            virtualUserTable.removeAddressMapping(user, domain, mapping);
+            break;
+        case ALIASDOMAIN_TYPE:
+            virtualUserTable.removeAliasDomainMapping(domain, mapping);
+            break;
+        default:
+            throw new RuntimeException("Invalid mapping type: " + type);
         }
     }
-
 }


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