JAMES-2366 get ride of [add|remove]MappingInternal It is done by strong typing RRT::[add|remove]Mapping
This also avoids a useless mapping -> string conversion Project: http://git-wip-us.apache.org/repos/asf/james-project/repo Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/860f7b81 Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/860f7b81 Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/860f7b81 Branch: refs/heads/master Commit: 860f7b8192dde758fcbcd9ab1b466542a6dc9063 Parents: 8237163 Author: benwa <btell...@linagora.com> Authored: Fri Apr 6 10:04:55 2018 +0700 Committer: benwa <btell...@linagora.com> Committed: Thu Apr 19 11:12:07 2018 +0700 ---------------------------------------------------------------------- .../james/rrt/api/RecipientRewriteTable.java | 5 +- .../CassandraRecipientRewriteTable.java | 4 +- .../rrt/file/XMLRecipientRewriteTable.java | 4 +- .../rrt/hbase/HBaseRecipientRewriteTable.java | 4 +- .../rrt/jdbc/JDBCRecipientRewriteTable.java | 4 +- .../james/rrt/jpa/JPARecipientRewriteTable.java | 4 +- .../rrt/lib/AbstractRecipientRewriteTable.java | 88 +++----------------- .../lib/RecipientRewriteTableManagement.java | 4 +- .../user/lib/AbstractJamesUsersRepository.java | 5 +- .../rrt/memory/MemoryRecipientRewriteTable.java | 4 +- 10 files changed, 30 insertions(+), 96 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/james-project/blob/860f7b81/server/data/data-api/src/main/java/org/apache/james/rrt/api/RecipientRewriteTable.java ---------------------------------------------------------------------- diff --git a/server/data/data-api/src/main/java/org/apache/james/rrt/api/RecipientRewriteTable.java b/server/data/data-api/src/main/java/org/apache/james/rrt/api/RecipientRewriteTable.java index f1f11bd..92c803d 100644 --- a/server/data/data-api/src/main/java/org/apache/james/rrt/api/RecipientRewriteTable.java +++ b/server/data/data-api/src/main/java/org/apache/james/rrt/api/RecipientRewriteTable.java @@ -21,6 +21,7 @@ package org.apache.james.rrt.api; import java.util.Map; import org.apache.james.core.Domain; +import org.apache.james.rrt.lib.Mapping; import org.apache.james.rrt.lib.Mappings; /** @@ -161,7 +162,7 @@ public interface RecipientRewriteTable { * the mapping * @throws RecipientRewriteTableException */ - void addMapping(String user, Domain domain, String mapping) throws RecipientRewriteTableException; + void addMapping(String user, Domain domain, Mapping mapping) throws RecipientRewriteTableException; /** * Remove mapping @@ -174,7 +175,7 @@ public interface RecipientRewriteTable { * the mapping * @throws RecipientRewriteTableException */ - void removeMapping(String user, Domain domain, String mapping) throws RecipientRewriteTableException; + void removeMapping(String user, Domain domain, Mapping mapping) throws RecipientRewriteTableException; /** * Return a Map which holds all mappings. The key is the user@domain and the http://git-wip-us.apache.org/repos/asf/james-project/blob/860f7b81/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 ef8a649..b4239d8 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 @@ -94,7 +94,7 @@ public class CassandraRecipientRewriteTable extends AbstractRecipientRewriteTabl } @Override - protected void addMappingInternal(String user, Domain domain, Mapping mapping) { + public void addMapping(String user, Domain domain, Mapping mapping) { executor.executeVoid(insertStatement.bind() .setString(USER, getFixedUser(user)) .setString(DOMAIN, getFixedDomain(domain).asString()) @@ -103,7 +103,7 @@ public class CassandraRecipientRewriteTable extends AbstractRecipientRewriteTabl } @Override - protected void removeMappingInternal(String user, Domain domain, Mapping mapping) { + public void removeMapping(String user, Domain domain, Mapping mapping) { executor.executeVoid(deleteStatement.bind() .setString(USER, getFixedUser(user)) .setString(DOMAIN, getFixedDomain(domain).asString()) http://git-wip-us.apache.org/repos/asf/james-project/blob/860f7b81/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 9df10a6..08063cc 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 @@ -94,12 +94,12 @@ public class XMLRecipientRewriteTable extends AbstractRecipientRewriteTable { } @Override - protected void addMappingInternal(String user, Domain domain, Mapping mapping) throws RecipientRewriteTableException { + public void addMapping(String user, Domain domain, Mapping mapping) throws RecipientRewriteTableException { throw new RecipientRewriteTableException("Read-Only implementation"); } @Override - protected void removeMappingInternal(String user, Domain domain, Mapping mapping) throws RecipientRewriteTableException { + public void removeMapping(String user, Domain domain, Mapping mapping) throws RecipientRewriteTableException { throw new RecipientRewriteTableException("Read-Only implementation"); } } http://git-wip-us.apache.org/repos/asf/james-project/blob/860f7b81/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 ff37108..cd5ca2a 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 @@ -59,7 +59,7 @@ public class HBaseRecipientRewriteTable extends AbstractRecipientRewriteTable { private static final String COLUMN_SEPARATOR = ";"; @Override - protected void addMappingInternal(String user, Domain domain, Mapping mapping) throws RecipientRewriteTableException { + public void addMapping(String user, Domain domain, Mapping mapping) throws RecipientRewriteTableException { String fixedUser = getFixedUser(user); Domain fixedDomain = getFixedDomain(domain); Mappings map = getUserDomainMappings(fixedUser, fixedDomain); @@ -196,7 +196,7 @@ public class HBaseRecipientRewriteTable extends AbstractRecipientRewriteTable { } @Override - protected void removeMappingInternal(String user, Domain domain, Mapping mapping) throws + public void removeMapping(String user, Domain domain, Mapping mapping) throws RecipientRewriteTableException { String fixedUser = getFixedUser(user); Domain fixedDomain = getFixedDomain(domain); http://git-wip-us.apache.org/repos/asf/james-project/blob/860f7b81/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 8a2e235..eee32b6 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 @@ -187,7 +187,7 @@ public class JDBCRecipientRewriteTable extends AbstractRecipientRewriteTable { } @Override - protected void addMappingInternal(String user, Domain domain, Mapping mapping) throws RecipientRewriteTableException { + public void addMapping(String user, Domain domain, Mapping mapping) throws RecipientRewriteTableException { String fixedUser = getFixedUser(user); Domain fixedDomain = getFixedDomain(domain); Mappings map = getUserDomainMappings(fixedUser, fixedDomain); @@ -291,7 +291,7 @@ public class JDBCRecipientRewriteTable extends AbstractRecipientRewriteTable { } @Override - protected void removeMappingInternal(String user, Domain domain, Mapping mapping) throws RecipientRewriteTableException { + public void removeMapping(String user, Domain domain, Mapping mapping) throws RecipientRewriteTableException { String fixedUser = getFixedUser(user); Domain fixedDomain = getFixedDomain(domain); Mappings map = getUserDomainMappings(fixedUser, fixedDomain); http://git-wip-us.apache.org/repos/asf/james-project/blob/860f7b81/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 566b3d7..8f1faa1 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 @@ -65,7 +65,7 @@ public class JPARecipientRewriteTable extends AbstractRecipientRewriteTable { } @Override - protected void addMappingInternal(String user, Domain domain, Mapping mapping) throws RecipientRewriteTableException { + public void addMapping(String user, Domain domain, Mapping mapping) throws RecipientRewriteTableException { String fixedUser = getFixedUser(user); Domain fixedDomain = getFixedDomain(domain); Mappings map = getUserDomainMappings(fixedUser, fixedDomain); @@ -171,7 +171,7 @@ public class JPARecipientRewriteTable extends AbstractRecipientRewriteTable { } @Override - protected void removeMappingInternal(String user, Domain domain, Mapping mapping) throws RecipientRewriteTableException { + public void removeMapping(String user, Domain domain, Mapping mapping) throws RecipientRewriteTableException { String fixedUser = getFixedUser(user); Domain fixedDomain = getFixedDomain(domain); Mappings map = getUserDomainMappings(fixedUser, fixedDomain); http://git-wip-us.apache.org/repos/asf/james-project/blob/860f7b81/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 e624766..8913aae 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,14 +193,14 @@ public abstract class AbstractRecipientRewriteTable implements RecipientRewriteT checkMapping(user, domain, MappingImpl.regex(regex)); LOGGER.info("Add regex mapping => {} for user: {} domain: {}", regex, user, domain.name()); - addMappingInternal(user, domain, MappingImpl.regex(regex)); + addMapping(user, domain, MappingImpl.regex(regex)); } @Override public void removeRegexMapping(String user, Domain domain, String regex) throws RecipientRewriteTableException { LOGGER.info("Remove regex mapping => {} for user: {} domain: {}", regex, user, domain.name()); - removeMappingInternal(user, domain, MappingImpl.regex(regex)); + removeMapping(user, domain, MappingImpl.regex(regex)); } @Override @@ -209,7 +209,7 @@ public abstract class AbstractRecipientRewriteTable implements RecipientRewriteT checkAddressIsValid(addressWithDomain); checkMapping(user, domain, MappingImpl.address(addressWithDomain)); LOGGER.info("Add address mapping => {} for user: {} domain: {}", addressWithDomain, user, domain.name()); - addMappingInternal(user, domain, MappingImpl.address(addressWithDomain)); + addMapping(user, domain, MappingImpl.address(addressWithDomain)); } private String addDefaultDomainIfNone(String address) throws RecipientRewriteTableException { @@ -235,63 +235,21 @@ public abstract class AbstractRecipientRewriteTable implements RecipientRewriteT public void removeAddressMapping(String user, Domain domain, String address) throws RecipientRewriteTableException { String addressWithDomain = addDefaultDomainIfNone(address); LOGGER.info("Remove address mapping => {} for user: {} domain: {}", addressWithDomain, user, domain.name()); - removeMappingInternal(user, domain, MappingImpl.address(addressWithDomain)); + removeMapping(user, domain, MappingImpl.address(addressWithDomain)); } @Override public void addErrorMapping(String user, Domain domain, String error) throws RecipientRewriteTableException { checkMapping(user, domain, MappingImpl.error(error)); LOGGER.info("Add error mapping => {} for user: {} domain: {}", error, user, domain.name()); - addMappingInternal(user, domain, MappingImpl.error(error)); + addMapping(user, domain, MappingImpl.error(error)); } @Override public void removeErrorMapping(String user, Domain domain, String error) throws RecipientRewriteTableException { LOGGER.info("Remove error mapping => {} for user: {} domain: {}", error, user, domain.name()); - removeMappingInternal(user, domain, MappingImpl.error(error)); - } - - @Override - public void addMapping(String user, Domain domain, String mapping) throws RecipientRewriteTableException { - String map = mapping.toLowerCase(Locale.US); - Type mappingType = Mapping.detectType(map); - String mappingSuffix = mappingType.withoutPrefix(map); - - if (mappingType.equals(Type.Error)) { - addErrorMapping(user, domain, mappingSuffix); - } else if (mappingType.equals(Type.Regex)) { - addRegexMapping(user, domain, mappingSuffix); - } else if (mappingType.equals(Type.Domain)) { - addAliasDomainMapping(domain, Domain.of(mappingSuffix)); - } else { - addAddressMapping(user, domain, mappingSuffix); - } - } - - @Override - public void removeMapping(String user, Domain domain, String mapping) throws RecipientRewriteTableException { - String map = mapping.toLowerCase(Locale.US); - Type mappingType = Mapping.detectType(map); - String mappingSuffix = mappingType.withoutPrefix(map); - - switch (mappingType) { - case Error: - removeErrorMapping(user, domain, mappingSuffix); - break; - case Regex: - removeRegexMapping(user, domain, mappingSuffix); - break; - case Domain: - removeAliasDomainMapping(domain, Domain.of(mappingSuffix)); - break; - case Address: - removeAddressMapping(user, domain, map); - break; - case Forward: - removeForwardMapping(user, domain, map); - break; - } + removeMapping(user, domain, MappingImpl.error(error)); } @Override @@ -305,13 +263,13 @@ public abstract class AbstractRecipientRewriteTable implements RecipientRewriteT @Override public void addAliasDomainMapping(Domain aliasDomain, Domain realDomain) throws RecipientRewriteTableException { LOGGER.info("Add domain mapping: {} => {}", aliasDomain, realDomain); - addMappingInternal(null, aliasDomain, MappingImpl.domain(realDomain)); + addMapping(null, aliasDomain, MappingImpl.domain(realDomain)); } @Override public void removeAliasDomainMapping(Domain aliasDomain, Domain realDomain) throws RecipientRewriteTableException { LOGGER.info("Remove domain mapping: {} => {}", aliasDomain, realDomain); - removeMappingInternal(null, aliasDomain, MappingImpl.domain(realDomain)); + removeMapping(null, aliasDomain, MappingImpl.domain(realDomain)); } @Override @@ -320,43 +278,17 @@ public abstract class AbstractRecipientRewriteTable implements RecipientRewriteT checkAddressIsValid(addressWithDomain); checkMapping(user, domain, MappingImpl.forward(addressWithDomain)); LOGGER.info("Add forward mapping => {} for user: {} domain: {}", addressWithDomain, user, domain.name()); - addMappingInternal(user, domain, MappingImpl.forward(addressWithDomain)); + addMapping(user, domain, MappingImpl.forward(addressWithDomain)); } @Override public void removeForwardMapping(String user, Domain domain, String address) throws RecipientRewriteTableException { String addressWithDomain = addDefaultDomainIfNone(address); LOGGER.info("Remove forward mapping => {} for user: {} domain: {}", addressWithDomain, user, domain.name()); - removeMappingInternal(user, domain, MappingImpl.forward(addressWithDomain)); + removeMapping(user, domain, MappingImpl.forward(addressWithDomain)); } /** - * Add new mapping - * - * @param user - * the user - * @param domain - * the domain - * @param mapping - * the mapping - * @throws RecipientRewriteTableException - */ - protected abstract void addMappingInternal(String user, Domain domain, Mapping mapping) throws RecipientRewriteTableException; - - /** - * Remove mapping - * - * @param user - * the user - * @param domain - * the domain - * @param mapping - * the mapping - * @throws RecipientRewriteTableException - */ - protected abstract void removeMappingInternal(String user, Domain domain, Mapping mapping) throws RecipientRewriteTableException; - - /** * Return a Map which holds all Mappings * * @return Map http://git-wip-us.apache.org/repos/asf/james-project/blob/860f7b81/server/data/data-library/src/main/java/org/apache/james/rrt/lib/RecipientRewriteTableManagement.java ---------------------------------------------------------------------- diff --git a/server/data/data-library/src/main/java/org/apache/james/rrt/lib/RecipientRewriteTableManagement.java b/server/data/data-library/src/main/java/org/apache/james/rrt/lib/RecipientRewriteTableManagement.java index 57c7346..d58c7b8 100644 --- a/server/data/data-library/src/main/java/org/apache/james/rrt/lib/RecipientRewriteTableManagement.java +++ b/server/data/data-library/src/main/java/org/apache/james/rrt/lib/RecipientRewriteTableManagement.java @@ -131,7 +131,7 @@ public class RecipientRewriteTableManagement extends StandardMBean implements Re @Override public void addMapping(String user, String domain, String mapping) throws Exception { try { - rrt.addMapping(user, Domain.of(domain), mapping); + rrt.addMapping(user, Domain.of(domain), MappingImpl.of(mapping)); } catch (RecipientRewriteTableException e) { throw new Exception(e.getMessage()); } @@ -140,7 +140,7 @@ public class RecipientRewriteTableManagement extends StandardMBean implements Re @Override public void removeMapping(String user, String domain, String mapping) throws Exception { try { - rrt.removeMapping(user, Domain.of(domain), mapping); + rrt.removeMapping(user, Domain.of(domain), MappingImpl.of(mapping)); } catch (RecipientRewriteTableException e) { throw new Exception(e.getMessage()); } http://git-wip-us.apache.org/repos/asf/james-project/blob/860f7b81/server/data/data-library/src/main/java/org/apache/james/user/lib/AbstractJamesUsersRepository.java ---------------------------------------------------------------------- diff --git a/server/data/data-library/src/main/java/org/apache/james/user/lib/AbstractJamesUsersRepository.java b/server/data/data-library/src/main/java/org/apache/james/user/lib/AbstractJamesUsersRepository.java index 8d3ce08..6328ed3 100644 --- a/server/data/data-library/src/main/java/org/apache/james/user/lib/AbstractJamesUsersRepository.java +++ b/server/data/data-library/src/main/java/org/apache/james/user/lib/AbstractJamesUsersRepository.java @@ -28,6 +28,7 @@ import org.apache.commons.configuration.HierarchicalConfiguration; import org.apache.james.core.Domain; import org.apache.james.rrt.api.RecipientRewriteTable; import org.apache.james.rrt.api.RecipientRewriteTableException; +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.MappingsImpl.Builder; @@ -243,13 +244,13 @@ public abstract class AbstractJamesUsersRepository extends AbstractUsersReposito } @Override - public void addMapping(String user, Domain domain, String mapping) throws RecipientRewriteTableException { + public void addMapping(String user, Domain domain, Mapping mapping) throws RecipientRewriteTableException { throw new RecipientRewriteTableException("Read-Only RecipientRewriteTable"); } @Override - public void removeMapping(String user, Domain domain, String mapping) throws RecipientRewriteTableException { + public void removeMapping(String user, Domain domain, Mapping mapping) throws RecipientRewriteTableException { throw new RecipientRewriteTableException("Read-Only RecipientRewriteTable"); } http://git-wip-us.apache.org/repos/asf/james-project/blob/860f7b81/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 89dd813..b871370 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 @@ -93,12 +93,12 @@ public class MemoryRecipientRewriteTable extends AbstractRecipientRewriteTable { } @Override - protected void addMappingInternal(String user, Domain domain, Mapping mapping) { + public void addMapping(String user, Domain domain, Mapping mapping) { mappingEntries.add(new InMemoryMappingEntry(getFixedUser(user), getFixedDomain(domain), mapping)); } @Override - protected void removeMappingInternal(String user, Domain domain, Mapping mapping) { + public void removeMapping(String user, Domain domain, Mapping mapping) { mappingEntries.remove(new InMemoryMappingEntry(getFixedUser(user), getFixedDomain(domain), mapping)); } --------------------------------------------------------------------- To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org