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:07 UTC

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

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