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 ad...@apache.org on 2018/08/30 13:16:07 UTC
[25/26] james-project git commit: JAMES-2529 JMAP filtering mailet
should be compulsory
JAMES-2529 JMAP filtering mailet should be compulsory
Project: http://git-wip-us.apache.org/repos/asf/james-project/repo
Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/9ba6a1dd
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/9ba6a1dd
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/9ba6a1dd
Branch: refs/heads/master
Commit: 9ba6a1dd270f99735c7f9d3d4b2adb5076583c10
Parents: 808c8fa
Author: Benoit Tellier <bt...@linagora.com>
Authored: Wed Aug 29 12:36:24 2018 +0700
Committer: Antoine Duprat <ad...@linagora.com>
Committed: Thu Aug 30 15:11:55 2018 +0200
----------------------------------------------------------------------
.../src/test/resources/mailetcontainer.xml | 1 +
.../sample-configuration/mailetcontainer.xml | 1 +
.../src/test/resources/mailetcontainer.xml | 1 +
.../java/org/apache/james/jmap/JMAPModule.java | 8 +++-
.../resources/defaultJmapMailetContainer.xml | 1 +
.../james/jmap/MailetPreconditionTest.java | 40 ++++++++++++++++++++
6 files changed, 51 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/james-project/blob/9ba6a1dd/server/container/cli-integration/src/test/resources/mailetcontainer.xml
----------------------------------------------------------------------
diff --git a/server/container/cli-integration/src/test/resources/mailetcontainer.xml b/server/container/cli-integration/src/test/resources/mailetcontainer.xml
index f14a335..cb2c0dc 100644
--- a/server/container/cli-integration/src/test/resources/mailetcontainer.xml
+++ b/server/container/cli-integration/src/test/resources/mailetcontainer.xml
@@ -58,6 +58,7 @@
</mailet>
<mailet match="RecipientIsLocal" class="org.apache.james.jmap.mailet.VacationMailet"/>
<mailet match="RecipientIsLocal" class="Sieve"/>
+ <mailet match="RecipientIsLocal" class="org.apache.james.jmap.mailet.filter.JMAPFiltering"/>
<mailet match="RecipientIsLocal" class="LocalDelivery"/>
<mailet match="HostIsLocal" class="ToProcessor">
<processor>local-address-error</processor>
http://git-wip-us.apache.org/repos/asf/james-project/blob/9ba6a1dd/server/container/guice/memory-guice/sample-configuration/mailetcontainer.xml
----------------------------------------------------------------------
diff --git a/server/container/guice/memory-guice/sample-configuration/mailetcontainer.xml b/server/container/guice/memory-guice/sample-configuration/mailetcontainer.xml
index a910f1b..6b29c87 100644
--- a/server/container/guice/memory-guice/sample-configuration/mailetcontainer.xml
+++ b/server/container/guice/memory-guice/sample-configuration/mailetcontainer.xml
@@ -59,6 +59,7 @@
<mailet match="All" class="RecipientRewriteTable" />
<mailet match="RecipientIsLocal" class="org.apache.james.jmap.mailet.VacationMailet"/>
<mailet match="RecipientIsLocal" class="Sieve"/>
+ <mailet match="RecipientIsLocal" class="org.apache.james.jmap.mailet.filter.JMAPFiltering"/>
<mailet match="RecipientIsLocal" class="LocalDelivery"/>
<mailet match="relay-allowed" class="RemoteDelivery">
http://git-wip-us.apache.org/repos/asf/james-project/blob/9ba6a1dd/server/container/guice/memory-guice/src/test/resources/mailetcontainer.xml
----------------------------------------------------------------------
diff --git a/server/container/guice/memory-guice/src/test/resources/mailetcontainer.xml b/server/container/guice/memory-guice/src/test/resources/mailetcontainer.xml
index ab279cc..e82f960 100644
--- a/server/container/guice/memory-guice/src/test/resources/mailetcontainer.xml
+++ b/server/container/guice/memory-guice/src/test/resources/mailetcontainer.xml
@@ -65,6 +65,7 @@
<mailet match="IsMarkedAsSpam" class="WithStorageDirective">
<targetFolderName>Spam</targetFolderName>
</mailet>
+ <mailet match="RecipientIsLocal" class="org.apache.james.jmap.mailet.filter.JMAPFiltering"/>
<mailet match="RecipientIsLocal" class="LocalDelivery"/>
<mailet match="HostIsLocal" class="ToProcessor">
<processor>local-address-error</processor>
http://git-wip-us.apache.org/repos/asf/james-project/blob/9ba6a1dd/server/container/guice/protocols/jmap/src/main/java/org/apache/james/jmap/JMAPModule.java
----------------------------------------------------------------------
diff --git a/server/container/guice/protocols/jmap/src/main/java/org/apache/james/jmap/JMAPModule.java b/server/container/guice/protocols/jmap/src/main/java/org/apache/james/jmap/JMAPModule.java
index 5158d2f..365df71 100644
--- a/server/container/guice/protocols/jmap/src/main/java/org/apache/james/jmap/JMAPModule.java
+++ b/server/container/guice/protocols/jmap/src/main/java/org/apache/james/jmap/JMAPModule.java
@@ -31,6 +31,7 @@ import org.apache.commons.io.FileUtils;
import org.apache.james.filesystem.api.FileSystem;
import org.apache.james.jmap.event.PropagateLookupRightListener;
import org.apache.james.jmap.mailet.VacationMailet;
+import org.apache.james.jmap.mailet.filter.JMAPFiltering;
import org.apache.james.jmap.methods.RequestHandler;
import org.apache.james.jmap.send.PostDequeueDecoratorFactory;
import org.apache.james.jmap.utils.HtmlTextExtractor;
@@ -76,6 +77,10 @@ public class JMAPModule extends AbstractModule {
new CamelMailetContainerModule.TransportProcessorCheck.Impl(
RecipientIsLocal.class,
VacationMailet.class);
+ public static final CamelMailetContainerModule.TransportProcessorCheck FILTERING_MAILET_CHECK =
+ new CamelMailetContainerModule.TransportProcessorCheck.Impl(
+ RecipientIsLocal.class,
+ JMAPFiltering.class);
@Override
protected void configure() {
@@ -96,7 +101,8 @@ public class JMAPModule extends AbstractModule {
Multibinder<CamelMailetContainerModule.TransportProcessorCheck> transportProcessorChecks = Multibinder.newSetBinder(binder(), CamelMailetContainerModule.TransportProcessorCheck.class);
transportProcessorChecks.addBinding().toInstance(VACATION_MAILET_CHECK);
-
+ transportProcessorChecks.addBinding().toInstance(FILTERING_MAILET_CHECK);
+
bind(SystemMailboxesProvider.class).to(SystemMailboxesProviderImpl.class);
bind(MailQueueItemDecoratorFactory.class).to(PostDequeueDecoratorFactory.class).in(Scopes.SINGLETON);
http://git-wip-us.apache.org/repos/asf/james-project/blob/9ba6a1dd/server/container/guice/protocols/jmap/src/main/resources/defaultJmapMailetContainer.xml
----------------------------------------------------------------------
diff --git a/server/container/guice/protocols/jmap/src/main/resources/defaultJmapMailetContainer.xml b/server/container/guice/protocols/jmap/src/main/resources/defaultJmapMailetContainer.xml
index ccf6017..4f70e72 100644
--- a/server/container/guice/protocols/jmap/src/main/resources/defaultJmapMailetContainer.xml
+++ b/server/container/guice/protocols/jmap/src/main/resources/defaultJmapMailetContainer.xml
@@ -42,6 +42,7 @@
</mailet>
<mailet match="All" class="RecipientRewriteTable" />
<mailet match="RecipientIsLocal" class="org.apache.james.jmap.mailet.VacationMailet"/>
+ <mailet match="RecipientIsLocal" class="org.apache.james.jmap.mailet.filter.JMAPFiltering"/>
<mailet match="RecipientIsLocal" class="LocalDelivery"/>
<mailet match="HostIsLocal" class="ToProcessor">
<processor>local-address-error</processor>
http://git-wip-us.apache.org/repos/asf/james-project/blob/9ba6a1dd/server/container/guice/protocols/jmap/src/test/java/org/apache/james/jmap/MailetPreconditionTest.java
----------------------------------------------------------------------
diff --git a/server/container/guice/protocols/jmap/src/test/java/org/apache/james/jmap/MailetPreconditionTest.java b/server/container/guice/protocols/jmap/src/test/java/org/apache/james/jmap/MailetPreconditionTest.java
index aaacbd9..6971db3 100644
--- a/server/container/guice/protocols/jmap/src/test/java/org/apache/james/jmap/MailetPreconditionTest.java
+++ b/server/container/guice/protocols/jmap/src/test/java/org/apache/james/jmap/MailetPreconditionTest.java
@@ -26,6 +26,7 @@ import java.util.List;
import org.apache.commons.configuration.ConfigurationException;
import org.apache.james.jmap.mailet.VacationMailet;
+import org.apache.james.jmap.mailet.filter.JMAPFiltering;
import org.apache.james.mailetcontainer.impl.MatcherMailetPair;
import org.apache.james.modules.server.CamelMailetContainerModule;
import org.apache.james.transport.mailets.Null;
@@ -84,6 +85,45 @@ class MailetPreconditionTest {
}
@Nested
+ class FilteringMailetCheck {
+ @Test
+ void filteringMailetCheckShouldThrowOnEmptyList() {
+ assertThatThrownBy(() -> JMAPModule.FILTERING_MAILET_CHECK.check(Lists.newArrayList()))
+ .isInstanceOf(ConfigurationException.class);
+ }
+
+ @Test
+ void filteringMailetCheckShouldThrowOnNullList() {
+ assertThatThrownBy(() -> JMAPModule.FILTERING_MAILET_CHECK.check(null))
+ .isInstanceOf(NullPointerException.class);
+ }
+
+ @Test
+ void filteringMailetCheckShouldThrowOnWrongMatcher() {
+ List<MatcherMailetPair> pairs = Lists.newArrayList(new MatcherMailetPair(new All(), new JMAPFiltering(null, null, null)));
+
+ assertThatThrownBy(() -> JMAPModule.FILTERING_MAILET_CHECK.check(pairs))
+ .isInstanceOf(ConfigurationException.class);
+ }
+
+ @Test
+ void filteringMailetCheckShouldThrowOnWrongMailet() {
+ List<MatcherMailetPair> pairs = Lists.newArrayList(new MatcherMailetPair(new RecipientIsLocal(), new Null()));
+
+ assertThatThrownBy(() -> JMAPModule.FILTERING_MAILET_CHECK.check(pairs))
+ .isInstanceOf(ConfigurationException.class);
+ }
+
+ @Test
+ void filteringMailetCheckShouldNotThrowIfValidPairPresent() {
+ List<MatcherMailetPair> pairs = Lists.newArrayList(new MatcherMailetPair(new RecipientIsLocal(), new JMAPFiltering(null, null, null)));
+
+ assertThatCode(() -> JMAPModule.FILTERING_MAILET_CHECK.check(pairs))
+ .doesNotThrowAnyException();
+ }
+ }
+
+ @Nested
class BccCheck {
@Test
void bccMailetCheckShouldThrowOnEmptyList() {
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org