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 ma...@apache.org on 2015/11/02 14:49:16 UTC
svn commit: r1711996 - in /james/project/trunk/server/data:
data-api/src/main/java/org/apache/james/rrt/lib/
data-library/src/main/java/org/apache/james/rrt/lib/
data-library/src/test/resources/cucumber/
Author: matthieu
Date: Mon Nov 2 13:49:15 2015
New Revision: 1711996
URL: http://svn.apache.org/viewvc?rev=1711996&view=rev
Log:
JAMES-1595 Finally fix error message on mappings
Modified:
james/project/trunk/server/data/data-api/src/main/java/org/apache/james/rrt/lib/Mappings.java
james/project/trunk/server/data/data-library/src/main/java/org/apache/james/rrt/lib/AbstractRecipientRewriteTable.java
james/project/trunk/server/data/data-library/src/main/java/org/apache/james/rrt/lib/MappingsImpl.java
james/project/trunk/server/data/data-library/src/test/resources/cucumber/rewrite_tables.feature
Modified: james/project/trunk/server/data/data-api/src/main/java/org/apache/james/rrt/lib/Mappings.java
URL: http://svn.apache.org/viewvc/james/project/trunk/server/data/data-api/src/main/java/org/apache/james/rrt/lib/Mappings.java?rev=1711996&r1=1711995&r2=1711996&view=diff
==============================================================================
--- james/project/trunk/server/data/data-api/src/main/java/org/apache/james/rrt/lib/Mappings.java (original)
+++ james/project/trunk/server/data/data-api/src/main/java/org/apache/james/rrt/lib/Mappings.java Mon Nov 2 13:49:15 2015
@@ -41,5 +41,7 @@ public interface Mappings extends Iterab
Mappings select(Type type);
Mappings exclude(Type type);
+
+ Mapping getError();
}
\ No newline at end of file
Modified: james/project/trunk/server/data/data-library/src/main/java/org/apache/james/rrt/lib/AbstractRecipientRewriteTable.java
URL: http://svn.apache.org/viewvc/james/project/trunk/server/data/data-library/src/main/java/org/apache/james/rrt/lib/AbstractRecipientRewriteTable.java?rev=1711996&r1=1711995&r2=1711996&view=diff
==============================================================================
--- james/project/trunk/server/data/data-library/src/main/java/org/apache/james/rrt/lib/AbstractRecipientRewriteTable.java (original)
+++ james/project/trunk/server/data/data-library/src/main/java/org/apache/james/rrt/lib/AbstractRecipientRewriteTable.java Mon Nov 2 13:49:15 2015
@@ -35,6 +35,7 @@ import org.apache.james.lifecycle.api.Co
import org.apache.james.lifecycle.api.LogEnabled;
import org.apache.james.rrt.api.RecipientRewriteTable;
import org.apache.james.rrt.api.RecipientRewriteTableException;
+import org.apache.james.rrt.lib.Mapping.Type;
import org.apache.mailet.MailAddress;
import org.slf4j.Logger;
@@ -123,14 +124,12 @@ public abstract class AbstractRecipientR
// Only non-null mappings are translated
if (targetMappings != null) {
- String targetString = targetMappings.serialize();
- MappingsImpl.Builder mappings = MappingsImpl.builder();
- if (targetString.startsWith(RecipientRewriteTable.ERROR_PREFIX)) {
- throw new ErrorMappingException(targetString.substring(RecipientRewriteTable.ERROR_PREFIX.length()));
-
+ if (targetMappings.contains(Type.Error)) {
+ throw new ErrorMappingException(targetMappings.getError().getErrorMessage());
} else {
+ MappingsImpl.Builder mappings = MappingsImpl.builder();
- for (String target : MappingsImpl.fromRawString(targetString).asStrings()) {
+ for (String target : targetMappings.asStrings()) {
if (target.startsWith(RecipientRewriteTable.REGEX_PREFIX)) {
try {
target = RecipientRewriteTableUtil.regexMap(new MailAddress(user, domain), target);
@@ -185,10 +184,8 @@ public abstract class AbstractRecipientR
mappings.add(target);
}
}
+ return mappings.build();
}
-
- return mappings.build();
-
}
return null;
Modified: james/project/trunk/server/data/data-library/src/main/java/org/apache/james/rrt/lib/MappingsImpl.java
URL: http://svn.apache.org/viewvc/james/project/trunk/server/data/data-library/src/main/java/org/apache/james/rrt/lib/MappingsImpl.java?rev=1711996&r1=1711995&r2=1711996&view=diff
==============================================================================
--- james/project/trunk/server/data/data-library/src/main/java/org/apache/james/rrt/lib/MappingsImpl.java (original)
+++ james/project/trunk/server/data/data-library/src/main/java/org/apache/james/rrt/lib/MappingsImpl.java Mon Nov 2 13:49:15 2015
@@ -35,6 +35,7 @@ import com.google.common.base.Predicate;
import com.google.common.base.Predicates;
import com.google.common.collect.FluentIterable;
import com.google.common.collect.ImmutableList;
+import com.google.common.collect.Iterables;
import com.google.common.collect.Lists;
public class MappingsImpl implements Mappings {
@@ -191,6 +192,13 @@ public class MappingsImpl implements Map
Preconditions.checkNotNull(type);
return fromMappings(FluentIterable.from(mappings).filter(Predicates.not(hasType(type))));
}
+
+ @Override
+ public Mapping getError() {
+ Mappings errors = select(Type.Error);
+ Preconditions.checkState(!errors.isEmpty());
+ return Iterables.getFirst(errors, null);
+ }
@Override
public int hashCode() {
Modified: james/project/trunk/server/data/data-library/src/test/resources/cucumber/rewrite_tables.feature
URL: http://svn.apache.org/viewvc/james/project/trunk/server/data/data-library/src/test/resources/cucumber/rewrite_tables.feature?rev=1711996&r1=1711995&r2=1711996&view=diff
==============================================================================
--- james/project/trunk/server/data/data-library/src/test/resources/cucumber/rewrite_tables.feature (original)
+++ james/project/trunk/server/data/data-library/src/test/resources/cucumber/rewrite_tables.feature Mon Nov 2 13:49:15 2015
@@ -58,7 +58,6 @@ Feature: Rewrite Tables tests
Then retrieving mappings for user "test" at domain "localhost" should raise a "ErrorMappingException" exception with message "bounce!"
# Bad messsage: "bounce!;test@localhost2" instead of "bounce!"
- @ignore
Scenario: stored error mapping should be retrieved when two mappings matching
Given store "bounce!" error mapping for user "test" at domain "localhost"
And store "error" error mapping for user "test" at domain "localhost"
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org