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