You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@james.apache.org by bt...@apache.org on 2021/06/11 07:38:20 UTC

[james-project] branch master updated: JAMES-3595 Spooler processing starts before mailetContainer initialisation

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

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


The following commit(s) were added to refs/heads/master by this push:
     new 5eea674  JAMES-3595 Spooler processing starts before mailetContainer initialisation
5eea674 is described below

commit 5eea674568a614bc0e848796b23a475134307d29
Author: Benoit Tellier <bt...@linagora.com>
AuthorDate: Tue Jun 8 18:06:43 2021 +0700

    JAMES-3595 Spooler processing starts before mailetContainer initialisation
---
 .../modules/server/CamelMailetContainerModule.java   | 20 +++++++++-----------
 .../server/CamelMailetContainerModuleTest.java       | 13 ++++++++++---
 2 files changed, 19 insertions(+), 14 deletions(-)

diff --git a/server/container/guice/mailet/src/main/java/org/apache/james/modules/server/CamelMailetContainerModule.java b/server/container/guice/mailet/src/main/java/org/apache/james/modules/server/CamelMailetContainerModule.java
index 975b298..844667e 100644
--- a/server/container/guice/mailet/src/main/java/org/apache/james/modules/server/CamelMailetContainerModule.java
+++ b/server/container/guice/mailet/src/main/java/org/apache/james/modules/server/CamelMailetContainerModule.java
@@ -131,16 +131,6 @@ public class CamelMailetContainerModule extends AbstractModule {
         return JamesMailSpooler.Configuration.from(mailRepositoryStore, conf);
     }
 
-    @ProvidesIntoSet
-    InitializationOperation startSpooler(JamesMailSpooler jamesMailSpooler, JamesMailSpooler.Configuration configuration) {
-        return InitilizationOperationBuilder
-            .forClass(JamesMailSpooler.class)
-            .init(() -> {
-                jamesMailSpooler.configure(configuration);
-                jamesMailSpooler.init();
-            });
-    }
-
     private HierarchicalConfiguration<ImmutableNode> getJamesSpoolerConfiguration(ConfigurationProvider configurationProvider) {
         try {
             return configurationProvider.getConfiguration("mailetcontainer")
@@ -176,18 +166,23 @@ public class CamelMailetContainerModule extends AbstractModule {
         private final DefaultProcessorsConfigurationSupplier defaultProcessorsConfigurationSupplier;
         private final Set<ProcessorsCheck> processorsCheckSet;
         private final DefaultCamelContext camelContext;
+        private final JamesMailSpooler jamesMailSpooler;
+        private final JamesMailSpooler.Configuration spoolerConfiguration;
+
 
         @Inject
         public MailetModuleInitializationOperation(ConfigurationProvider configurationProvider,
                                                    CamelCompositeProcessor camelCompositeProcessor,
                                                    Set<ProcessorsCheck> processorsCheckSet,
                                                    DefaultProcessorsConfigurationSupplier defaultProcessorsConfigurationSupplier,
-                                                   DefaultCamelContext camelContext) {
+                                                   DefaultCamelContext camelContext, JamesMailSpooler jamesMailSpooler, JamesMailSpooler.Configuration spoolerConfiguration) {
             this.configurationProvider = configurationProvider;
             this.camelCompositeProcessor = camelCompositeProcessor;
             this.processorsCheckSet = processorsCheckSet;
             this.defaultProcessorsConfigurationSupplier = defaultProcessorsConfigurationSupplier;
             this.camelContext = camelContext;
+            this.jamesMailSpooler = jamesMailSpooler;
+            this.spoolerConfiguration = spoolerConfiguration;
         }
 
         @Override
@@ -200,6 +195,9 @@ public class CamelMailetContainerModule extends AbstractModule {
             camelCompositeProcessor.setCamelContext(camelContext);
             camelCompositeProcessor.configure(getProcessorConfiguration());
             camelCompositeProcessor.init();
+
+            jamesMailSpooler.configure(spoolerConfiguration);
+            jamesMailSpooler.init();
         }
 
         @VisibleForTesting
diff --git a/server/container/guice/mailet/src/test/java/org/apache/james/modules/server/CamelMailetContainerModuleTest.java b/server/container/guice/mailet/src/test/java/org/apache/james/modules/server/CamelMailetContainerModuleTest.java
index 93468b5..d743302 100644
--- a/server/container/guice/mailet/src/test/java/org/apache/james/modules/server/CamelMailetContainerModuleTest.java
+++ b/server/container/guice/mailet/src/test/java/org/apache/james/modules/server/CamelMailetContainerModuleTest.java
@@ -33,6 +33,7 @@ import org.apache.commons.configuration2.HierarchicalConfiguration;
 import org.apache.commons.configuration2.XMLConfiguration;
 import org.apache.commons.configuration2.ex.ConfigurationRuntimeException;
 import org.apache.commons.configuration2.tree.ImmutableNode;
+import org.apache.james.mailetcontainer.impl.JamesMailSpooler;
 import org.apache.james.mailetcontainer.impl.camel.CamelCompositeProcessor;
 import org.apache.james.modules.server.CamelMailetContainerModule.MailetModuleInitializationOperation;
 import org.apache.james.server.core.configuration.ConfigurationProvider;
@@ -103,7 +104,9 @@ class CamelMailetContainerModuleTest {
             mock(CamelCompositeProcessor.class),
             NO_TRANSPORT_CHECKS,
             () -> defaultConfiguration,
-            mock(DefaultCamelContext.class));
+            mock(DefaultCamelContext.class),
+            mock(JamesMailSpooler.class),
+            mock(JamesMailSpooler.Configuration.class));
 
         assertThat(testee.getProcessorConfiguration())
             .isEqualTo(defaultConfiguration);
@@ -119,7 +122,9 @@ class CamelMailetContainerModuleTest {
             mock(CamelCompositeProcessor.class),
             NO_TRANSPORT_CHECKS,
             mock(CamelMailetContainerModule.DefaultProcessorsConfigurationSupplier.class),
-            mock(DefaultCamelContext.class));
+            mock(DefaultCamelContext.class),
+            mock(JamesMailSpooler.class),
+            mock(JamesMailSpooler.Configuration.class));
 
         assertThatThrownBy(testee::getProcessorConfiguration)
             .isInstanceOf(ConfigurationRuntimeException.class);
@@ -141,7 +146,9 @@ class CamelMailetContainerModuleTest {
             mock(CamelCompositeProcessor.class),
             NO_TRANSPORT_CHECKS,
             mock(CamelMailetContainerModule.DefaultProcessorsConfigurationSupplier.class),
-            mock(DefaultCamelContext.class));
+            mock(DefaultCamelContext.class),
+            mock(JamesMailSpooler.class),
+            mock(JamesMailSpooler.Configuration.class));
 
         HierarchicalConfiguration<ImmutableNode> mailetContextConfiguration = testee.getProcessorConfiguration();
         assertThat(mailetContextConfiguration.getString("key"))

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