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: [email protected]
For additional commands, e-mail: [email protected]