Skip to content

Commit

Permalink
JAMES-1595 move RecipientRewriteTableUtil.CollectionToMapping to Mapp…
Browse files Browse the repository at this point in the history
…ings.serialize

git-svn-id: https://svn.apache.org/repos/asf/james/project/trunk@1711986 13f79535-47bb-0310-9956-ffa450edef68
  • Loading branch information
asf-sync-process committed Nov 2, 2015
1 parent 80fe558 commit 6cc7614
Show file tree
Hide file tree
Showing 13 changed files with 41 additions and 68 deletions.
Expand Up @@ -314,7 +314,7 @@ private String formatMessageValue(long value) {
private void print(Map<String, Mappings> map, PrintStream out) {
if (map != null) {
for (Entry<String, Mappings> entry : map.entrySet()) {
out.println(entry.getKey() + '=' + entry.getValue().asStrings().toString());
out.println(entry.getKey() + '=' + entry.getValue().serialize());
}
out.println();
}
Expand Down
Expand Up @@ -33,4 +33,6 @@ public interface Mappings extends Iterable<Mapping> {

Iterable<String> asStrings();

String serialize();

}
Expand Up @@ -29,7 +29,6 @@
import org.apache.james.rrt.lib.Mappings;
import org.apache.james.rrt.lib.MappingsImpl;
import org.apache.james.rrt.lib.MappingsImpl.Builder;
import org.apache.james.rrt.lib.RecipientRewriteTableUtil;
import org.junit.Before;
import org.slf4j.LoggerFactory;

Expand Down Expand Up @@ -81,8 +80,7 @@ protected boolean addMapping(String user, String domain, String mapping, int typ
Mappings updatedMappings = builder.build();

if (!updatedMappings.isEmpty()) {
defaultConfiguration.addProperty("mapping", user + "@" + domain + "=" + RecipientRewriteTableUtil.
CollectionToMapping(updatedMappings.asStrings()));
defaultConfiguration.addProperty("mapping", user + "@" + domain + "=" + updatedMappings.serialize());
}

try {
Expand Down Expand Up @@ -118,8 +116,7 @@ protected boolean removeMapping(String user, String domain, String mapping, int
}

if (mappings.size() > 0) {
defaultConfiguration.addProperty("mapping", user + "@" + domain + "=" + RecipientRewriteTableUtil.
CollectionToMapping(mappings.asStrings()));
defaultConfiguration.addProperty("mapping", user + "@" + domain + "=" + mappings.serialize());
}

try {
Expand All @@ -133,7 +130,7 @@ protected boolean removeMapping(String user, String domain, String mapping, int
private void removeMappingsFromConfig(String user, String domain, Mappings mappings) {
List<String> stored = new ArrayList<String>();
for (String c : defaultConfiguration.getStringArray("mapping")) {
String mapping = user + "@" + domain + "=" + RecipientRewriteTableUtil.CollectionToMapping(mappings.asStrings());
String mapping = user + "@" + domain + "=" + mappings.serialize();
if (!c.equalsIgnoreCase(mapping)) {
stored.add(c);
}
Expand Down
Expand Up @@ -37,7 +37,6 @@
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.rrt.lib.RecipientRewriteTableUtil;
import org.apache.james.system.hbase.TablePool;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
Expand Down Expand Up @@ -65,7 +64,7 @@ protected void addMappingInternal(String user, String domain, String mapping) th
Mappings map = getUserDomainMappings(fixedUser, fixedDomain);
if (map != null && map.size() != 0) {
Mappings updatedMappings = MappingsImpl.from(map).add(mapping).build();
doUpdateMapping(fixedUser, fixedDomain, RecipientRewriteTableUtil.CollectionToMapping(updatedMappings.asStrings()));
doUpdateMapping(fixedUser, fixedDomain, updatedMappings.serialize());
} else {
doAddMapping(fixedUser, fixedDomain, mapping);
}
Expand Down Expand Up @@ -215,7 +214,7 @@ protected void removeMappingInternal(String user, String domain, String mapping)
Mappings map = getUserDomainMappings(fixedUser, fixedDomain);
if (map != null && map.size() > 1) {
Mappings updatedMappings = map.remove(mapping);
doUpdateMapping(fixedUser, fixedDomain, RecipientRewriteTableUtil.CollectionToMapping(updatedMappings.asStrings()));
doUpdateMapping(fixedUser, fixedDomain, updatedMappings.serialize());
} else {
doRemoveMapping(fixedUser, fixedDomain, mapping);
}
Expand Down
Expand Up @@ -40,7 +40,6 @@
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.rrt.lib.RecipientRewriteTableUtil;
import org.apache.james.util.sql.JDBCUtil;
import org.apache.james.util.sql.SqlResources;

Expand Down Expand Up @@ -210,7 +209,7 @@ protected void addMappingInternal(String user, String domain, String regex) thro
Mappings map = getUserDomainMappings(fixedUser, fixedDomain);
if (map != null && map.size() != 0) {
Mappings updatedMappings = MappingsImpl.from(map).add(regex).build();
doUpdateMapping(fixedUser, fixedDomain, RecipientRewriteTableUtil.CollectionToMapping(updatedMappings.asStrings()));
doUpdateMapping(fixedUser, fixedDomain, updatedMappings.serialize());
}
doAddMapping(fixedUser, fixedDomain, regex);
}
Expand Down Expand Up @@ -327,7 +326,7 @@ protected void removeMappingInternal(String user, String domain, String mapping)
Mappings map = getUserDomainMappings(fixedUser, fixedDomain);
if (map != null && map.size() > 1) {
Mappings updatedMappings = map.remove(mapping);
doUpdateMapping(fixedUser, fixedDomain, RecipientRewriteTableUtil.CollectionToMapping(updatedMappings.asStrings()));
doUpdateMapping(fixedUser, fixedDomain, updatedMappings.serialize());
} else {
doRemoveMapping(fixedUser, fixedDomain, mapping);
}
Expand Down
Expand Up @@ -33,7 +33,6 @@
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.rrt.lib.RecipientRewriteTableUtil;

/**
* Class responsible to implement the Virtual User Table in database with JPA
Expand Down Expand Up @@ -66,7 +65,7 @@ protected void addMappingInternal(String user, String domain, String mapping) th
Mappings map = getUserDomainMappings(fixedUser, fixedDomain);
if (map != null && map.size() != 0) {
Mappings updatedMappings = MappingsImpl.from(map).add(mapping).build();
doUpdateMapping(fixedUser, fixedDomain, RecipientRewriteTableUtil.CollectionToMapping(updatedMappings.asStrings()));
doUpdateMapping(fixedUser, fixedDomain, updatedMappings.serialize());
} else {
doAddMapping(fixedUser, fixedDomain, mapping);
}
Expand Down Expand Up @@ -166,7 +165,7 @@ protected void removeMappingInternal(String user, String domain, String mapping)
Mappings map = getUserDomainMappings(fixedUser, fixedDomain);
if (map != null && map.size() > 1) {
Mappings updatedMappings = map.remove(mapping);
doUpdateMapping(fixedUser, fixedDomain, RecipientRewriteTableUtil.CollectionToMapping(updatedMappings.asStrings()));
doUpdateMapping(fixedUser, fixedDomain, updatedMappings.serialize());
} else {
doRemoveMapping(fixedUser, fixedDomain, mapping);
}
Expand Down
Expand Up @@ -467,7 +467,7 @@ private String mapAddress(String user, String domain) throws RecipientRewriteTab
col.add(mapping);
}
}
return RecipientRewriteTableUtil.CollectionToMapping(col);
return MappingsImpl.fromCollection(col).serialize();
} else {
return mappings;
}
Expand Down
Expand Up @@ -26,6 +26,7 @@
import java.util.StringTokenizer;

import com.google.common.base.Function;
import com.google.common.base.Joiner;
import com.google.common.collect.FluentIterable;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.Lists;
Expand Down Expand Up @@ -138,5 +139,10 @@ public boolean isEmpty() {
public Iterator<Mapping> iterator() {
return mappings.iterator();
}

@Override
public String serialize() {
return Joiner.on(';').join(asStrings());
}

}
Expand Up @@ -211,15 +211,4 @@ public static Map<String, String> getXMLMappings(String mapping) {
return mappings;
}

/**
* Convert a Collection which holds mappings to a raw mapping String
*
* @param map
* the Collection
* @return mapping the mapping String
*/
public static String CollectionToMapping(Iterable<String> map) {
return Joiner.on(';').join(map);
}

}
Expand Up @@ -320,16 +320,16 @@ public void sortMappingsShouldReturnSameStringWhenSingleDomainAlias() {
public void sortMappingsShouldReturnSameStringWhenTwoDomainAliases() {
String firstAliasMapping = RecipientRewriteTable.ALIASDOMAIN_PREFIX + "first";
String secondAliasMapping = RecipientRewriteTable.ALIASDOMAIN_PREFIX + "second";
String mappings = RecipientRewriteTableUtil.CollectionToMapping(Arrays.asList(firstAliasMapping, secondAliasMapping));
String mappings = MappingsImpl.fromCollection(Arrays.asList(firstAliasMapping, secondAliasMapping)).serialize();
assertEquals(mappings, AbstractRecipientRewriteTable.sortMappings(mappings));
}

@Test
public void sortMappingsShouldPutDomainAliasFirstWhenVariousMappings() {
String regexMapping = RecipientRewriteTable.REGEX_PREFIX + "first";
String domainMapping = RecipientRewriteTable.ALIASDOMAIN_PREFIX + "second";
String inputMappings = RecipientRewriteTableUtil.CollectionToMapping(Arrays.asList(regexMapping, domainMapping));
String expectedMappings = RecipientRewriteTableUtil.CollectionToMapping(Arrays.asList(domainMapping, regexMapping));
String inputMappings = MappingsImpl.fromCollection(Arrays.asList(regexMapping, domainMapping)).serialize();
String expectedMappings = MappingsImpl.fromCollection(Arrays.asList(domainMapping, regexMapping)).serialize();
assertEquals(expectedMappings, AbstractRecipientRewriteTable.sortMappings(inputMappings));
}

Expand Down
Expand Up @@ -119,5 +119,22 @@ public void fromRawStringShouldNotUseColonDelimiterWhenValueStartsWithRegex() {
assertThat(actual).containsExactly(MappingImpl.of("regex:test"));
}

@Test
public void serializeShouldReturnEmptyStringWhenEmpty() {
assertThat(MappingsImpl.empty()).isEmpty();
}

@Test
public void serializeShouldReturnSimpleValueWhenSingleElement() {
String actual = MappingsImpl.builder().add("value").build().serialize();
assertThat(actual).isEqualTo("value");
}

@Test
public void collectionToMappingShouldReturnSeparatedValuesWhenSeveralElementsCollection() {
String actual = MappingsImpl.builder().add("value1").add("value2").build().serialize();
assertThat(actual).isEqualTo("value1;value2");
}


}

This file was deleted.

Expand Up @@ -25,7 +25,6 @@
import org.apache.james.rrt.api.RecipientRewriteTableException;
import org.apache.james.rrt.lib.Mappings;
import org.apache.james.rrt.lib.MappingsImpl;
import org.apache.james.rrt.lib.RecipientRewriteTableUtil;

public class MockRecipientRewriteTableManagementImpl implements RecipientRewriteTable {

Expand Down Expand Up @@ -119,7 +118,7 @@ private void addRawMapping(String user, String domain, String mapping) throws Re
throw new RecipientRewriteTableException("Mapping " + mapping + " already exist!");
} else {
Mappings updateMappings = MappingsImpl.from(map).add(mapping).build();
store.put(key, RecipientRewriteTableUtil.CollectionToMapping(updateMappings.asStrings()));
store.put(key, updateMappings.serialize());
}
} else {
store.put(key, mapping);
Expand All @@ -133,7 +132,7 @@ private void removeRawMapping(String user, String domain, String mapping) throws
if (mappings != null) {
map = MappingsImpl.fromRawString(mappings);
if (map.contains(mapping)) {
store.put(key, RecipientRewriteTableUtil.CollectionToMapping(map.remove(mapping).asStrings()));
store.put(key, map.remove(mapping).serialize());
}
}
throw new RecipientRewriteTableException("Mapping does not exist");
Expand Down

0 comments on commit 6cc7614

Please sign in to comment.