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

commit 7bd80591fd17b2901d56e8af7f7a83533885e6fb
Author: Benoit Tellier <btell...@linagora.com>
AuthorDate: Wed Oct 9 17:31:24 2019 +0700

    JAMES-2918 Mailet container should use constructor injections
---
 .../modules/server/CamelMailetContainerModule.java |  5 +----
 .../mailetcontainer/impl/JamesMailSpooler.java     | 16 ++++------------
 .../impl/camel/CamelCompositeProcessor.java        | 22 +++++-----------------
 .../mailetcontainer/impl/JamesMailSpoolerTest.java | 12 ++++--------
 .../impl/camel/CamelCompositeProcessorTest.java    |  8 ++++----
 5 files changed, 18 insertions(+), 45 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 3c5208f..cad892e 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
@@ -109,20 +109,17 @@ public class CamelMailetContainerModule extends 
AbstractModule {
 
     @Singleton
     public static class SpoolerStarter implements InitialisationOperation {
-        private final CamelCompositeProcessor camelCompositeProcessor;
         private final JamesMailSpooler jamesMailSpooler;
         private final ConfigurationProvider configurationProvider;
 
         @Inject
-        public SpoolerStarter(CamelCompositeProcessor camelCompositeProcessor, 
JamesMailSpooler jamesMailSpooler, ConfigurationProvider configurationProvider) 
{
-            this.camelCompositeProcessor = camelCompositeProcessor;
+        public SpoolerStarter(JamesMailSpooler jamesMailSpooler, 
ConfigurationProvider configurationProvider) {
             this.jamesMailSpooler = jamesMailSpooler;
             this.configurationProvider = configurationProvider;
         }
 
         @Override
         public void initModule() {
-            jamesMailSpooler.setMailProcessor(camelCompositeProcessor);
             jamesMailSpooler.configure(getJamesSpoolerConfiguration());
             jamesMailSpooler.init();
         }
diff --git 
a/server/mailet/mailetcontainer-camel/src/main/java/org/apache/james/mailetcontainer/impl/JamesMailSpooler.java
 
b/server/mailet/mailetcontainer-camel/src/main/java/org/apache/james/mailetcontainer/impl/JamesMailSpooler.java
index bf308ce..6b40d81 100644
--- 
a/server/mailet/mailetcontainer-camel/src/main/java/org/apache/james/mailetcontainer/impl/JamesMailSpooler.java
+++ 
b/server/mailet/mailetcontainer-camel/src/main/java/org/apache/james/mailetcontainer/impl/JamesMailSpooler.java
@@ -73,25 +73,17 @@ public class JamesMailSpooler implements Disposable, 
Configurable, MailSpoolerMB
     /**
      * The mail processor
      */
-    private MailProcessor mailProcessor;
+    private final MailProcessor mailProcessor;
 
-    private MailQueueFactory<?> queueFactory;
+    private final MailQueueFactory<?> queueFactory;
     private reactor.core.Disposable disposable;
     private Scheduler spooler;
 
     @Inject
-    public JamesMailSpooler(MetricFactory metricFactory) {
+    public JamesMailSpooler(MetricFactory metricFactory, MailProcessor 
mailProcessor, MailQueueFactory<?> queueFactory) {
         this.metricFactory = metricFactory;
-    }
-
-    @Inject
-    public void setMailQueueFactory(MailQueueFactory<?> queueFactory) {
-        this.queueFactory = queueFactory;
-    }
-
-    @Inject
-    public void setMailProcessor(MailProcessor mailProcessor) {
         this.mailProcessor = mailProcessor;
+        this.queueFactory = queueFactory;
     }
 
     @Override
diff --git 
a/server/mailet/mailetcontainer-camel/src/main/java/org/apache/james/mailetcontainer/impl/camel/CamelCompositeProcessor.java
 
b/server/mailet/mailetcontainer-camel/src/main/java/org/apache/james/mailetcontainer/impl/camel/CamelCompositeProcessor.java
index 2ebfa1f..88107a1 100644
--- 
a/server/mailet/mailetcontainer-camel/src/main/java/org/apache/james/mailetcontainer/impl/camel/CamelCompositeProcessor.java
+++ 
b/server/mailet/mailetcontainer-camel/src/main/java/org/apache/james/mailetcontainer/impl/camel/CamelCompositeProcessor.java
@@ -45,31 +45,19 @@ import org.apache.mailet.MailetContext;
 public class CamelCompositeProcessor extends AbstractStateCompositeProcessor 
implements CamelContextAware {
 
     private final MetricFactory metricFactory;
+    private final MailetContext mailetContext;
+    private final MatcherLoader matcherLoader;
+    private final MailetLoader mailetLoader;
     private CamelContext camelContext;
-    private MailetContext mailetContext;
-    private MatcherLoader matcherLoader;
-    private MailetLoader mailetLoader;
 
     @Inject
-    public CamelCompositeProcessor(MetricFactory metricFactory) {
+    CamelCompositeProcessor(MetricFactory metricFactory, MailetContext 
mailetContext, MatcherLoader matcherLoader, MailetLoader mailetLoader) {
         this.metricFactory = metricFactory;
-    }
-
-    @Inject
-    public void setMatcherLoader(MatcherLoader matcherLoader) {
+        this.mailetContext = mailetContext;
         this.matcherLoader = matcherLoader;
-    }
-
-    @Inject
-    public void setMailetLoader(MailetLoader mailetLoader) {
         this.mailetLoader = mailetLoader;
     }
 
-    @Inject
-    public void setMailetContext(MailetContext mailetContext) {
-        this.mailetContext = mailetContext;
-    }
-
     @Override
     @PostConstruct
     public void init() throws Exception {
diff --git 
a/server/mailet/mailetcontainer-camel/src/test/java/org/apache/james/mailetcontainer/impl/JamesMailSpoolerTest.java
 
b/server/mailet/mailetcontainer-camel/src/test/java/org/apache/james/mailetcontainer/impl/JamesMailSpoolerTest.java
index 7a10d13..0b62199 100644
--- 
a/server/mailet/mailetcontainer-camel/src/test/java/org/apache/james/mailetcontainer/impl/JamesMailSpoolerTest.java
+++ 
b/server/mailet/mailetcontainer-camel/src/test/java/org/apache/james/mailetcontainer/impl/JamesMailSpoolerTest.java
@@ -59,8 +59,9 @@ class JamesMailSpoolerTest {
     void thrownExceptionShouldAckTheItem() throws MessagingException {
         MetricFactory metricFactory = mock(MetricFactory.class);
         
when(metricFactory.timer(JamesMailSpooler.SPOOL_PROCESSING)).thenAnswer(ignored 
-> mock(TimeMetric.class));
-        JamesMailSpooler spooler = new JamesMailSpooler(metricFactory);
         MailQueueFactory<?> queueFactory = mock(MailQueueFactory.class);
+        MailProcessor mailProcessor = mock(MailProcessor.class);
+        JamesMailSpooler spooler = new JamesMailSpooler(metricFactory, 
mailProcessor, queueFactory);
 
         UnicastProcessor<MockedMailQueueItem> workQueue = 
UnicastProcessor.create();
         MockedMailQueueItem item = new MockedMailQueueItem();
@@ -73,13 +74,10 @@ class JamesMailSpoolerTest {
         workQueue.onNext(item);
         when(queue.deQueue()).thenAnswer(any -> 
workQueue.limitRate(1).filter(MockedMailQueueItem::isNotDone));
         when(queueFactory.createQueue(MailQueueFactory.SPOOL)).thenAnswer(any 
-> queue);
-        spooler.setMailQueueFactory(queueFactory);
 
-        MailProcessor mailProcessor = mock(MailProcessor.class);
         doThrow(new RuntimeException("Arbitrary failure"))
             .doNothing()
             .when(mailProcessor).service(any());
-        spooler.setMailProcessor(mailProcessor);
 
         PropertyListConfiguration configuration = new 
PropertyListConfiguration();
         configuration.addProperty("threads", 2);
@@ -95,8 +93,9 @@ class JamesMailSpoolerTest {
     void threadSuicideShouldAckTheItem() throws MessagingException {
         MetricFactory metricFactory = mock(MetricFactory.class);
         
when(metricFactory.timer(JamesMailSpooler.SPOOL_PROCESSING)).thenAnswer(ignored 
-> mock(TimeMetric.class));
-        JamesMailSpooler spooler = new JamesMailSpooler(metricFactory);
         MailQueueFactory<?> queueFactory = mock(MailQueueFactory.class);
+        MailProcessor mailProcessor = mock(MailProcessor.class);
+        JamesMailSpooler spooler = new JamesMailSpooler(metricFactory, 
mailProcessor, queueFactory);
 
         UnicastProcessor<MockedMailQueueItem> workQueue = 
UnicastProcessor.create();
         MockedMailQueueItem item = new MockedMailQueueItem();
@@ -109,14 +108,11 @@ class JamesMailSpoolerTest {
         workQueue.onNext(item);
         when(queue.deQueue()).thenAnswer(any -> 
workQueue.limitRate(1).filter(MockedMailQueueItem::isNotDone));
         when(queueFactory.createQueue(MailQueueFactory.SPOOL)).thenAnswer(any 
-> queue);
-        spooler.setMailQueueFactory(queueFactory);
 
-        MailProcessor mailProcessor = mock(MailProcessor.class);
         doAnswer(ignored -> {
             Thread.currentThread().interrupt();
             return null;
         }).doNothing().when(mailProcessor).service(any());
-        spooler.setMailProcessor(mailProcessor);
 
         PropertyListConfiguration configuration = new 
PropertyListConfiguration();
         configuration.addProperty("threads", 2);
diff --git 
a/server/mailet/mailetcontainer-camel/src/test/java/org/apache/james/mailetcontainer/impl/camel/CamelCompositeProcessorTest.java
 
b/server/mailet/mailetcontainer-camel/src/test/java/org/apache/james/mailetcontainer/impl/camel/CamelCompositeProcessorTest.java
index ddeb3ca..95d03ae 100644
--- 
a/server/mailet/mailetcontainer-camel/src/test/java/org/apache/james/mailetcontainer/impl/camel/CamelCompositeProcessorTest.java
+++ 
b/server/mailet/mailetcontainer-camel/src/test/java/org/apache/james/mailetcontainer/impl/camel/CamelCompositeProcessorTest.java
@@ -32,12 +32,12 @@ public class CamelCompositeProcessorTest extends 
AbstractStateCompositeProcessor
 
     @Override
     protected AbstractStateCompositeProcessor 
createProcessor(HierarchicalConfiguration<ImmutableNode> config) throws 
Exception {
-        CamelCompositeProcessor processor = new CamelCompositeProcessor(new 
NoopMetricFactory());
+        CamelCompositeProcessor processor = new CamelCompositeProcessor(new 
NoopMetricFactory(),
+            FakeMailContext.defaultContext(),
+            new MockMatcherLoader(),
+            new MockMailetLoader());
         try {
             processor.setCamelContext(new DefaultCamelContext());
-            processor.setMailetLoader(new MockMailetLoader());
-            processor.setMatcherLoader(new MockMatcherLoader());
-            processor.setMailetContext(FakeMailContext.defaultContext());
             processor.configure(config);
             processor.init();
             return processor;


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

Reply via email to