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 2019/01/11 03:01:18 UTC
[08/10] james-project git commit: JAMES-2636 getUserDomainMappings
should return empty object consistently when there is no mappings
JAMES-2636 getUserDomainMappings should return empty object consistently when there is no 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/106a284b
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/106a284b
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/106a284b
Branch: refs/heads/master
Commit: 106a284be1c4e4ea1d003f93ed709ac8e299dd43
Parents: 760a411
Author: Rene Cordier <rc...@linagora.com>
Authored: Fri Jan 4 15:52:20 2019 +0700
Committer: Benoit Tellier <bt...@linagora.com>
Committed: Fri Jan 11 09:48:33 2019 +0700
----------------------------------------------------------------------
.../apache/james/rrt/api/RecipientRewriteTable.java | 9 +++++----
.../rrt/cassandra/CassandraRecipientRewriteTable.java | 2 +-
.../james/rrt/file/XMLRecipientRewriteTable.java | 14 ++++----------
.../james/rrt/file/XMLRecipientRewriteTableTest.java | 14 +++++++-------
.../james/rrt/jdbc/JDBCRecipientRewriteTable.java | 6 +++---
.../james/rrt/lib/AbstractRecipientRewriteTable.java | 2 +-
.../james/user/lib/AbstractJamesUsersRepository.java | 2 +-
.../rrt/lib/AbstractRecipientRewriteTableTest.java | 12 ++++++++++--
.../james/rrt/memory/MemoryRecipientRewriteTable.java | 2 +-
.../james/webadmin/routes/DomainMappingsRoutes.java | 2 +-
.../apache/james/webadmin/routes/ForwardRoutes.java | 4 +---
.../apache/james/webadmin/routes/GroupsRoutes.java | 4 +---
12 files changed, 36 insertions(+), 37 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/james-project/blob/106a284b/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 7efc0bd..96f62d3 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
@@ -49,7 +49,8 @@ public interface RecipientRewriteTable {
EnumSet<Mapping.Type> listSourcesSupportedType = EnumSet.of(
Mapping.Type.Group,
Mapping.Type.Forward,
- Mapping.Type.Address);
+ Mapping.Type.Address,
+ Mapping.Type.Alias);
void addMapping(MappingSource source, Mapping mapping) throws RecipientRewriteTableException;
@@ -80,7 +81,7 @@ public interface RecipientRewriteTable {
void removeGroupMapping(MappingSource source, String address) throws RecipientRewriteTableException;
/**
- * Return the Mappings for the given source. Return null if no
+ * Return the Mappings for the given source. Return empty object if no
* matched mapping was found
*
* @throws ErrorMappingException
@@ -89,8 +90,8 @@ public interface RecipientRewriteTable {
Mappings getResolvedMappings(String user, Domain domain) throws ErrorMappingException, RecipientRewriteTableException;
/**
- * Return the explicit mapping stored for the given user and domain. Return
- * null if no mapping was found
+ * Return the explicit mapping stored for the given user and domain. Return empty object
+ * if no matched mapping was found
*
* @return the collection which holds the mappings.
* @throws RecipientRewriteTableException
http://git-wip-us.apache.org/repos/asf/james-project/blob/106a284b/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 ffefd98..332ec43 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
@@ -115,7 +115,7 @@ public class CassandraRecipientRewriteTable extends AbstractRecipientRewriteTabl
@Override
public Mappings getStoredMappings(MappingSource source) {
return retrieveMappings(source)
- .orElse(null);
+ .orElse(MappingsImpl.empty());
}
private Optional<Mappings> retrieveMappings(MappingSource source) {
http://git-wip-us.apache.org/repos/asf/james-project/blob/106a284b/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 c192dbe..66b4bb8 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
@@ -69,16 +69,10 @@ public class XMLRecipientRewriteTable extends AbstractRecipientRewriteTable {
@Override
public Mappings getStoredMappings(MappingSource source) {
- if (mappings == null) {
- return null;
- } else {
- String maps = mappings.get(source);
- if (maps != null) {
- return MappingsImpl.fromRawString(maps);
- } else {
- return null;
- }
- }
+ return Optional.ofNullable(mappings)
+ .map(mappings -> mappings.get(source))
+ .map(MappingsImpl::fromRawString)
+ .orElse(MappingsImpl.empty());
}
@Override
http://git-wip-us.apache.org/repos/asf/james-project/blob/106a284b/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 aaa0820..16591e2 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
@@ -80,8 +80,7 @@ public class XMLRecipientRewriteTableTest extends AbstractRecipientRewriteTableT
}
protected void addMappingToConfiguration(MappingSource source, String mapping, Type type) throws RecipientRewriteTableException {
- Mappings mappings = Optional.ofNullable(virtualUserTable.getStoredMappings(source))
- .orElse(MappingsImpl.empty());
+ Mappings mappings = virtualUserTable.getStoredMappings(source);
Mappings updatedMappings = MappingsImpl.from(mappings)
.add(Mapping.of(type, mapping))
@@ -91,8 +90,11 @@ public class XMLRecipientRewriteTableTest extends AbstractRecipientRewriteTableT
}
protected void removeMappingFromConfiguration(MappingSource source, String mapping, Type type) throws RecipientRewriteTableException {
- Mappings oldMappings = Optional.ofNullable(virtualUserTable.getStoredMappings(source))
- .orElseThrow(() -> new RecipientRewriteTableException("Cannot remove from null mappings"));
+ Mappings oldMappings = virtualUserTable.getStoredMappings(source);
+
+ if (oldMappings.isEmpty()) {
+ throw new RecipientRewriteTableException("Cannot remove from null mappings");
+ }
Mappings updatedMappings = oldMappings.remove(Mapping.of(type, mapping));
@@ -100,9 +102,7 @@ public class XMLRecipientRewriteTableTest extends AbstractRecipientRewriteTableT
}
private void updateConfiguration(MappingSource source, Mappings oldMappings, Mappings updatedMappings) throws RecipientRewriteTableException {
- if (oldMappings != null) {
- removeMappingsFromConfig(source, oldMappings);
- }
+ removeMappingsFromConfig(source, oldMappings);
if (!updatedMappings.isEmpty()) {
defaultConfiguration.addProperty("mapping", source.getFixedUser() + "@" + source.getFixedDomain() + "=" + updatedMappings.serialize());
http://git-wip-us.apache.org/repos/asf/james-project/blob/106a284b/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 d6d5920..fdf8625 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
@@ -190,7 +190,7 @@ public class JDBCRecipientRewriteTable extends AbstractRecipientRewriteTable {
@Override
public void addMapping(MappingSource source, Mapping mapping) throws RecipientRewriteTableException {
Mappings map = getStoredMappings(source);
- if (map != null && map.size() != 0) {
+ if (!map.isEmpty()) {
Mappings updatedMappings = MappingsImpl.from(map).add(mapping).build();
doUpdateMapping(source, updatedMappings.serialize());
}
@@ -252,7 +252,7 @@ public class JDBCRecipientRewriteTable extends AbstractRecipientRewriteTable {
theJDBCUtil.closeJDBCStatement(mappingStmt);
theJDBCUtil.closeJDBCConnection(conn);
}
- return null;
+ return MappingsImpl.empty();
}
@Override
@@ -292,7 +292,7 @@ public class JDBCRecipientRewriteTable extends AbstractRecipientRewriteTable {
@Override
public void removeMapping(MappingSource source, Mapping mapping) throws RecipientRewriteTableException {
Mappings map = getStoredMappings(source);
- if (map != null && map.size() > 1) {
+ if (map.size() > 1) {
Mappings updatedMappings = map.remove(mapping);
doUpdateMapping(source, updatedMappings.serialize());
} else {
http://git-wip-us.apache.org/repos/asf/james-project/blob/106a284b/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 053f053..d6acf8f 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
@@ -314,7 +314,7 @@ public abstract class AbstractRecipientRewriteTable implements RecipientRewriteT
private void checkDuplicateMapping(MappingSource source, Mapping mapping) throws RecipientRewriteTableException {
Mappings mappings = getStoredMappings(source);
- if (mappings != null && mappings.contains(mapping)) {
+ if (mappings.contains(mapping)) {
throw new MappingAlreadyExistsException("Mapping " + mapping + " for " + source.asString() + " already exist!");
}
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/106a284b/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 3913533..44f731a 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
@@ -206,7 +206,7 @@ public abstract class AbstractJamesUsersRepository extends AbstractUsersReposito
}
@Override
- public Mappings getStoredMappings(MappingSource source) throws RecipientRewriteTableException {
+ public Mappings getStoredMappings(MappingSource source) {
return MappingsImpl.empty();
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/106a284b/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 e6fe5b7..b9bfe0a 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
@@ -347,7 +347,7 @@ public abstract class AbstractRecipientRewriteTableTest {
virtualUserTable.addMapping(source, Mapping.alias(ADDRESS));
virtualUserTable.addMapping(source, Mapping.alias(address2));
- assertThat(virtualUserTable.getUserDomainMappings(source)).hasSize(2);
+ assertThat(virtualUserTable.getStoredMappings(source)).hasSize(2);
}
@Test
@@ -362,11 +362,19 @@ public abstract class AbstractRecipientRewriteTableTest {
virtualUserTable.removeMapping(source, Mapping.alias(ADDRESS));
virtualUserTable.removeMapping(source, Mapping.alias(address2));
- assertThat(virtualUserTable.getUserDomainMappings(source))
+ assertThat(virtualUserTable.getStoredMappings(source))
.isEqualTo(MappingsImpl.empty());
}
@Test
+ public void getUserDomainMappingShouldBeEmptyByDefault() throws Exception {
+ Domain domain = Domain.LOCALHOST;
+ MappingSource source = MappingSource.fromUser(USER, domain);
+
+ assertThat(virtualUserTable.getStoredMappings(source)).isEmpty();
+ }
+
+ @Test
public void listSourcesShouldReturnWhenHasMapping() throws Exception {
MappingSource source = MappingSource.fromUser(USER, Domain.LOCALHOST);
Mapping mapping = Mapping.group(ADDRESS);
http://git-wip-us.apache.org/repos/asf/james-project/blob/106a284b/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 8fc2e11..7b782eb 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
@@ -96,7 +96,7 @@ public class MemoryRecipientRewriteTable extends AbstractRecipientRewriteTable {
@Override
public Mappings getStoredMappings(MappingSource mappingSource) {
return retrieveMappings(mappingSource)
- .orElse(null);
+ .orElse(MappingsImpl.empty());
}
@Override
http://git-wip-us.apache.org/repos/asf/james-project/blob/106a284b/server/protocols/webadmin/webadmin-data/src/main/java/org/apache/james/webadmin/routes/DomainMappingsRoutes.java
----------------------------------------------------------------------
diff --git a/server/protocols/webadmin/webadmin-data/src/main/java/org/apache/james/webadmin/routes/DomainMappingsRoutes.java b/server/protocols/webadmin/webadmin-data/src/main/java/org/apache/james/webadmin/routes/DomainMappingsRoutes.java
index cfd3ac8..800d25f 100644
--- a/server/protocols/webadmin/webadmin-data/src/main/java/org/apache/james/webadmin/routes/DomainMappingsRoutes.java
+++ b/server/protocols/webadmin/webadmin-data/src/main/java/org/apache/james/webadmin/routes/DomainMappingsRoutes.java
@@ -160,7 +160,7 @@ public class DomainMappingsRoutes implements Routes {
public List<String> getMapping(Request request, Response response) throws RecipientRewriteTableException {
MappingSource mappingSource = mappingSourceFrom(request);
- return Optional.ofNullable(recipientRewriteTable.getStoredMappings(mappingSource).select(Mapping.Type.Domain))
+ return Optional.of(recipientRewriteTable.getStoredMappings(mappingSource).select(Mapping.Type.Domain))
.filter(mappings -> !mappings.isEmpty())
.filter(mappings -> mappings.contains(Mapping.Type.Domain))
.map(this::toDomainList)
http://git-wip-us.apache.org/repos/asf/james-project/blob/106a284b/server/protocols/webadmin/webadmin-data/src/main/java/org/apache/james/webadmin/routes/ForwardRoutes.java
----------------------------------------------------------------------
diff --git a/server/protocols/webadmin/webadmin-data/src/main/java/org/apache/james/webadmin/routes/ForwardRoutes.java b/server/protocols/webadmin/webadmin-data/src/main/java/org/apache/james/webadmin/routes/ForwardRoutes.java
index 3be3c42..f75a34b 100644
--- a/server/protocols/webadmin/webadmin-data/src/main/java/org/apache/james/webadmin/routes/ForwardRoutes.java
+++ b/server/protocols/webadmin/webadmin-data/src/main/java/org/apache/james/webadmin/routes/ForwardRoutes.java
@@ -47,7 +47,6 @@ import org.apache.james.rrt.api.RecipientRewriteTableException;
import org.apache.james.rrt.lib.Mapping;
import org.apache.james.rrt.lib.MappingSource;
import org.apache.james.rrt.lib.Mappings;
-import org.apache.james.rrt.lib.MappingsImpl;
import org.apache.james.user.api.UsersRepository;
import org.apache.james.user.api.UsersRepositoryException;
import org.apache.james.util.OptionalUtils;
@@ -234,8 +233,7 @@ public class ForwardRoutes implements Routes {
})
public ImmutableSet<ForwardDestinationResponse> listForwardDestinations(Request request, Response response) throws RecipientRewriteTableException {
MailAddress baseAddress = parseMailAddress(request.params(FORWARD_BASE_ADDRESS));
- Mappings mappings = Optional.ofNullable(recipientRewriteTable.getStoredMappings(MappingSource.fromMailAddress(baseAddress)))
- .orElse(MappingsImpl.empty())
+ Mappings mappings = recipientRewriteTable.getStoredMappings(MappingSource.fromMailAddress(baseAddress))
.select(Mapping.Type.Forward);
ensureNonEmptyMappings(mappings);
http://git-wip-us.apache.org/repos/asf/james-project/blob/106a284b/server/protocols/webadmin/webadmin-data/src/main/java/org/apache/james/webadmin/routes/GroupsRoutes.java
----------------------------------------------------------------------
diff --git a/server/protocols/webadmin/webadmin-data/src/main/java/org/apache/james/webadmin/routes/GroupsRoutes.java b/server/protocols/webadmin/webadmin-data/src/main/java/org/apache/james/webadmin/routes/GroupsRoutes.java
index 110256b..492b7be 100644
--- a/server/protocols/webadmin/webadmin-data/src/main/java/org/apache/james/webadmin/routes/GroupsRoutes.java
+++ b/server/protocols/webadmin/webadmin-data/src/main/java/org/apache/james/webadmin/routes/GroupsRoutes.java
@@ -49,7 +49,6 @@ import org.apache.james.rrt.api.RecipientRewriteTableException;
import org.apache.james.rrt.lib.Mapping;
import org.apache.james.rrt.lib.MappingSource;
import org.apache.james.rrt.lib.Mappings;
-import org.apache.james.rrt.lib.MappingsImpl;
import org.apache.james.user.api.UsersRepository;
import org.apache.james.user.api.UsersRepositoryException;
import org.apache.james.util.OptionalUtils;
@@ -242,8 +241,7 @@ public class GroupsRoutes implements Routes {
})
public ImmutableSortedSet<String> listGroupMembers(Request request, Response response) throws RecipientRewriteTableException {
MailAddress groupAddress = parseMailAddress(request.params(GROUP_ADDRESS));
- Mappings mappings = Optional.ofNullable(recipientRewriteTable.getStoredMappings(MappingSource.fromMailAddress(groupAddress)))
- .orElse(MappingsImpl.empty())
+ Mappings mappings = recipientRewriteTable.getStoredMappings(MappingSource.fromMailAddress(groupAddress))
.select(Mapping.Type.Group);
ensureNonEmptyMappings(mappings);
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org