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:54 UTC
svn commit: r1711999 - in /james/project/trunk/server/data:
data-file/src/test/java/org/apache/james/rrt/file/
data-hbase/src/test/java/org/apache/james/rrt/hbase/
data-jdbc/src/test/java/org/apache/james/rrt/jdbc/
data-jpa/src/main/java/org/apache/jam...
Author: matthieu
Date: Mon Nov 2 13:49:53 2015
New Revision: 1711999
URL: http://svn.apache.org/viewvc?rev=1711999&view=rev
Log:
JAMES-1597 override wildcard mapping by user mapping
Modified:
james/project/trunk/server/data/data-file/src/test/java/org/apache/james/rrt/file/RewriteTablesTest.java
james/project/trunk/server/data/data-hbase/src/test/java/org/apache/james/rrt/hbase/RewriteTablesTest.java
james/project/trunk/server/data/data-jdbc/src/test/java/org/apache/james/rrt/jdbc/RewriteTablesTest.java
james/project/trunk/server/data/data-jpa/src/main/java/org/apache/james/rrt/jpa/JPARecipientRewriteTable.java
james/project/trunk/server/data/data-jpa/src/main/java/org/apache/james/rrt/jpa/model/JPARecipientRewrite.java
james/project/trunk/server/data/data-jpa/src/test/java/org/apache/james/rrt/jpa/RewriteTablesTest.java
james/project/trunk/server/data/data-library/src/test/resources/cucumber/rewrite_tables.feature
Modified: james/project/trunk/server/data/data-file/src/test/java/org/apache/james/rrt/file/RewriteTablesTest.java
URL: http://svn.apache.org/viewvc/james/project/trunk/server/data/data-file/src/test/java/org/apache/james/rrt/file/RewriteTablesTest.java?rev=1711999&r1=1711998&r2=1711999&view=diff
==============================================================================
--- james/project/trunk/server/data/data-file/src/test/java/org/apache/james/rrt/file/RewriteTablesTest.java (original)
+++ james/project/trunk/server/data/data-file/src/test/java/org/apache/james/rrt/file/RewriteTablesTest.java Mon Nov 2 13:49:53 2015
@@ -28,8 +28,7 @@ import cucumber.api.junit.Cucumber;
@RunWith(Cucumber.class)
@CucumberOptions(
features = { "classpath:cucumber/" },
- glue = { "org.apache.james.rrt.lib", "org.apache.james.rrt.file" },
- tags = { "~@ignore" }
+ glue = { "org.apache.james.rrt.lib", "org.apache.james.rrt.file" }
)
public class RewriteTablesTest {
}
Modified: james/project/trunk/server/data/data-hbase/src/test/java/org/apache/james/rrt/hbase/RewriteTablesTest.java
URL: http://svn.apache.org/viewvc/james/project/trunk/server/data/data-hbase/src/test/java/org/apache/james/rrt/hbase/RewriteTablesTest.java?rev=1711999&r1=1711998&r2=1711999&view=diff
==============================================================================
--- james/project/trunk/server/data/data-hbase/src/test/java/org/apache/james/rrt/hbase/RewriteTablesTest.java (original)
+++ james/project/trunk/server/data/data-hbase/src/test/java/org/apache/james/rrt/hbase/RewriteTablesTest.java Mon Nov 2 13:49:53 2015
@@ -26,8 +26,7 @@ import cucumber.api.junit.Cucumber;
@RunWith(Cucumber.class)
@CucumberOptions(
features = { "classpath:cucumber/" },
- glue = { "org.apache.james.rrt.lib", "org.apache.james.rrt.hbase" },
- tags = { "~@ignore" }
+ glue = { "org.apache.james.rrt.lib", "org.apache.james.rrt.hbase" }
)
public class RewriteTablesTest {
}
Modified: james/project/trunk/server/data/data-jdbc/src/test/java/org/apache/james/rrt/jdbc/RewriteTablesTest.java
URL: http://svn.apache.org/viewvc/james/project/trunk/server/data/data-jdbc/src/test/java/org/apache/james/rrt/jdbc/RewriteTablesTest.java?rev=1711999&r1=1711998&r2=1711999&view=diff
==============================================================================
--- james/project/trunk/server/data/data-jdbc/src/test/java/org/apache/james/rrt/jdbc/RewriteTablesTest.java (original)
+++ james/project/trunk/server/data/data-jdbc/src/test/java/org/apache/james/rrt/jdbc/RewriteTablesTest.java Mon Nov 2 13:49:53 2015
@@ -26,8 +26,7 @@ import cucumber.api.junit.Cucumber;
@RunWith(Cucumber.class)
@CucumberOptions(
features = { "classpath:cucumber/" },
- glue = { "org.apache.james.rrt.lib", "org.apache.james.rrt.jdbc" },
- tags = { "~@ignore" }
+ glue = { "org.apache.james.rrt.lib", "org.apache.james.rrt.jdbc" }
)
public class RewriteTablesTest {
}
Modified: james/project/trunk/server/data/data-jpa/src/main/java/org/apache/james/rrt/jpa/JPARecipientRewriteTable.java
URL: http://svn.apache.org/viewvc/james/project/trunk/server/data/data-jpa/src/main/java/org/apache/james/rrt/jpa/JPARecipientRewriteTable.java?rev=1711999&r1=1711998&r2=1711999&view=diff
==============================================================================
--- james/project/trunk/server/data/data-jpa/src/main/java/org/apache/james/rrt/jpa/JPARecipientRewriteTable.java (original)
+++ james/project/trunk/server/data/data-jpa/src/main/java/org/apache/james/rrt/jpa/JPARecipientRewriteTable.java Mon Nov 2 13:49:53 2015
@@ -77,11 +77,19 @@ public class JPARecipientRewriteTable ex
* java.lang.String)
*/
protected String mapAddressInternal(String user, String domain) throws RecipientRewriteTableException {
+ String mapping = getMapping(user, domain, "selectExactMappings");
+ if (mapping != null) {
+ return mapping;
+ }
+ return getMapping(user, domain, "selectMappings");
+ }
+
+ private String getMapping(String user, String domain, String queryName) throws RecipientRewriteTableException {
EntityManager entityManager = entityManagerFactory.createEntityManager();
final EntityTransaction transaction = entityManager.getTransaction();
try {
transaction.begin();
- List<JPARecipientRewrite> virtualUsers = entityManager.createNamedQuery("selectMappings").setParameter("user", user).setParameter("domain", domain).getResultList();
+ List<JPARecipientRewrite> virtualUsers = entityManager.createNamedQuery(queryName).setParameter("user", user).setParameter("domain", domain).getResultList();
transaction.commit();
if (virtualUsers.size() > 0) {
return virtualUsers.get(0).getTargetAddress();
Modified: james/project/trunk/server/data/data-jpa/src/main/java/org/apache/james/rrt/jpa/model/JPARecipientRewrite.java
URL: http://svn.apache.org/viewvc/james/project/trunk/server/data/data-jpa/src/main/java/org/apache/james/rrt/jpa/model/JPARecipientRewrite.java?rev=1711999&r1=1711998&r2=1711999&view=diff
==============================================================================
--- james/project/trunk/server/data/data-jpa/src/main/java/org/apache/james/rrt/jpa/model/JPARecipientRewrite.java (original)
+++ james/project/trunk/server/data/data-jpa/src/main/java/org/apache/james/rrt/jpa/model/JPARecipientRewrite.java Mon Nov 2 13:49:53 2015
@@ -38,6 +38,7 @@ import javax.persistence.Table;
@Table(name = "JAMES_RECIPIENT_REWRITE")
@NamedQueries({
@NamedQuery(name = "selectMappings", query = "SELECT rrt FROM JamesRecipientRewrite rrt WHERE (rrt.user LIKE :user OR rrt.user='*') and (rrt.domain like :domain or rrt.domain='*') ORDER BY rrt.domain DESC"),
+ @NamedQuery(name = "selectExactMappings", query = "SELECT rrt FROM JamesRecipientRewrite rrt WHERE (rrt.user LIKE :user) and (rrt.domain like :domain) ORDER BY rrt.domain DESC"),
@NamedQuery(name = "selectUserDomainMapping", query = "SELECT rrt FROM JamesRecipientRewrite rrt WHERE rrt.user=:user AND rrt.domain=:domain"),
@NamedQuery(name = "selectAllMappings", query = "SELECT rrt FROM JamesRecipientRewrite rrt"),
@NamedQuery(name = "deleteMapping", query = "DELETE FROM JamesRecipientRewrite rrt WHERE rrt.user=:user AND rrt.domain=:domain AND rrt.targetAddress=:targetAddress"),
Modified: james/project/trunk/server/data/data-jpa/src/test/java/org/apache/james/rrt/jpa/RewriteTablesTest.java
URL: http://svn.apache.org/viewvc/james/project/trunk/server/data/data-jpa/src/test/java/org/apache/james/rrt/jpa/RewriteTablesTest.java?rev=1711999&r1=1711998&r2=1711999&view=diff
==============================================================================
--- james/project/trunk/server/data/data-jpa/src/test/java/org/apache/james/rrt/jpa/RewriteTablesTest.java (original)
+++ james/project/trunk/server/data/data-jpa/src/test/java/org/apache/james/rrt/jpa/RewriteTablesTest.java Mon Nov 2 13:49:53 2015
@@ -26,8 +26,7 @@ import cucumber.api.junit.Cucumber;
@RunWith(Cucumber.class)
@CucumberOptions(
features = { "classpath:cucumber/" },
- glue = { "org.apache.james.rrt.lib", "org.apache.james.rrt.jpa" },
- tags = { "~@ignore" }
+ glue = { "org.apache.james.rrt.lib", "org.apache.james.rrt.jpa" }
)
public class RewriteTablesTest {
}
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=1711999&r1=1711998&r2=1711999&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:53 2015
@@ -93,16 +93,14 @@ Feature: Rewrite Tables tests
Then mappings for user "user" at domain "localhost" should contains only "test@localhost"
And mappings for user "user2" at domain "localhost" should contains only "test@localhost"
-# Wildcard is not overridden
- @ignore
Scenario: direct mapping should override address mapping as wildcard
+ Given recursive mapping is disable
Given store "test@localhost" address mapping as wildcard for domain "localhost"
And store "mine@localhost" address mapping for user "user" at domain "localhost"
Then mappings for user "user" at domain "localhost" should contains only "mine@localhost"
-# Wildcard is not overridden
- @ignore
Scenario: direct mapping should override address mapping as wildcard (reverse insertion order)
+ Given recursive mapping is disable
Given store "mine@localhost" address mapping for user "user" at domain "localhost"
And store "test@localhost" address mapping as wildcard for domain "localhost"
Then mappings for user "user" at domain "localhost" should contains only "mine@localhost"
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org