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:54 UTC

[james-project] 01/04: JAMES-2754 extract external James configuration

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 6727dada135a6da6e01c1d490ea5da1b7f173a0c
Author: RĂ©mi Kowalski <rk...@linagora.com>
AuthorDate: Thu May 2 14:08:49 2019 +0200

    JAMES-2754 extract external James configuration
---
 .../compilation/java-8/integration_tests.sh        | 12 +++++-
 .../external/james/ExternalJamesModule.java        | 11 +++--
 .../ExternalJamesConfiguration.java}               | 23 +++-------
 ...alJamesConfigurationEnvironnementVariables.java | 50 ++++++++++++++++++++++
 ...ystem.java => ExternalJamesImapHostSystem.java} | 14 ++----
 5 files changed, 77 insertions(+), 33 deletions(-)

diff --git a/dockerfiles/compilation/java-8/integration_tests.sh b/dockerfiles/compilation/java-8/integration_tests.sh
index bfef037..bbe13ed 100755
--- a/dockerfiles/compilation/java-8/integration_tests.sh
+++ b/dockerfiles/compilation/java-8/integration_tests.sh
@@ -5,6 +5,7 @@ printUsage() {
    echo "./integration_tests.sh URL BRANCH JAMES_IP JAMES_IMAP_PORT"
    echo "    JAMES_IP: IP of the James server to be tests"
    echo "    JAMES_IMAP_PORT: Exposed IMAP port of this James server"
+   echo "    JAMES_SMTP_PORT: Exposed SMTP port of this James server"
    echo "    SHA1(optional): Branch to build or master if none"
    exit 1
 }
@@ -26,7 +27,10 @@ do
             JAMES_IMAP_PORT=$2
          fi
          if ! [ -z "$3" ]; then
-            SHA1=$3
+            JAMES_SMTP_PORT=$3
+         fi
+         if ! [ -z "$4" ]; then
+            SHA1=$4
          fi
          ;;
    esac
@@ -42,12 +46,18 @@ if [ -z "$JAMES_IMAP_PORT" ]; then
    printUsage
 fi
 
+if [ -z "JAMES_SMTP_PORT" ]; then
+   echo "You must provide a JAMES_SMTP_PORT"
+   printUsage
+fi
+
 if [ -z "$SHA1" ]; then
    SHA1=master
 fi
 
 export JAMES_ADDRESS=$JAMES_ADDRESS
 export JAMES_IMAP_PORT=$JAMES_IMAP_PORT
+export JAMES_SMTP_PORT=$JAMES_SMTP_PORT
 
 git clone $ORIGIN/.
 git checkout $SHA1
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 0d3f7f1..2daf013 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
@@ -23,7 +23,9 @@ import org.apache.james.mpt.api.HostSystem;
 import org.apache.james.mpt.api.ImapHostSystem;
 import org.apache.james.mpt.api.UserAdder;
 import org.apache.james.mpt.host.ExternalHostSystem;
-import org.apache.james.mpt.imapmailbox.external.james.host.ExternalJamesHostSystem;
+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.ExternalJamesUserAdder;
 
 import com.google.inject.AbstractModule;
@@ -32,9 +34,10 @@ public class ExternalJamesModule extends AbstractModule {
 
     @Override
     protected void configure() {
-        bind(ImapHostSystem.class).to(ExternalJamesHostSystem.class);
-        bind(HostSystem.class).to(ExternalJamesHostSystem.class);
-        bind(ExternalHostSystem.class).to(ExternalJamesHostSystem.class);
+        bind(ExternalJamesConfiguration.class).to(ExternalJamesConfigurationEnvironnementVariables.class);
+        bind(ImapHostSystem.class).to(ExternalJamesImapHostSystem.class);
+        bind(HostSystem.class).to(ExternalJamesImapHostSystem.class);
+        bind(ExternalHostSystem.class).to(ExternalJamesImapHostSystem.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/ExternalJamesModule.java b/mpt/impl/imap-mailbox/external-james/src/test/java/org/apache/james/mpt/imapmailbox/external/james/host/ExternalJamesConfiguration.java
similarity index 58%
copy from mpt/impl/imap-mailbox/external-james/src/test/java/org/apache/james/mpt/imapmailbox/external/james/ExternalJamesModule.java
copy to mpt/impl/imap-mailbox/external-james/src/test/java/org/apache/james/mpt/imapmailbox/external/james/host/ExternalJamesConfiguration.java
index 0d3f7f1..209218b 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/host/ExternalJamesConfiguration.java
@@ -16,26 +16,13 @@
  * specific language governing permissions and limitations      *
  * under the License.                                           *
  ****************************************************************/
+package org.apache.james.mpt.imapmailbox.external.james.host;
 
-package org.apache.james.mpt.imapmailbox.external.james;
+import org.apache.james.util.Port;
 
-import org.apache.james.mpt.api.HostSystem;
-import org.apache.james.mpt.api.ImapHostSystem;
-import org.apache.james.mpt.api.UserAdder;
-import org.apache.james.mpt.host.ExternalHostSystem;
-import org.apache.james.mpt.imapmailbox.external.james.host.ExternalJamesHostSystem;
-import org.apache.james.mpt.imapmailbox.external.james.host.ExternalJamesUserAdder;
+public interface ExternalJamesConfiguration {
+    String getAddress();
 
-import com.google.inject.AbstractModule;
-
-public class ExternalJamesModule extends AbstractModule {
-
-    @Override
-    protected void configure() {
-        bind(ImapHostSystem.class).to(ExternalJamesHostSystem.class);
-        bind(HostSystem.class).to(ExternalJamesHostSystem.class);
-        bind(ExternalHostSystem.class).to(ExternalJamesHostSystem.class);
-        bind(UserAdder.class).to(ExternalJamesUserAdder.class);
-    }
+    Port getImapPort();
 
 }
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
new file mode 100644
index 0000000..5dde686
--- /dev/null
+++ b/mpt/impl/imap-mailbox/external-james/src/test/java/org/apache/james/mpt/imapmailbox/external/james/host/ExternalJamesConfigurationEnvironnementVariables.java
@@ -0,0 +1,50 @@
+/****************************************************************
+ * Licensed to the Apache Software Foundation (ASF) under one   *
+ * or more contributor license agreements.  See the NOTICE file *
+ * distributed with this work for additional information        *
+ * regarding copyright ownership.  The ASF licenses this file   *
+ * to you under the Apache License, Version 2.0 (the            *
+ * "License"); you may not use this file except in compliance   *
+ * with the License.  You may obtain a copy of the License at   *
+ *                                                              *
+ *   http://www.apache.org/licenses/LICENSE-2.0                 *
+ *                                                              *
+ * Unless required by applicable law or agreed to in writing,   *
+ * software distributed under the License is distributed on an  *
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY       *
+ * KIND, either express or implied.  See the License for the    *
+ * specific language governing permissions and limitations      *
+ * under the License.                                           *
+ ****************************************************************/
+package org.apache.james.mpt.imapmailbox.external.james.host;
+
+import org.apache.james.util.Port;
+
+import com.google.common.base.Preconditions;
+
+public class ExternalJamesConfigurationEnvironnementVariables implements ExternalJamesConfiguration {
+
+    private static final String ENV_JAMES_ADDRESS = "JAMES_ADDRESS";
+    private static final String ENV_JAMES_IMAP_PORT = "JAMES_IMAP_PORT";
+
+    private final String address;
+    private final Port imapPort;
+
+    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");
+        this.address = System.getenv(ENV_JAMES_ADDRESS);
+        this.imapPort = Port.of(Integer.parseInt(System.getenv(ENV_JAMES_IMAP_PORT)));
+    }
+
+    @Override
+    public String getAddress() {
+        return address;
+    }
+
+    @Override
+    public Port getImapPort() {
+        return imapPort;
+    }
+
+}
diff --git a/mpt/impl/imap-mailbox/external-james/src/test/java/org/apache/james/mpt/imapmailbox/external/james/host/ExternalJamesHostSystem.java b/mpt/impl/imap-mailbox/external-james/src/test/java/org/apache/james/mpt/imapmailbox/external/james/host/ExternalJamesImapHostSystem.java
similarity index 76%
rename from mpt/impl/imap-mailbox/external-james/src/test/java/org/apache/james/mpt/imapmailbox/external/james/host/ExternalJamesHostSystem.java
rename to mpt/impl/imap-mailbox/external-james/src/test/java/org/apache/james/mpt/imapmailbox/external/james/host/ExternalJamesImapHostSystem.java
index 150a32b..ac75f4c 100644
--- a/mpt/impl/imap-mailbox/external-james/src/test/java/org/apache/james/mpt/imapmailbox/external/james/host/ExternalJamesHostSystem.java
+++ b/mpt/impl/imap-mailbox/external-james/src/test/java/org/apache/james/mpt/imapmailbox/external/james/host/ExternalJamesImapHostSystem.java
@@ -35,23 +35,17 @@ import com.google.inject.Inject;
 import com.google.inject.Singleton;
 
 @Singleton
-public class ExternalJamesHostSystem extends ExternalHostSystem {
-    
-    private static final String ENV_JAMES_ADDRESS = "JAMES_ADDRESS";
-    private static final String ENV_JAMES_IMAP_PORT = "JAMES_IMAP_PORT";
+public class ExternalJamesImapHostSystem extends ExternalHostSystem {
+
     private static final ImapFeatures SUPPORTED_FEATURES = ImapFeatures.of(Feature.NAMESPACE_SUPPORT);
     
     private static final String SHABANG = "* OK IMAP4rev1 Server ready";
     private final Supplier<InetSocketAddress> addressSupplier;
 
     @Inject
-    private ExternalJamesHostSystem(ExternalJamesUserAdder userAdder) {
+    private ExternalJamesImapHostSystem(ExternalJamesUserAdder userAdder, ExternalJamesConfiguration configuration) {
         super(SUPPORTED_FEATURES, new NullMonitor(), SHABANG, userAdder);
-        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");
-        this.addressSupplier = () -> new InetSocketAddress(
-            System.getenv(ENV_JAMES_ADDRESS),
-            Integer.parseInt(System.getenv(ENV_JAMES_IMAP_PORT)));
+        this.addressSupplier = () -> new InetSocketAddress(configuration.getAddress(), configuration.getImapPort().getValue());
     }
 
     @Override


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