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 rc...@apache.org on 2020/05/15 05:02:16 UTC

[james-project] 04/12: JAMES-3140 Remove SpamD stachTraces when running JMAP integration tests

This is an automated email from the ASF dual-hosted git repository.

rcordier pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/james-project.git

commit 0b45c5254da0e5cddaafe02a34fcdca22e200e15
Author: Benoit Tellier <bt...@linagora.com>
AuthorDate: Mon May 11 15:22:33 2020 +0700

    JAMES-3140 Remove SpamD stachTraces when running JMAP integration tests
    
    Tests that do not run SpamAssassin should not enable the corresponding plugin (mailbox listener) as it causes verbose stactraces hurting the development experience.
    
    SpamAssassin extension should inject the corresponding configuration POJO to enable that listener.
    
    Compared to injecting the listener, this is both :
     - Better: it is closer to production behaviour, as we go from a configuration POJO to additional listeners
     - Easier: SpamAssassinListener can't be handled as a bundled group listener, as it requires an ExecutionMode to be injected, which is only handled by additional listeners.
---
 .../org/apache/james/modules/mailbox/ListenersConfiguration.java  | 5 +++++
 .../src/test/resources/listeners.xml                              | 3 ---
 .../james/jmap/draft/methods/integration/SpamAssassinModule.java  | 8 ++++++++
 3 files changed, 13 insertions(+), 3 deletions(-)

diff --git a/server/container/guice/mailbox/src/main/java/org/apache/james/modules/mailbox/ListenersConfiguration.java b/server/container/guice/mailbox/src/main/java/org/apache/james/modules/mailbox/ListenersConfiguration.java
index 8f8113f..14abbd6 100644
--- a/server/container/guice/mailbox/src/main/java/org/apache/james/modules/mailbox/ListenersConfiguration.java
+++ b/server/container/guice/mailbox/src/main/java/org/apache/james/modules/mailbox/ListenersConfiguration.java
@@ -25,9 +25,14 @@ import org.apache.commons.configuration2.tree.ImmutableNode;
 
 import com.github.steveash.guavate.Guavate;
 import com.google.common.annotations.VisibleForTesting;
+import com.google.common.collect.ImmutableList;
 
 public class ListenersConfiguration {
 
+    public static ListenersConfiguration of(ListenerConfiguration... listenersConfiguration) {
+        return new ListenersConfiguration(ImmutableList.copyOf(listenersConfiguration));
+    }
+
     public static ListenersConfiguration from(HierarchicalConfiguration<ImmutableNode> configuration) {
         List<HierarchicalConfiguration<ImmutableNode>> listeners = configuration.configurationsAt("listener");
 
diff --git a/server/protocols/jmap-draft-integration-testing/cassandra-jmap-draft-integration-testing/src/test/resources/listeners.xml b/server/protocols/jmap-draft-integration-testing/cassandra-jmap-draft-integration-testing/src/test/resources/listeners.xml
index cac2777..ff2e517 100644
--- a/server/protocols/jmap-draft-integration-testing/cassandra-jmap-draft-integration-testing/src/test/resources/listeners.xml
+++ b/server/protocols/jmap-draft-integration-testing/cassandra-jmap-draft-integration-testing/src/test/resources/listeners.xml
@@ -46,7 +46,4 @@
       <name>second</name>
     </configuration>
   </listener>
-  <listener>
-    <class>org.apache.james.mailbox.spamassassin.SpamAssassinListener</class>
-  </listener>
 </listeners>
\ No newline at end of file
diff --git a/server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/java/org/apache/james/jmap/draft/methods/integration/SpamAssassinModule.java b/server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/java/org/apache/james/jmap/draft/methods/integration/SpamAssassinModule.java
index e85f3f1..469eebd 100644
--- a/server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/java/org/apache/james/jmap/draft/methods/integration/SpamAssassinModule.java
+++ b/server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/java/org/apache/james/jmap/draft/methods/integration/SpamAssassinModule.java
@@ -23,8 +23,12 @@ import java.util.Optional;
 import javax.inject.Singleton;
 
 import org.apache.commons.configuration2.BaseConfiguration;
+import org.apache.james.mailbox.events.MailboxListener;
 import org.apache.james.mailbox.spamassassin.SpamAssassinConfiguration;
+import org.apache.james.mailbox.spamassassin.SpamAssassinListener;
 import org.apache.james.mailetcontainer.impl.MailetConfigImpl;
+import org.apache.james.modules.mailbox.ListenerConfiguration;
+import org.apache.james.modules.mailbox.ListenersConfiguration;
 import org.apache.james.spamassassin.SpamAssassinExtension;
 import org.apache.james.util.Host;
 import org.apache.james.utils.MailetConfigurationOverride;
@@ -49,6 +53,10 @@ public class SpamAssassinModule extends AbstractModule {
                 new MailetConfigurationOverride(
                     org.apache.james.transport.mailets.SpamAssassin.class,
                     spamAssassinMailetConfig()));
+
+        bind(ListenersConfiguration.class)
+            .toInstance(ListenersConfiguration.of(
+                ListenerConfiguration.forClass(SpamAssassinListener.class.getCanonicalName())));
     }
 
     @Provides


---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org