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

Reply via email to