You are viewing a plain text version of this content. The canonical link for it is here.
Posted to server-dev@james.apache.org by ad...@apache.org on 2017/12/05 07:30:56 UTC
[16/19] james-project git commit: JAMES-2242 RemoteDelivery should be
run on a SMTP only server
JAMES-2242 RemoteDelivery should be run on a SMTP only server
Project: http://git-wip-us.apache.org/repos/asf/james-project/repo
Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/9ad16167
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/9ad16167
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/9ad16167
Branch: refs/heads/master
Commit: 9ad1616766d5eeb9d5e213ae6c6dd125dc194d62
Parents: 2a5f46b
Author: benwa <bt...@linagora.com>
Authored: Thu Nov 30 17:10:23 2017 +0700
Committer: Antoine Duprat <ad...@linagora.com>
Committed: Mon Dec 4 14:42:22 2017 +0100
----------------------------------------------------------------------
.../java/org/apache/james/GuiceJamesServer.java | 5 ++
.../org/apache/james/MemoryJamesServerMain.java | 5 +-
.../modules/server/MemoryMailQueueModule.java | 2 -
.../james/mailets/AddDeliveredToHeaderTest.java | 4 +-
.../james/mailets/BounceIntegrationTest.java | 14 +--
.../mailets/CommonMailetConfigurationTest.java | 6 +-
.../GatewayRemoteDeliveryIntegrationTest.java | 91 +++++++++++---------
.../RecipientRewriteTableIntegrationTest.java | 4 +-
.../org/apache/james/mailets/SieveDelivery.java | 6 +-
.../james/mailets/TemporaryJamesServer.java | 42 ++++++++-
.../crypto/SMIMEDecryptIntegrationTest.java | 5 +-
.../crypto/SMIMESignIntegrationTest.java | 5 +-
.../mailets/AmqpForwardAttachmentTest.java | 12 +--
.../transport/mailets/ContactExtractorTest.java | 2 +-
.../transport/mailets/GroupMappingTest.java | 4 +-
.../mailets/ICSAttachmentWorkflowTest.java | 2 +-
.../transport/mailets/StripAttachmentTest.java | 2 +-
.../jmap/memory/cucumber/MemoryStepdefs.java | 2 +-
18 files changed, 131 insertions(+), 82 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/james-project/blob/9ad16167/server/container/guice/guice-common/src/main/java/org/apache/james/GuiceJamesServer.java
----------------------------------------------------------------------
diff --git a/server/container/guice/guice-common/src/main/java/org/apache/james/GuiceJamesServer.java b/server/container/guice/guice-common/src/main/java/org/apache/james/GuiceJamesServer.java
index 075f5c4..510a85b 100644
--- a/server/container/guice/guice-common/src/main/java/org/apache/james/GuiceJamesServer.java
+++ b/server/container/guice/guice-common/src/main/java/org/apache/james/GuiceJamesServer.java
@@ -19,6 +19,7 @@
package org.apache.james;
import java.util.Arrays;
+import java.util.List;
import javax.annotation.PreDestroy;
@@ -62,6 +63,10 @@ public class GuiceJamesServer {
return new GuiceJamesServer(Modules.override(module).with(overrides));
}
+ public GuiceJamesServer overrideWith(List<Module> overrides) {
+ return new GuiceJamesServer(Modules.override(module).with(overrides));
+ }
+
public void start() throws Exception {
Injector injector = Guice.createInjector(module);
preDestroy = injector.getInstance(Key.get(new TypeLiteral<Stager<PreDestroy>>() {}));
http://git-wip-us.apache.org/repos/asf/james-project/blob/9ad16167/server/container/guice/memory-guice/src/main/java/org/apache/james/MemoryJamesServerMain.java
----------------------------------------------------------------------
diff --git a/server/container/guice/memory-guice/src/main/java/org/apache/james/MemoryJamesServerMain.java b/server/container/guice/memory-guice/src/main/java/org/apache/james/MemoryJamesServerMain.java
index 98fe669..38ab031 100644
--- a/server/container/guice/memory-guice/src/main/java/org/apache/james/MemoryJamesServerMain.java
+++ b/server/container/guice/memory-guice/src/main/java/org/apache/james/MemoryJamesServerMain.java
@@ -19,7 +19,6 @@
package org.apache.james;
-import org.apache.james.jmap.send.PostDequeueDecoratorFactory;
import org.apache.james.modules.MailboxModule;
import org.apache.james.modules.data.MemoryDataJmapModule;
import org.apache.james.modules.data.MemoryDataModule;
@@ -37,7 +36,6 @@ import org.apache.james.modules.server.MailboxRoutesModule;
import org.apache.james.modules.server.MemoryMailQueueModule;
import org.apache.james.modules.server.SwaggerRoutesModule;
import org.apache.james.modules.server.WebAdminServerModule;
-import org.apache.james.queue.api.MailQueueItemDecoratorFactory;
import com.google.inject.Module;
import com.google.inject.util.Modules;
@@ -60,8 +58,7 @@ public class MemoryJamesServerMain {
public static final Module jmap = Modules.combine(
new MemoryDataJmapModule(),
- new JMAPServerModule(),
- binder -> binder.bind(MailQueueItemDecoratorFactory.class).to(PostDequeueDecoratorFactory.class));
+ new JMAPServerModule());
public static final Module inMemoryServerModule = Modules.combine(
new MemoryDataModule(),
http://git-wip-us.apache.org/repos/asf/james-project/blob/9ad16167/server/container/guice/memory-guice/src/main/java/org/apache/james/modules/server/MemoryMailQueueModule.java
----------------------------------------------------------------------
diff --git a/server/container/guice/memory-guice/src/main/java/org/apache/james/modules/server/MemoryMailQueueModule.java b/server/container/guice/memory-guice/src/main/java/org/apache/james/modules/server/MemoryMailQueueModule.java
index 0e2964e..fe41a1c 100644
--- a/server/container/guice/memory-guice/src/main/java/org/apache/james/modules/server/MemoryMailQueueModule.java
+++ b/server/container/guice/memory-guice/src/main/java/org/apache/james/modules/server/MemoryMailQueueModule.java
@@ -19,7 +19,6 @@
package org.apache.james.modules.server;
-import org.apache.james.jmap.send.PostDequeueDecoratorFactory;
import org.apache.james.queue.api.MailQueueFactory;
import com.google.inject.AbstractModule;
@@ -30,7 +29,6 @@ public class MemoryMailQueueModule extends AbstractModule {
@Override
protected void configure() {
bind(MemoryMailQueueFactory.class).in(Scopes.SINGLETON);
- bind(PostDequeueDecoratorFactory.class).in(Scopes.SINGLETON);
bind(MailQueueFactory.class).to(MemoryMailQueueFactory.class);
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/9ad16167/server/mailet/integration-testing/src/test/java/org/apache/james/mailets/AddDeliveredToHeaderTest.java
----------------------------------------------------------------------
diff --git a/server/mailet/integration-testing/src/test/java/org/apache/james/mailets/AddDeliveredToHeaderTest.java b/server/mailet/integration-testing/src/test/java/org/apache/james/mailets/AddDeliveredToHeaderTest.java
index 1e18728..ef1bc5d 100644
--- a/server/mailet/integration-testing/src/test/java/org/apache/james/mailets/AddDeliveredToHeaderTest.java
+++ b/server/mailet/integration-testing/src/test/java/org/apache/james/mailets/AddDeliveredToHeaderTest.java
@@ -22,12 +22,12 @@ package org.apache.james.mailets;
import org.apache.james.mailbox.model.MailboxConstants;
import org.apache.james.mailets.configuration.CommonProcessors;
import org.apache.james.mailets.configuration.MailetContainer;
-import org.apache.james.utils.SMTPMessageSender;
import org.apache.james.modules.MailboxProbeImpl;
import org.apache.james.probe.DataProbe;
import org.apache.james.transport.mailets.AddDeliveredToHeader;
import org.apache.james.utils.DataProbeImpl;
import org.apache.james.utils.IMAPMessageReader;
+import org.apache.james.utils.SMTPMessageSender;
import org.junit.After;
import org.junit.Before;
import org.junit.Rule;
@@ -67,7 +67,7 @@ public class AddDeliveredToHeaderTest {
.addProcessor(CommonProcessors.sieveManagerCheck())
.build();
- jamesServer = new TemporaryJamesServer(temporaryFolder, mailetContainer);
+ jamesServer = TemporaryJamesServer.builder().build(temporaryFolder, mailetContainer);
Duration slowPacedPollInterval = Duration.FIVE_HUNDRED_MILLISECONDS;
calmlyAwait = Awaitility.with()
.pollInterval(slowPacedPollInterval)
http://git-wip-us.apache.org/repos/asf/james-project/blob/9ad16167/server/mailet/integration-testing/src/test/java/org/apache/james/mailets/BounceIntegrationTest.java
----------------------------------------------------------------------
diff --git a/server/mailet/integration-testing/src/test/java/org/apache/james/mailets/BounceIntegrationTest.java b/server/mailet/integration-testing/src/test/java/org/apache/james/mailets/BounceIntegrationTest.java
index c7216df..f8daddb 100644
--- a/server/mailet/integration-testing/src/test/java/org/apache/james/mailets/BounceIntegrationTest.java
+++ b/server/mailet/integration-testing/src/test/java/org/apache/james/mailets/BounceIntegrationTest.java
@@ -89,7 +89,7 @@ public class BounceIntegrationTest {
@Test
public void dsnBounceMailetShouldDeliverBounce() throws Exception {
- jamesServer = new TemporaryJamesServer(temporaryFolder,
+ jamesServer = TemporaryJamesServer.builder().build(temporaryFolder,
generateMailetContainerConfiguration(MailetConfiguration.builder()
.matcher(All.class)
.mailet(DSNBounce.class)
@@ -111,7 +111,7 @@ public class BounceIntegrationTest {
@Test
public void bounceMailetShouldDeliverBounce() throws Exception {
- jamesServer = new TemporaryJamesServer(temporaryFolder,
+ jamesServer = TemporaryJamesServer.builder().build(temporaryFolder,
generateMailetContainerConfiguration(MailetConfiguration.builder()
.matcher(All.class)
.mailet(Bounce.class)
@@ -133,7 +133,7 @@ public class BounceIntegrationTest {
@Test
public void forwardMailetShouldDeliverBounce() throws Exception {
- jamesServer = new TemporaryJamesServer(temporaryFolder,
+ jamesServer = TemporaryJamesServer.builder().build(temporaryFolder,
generateMailetContainerConfiguration(MailetConfiguration.builder()
.matcher(All.class)
.mailet(Forward.class)
@@ -156,7 +156,7 @@ public class BounceIntegrationTest {
@Test
public void redirectMailetShouldDeliverBounce() throws Exception {
- jamesServer = new TemporaryJamesServer(temporaryFolder,
+ jamesServer = TemporaryJamesServer.builder().build(temporaryFolder,
generateMailetContainerConfiguration(MailetConfiguration.builder()
.matcher(All.class)
.mailet(Redirect.class)
@@ -179,7 +179,7 @@ public class BounceIntegrationTest {
@Test
public void resendMailetShouldDeliverBounce() throws Exception {
- jamesServer = new TemporaryJamesServer(temporaryFolder,
+ jamesServer = TemporaryJamesServer.builder().build(temporaryFolder,
generateMailetContainerConfiguration(MailetConfiguration.builder()
.matcher(All.class)
.mailet(Resend.class)
@@ -202,7 +202,7 @@ public class BounceIntegrationTest {
@Test
public void notifySenderMailetShouldDeliverBounce() throws Exception {
- jamesServer = new TemporaryJamesServer(temporaryFolder,
+ jamesServer = TemporaryJamesServer.builder().build(temporaryFolder,
generateMailetContainerConfiguration(MailetConfiguration.builder()
.matcher(All.class)
.mailet(NotifySender.class)
@@ -224,7 +224,7 @@ public class BounceIntegrationTest {
@Test
public void notifyPostmasterMailetShouldDeliverBounce() throws Exception {
- jamesServer = new TemporaryJamesServer(temporaryFolder,
+ jamesServer = TemporaryJamesServer.builder().build(temporaryFolder,
generateMailetContainerConfiguration(MailetConfiguration.builder()
.matcher(All.class)
.mailet(NotifyPostmaster.class)
http://git-wip-us.apache.org/repos/asf/james-project/blob/9ad16167/server/mailet/integration-testing/src/test/java/org/apache/james/mailets/CommonMailetConfigurationTest.java
----------------------------------------------------------------------
diff --git a/server/mailet/integration-testing/src/test/java/org/apache/james/mailets/CommonMailetConfigurationTest.java b/server/mailet/integration-testing/src/test/java/org/apache/james/mailets/CommonMailetConfigurationTest.java
index c4fc960..67ea84b 100644
--- a/server/mailet/integration-testing/src/test/java/org/apache/james/mailets/CommonMailetConfigurationTest.java
+++ b/server/mailet/integration-testing/src/test/java/org/apache/james/mailets/CommonMailetConfigurationTest.java
@@ -22,11 +22,11 @@ package org.apache.james.mailets;
import org.apache.james.mailbox.model.MailboxConstants;
import org.apache.james.mailets.configuration.CommonProcessors;
import org.apache.james.mailets.configuration.MailetContainer;
-import org.apache.james.utils.SMTPMessageSender;
import org.apache.james.modules.MailboxProbeImpl;
import org.apache.james.probe.DataProbe;
-import org.apache.james.utils.IMAPMessageReader;
import org.apache.james.utils.DataProbeImpl;
+import org.apache.james.utils.IMAPMessageReader;
+import org.apache.james.utils.SMTPMessageSender;
import org.junit.After;
import org.junit.Before;
import org.junit.Rule;
@@ -66,7 +66,7 @@ public class CommonMailetConfigurationTest {
.addProcessor(CommonProcessors.sieveManagerCheck())
.build();
- jamesServer = new TemporaryJamesServer(temporaryFolder, mailetContainer);
+ jamesServer = TemporaryJamesServer.builder().build(temporaryFolder, mailetContainer);
Duration slowPacedPollInterval = Duration.FIVE_HUNDRED_MILLISECONDS;
calmlyAwait = Awaitility.with().pollInterval(slowPacedPollInterval).and().with().pollDelay(slowPacedPollInterval).await();
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/9ad16167/server/mailet/integration-testing/src/test/java/org/apache/james/mailets/GatewayRemoteDeliveryIntegrationTest.java
----------------------------------------------------------------------
diff --git a/server/mailet/integration-testing/src/test/java/org/apache/james/mailets/GatewayRemoteDeliveryIntegrationTest.java b/server/mailet/integration-testing/src/test/java/org/apache/james/mailets/GatewayRemoteDeliveryIntegrationTest.java
index e325ef2..7d4b6d1 100644
--- a/server/mailet/integration-testing/src/test/java/org/apache/james/mailets/GatewayRemoteDeliveryIntegrationTest.java
+++ b/server/mailet/integration-testing/src/test/java/org/apache/james/mailets/GatewayRemoteDeliveryIntegrationTest.java
@@ -28,14 +28,20 @@ import static org.hamcrest.Matchers.hasSize;
import java.net.InetAddress;
import java.util.concurrent.TimeUnit;
+import org.apache.commons.configuration.DefaultConfigurationBuilder;
+import org.apache.james.MemoryJamesServerMain;
import org.apache.james.dnsservice.api.DNSService;
import org.apache.james.dnsservice.api.InMemoryDNSService;
-import org.apache.james.jmap.mailet.VacationMailet;
import org.apache.james.mailbox.model.MailboxConstants;
import org.apache.james.mailets.configuration.CommonProcessors;
import org.apache.james.mailets.configuration.MailetConfiguration;
import org.apache.james.mailets.configuration.MailetContainer;
import org.apache.james.mailets.configuration.ProcessorConfiguration;
+import org.apache.james.modules.protocols.IMAPServerModule;
+import org.apache.james.modules.protocols.ProtocolHandlerModule;
+import org.apache.james.modules.protocols.SMTPServerModule;
+import org.apache.james.modules.server.CamelMailetContainerModule;
+import org.apache.james.modules.server.RawPostDequeueDecoratorModule;
import org.apache.james.probe.DataProbe;
import org.apache.james.transport.mailets.LocalDelivery;
import org.apache.james.transport.mailets.Null;
@@ -59,6 +65,8 @@ import org.junit.rules.TemporaryFolder;
import org.testcontainers.containers.wait.HostPortWaitStrategy;
import com.google.common.base.Charsets;
+import com.google.inject.Module;
+import com.google.inject.util.Modules;
import com.jayway.awaitility.Awaitility;
import com.jayway.awaitility.Duration;
import com.jayway.awaitility.core.ConditionFactory;
@@ -77,6 +85,16 @@ public class GatewayRemoteDeliveryIntegrationTest {
private static final String FROM = "from@" + JAMES_APACHE_ORG;
private static final String RECIPIENT = "touser@" + JAMES_ANOTHER_DOMAIN;
+ private static final Module SMTP_ONLY_MODULE = Modules.combine(
+ MemoryJamesServerMain.inMemoryServerModule,
+ new ProtocolHandlerModule(),
+ new SMTPServerModule(),
+ new RawPostDequeueDecoratorModule(),
+ binder -> binder.bind(CamelMailetContainerModule.DefaultProcessorsConfigurationSupplier.class)
+ .toInstance(DefaultConfigurationBuilder::new));
+ private static final Module SMTP_AND_IMAP_MODULE = Modules.combine(
+ SMTP_ONLY_MODULE,
+ new IMAPServerModule());
@Rule
public TemporaryFolder temporaryFolder = new TemporaryFolder();
@@ -94,7 +112,6 @@ public class GatewayRemoteDeliveryIntegrationTest {
private ConditionFactory calmlyAwait;
private DataProbe dataProbe;
-
@Before
public void setup() throws Exception {
Duration slowPacedPollInterval = Duration.FIVE_HUNDRED_MILLISECONDS;
@@ -125,8 +142,9 @@ public class GatewayRemoteDeliveryIntegrationTest {
public void outgoingMailShouldTransitThroughGatewayWhenNoPort() throws Exception {
String gatewayProperty = fakeSmtp.getContainerIp();
- jamesServer = new TemporaryJamesServer(temporaryFolder,
- generateMailetContainerConfiguration(gatewayProperty));
+ jamesServer = TemporaryJamesServer.builder()
+ .withBase(SMTP_ONLY_MODULE)
+ .build(temporaryFolder, generateMailetContainerConfiguration(gatewayProperty));
dataProbe = jamesServer.getProbe(DataProbeImpl.class);
dataProbe.addDomain(JAMES_APACHE_ORG);
@@ -143,8 +161,9 @@ public class GatewayRemoteDeliveryIntegrationTest {
public void outgoingMailShouldTransitThroughGatewayWhenPort() throws Exception {
String gatewayProperty = fakeSmtp.getContainerIp() + ":25";
- jamesServer = new TemporaryJamesServer(temporaryFolder,
- generateMailetContainerConfiguration(gatewayProperty));
+ jamesServer = TemporaryJamesServer.builder()
+ .withBase(SMTP_ONLY_MODULE)
+ .build(temporaryFolder, generateMailetContainerConfiguration(gatewayProperty));
dataProbe = jamesServer.getProbe(DataProbeImpl.class);
dataProbe.addDomain(JAMES_APACHE_ORG);
@@ -161,8 +180,9 @@ public class GatewayRemoteDeliveryIntegrationTest {
public void outgoingMailShouldTransitThroughGatewayWhenSeveralIps() throws Exception {
String gatewayProperty = fakeSmtp.getContainerIp() + ",invalid.domain";
- jamesServer = new TemporaryJamesServer(temporaryFolder,
- generateMailetContainerConfiguration(gatewayProperty));
+ jamesServer = TemporaryJamesServer.builder()
+ .withBase(SMTP_ONLY_MODULE)
+ .build(temporaryFolder, generateMailetContainerConfiguration(gatewayProperty));
dataProbe = jamesServer.getProbe(DataProbeImpl.class);
dataProbe.addDomain(JAMES_APACHE_ORG);
@@ -179,8 +199,9 @@ public class GatewayRemoteDeliveryIntegrationTest {
public void outgoingMailShouldFallbackToSecondGatewayWhenFirstInvalid() throws Exception {
String gatewayProperty = "invalid.domain," + fakeSmtp.getContainerIp();
- jamesServer = new TemporaryJamesServer(temporaryFolder,
- generateMailetContainerConfiguration(gatewayProperty));
+ jamesServer = TemporaryJamesServer.builder()
+ .withBase(SMTP_ONLY_MODULE)
+ .build(temporaryFolder, generateMailetContainerConfiguration(gatewayProperty));
dataProbe = jamesServer.getProbe(DataProbeImpl.class);
dataProbe.addDomain(JAMES_APACHE_ORG);
@@ -200,9 +221,10 @@ public class GatewayRemoteDeliveryIntegrationTest {
InetAddress containerIp = InetAddress.getByName(fakeSmtp.getContainerIp());
inMemoryDNSService.registerRecord(JAMES_ANOTHER_DOMAIN, containerIp, JAMES_ANOTHER_DOMAIN);
- jamesServer = new TemporaryJamesServer(temporaryFolder,
- generateMailetContainerConfiguration(gatewayProperty),
- binder -> binder.bind(DNSService.class).toInstance(inMemoryDNSService));
+ jamesServer = TemporaryJamesServer.builder()
+ .withBase(SMTP_ONLY_MODULE)
+ .withOverrides(binder -> binder.bind(DNSService.class).toInstance(inMemoryDNSService))
+ .build(temporaryFolder, generateMailetContainerConfiguration(gatewayProperty));
dataProbe = jamesServer.getProbe(DataProbeImpl.class);
dataProbe.addDomain(JAMES_APACHE_ORG);
@@ -226,16 +248,17 @@ public class GatewayRemoteDeliveryIntegrationTest {
InetAddress containerIp = InetAddress.getByName(fakeSmtp.getContainerIp());
inMemoryDNSService.registerRecord(JAMES_ANOTHER_DOMAIN, containerIp, JAMES_ANOTHER_DOMAIN);
- jamesServer = new TemporaryJamesServer(temporaryFolder,
- MailetContainer.builder()
+ jamesServer = TemporaryJamesServer.builder()
+ .withBase(SMTP_AND_IMAP_MODULE)
+ .withOverrides(binder -> binder.bind(DNSService.class).toInstance(inMemoryDNSService))
+ .build(temporaryFolder, MailetContainer.builder()
.postmaster("postmaster@" + JAMES_APACHE_ORG)
.threads(5)
.addProcessor(root())
.addProcessor(CommonProcessors.error())
.addProcessor(relayAndLocalDeliveryTransport(gatewayProperty))
.addProcessor(CommonProcessors.bounces())
- .build(),
- binder -> binder.bind(DNSService.class).toInstance(inMemoryDNSService));
+ .build());
dataProbe = jamesServer.getProbe(DataProbeImpl.class);
dataProbe.addDomain(JAMES_APACHE_ORG);
@@ -257,8 +280,10 @@ public class GatewayRemoteDeliveryIntegrationTest {
InetAddress containerIp = InetAddress.getByName(fakeSmtp.getContainerIp());
inMemoryDNSService.registerRecord(JAMES_ANOTHER_DOMAIN, containerIp, JAMES_ANOTHER_DOMAIN);
- jamesServer = new TemporaryJamesServer(temporaryFolder,
- MailetContainer.builder()
+ jamesServer = TemporaryJamesServer.builder()
+ .withBase(SMTP_AND_IMAP_MODULE)
+ .withOverrides(binder -> binder.bind(DNSService.class).toInstance(inMemoryDNSService))
+ .build(temporaryFolder, MailetContainer.builder()
.postmaster("postmaster@" + JAMES_APACHE_ORG)
.threads(5)
.addProcessor(root())
@@ -273,10 +298,6 @@ public class GatewayRemoteDeliveryIntegrationTest {
.build())
.addMailet(MailetConfiguration.builder()
.matcher(RecipientIsLocal.class)
- .mailet(VacationMailet.class)
- .build())
- .addMailet(MailetConfiguration.builder()
- .matcher(RecipientIsLocal.class)
.mailet(LocalDelivery.class)
.build())
.addMailet(MailetConfiguration.builder()
@@ -292,8 +313,7 @@ public class GatewayRemoteDeliveryIntegrationTest {
.build())
.build())
.addProcessor(CommonProcessors.bounces())
- .build(),
- binder -> binder.bind(DNSService.class).toInstance(inMemoryDNSService));
+ .build());
dataProbe = jamesServer.getProbe(DataProbeImpl.class);
dataProbe.addDomain(JAMES_APACHE_ORG);
@@ -314,16 +334,17 @@ public class GatewayRemoteDeliveryIntegrationTest {
InetAddress containerIp = InetAddress.getByName(fakeSmtp.getContainerIp());
inMemoryDNSService.registerRecord(JAMES_ANOTHER_DOMAIN, containerIp, JAMES_ANOTHER_DOMAIN);
- jamesServer = new TemporaryJamesServer(temporaryFolder,
- MailetContainer.builder()
+ jamesServer = TemporaryJamesServer.builder()
+ .withBase(SMTP_ONLY_MODULE)
+ .withOverrides(binder -> binder.bind(DNSService.class).toInstance(inMemoryDNSService))
+ .build(temporaryFolder, MailetContainer.builder()
.postmaster("postmaster@" + JAMES_APACHE_ORG)
.threads(5)
.addProcessor(root())
.addProcessor(CommonProcessors.error())
.addProcessor(directResolutionTransport())
.addProcessor(CommonProcessors.bounces())
- .build(),
- binder -> binder.bind(DNSService.class).toInstance(inMemoryDNSService));
+ .build());
dataProbe = jamesServer.getProbe(DataProbeImpl.class);
dataProbe.addDomain(JAMES_APACHE_ORG);
@@ -394,10 +415,6 @@ public class GatewayRemoteDeliveryIntegrationTest {
.addProperty("name", "bcc")
.build())
.addMailet(MailetConfiguration.builder()
- .matcher(RecipientIsLocal.class)
- .mailet(VacationMailet.class)
- .build())
- .addMailet(MailetConfiguration.builder()
.matcher(All.class)
.mailet(RemoteDelivery.class)
.addProperty("outgoingQueue", "outgoing")
@@ -423,10 +440,6 @@ public class GatewayRemoteDeliveryIntegrationTest {
.build())
.addMailet(MailetConfiguration.builder()
.matcher(RecipientIsLocal.class)
- .mailet(VacationMailet.class)
- .build())
- .addMailet(MailetConfiguration.builder()
- .matcher(RecipientIsLocal.class)
.mailet(LocalDelivery.class)
.build())
.addMailet(MailetConfiguration.builder()
@@ -454,10 +467,6 @@ public class GatewayRemoteDeliveryIntegrationTest {
.addProperty("name", "bcc")
.build())
.addMailet(MailetConfiguration.builder()
- .matcher(RecipientIsLocal.class)
- .mailet(VacationMailet.class)
- .build())
- .addMailet(MailetConfiguration.builder()
.matcher(All.class)
.mailet(RemoteDelivery.class)
.addProperty("outgoingQueue", "outgoing")
http://git-wip-us.apache.org/repos/asf/james-project/blob/9ad16167/server/mailet/integration-testing/src/test/java/org/apache/james/mailets/RecipientRewriteTableIntegrationTest.java
----------------------------------------------------------------------
diff --git a/server/mailet/integration-testing/src/test/java/org/apache/james/mailets/RecipientRewriteTableIntegrationTest.java b/server/mailet/integration-testing/src/test/java/org/apache/james/mailets/RecipientRewriteTableIntegrationTest.java
index 931fdfe..3b6a061 100644
--- a/server/mailet/integration-testing/src/test/java/org/apache/james/mailets/RecipientRewriteTableIntegrationTest.java
+++ b/server/mailet/integration-testing/src/test/java/org/apache/james/mailets/RecipientRewriteTableIntegrationTest.java
@@ -22,11 +22,11 @@ package org.apache.james.mailets;
import org.apache.james.mailbox.model.MailboxConstants;
import org.apache.james.mailets.configuration.CommonProcessors;
import org.apache.james.mailets.configuration.MailetContainer;
-import org.apache.james.utils.SMTPMessageSender;
import org.apache.james.modules.MailboxProbeImpl;
import org.apache.james.probe.DataProbe;
import org.apache.james.utils.DataProbeImpl;
import org.apache.james.utils.IMAPMessageReader;
+import org.apache.james.utils.SMTPMessageSender;
import org.junit.After;
import org.junit.Before;
import org.junit.Rule;
@@ -77,7 +77,7 @@ public class RecipientRewriteTableIntegrationTest {
.addProcessor(CommonProcessors.sieveManagerCheck())
.build();
- jamesServer = new TemporaryJamesServer(temporaryFolder, mailetContainer);
+ jamesServer = TemporaryJamesServer.builder().build(temporaryFolder, mailetContainer);
Duration slowPacedPollInterval = Duration.FIVE_HUNDRED_MILLISECONDS;
calmlyAwait = Awaitility.with().pollInterval(slowPacedPollInterval).and().with().pollDelay(slowPacedPollInterval).await();
dataProbe = jamesServer.getProbe(DataProbeImpl.class);
http://git-wip-us.apache.org/repos/asf/james-project/blob/9ad16167/server/mailet/integration-testing/src/test/java/org/apache/james/mailets/SieveDelivery.java
----------------------------------------------------------------------
diff --git a/server/mailet/integration-testing/src/test/java/org/apache/james/mailets/SieveDelivery.java b/server/mailet/integration-testing/src/test/java/org/apache/james/mailets/SieveDelivery.java
index b80f3a9..11aa9e6 100644
--- a/server/mailet/integration-testing/src/test/java/org/apache/james/mailets/SieveDelivery.java
+++ b/server/mailet/integration-testing/src/test/java/org/apache/james/mailets/SieveDelivery.java
@@ -23,12 +23,12 @@ import org.apache.james.mailbox.model.MailboxConstants;
import org.apache.james.mailbox.store.probe.MailboxProbe;
import org.apache.james.mailets.configuration.CommonProcessors;
import org.apache.james.mailets.configuration.MailetContainer;
-import org.apache.james.utils.SMTPMessageSender;
import org.apache.james.modules.MailboxProbeImpl;
import org.apache.james.modules.protocols.SieveProbeImpl;
import org.apache.james.probe.DataProbe;
-import org.apache.james.utils.IMAPMessageReader;
import org.apache.james.utils.DataProbeImpl;
+import org.apache.james.utils.IMAPMessageReader;
+import org.apache.james.utils.SMTPMessageSender;
import org.junit.After;
import org.junit.Before;
import org.junit.Rule;
@@ -68,7 +68,7 @@ public class SieveDelivery {
.addProcessor(CommonProcessors.sieveManagerCheck())
.build();
- jamesServer = new TemporaryJamesServer(temporaryFolder, mailetContainer);
+ jamesServer = TemporaryJamesServer.builder().build(temporaryFolder, mailetContainer);
Duration slowPacedPollInterval = Duration.FIVE_HUNDRED_MILLISECONDS;
calmlyAwait = Awaitility.with().pollInterval(slowPacedPollInterval).and().with().pollDelay(slowPacedPollInterval).await();
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/9ad16167/server/mailet/integration-testing/src/test/java/org/apache/james/mailets/TemporaryJamesServer.java
----------------------------------------------------------------------
diff --git a/server/mailet/integration-testing/src/test/java/org/apache/james/mailets/TemporaryJamesServer.java b/server/mailet/integration-testing/src/test/java/org/apache/james/mailets/TemporaryJamesServer.java
index 3ebaa1e..6fc4496 100644
--- a/server/mailet/integration-testing/src/test/java/org/apache/james/mailets/TemporaryJamesServer.java
+++ b/server/mailet/integration-testing/src/test/java/org/apache/james/mailets/TemporaryJamesServer.java
@@ -25,6 +25,9 @@ import java.io.IOException;
import java.io.OutputStream;
import java.nio.charset.StandardCharsets;
import java.nio.file.Paths;
+import java.util.Arrays;
+import java.util.List;
+import java.util.Optional;
import org.apache.activemq.store.PersistenceAdapter;
import org.apache.activemq.store.memory.MemoryPersistenceAdapter;
@@ -39,22 +42,55 @@ import org.apache.james.webadmin.WebAdminConfiguration;
import org.apache.james.webadmin.WebAdminUtils;
import org.junit.rules.TemporaryFolder;
+import com.google.common.collect.ImmutableList;
import com.google.inject.Module;
public class TemporaryJamesServer {
+ public static class Builder {
+ private ImmutableList.Builder<Module> overrideModules;
+ private Optional<Module> module;
+
+ private Builder() {
+ overrideModules = ImmutableList.builder();
+ module = Optional.empty();
+ }
+
+ public Builder withBase(Module module) {
+ this.module = Optional.of(module);
+ return this;
+ }
+
+ public Builder withOverrides(Module... modules) {
+ this.overrideModules.addAll(Arrays.asList(modules));
+ return this;
+ }
+
+ public TemporaryJamesServer build(TemporaryFolder temporaryFolder, MailetContainer mailetContainer) throws Exception {
+ return new TemporaryJamesServer(
+ temporaryFolder,
+ mailetContainer,
+ module.orElse(MemoryJamesServerMain.inMemoryServerAggregateModule),
+ overrideModules.build());
+ }
+ }
+
+ public static Builder builder() {
+ return new Builder();
+ }
+
private static final String MAILETCONTAINER_CONFIGURATION_FILENAME = "mailetcontainer.xml";
private static final int LIMIT_TO_3_MESSAGES = 3;
private final GuiceJamesServer jamesServer;
-
- public TemporaryJamesServer(TemporaryFolder temporaryFolder, MailetContainer mailetContainer, Module... additionalModules) throws Exception {
+ private TemporaryJamesServer(TemporaryFolder temporaryFolder, MailetContainer mailetContainer,
+ Module serverBaseModule, List<Module> additionalModules) throws Exception {
appendMailetConfigurations(temporaryFolder, mailetContainer);
jamesServer = new GuiceJamesServer()
- .combineWith(MemoryJamesServerMain.inMemoryServerAggregateModule)
+ .combineWith(serverBaseModule)
.overrideWith((binder) -> binder.bind(PersistenceAdapter.class).to(MemoryPersistenceAdapter.class))
.overrideWith(additionalModules)
.overrideWith(new TestJMAPServerModule(LIMIT_TO_3_MESSAGES))
http://git-wip-us.apache.org/repos/asf/james-project/blob/9ad16167/server/mailet/integration-testing/src/test/java/org/apache/james/mailets/crypto/SMIMEDecryptIntegrationTest.java
----------------------------------------------------------------------
diff --git a/server/mailet/integration-testing/src/test/java/org/apache/james/mailets/crypto/SMIMEDecryptIntegrationTest.java b/server/mailet/integration-testing/src/test/java/org/apache/james/mailets/crypto/SMIMEDecryptIntegrationTest.java
index 3d09a73..d8084dc 100644
--- a/server/mailet/integration-testing/src/test/java/org/apache/james/mailets/crypto/SMIMEDecryptIntegrationTest.java
+++ b/server/mailet/integration-testing/src/test/java/org/apache/james/mailets/crypto/SMIMEDecryptIntegrationTest.java
@@ -104,8 +104,9 @@ public class SMIMEDecryptIntegrationTest {
.build())
.build();
- jamesServer = new TemporaryJamesServer(temporaryFolder, mailetContainer,
- binder -> binder.bind(ZonedDateTimeProvider.class).toInstance(() -> DATE_2015));
+ jamesServer = TemporaryJamesServer.builder()
+ .withOverrides(binder -> binder.bind(ZonedDateTimeProvider.class).toInstance(() -> DATE_2015))
+ .build(temporaryFolder, mailetContainer);
Duration slowPacedPollInterval = Duration.FIVE_HUNDRED_MILLISECONDS;
calmlyAwait = Awaitility.with().pollInterval(slowPacedPollInterval).and().with().pollDelay(slowPacedPollInterval).await();
http://git-wip-us.apache.org/repos/asf/james-project/blob/9ad16167/server/mailet/integration-testing/src/test/java/org/apache/james/mailets/crypto/SMIMESignIntegrationTest.java
----------------------------------------------------------------------
diff --git a/server/mailet/integration-testing/src/test/java/org/apache/james/mailets/crypto/SMIMESignIntegrationTest.java b/server/mailet/integration-testing/src/test/java/org/apache/james/mailets/crypto/SMIMESignIntegrationTest.java
index bee6474..1561c54 100644
--- a/server/mailet/integration-testing/src/test/java/org/apache/james/mailets/crypto/SMIMESignIntegrationTest.java
+++ b/server/mailet/integration-testing/src/test/java/org/apache/james/mailets/crypto/SMIMESignIntegrationTest.java
@@ -148,8 +148,9 @@ public class SMIMESignIntegrationTest {
.addProcessor(CommonProcessors.sieveManagerCheck())
.build();
- jamesServer = new TemporaryJamesServer(temporaryFolder, mailetContainer,
- binder -> binder.bind(ZonedDateTimeProvider.class).toInstance(() -> DATE_2015));
+ jamesServer = TemporaryJamesServer.builder()
+ .withOverrides(binder -> binder.bind(ZonedDateTimeProvider.class).toInstance(() -> DATE_2015))
+ .build(temporaryFolder, mailetContainer);
Duration slowPacedPollInterval = Duration.FIVE_HUNDRED_MILLISECONDS;
calmlyAwait = Awaitility.with().pollInterval(slowPacedPollInterval).and().with().pollDelay(slowPacedPollInterval).await();
http://git-wip-us.apache.org/repos/asf/james-project/blob/9ad16167/server/mailet/integration-testing/src/test/java/org/apache/james/transport/mailets/AmqpForwardAttachmentTest.java
----------------------------------------------------------------------
diff --git a/server/mailet/integration-testing/src/test/java/org/apache/james/transport/mailets/AmqpForwardAttachmentTest.java b/server/mailet/integration-testing/src/test/java/org/apache/james/transport/mailets/AmqpForwardAttachmentTest.java
index fd13da2..04471a0 100644
--- a/server/mailet/integration-testing/src/test/java/org/apache/james/transport/mailets/AmqpForwardAttachmentTest.java
+++ b/server/mailet/integration-testing/src/test/java/org/apache/james/transport/mailets/AmqpForwardAttachmentTest.java
@@ -23,6 +23,7 @@ import static org.assertj.core.api.Assertions.assertThat;
import javax.mail.internet.MimeMessage;
+import org.apache.james.core.MailAddress;
import org.apache.james.jmap.mailet.VacationMailet;
import org.apache.james.mailbox.model.MailboxConstants;
import org.apache.james.mailets.TemporaryJamesServer;
@@ -30,17 +31,16 @@ import org.apache.james.mailets.configuration.CommonProcessors;
import org.apache.james.mailets.configuration.MailetConfiguration;
import org.apache.james.mailets.configuration.MailetContainer;
import org.apache.james.mailets.configuration.ProcessorConfiguration;
-import org.apache.james.transport.matchers.All;
-import org.apache.james.transport.matchers.RecipientIsLocal;
-import org.apache.james.utils.SMTPMessageSender;
import org.apache.james.modules.MailboxProbeImpl;
import org.apache.james.probe.DataProbe;
import org.apache.james.transport.mailets.amqp.AmqpRule;
+import org.apache.james.transport.matchers.All;
+import org.apache.james.transport.matchers.RecipientIsLocal;
import org.apache.james.util.streams.SwarmGenericContainer;
-import org.apache.james.utils.IMAPMessageReader;
import org.apache.james.utils.DataProbeImpl;
+import org.apache.james.utils.IMAPMessageReader;
+import org.apache.james.utils.SMTPMessageSender;
import org.apache.mailet.Mail;
-import org.apache.james.core.MailAddress;
import org.apache.mailet.base.test.FakeMail;
import org.apache.mailet.base.test.MimeMessageBuilder;
import org.junit.After;
@@ -130,7 +130,7 @@ public class AmqpForwardAttachmentTest {
.build())
.build();
- jamesServer = new TemporaryJamesServer(temporaryFolder, mailetContainer);
+ jamesServer = TemporaryJamesServer.builder().build(temporaryFolder, mailetContainer);
Duration slowPacedPollInterval = Duration.FIVE_HUNDRED_MILLISECONDS;
calmlyAwait = Awaitility.with()
.pollInterval(slowPacedPollInterval)
http://git-wip-us.apache.org/repos/asf/james-project/blob/9ad16167/server/mailet/integration-testing/src/test/java/org/apache/james/transport/mailets/ContactExtractorTest.java
----------------------------------------------------------------------
diff --git a/server/mailet/integration-testing/src/test/java/org/apache/james/transport/mailets/ContactExtractorTest.java b/server/mailet/integration-testing/src/test/java/org/apache/james/transport/mailets/ContactExtractorTest.java
index 16eeb89..16ef6a8 100644
--- a/server/mailet/integration-testing/src/test/java/org/apache/james/transport/mailets/ContactExtractorTest.java
+++ b/server/mailet/integration-testing/src/test/java/org/apache/james/transport/mailets/ContactExtractorTest.java
@@ -114,7 +114,7 @@ public class ContactExtractorTest {
.build())
.build())
.build();
- jamesServer = new TemporaryJamesServer(folder, mailets);
+ jamesServer = TemporaryJamesServer.builder().build(folder, mailets);
DataProbeImpl probe = jamesServer.getProbe(DataProbeImpl.class);
probe.addDomain(JAMES_ORG);
probe.addUser(SENDER, PASSWORD);
http://git-wip-us.apache.org/repos/asf/james-project/blob/9ad16167/server/mailet/integration-testing/src/test/java/org/apache/james/transport/mailets/GroupMappingTest.java
----------------------------------------------------------------------
diff --git a/server/mailet/integration-testing/src/test/java/org/apache/james/transport/mailets/GroupMappingTest.java b/server/mailet/integration-testing/src/test/java/org/apache/james/transport/mailets/GroupMappingTest.java
index 0e5e18f..0222ce0 100644
--- a/server/mailet/integration-testing/src/test/java/org/apache/james/transport/mailets/GroupMappingTest.java
+++ b/server/mailet/integration-testing/src/test/java/org/apache/james/transport/mailets/GroupMappingTest.java
@@ -166,7 +166,9 @@ public class GroupMappingTest {
.build())
.build();
- jamesServer = new TemporaryJamesServer(temporaryFolder, mailetContainer, (binder) -> binder.bind(DNSService.class).toInstance(inMemoryDNSService));
+ jamesServer = TemporaryJamesServer.builder()
+ .withOverrides(binder -> binder.bind(DNSService.class).toInstance(inMemoryDNSService))
+ .build(temporaryFolder, mailetContainer);
Duration slowPacedPollInterval = Duration.FIVE_HUNDRED_MILLISECONDS;
calmlyAwait = Awaitility.with().pollInterval(slowPacedPollInterval).and().with().pollDelay(slowPacedPollInterval).await();
http://git-wip-us.apache.org/repos/asf/james-project/blob/9ad16167/server/mailet/integration-testing/src/test/java/org/apache/james/transport/mailets/ICSAttachmentWorkflowTest.java
----------------------------------------------------------------------
diff --git a/server/mailet/integration-testing/src/test/java/org/apache/james/transport/mailets/ICSAttachmentWorkflowTest.java b/server/mailet/integration-testing/src/test/java/org/apache/james/transport/mailets/ICSAttachmentWorkflowTest.java
index 3a9f664..e44853e 100644
--- a/server/mailet/integration-testing/src/test/java/org/apache/james/transport/mailets/ICSAttachmentWorkflowTest.java
+++ b/server/mailet/integration-testing/src/test/java/org/apache/james/transport/mailets/ICSAttachmentWorkflowTest.java
@@ -517,7 +517,7 @@ public class ICSAttachmentWorkflowTest {
.build())
.build();
- jamesServer = new TemporaryJamesServer(temporaryFolder, mailetContainer);
+ jamesServer = TemporaryJamesServer.builder().build(temporaryFolder, mailetContainer);
Duration slowPacedPollInterval = Duration.FIVE_HUNDRED_MILLISECONDS;
calmlyAwait = Awaitility.with().pollInterval(slowPacedPollInterval).and().with().pollDelay(slowPacedPollInterval).await();
http://git-wip-us.apache.org/repos/asf/james-project/blob/9ad16167/server/mailet/integration-testing/src/test/java/org/apache/james/transport/mailets/StripAttachmentTest.java
----------------------------------------------------------------------
diff --git a/server/mailet/integration-testing/src/test/java/org/apache/james/transport/mailets/StripAttachmentTest.java b/server/mailet/integration-testing/src/test/java/org/apache/james/transport/mailets/StripAttachmentTest.java
index 132b661..f32fb0c 100644
--- a/server/mailet/integration-testing/src/test/java/org/apache/james/transport/mailets/StripAttachmentTest.java
+++ b/server/mailet/integration-testing/src/test/java/org/apache/james/transport/mailets/StripAttachmentTest.java
@@ -111,7 +111,7 @@ public class StripAttachmentTest {
.build())
.build();
- jamesServer = new TemporaryJamesServer(temporaryFolder, mailetContainer);
+ jamesServer = TemporaryJamesServer.builder().build(temporaryFolder, mailetContainer);
Duration slowPacedPollInterval = Duration.FIVE_HUNDRED_MILLISECONDS;
calmlyAwait = Awaitility.with().pollInterval(slowPacedPollInterval).and().with().pollDelay(slowPacedPollInterval).await();
http://git-wip-us.apache.org/repos/asf/james-project/blob/9ad16167/server/protocols/jmap-integration-testing/memory-jmap-integration-testing/src/test/java/org/apache/james/jmap/memory/cucumber/MemoryStepdefs.java
----------------------------------------------------------------------
diff --git a/server/protocols/jmap-integration-testing/memory-jmap-integration-testing/src/test/java/org/apache/james/jmap/memory/cucumber/MemoryStepdefs.java b/server/protocols/jmap-integration-testing/memory-jmap-integration-testing/src/test/java/org/apache/james/jmap/memory/cucumber/MemoryStepdefs.java
index 89d4b87..138b1ed 100644
--- a/server/protocols/jmap-integration-testing/memory-jmap-integration-testing/src/test/java/org/apache/james/jmap/memory/cucumber/MemoryStepdefs.java
+++ b/server/protocols/jmap-integration-testing/memory-jmap-integration-testing/src/test/java/org/apache/james/jmap/memory/cucumber/MemoryStepdefs.java
@@ -52,7 +52,7 @@ public class MemoryStepdefs {
temporaryFolder.create();
mainStepdefs.messageIdFactory = new InMemoryMessageId.Factory();
mainStepdefs.jmapServer = new GuiceJamesServer()
- .combineWith(MemoryJamesServerMain.inMemoryServerModule)
+ .combineWith(MemoryJamesServerMain.inMemoryServerAggregateModule)
.overrideWith(new MemoryJmapServerModule(temporaryFolder),
(binder) -> binder.bind(MessageId.Factory.class).toInstance(mainStepdefs.messageIdFactory))
.overrideWith((binder) -> binder.bind(PersistenceAdapter.class).to(MemoryPersistenceAdapter.class));
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org