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

Reply via email to