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