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 ro...@apache.org on 2019/05/07 09:34:55 UTC
[james-project] 02/04: JAMES-2754 add smtp host system injection
This is an automated email from the ASF dual-hosted git repository.
rouazana pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/james-project.git
commit 4fbdb515009b69a3de07582152b94fa8ef3ffd40
Author: RĂ©mi Kowalski <rk...@linagora.com>
AuthorDate: Thu May 2 14:24:56 2019 +0200
JAMES-2754 add smtp host system injection
---
mpt/impl/imap-mailbox/external-james/pom.xml | 4 ++++
.../external/james/DeploymentValidation.java | 12 ++++++++----
.../external/james/ExternalJamesModule.java | 3 +++
.../james/JamesDeploymentValidationTest.java | 12 ++++++++++--
.../james/host/ExternalJamesConfiguration.java | 2 ++
...nalJamesConfigurationEnvironnementVariables.java | 8 ++++++++
...ration.java => ExternalJamesSmtpHostSystem.java} | 21 +++++++++++++++++----
...lJamesConfiguration.java => SmtpHostSystem.java} | 8 ++++----
8 files changed, 56 insertions(+), 14 deletions(-)
diff --git a/mpt/impl/imap-mailbox/external-james/pom.xml b/mpt/impl/imap-mailbox/external-james/pom.xml
index 8b2ad6d..10ebda1 100644
--- a/mpt/impl/imap-mailbox/external-james/pom.xml
+++ b/mpt/impl/imap-mailbox/external-james/pom.xml
@@ -41,6 +41,10 @@
</dependency>
<dependency>
<groupId>${james.groupId}</groupId>
+ <artifactId>james-server-testing</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>${james.groupId}</groupId>
<artifactId>metrics-logger</artifactId>
</dependency>
<dependency>
diff --git a/mpt/impl/imap-mailbox/external-james/src/test/java/org/apache/james/mpt/imapmailbox/external/james/DeploymentValidation.java b/mpt/impl/imap-mailbox/external-james/src/test/java/org/apache/james/mpt/imapmailbox/external/james/DeploymentValidation.java
index f949962..f4acc0c 100644
--- a/mpt/impl/imap-mailbox/external-james/src/test/java/org/apache/james/mpt/imapmailbox/external/james/DeploymentValidation.java
+++ b/mpt/impl/imap-mailbox/external-james/src/test/java/org/apache/james/mpt/imapmailbox/external/james/DeploymentValidation.java
@@ -22,6 +22,8 @@ package org.apache.james.mpt.imapmailbox.external.james;
import java.util.Locale;
import org.apache.james.mpt.api.ImapHostSystem;
+import org.apache.james.mpt.imapmailbox.external.james.host.ExternalJamesSmtpHostSystem;
+import org.apache.james.mpt.imapmailbox.external.james.host.SmtpHostSystem;
import org.apache.james.mpt.script.SimpleScriptedTestProtocol;
import org.junit.Before;
import org.junit.Test;
@@ -33,7 +35,9 @@ public abstract class DeploymentValidation {
public static final String PASSWORD = "password";
protected abstract ImapHostSystem createImapHostSystem();
-
+
+ protected abstract SmtpHostSystem createSmtpHostSystem();
+
private ImapHostSystem system;
private SimpleScriptedTestProtocol simpleScriptedTestProtocol;
@@ -41,10 +45,10 @@ public abstract class DeploymentValidation {
public void setUp() throws Exception {
system = createImapHostSystem();
simpleScriptedTestProtocol = new SimpleScriptedTestProtocol("/org/apache/james/imap/scripts/", system)
- .withUser(USER + "@" + DOMAIN, PASSWORD)
- .withLocale(Locale.US);
+ .withUser(USER + "@" + DOMAIN, PASSWORD)
+ .withLocale(Locale.US);
}
-
+
@Test
public void validateDeployment() throws Exception {
simpleScriptedTestProtocol.run("ValidateDeployment");
diff --git a/mpt/impl/imap-mailbox/external-james/src/test/java/org/apache/james/mpt/imapmailbox/external/james/ExternalJamesModule.java b/mpt/impl/imap-mailbox/external-james/src/test/java/org/apache/james/mpt/imapmailbox/external/james/ExternalJamesModule.java
index 2daf013..4b0917f 100644
--- a/mpt/impl/imap-mailbox/external-james/src/test/java/org/apache/james/mpt/imapmailbox/external/james/ExternalJamesModule.java
+++ b/mpt/impl/imap-mailbox/external-james/src/test/java/org/apache/james/mpt/imapmailbox/external/james/ExternalJamesModule.java
@@ -26,7 +26,9 @@ import org.apache.james.mpt.host.ExternalHostSystem;
import org.apache.james.mpt.imapmailbox.external.james.host.ExternalJamesConfiguration;
import org.apache.james.mpt.imapmailbox.external.james.host.ExternalJamesConfigurationEnvironnementVariables;
import org.apache.james.mpt.imapmailbox.external.james.host.ExternalJamesImapHostSystem;
+import org.apache.james.mpt.imapmailbox.external.james.host.ExternalJamesSmtpHostSystem;
import org.apache.james.mpt.imapmailbox.external.james.host.ExternalJamesUserAdder;
+import org.apache.james.mpt.imapmailbox.external.james.host.SmtpHostSystem;
import com.google.inject.AbstractModule;
@@ -38,6 +40,7 @@ public class ExternalJamesModule extends AbstractModule {
bind(ImapHostSystem.class).to(ExternalJamesImapHostSystem.class);
bind(HostSystem.class).to(ExternalJamesImapHostSystem.class);
bind(ExternalHostSystem.class).to(ExternalJamesImapHostSystem.class);
+ bind(SmtpHostSystem.class).to(ExternalJamesSmtpHostSystem.class);
bind(UserAdder.class).to(ExternalJamesUserAdder.class);
}
diff --git a/mpt/impl/imap-mailbox/external-james/src/test/java/org/apache/james/mpt/imapmailbox/external/james/JamesDeploymentValidationTest.java b/mpt/impl/imap-mailbox/external-james/src/test/java/org/apache/james/mpt/imapmailbox/external/james/JamesDeploymentValidationTest.java
index 81394f6..6bc75a9 100644
--- a/mpt/impl/imap-mailbox/external-james/src/test/java/org/apache/james/mpt/imapmailbox/external/james/JamesDeploymentValidationTest.java
+++ b/mpt/impl/imap-mailbox/external-james/src/test/java/org/apache/james/mpt/imapmailbox/external/james/JamesDeploymentValidationTest.java
@@ -20,6 +20,7 @@
package org.apache.james.mpt.imapmailbox.external.james;
import org.apache.james.mpt.api.ImapHostSystem;
+import org.apache.james.mpt.imapmailbox.external.james.host.SmtpHostSystem;
import org.junit.After;
import org.junit.Before;
@@ -29,12 +30,14 @@ import com.google.inject.Injector;
public class JamesDeploymentValidationTest extends DeploymentValidation {
private ImapHostSystem system;
+ private SmtpHostSystem smtpHostSystem;
@Override
@Before
public void setUp() throws Exception {
Injector injector = Guice.createInjector(new ExternalJamesModule());
system = injector.getInstance(ImapHostSystem.class);
+ smtpHostSystem = injector.getInstance(SmtpHostSystem.class);
system.beforeTest();
super.setUp();
}
@@ -43,11 +46,16 @@ public class JamesDeploymentValidationTest extends DeploymentValidation {
protected ImapHostSystem createImapHostSystem() {
return system;
}
-
+
+ @Override
+ protected SmtpHostSystem createSmtpHostSystem() {
+ return smtpHostSystem;
+ }
+
@After
public void tearDown() throws Exception {
system.afterTest();
}
-
+
}
diff --git a/mpt/impl/imap-mailbox/external-james/src/test/java/org/apache/james/mpt/imapmailbox/external/james/host/ExternalJamesConfiguration.java b/mpt/impl/imap-mailbox/external-james/src/test/java/org/apache/james/mpt/imapmailbox/external/james/host/ExternalJamesConfiguration.java
index 209218b..4035615 100644
--- a/mpt/impl/imap-mailbox/external-james/src/test/java/org/apache/james/mpt/imapmailbox/external/james/host/ExternalJamesConfiguration.java
+++ b/mpt/impl/imap-mailbox/external-james/src/test/java/org/apache/james/mpt/imapmailbox/external/james/host/ExternalJamesConfiguration.java
@@ -25,4 +25,6 @@ public interface ExternalJamesConfiguration {
Port getImapPort();
+ Port getSmptPort();
+
}
diff --git a/mpt/impl/imap-mailbox/external-james/src/test/java/org/apache/james/mpt/imapmailbox/external/james/host/ExternalJamesConfigurationEnvironnementVariables.java b/mpt/impl/imap-mailbox/external-james/src/test/java/org/apache/james/mpt/imapmailbox/external/james/host/ExternalJamesConfigurationEnvironnementVariables.java
index 5dde686..20f3b14 100644
--- a/mpt/impl/imap-mailbox/external-james/src/test/java/org/apache/james/mpt/imapmailbox/external/james/host/ExternalJamesConfigurationEnvironnementVariables.java
+++ b/mpt/impl/imap-mailbox/external-james/src/test/java/org/apache/james/mpt/imapmailbox/external/james/host/ExternalJamesConfigurationEnvironnementVariables.java
@@ -26,15 +26,19 @@ public class ExternalJamesConfigurationEnvironnementVariables implements Externa
private static final String ENV_JAMES_ADDRESS = "JAMES_ADDRESS";
private static final String ENV_JAMES_IMAP_PORT = "JAMES_IMAP_PORT";
+ private static final String ENV_JAMES_SMTP_PORT = "JAMES_SMTP_PORT";
private final String address;
private final Port imapPort;
+ private final Port smtpPort;
public ExternalJamesConfigurationEnvironnementVariables() {
Preconditions.checkState(System.getenv(ENV_JAMES_ADDRESS) != null, "You must have exported an environment variable called JAMES_ADDRESS in order to run these tests. For instance export JAMES_ADDRESS=127.0.0.1");
Preconditions.checkState(System.getenv(ENV_JAMES_IMAP_PORT) != null, "You must have exported an environment variable called JAMES_IMAP_PORT in order to run these tests. For instance export JAMES_IMAP_PORT=143");
+ Preconditions.checkState(System.getenv(ENV_JAMES_SMTP_PORT) != null, "You must have exported an environment variable called JAMES_SMTP_PORT in order to run these tests. For instance export JAMES_IMAP_PORT=143");
this.address = System.getenv(ENV_JAMES_ADDRESS);
this.imapPort = Port.of(Integer.parseInt(System.getenv(ENV_JAMES_IMAP_PORT)));
+ this.smtpPort = Port.of(Integer.parseInt(System.getenv(ENV_JAMES_SMTP_PORT)));
}
@Override
@@ -47,4 +51,8 @@ public class ExternalJamesConfigurationEnvironnementVariables implements Externa
return imapPort;
}
+ @Override
+ public Port getSmptPort() {
+ return smtpPort;
+ }
}
diff --git a/mpt/impl/imap-mailbox/external-james/src/test/java/org/apache/james/mpt/imapmailbox/external/james/host/ExternalJamesConfiguration.java b/mpt/impl/imap-mailbox/external-james/src/test/java/org/apache/james/mpt/imapmailbox/external/james/host/ExternalJamesSmtpHostSystem.java
similarity index 65%
copy from mpt/impl/imap-mailbox/external-james/src/test/java/org/apache/james/mpt/imapmailbox/external/james/host/ExternalJamesConfiguration.java
copy to mpt/impl/imap-mailbox/external-james/src/test/java/org/apache/james/mpt/imapmailbox/external/james/host/ExternalJamesSmtpHostSystem.java
index 209218b..d4fdda5 100644
--- a/mpt/impl/imap-mailbox/external-james/src/test/java/org/apache/james/mpt/imapmailbox/external/james/host/ExternalJamesConfiguration.java
+++ b/mpt/impl/imap-mailbox/external-james/src/test/java/org/apache/james/mpt/imapmailbox/external/james/host/ExternalJamesSmtpHostSystem.java
@@ -18,11 +18,24 @@
****************************************************************/
package org.apache.james.mpt.imapmailbox.external.james.host;
-import org.apache.james.util.Port;
+import java.io.IOException;
-public interface ExternalJamesConfiguration {
- String getAddress();
+import org.apache.james.utils.SMTPMessageSender;
- Port getImapPort();
+import com.google.inject.Inject;
+import com.google.inject.Singleton;
+@Singleton
+public class ExternalJamesSmtpHostSystem implements SmtpHostSystem{
+
+ private final ExternalJamesConfiguration configuration;
+
+ @Inject
+ private ExternalJamesSmtpHostSystem(ExternalJamesConfiguration externalConfiguration) {
+ this.configuration = externalConfiguration;
+ }
+
+ public SMTPMessageSender connect(SMTPMessageSender smtpMessageSender) throws IOException {
+ return smtpMessageSender.connect(configuration.getAddress(), configuration.getSmptPort());
+ }
}
diff --git a/mpt/impl/imap-mailbox/external-james/src/test/java/org/apache/james/mpt/imapmailbox/external/james/host/ExternalJamesConfiguration.java b/mpt/impl/imap-mailbox/external-james/src/test/java/org/apache/james/mpt/imapmailbox/external/james/host/SmtpHostSystem.java
similarity index 86%
copy from mpt/impl/imap-mailbox/external-james/src/test/java/org/apache/james/mpt/imapmailbox/external/james/host/ExternalJamesConfiguration.java
copy to mpt/impl/imap-mailbox/external-james/src/test/java/org/apache/james/mpt/imapmailbox/external/james/host/SmtpHostSystem.java
index 209218b..f75ea16 100644
--- a/mpt/impl/imap-mailbox/external-james/src/test/java/org/apache/james/mpt/imapmailbox/external/james/host/ExternalJamesConfiguration.java
+++ b/mpt/impl/imap-mailbox/external-james/src/test/java/org/apache/james/mpt/imapmailbox/external/james/host/SmtpHostSystem.java
@@ -18,11 +18,11 @@
****************************************************************/
package org.apache.james.mpt.imapmailbox.external.james.host;
-import org.apache.james.util.Port;
+import java.io.IOException;
-public interface ExternalJamesConfiguration {
- String getAddress();
+import org.apache.james.utils.SMTPMessageSender;
- Port getImapPort();
+public interface SmtpHostSystem {
+ SMTPMessageSender connect(SMTPMessageSender smtpMessageSender) throws IOException;
}
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org