JAMES-1958 Rename HttpsConfiguration to TlsConfiguration

Project: http://git-wip-us.apache.org/repos/asf/james-project/repo
Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/9db1633a
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/9db1633a
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/9db1633a

Branch: refs/heads/master
Commit: 9db1633a54787945706da2a4b3edd746f4757f74
Parents: 642be79
Author: benwa <btell...@linagora.com>
Authored: Mon Mar 13 17:31:26 2017 +0700
Committer: benwa <btell...@linagora.com>
Committed: Wed Mar 15 09:02:31 2017 +0700

----------------------------------------------------------------------
 .../modules/server/WebAdminServerModule.java    |   8 +-
 .../james/webadmin/HttpsConfiguration.java      | 148 -------------------
 .../apache/james/webadmin/TlsConfiguration.java | 148 +++++++++++++++++++
 .../james/webadmin/WebAdminConfiguration.java   |  22 +--
 .../apache/james/webadmin/WebAdminServer.java   |  16 +-
 .../james/webadmin/HttpsConfigurationTest.java  | 101 -------------
 .../james/webadmin/TlsConfigurationTest.java    | 101 +++++++++++++
 .../webadmin/WebAdminConfigurationTest.java     |  16 +-
 8 files changed, 278 insertions(+), 282 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/9db1633a/server/container/guice/protocols/webadmin/src/main/java/org/apache/james/modules/server/WebAdminServerModule.java
----------------------------------------------------------------------
diff --git 
a/server/container/guice/protocols/webadmin/src/main/java/org/apache/james/modules/server/WebAdminServerModule.java
 
b/server/container/guice/protocols/webadmin/src/main/java/org/apache/james/modules/server/WebAdminServerModule.java
index c100dcb..431d0d5 100644
--- 
a/server/container/guice/protocols/webadmin/src/main/java/org/apache/james/modules/server/WebAdminServerModule.java
+++ 
b/server/container/guice/protocols/webadmin/src/main/java/org/apache/james/modules/server/WebAdminServerModule.java
@@ -33,7 +33,7 @@ import org.apache.james.utils.GuiceProbe;
 import org.apache.james.utils.PropertiesProvider;
 import org.apache.james.utils.WebAdminGuiceProbe;
 import org.apache.james.webadmin.FixedPort;
-import org.apache.james.webadmin.HttpsConfiguration;
+import org.apache.james.webadmin.TlsConfiguration;
 import org.apache.james.webadmin.Routes;
 import org.apache.james.webadmin.WebAdminConfiguration;
 import org.apache.james.webadmin.WebAdminServer;
@@ -112,10 +112,10 @@ public class WebAdminServerModule extends AbstractModule {
         }
     }
 
-    private HttpsConfiguration readHttpsConfiguration(PropertiesConfiguration 
configurationFile) {
+    private TlsConfiguration readHttpsConfiguration(PropertiesConfiguration 
configurationFile) {
         boolean enabled = configurationFile.getBoolean("https.enabled", 
DEFAULT_HTTPS_DISABLED);
         if (enabled) {
-            return HttpsConfiguration.builder()
+            return TlsConfiguration.builder()
                 .enabled()
                 .raw(configurationFile.getString("https.keystore", 
DEFAULT_NO_KEYSTORE),
                     configurationFile.getString("https.password", 
DEFAULT_NO_PASSWORD),
@@ -123,7 +123,7 @@ public class WebAdminServerModule extends AbstractModule {
                     configurationFile.getString("https.trust.password", 
DEFAULT_NO_TRUST_PASSWORD))
                 .build();
         }
-        return HttpsConfiguration.builder()
+        return TlsConfiguration.builder()
             .disabled()
             .build();
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/9db1633a/server/protocols/webadmin/src/main/java/org/apache/james/webadmin/HttpsConfiguration.java
----------------------------------------------------------------------
diff --git 
a/server/protocols/webadmin/src/main/java/org/apache/james/webadmin/HttpsConfiguration.java
 
b/server/protocols/webadmin/src/main/java/org/apache/james/webadmin/HttpsConfiguration.java
deleted file mode 100644
index 3c6a49e..0000000
--- 
a/server/protocols/webadmin/src/main/java/org/apache/james/webadmin/HttpsConfiguration.java
+++ /dev/null
@@ -1,148 +0,0 @@
-/****************************************************************
- * 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.webadmin;
-
-import java.util.Objects;
-import java.util.Optional;
-
-import com.google.common.annotations.VisibleForTesting;
-import com.google.common.base.Preconditions;
-
-public class HttpsConfiguration {
-
-    public static Builder builder() {
-        return new Builder();
-    }
-
-    public static class Builder {
-        private Optional<Boolean> enabled = Optional.empty();
-        private String keystoreFilePath;
-        private String keystorePassword;
-        private String truststoreFilePath;
-        private String truststorePassword;
-
-        public Builder enable(boolean isEnabled) {
-            this.enabled = Optional.of(isEnabled);
-            return this;
-        }
-
-        public Builder enabled() {
-            return enable(true);
-        }
-
-        public Builder disabled() {
-            return enable(false);
-        }
-
-        public Builder raw(String keystoreFilePath,
-                           String keystorePassword,
-                           String truststoreFilePath,
-                           String truststorePassword){
-            Preconditions.checkNotNull(keystoreFilePath);
-            Preconditions.checkNotNull(keystorePassword);
-
-            this.keystoreFilePath = keystoreFilePath;
-            this.keystorePassword = keystorePassword;
-            this.truststoreFilePath = truststoreFilePath;
-            this.truststorePassword = truststorePassword;
-            return this;
-        }
-
-        public Builder selfSigned(String keystoreFilePath, String 
keystorePassword){
-            Preconditions.checkNotNull(keystoreFilePath);
-            Preconditions.checkNotNull(keystorePassword);
-
-            this.enabled = Optional.of(true);
-            this.keystoreFilePath = keystoreFilePath;
-            this.keystorePassword = keystorePassword;
-            return this;
-        }
-
-        public HttpsConfiguration build() {
-            Preconditions.checkState(enabled.isPresent(), "You need to specify 
if https is enabled");
-            Preconditions.checkState(!enabled.get() || 
hasKeystoreInformation(), "If enabled, you need to provide keystore 
information");
-            Preconditions.checkState(optionalHasTrustStoreInformation(), "You 
need to provide both information about trustStore");
-            return new HttpsConfiguration(enabled.get(), keystoreFilePath, 
keystorePassword, truststoreFilePath, truststorePassword);
-        }
-
-        private boolean optionalHasTrustStoreInformation() {
-            return (truststoreFilePath == null) == (truststorePassword == 
null);
-        }
-
-        private boolean hasKeystoreInformation() {
-            return keystorePassword != null && keystoreFilePath != null;
-        }
-
-    }
-
-    private final boolean enabled;
-    private final String keystoreFilePath;
-    private final String keystorePassword;
-    private final String truststoreFilePath;
-    private final String truststorePassword;
-
-    @VisibleForTesting
-    HttpsConfiguration(boolean enabled, String keystoreFilePath, String 
keystorePassword, String truststoreFilePath, String truststorePassword) {
-        this.enabled = enabled;
-        this.keystoreFilePath = keystoreFilePath;
-        this.keystorePassword = keystorePassword;
-        this.truststoreFilePath = truststoreFilePath;
-        this.truststorePassword = truststorePassword;
-    }
-
-    public boolean isEnabled() {
-        return enabled;
-    }
-
-    public String getKeystoreFilePath() {
-        return keystoreFilePath;
-    }
-
-    public String getKeystorePassword() {
-        return keystorePassword;
-    }
-
-    public String getTruststoreFilePath() {
-        return truststoreFilePath;
-    }
-
-    public String getTruststorePassword() {
-        return truststorePassword;
-    }
-
-    @Override
-    public final boolean equals(Object o) {
-       if (o instanceof HttpsConfiguration) {
-           HttpsConfiguration that = (HttpsConfiguration) o;
-
-           return Objects.equals(this.enabled, that.enabled)
-               && Objects.equals(this.keystoreFilePath, that.keystoreFilePath)
-               && Objects.equals(this.keystorePassword, that.keystorePassword)
-               && Objects.equals(this.truststoreFilePath, 
that.truststoreFilePath)
-               && Objects.equals(this.truststorePassword, 
that.truststorePassword);
-       }
-       return false;
-    }
-
-    @Override
-    public final int hashCode() {
-        return Objects.hash(enabled, keystoreFilePath, keystorePassword, 
truststoreFilePath, truststorePassword);
-    }
-}

http://git-wip-us.apache.org/repos/asf/james-project/blob/9db1633a/server/protocols/webadmin/src/main/java/org/apache/james/webadmin/TlsConfiguration.java
----------------------------------------------------------------------
diff --git 
a/server/protocols/webadmin/src/main/java/org/apache/james/webadmin/TlsConfiguration.java
 
b/server/protocols/webadmin/src/main/java/org/apache/james/webadmin/TlsConfiguration.java
new file mode 100644
index 0000000..78cc209
--- /dev/null
+++ 
b/server/protocols/webadmin/src/main/java/org/apache/james/webadmin/TlsConfiguration.java
@@ -0,0 +1,148 @@
+/****************************************************************
+ * 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.webadmin;
+
+import java.util.Objects;
+import java.util.Optional;
+
+import com.google.common.annotations.VisibleForTesting;
+import com.google.common.base.Preconditions;
+
+public class TlsConfiguration {
+
+    public static Builder builder() {
+        return new Builder();
+    }
+
+    public static class Builder {
+        private Optional<Boolean> enabled = Optional.empty();
+        private String keystoreFilePath;
+        private String keystorePassword;
+        private String truststoreFilePath;
+        private String truststorePassword;
+
+        public Builder enable(boolean isEnabled) {
+            this.enabled = Optional.of(isEnabled);
+            return this;
+        }
+
+        public Builder enabled() {
+            return enable(true);
+        }
+
+        public Builder disabled() {
+            return enable(false);
+        }
+
+        public Builder raw(String keystoreFilePath,
+                           String keystorePassword,
+                           String truststoreFilePath,
+                           String truststorePassword){
+            Preconditions.checkNotNull(keystoreFilePath);
+            Preconditions.checkNotNull(keystorePassword);
+
+            this.keystoreFilePath = keystoreFilePath;
+            this.keystorePassword = keystorePassword;
+            this.truststoreFilePath = truststoreFilePath;
+            this.truststorePassword = truststorePassword;
+            return this;
+        }
+
+        public Builder selfSigned(String keystoreFilePath, String 
keystorePassword){
+            Preconditions.checkNotNull(keystoreFilePath);
+            Preconditions.checkNotNull(keystorePassword);
+
+            this.enabled = Optional.of(true);
+            this.keystoreFilePath = keystoreFilePath;
+            this.keystorePassword = keystorePassword;
+            return this;
+        }
+
+        public TlsConfiguration build() {
+            Preconditions.checkState(enabled.isPresent(), "You need to specify 
if https is enabled");
+            Preconditions.checkState(!enabled.get() || 
hasKeystoreInformation(), "If enabled, you need to provide keystore 
information");
+            Preconditions.checkState(optionalHasTrustStoreInformation(), "You 
need to provide both information about trustStore");
+            return new TlsConfiguration(enabled.get(), keystoreFilePath, 
keystorePassword, truststoreFilePath, truststorePassword);
+        }
+
+        private boolean optionalHasTrustStoreInformation() {
+            return (truststoreFilePath == null) == (truststorePassword == 
null);
+        }
+
+        private boolean hasKeystoreInformation() {
+            return keystorePassword != null && keystoreFilePath != null;
+        }
+
+    }
+
+    private final boolean enabled;
+    private final String keystoreFilePath;
+    private final String keystorePassword;
+    private final String truststoreFilePath;
+    private final String truststorePassword;
+
+    @VisibleForTesting
+    TlsConfiguration(boolean enabled, String keystoreFilePath, String 
keystorePassword, String truststoreFilePath, String truststorePassword) {
+        this.enabled = enabled;
+        this.keystoreFilePath = keystoreFilePath;
+        this.keystorePassword = keystorePassword;
+        this.truststoreFilePath = truststoreFilePath;
+        this.truststorePassword = truststorePassword;
+    }
+
+    public boolean isEnabled() {
+        return enabled;
+    }
+
+    public String getKeystoreFilePath() {
+        return keystoreFilePath;
+    }
+
+    public String getKeystorePassword() {
+        return keystorePassword;
+    }
+
+    public String getTruststoreFilePath() {
+        return truststoreFilePath;
+    }
+
+    public String getTruststorePassword() {
+        return truststorePassword;
+    }
+
+    @Override
+    public final boolean equals(Object o) {
+       if (o instanceof TlsConfiguration) {
+           TlsConfiguration that = (TlsConfiguration) o;
+
+           return Objects.equals(this.enabled, that.enabled)
+               && Objects.equals(this.keystoreFilePath, that.keystoreFilePath)
+               && Objects.equals(this.keystorePassword, that.keystorePassword)
+               && Objects.equals(this.truststoreFilePath, 
that.truststoreFilePath)
+               && Objects.equals(this.truststorePassword, 
that.truststorePassword);
+       }
+       return false;
+    }
+
+    @Override
+    public final int hashCode() {
+        return Objects.hash(enabled, keystoreFilePath, keystorePassword, 
truststoreFilePath, truststorePassword);
+    }
+}

http://git-wip-us.apache.org/repos/asf/james-project/blob/9db1633a/server/protocols/webadmin/src/main/java/org/apache/james/webadmin/WebAdminConfiguration.java
----------------------------------------------------------------------
diff --git 
a/server/protocols/webadmin/src/main/java/org/apache/james/webadmin/WebAdminConfiguration.java
 
b/server/protocols/webadmin/src/main/java/org/apache/james/webadmin/WebAdminConfiguration.java
index c87589b..339b213 100644
--- 
a/server/protocols/webadmin/src/main/java/org/apache/james/webadmin/WebAdminConfiguration.java
+++ 
b/server/protocols/webadmin/src/main/java/org/apache/james/webadmin/WebAdminConfiguration.java
@@ -39,11 +39,11 @@ public class WebAdminConfiguration {
         private Optional<Boolean> enabled = Optional.empty();
         private Port port;
         private Optional<Boolean> enableCORS = Optional.empty();
-        private Optional<HttpsConfiguration> httpsConfiguration = 
Optional.empty();
+        private Optional<TlsConfiguration> httpsConfiguration = 
Optional.empty();
         private Optional<String> urlCORSOrigin = Optional.empty();
 
-        public Builder https(HttpsConfiguration httpsConfiguration) {
-            this.httpsConfiguration = Optional.of(httpsConfiguration);
+        public Builder https(TlsConfiguration tlsConfiguration) {
+            this.httpsConfiguration = Optional.of(tlsConfiguration);
             return this;
         }
 
@@ -88,7 +88,7 @@ public class WebAdminConfiguration {
             return new WebAdminConfiguration(enabled.get(),
                 port,
                 httpsConfiguration.orElse(
-                    HttpsConfiguration.builder()
+                    TlsConfiguration.builder()
                         .disabled()
                         .build()),
                 enableCORS.orElse(DEFAULT_CORS_DISABLED),
@@ -98,15 +98,15 @@ public class WebAdminConfiguration {
 
     private final boolean enabled;
     private final Port port;
-    private final HttpsConfiguration httpsConfiguration;
+    private final TlsConfiguration tlsConfiguration;
     private final boolean enableCORS;
     private final String urlCORSOrigin;
 
     @VisibleForTesting
-    WebAdminConfiguration(boolean enabled, Port port, HttpsConfiguration 
httpsConfiguration, boolean enableCORS, String urlCORSOrigin) {
+    WebAdminConfiguration(boolean enabled, Port port, TlsConfiguration 
tlsConfiguration, boolean enableCORS, String urlCORSOrigin) {
         this.enabled = enabled;
         this.port = port;
-        this.httpsConfiguration = httpsConfiguration;
+        this.tlsConfiguration = tlsConfiguration;
         this.enableCORS = enableCORS;
         this.urlCORSOrigin = urlCORSOrigin;
     }
@@ -123,8 +123,8 @@ public class WebAdminConfiguration {
         return port;
     }
 
-    public HttpsConfiguration getHttpsConfiguration() {
-        return httpsConfiguration;
+    public TlsConfiguration getTlsConfiguration() {
+        return tlsConfiguration;
     }
 
     public boolean isEnableCORS() {
@@ -138,7 +138,7 @@ public class WebAdminConfiguration {
 
             return Objects.equals(this.enabled, that.enabled)
                 && Objects.equals(this.port, that.port)
-                && Objects.equals(this.httpsConfiguration, 
that.httpsConfiguration)
+                && Objects.equals(this.tlsConfiguration, that.tlsConfiguration)
                 && Objects.equals(this.enableCORS, that.enableCORS)
                 && Objects.equals(this.urlCORSOrigin, that.urlCORSOrigin);
         }
@@ -147,6 +147,6 @@ public class WebAdminConfiguration {
 
     @Override
     public final int hashCode() {
-        return Objects.hash(enabled, port, httpsConfiguration, enableCORS, 
urlCORSOrigin);
+        return Objects.hash(enabled, port, tlsConfiguration, enableCORS, 
urlCORSOrigin);
     }
 }

http://git-wip-us.apache.org/repos/asf/james-project/blob/9db1633a/server/protocols/webadmin/src/main/java/org/apache/james/webadmin/WebAdminServer.java
----------------------------------------------------------------------
diff --git 
a/server/protocols/webadmin/src/main/java/org/apache/james/webadmin/WebAdminServer.java
 
b/server/protocols/webadmin/src/main/java/org/apache/james/webadmin/WebAdminServer.java
index e3fb368..e2144bf 100644
--- 
a/server/protocols/webadmin/src/main/java/org/apache/james/webadmin/WebAdminServer.java
+++ 
b/server/protocols/webadmin/src/main/java/org/apache/james/webadmin/WebAdminServer.java
@@ -29,7 +29,6 @@ import 
org.apache.commons.configuration.ConfigurationException;
 import org.apache.commons.configuration.HierarchicalConfiguration;
 import org.apache.james.lifecycle.api.Configurable;
 import org.apache.james.metrics.api.MetricFactory;
-import org.apache.james.metrics.api.NoopMetricFactory;
 import org.apache.james.webadmin.authentication.AuthenticationFilter;
 import org.apache.james.webadmin.authentication.NoAuthenticationFilter;
 import org.apache.james.webadmin.metric.MetricPostFilter;
@@ -41,9 +40,6 @@ import org.slf4j.LoggerFactory;
 import com.google.common.annotations.VisibleForTesting;
 import com.google.common.collect.ImmutableSet;
 
-import spark.Filter;
-import spark.Request;
-import spark.Response;
 import spark.Service;
 
 public class WebAdminServer implements Configurable {
@@ -99,12 +95,12 @@ public class WebAdminServer implements Configurable {
     }
 
     private void configureHTTPS() {
-        HttpsConfiguration httpsConfiguration = 
configuration.getHttpsConfiguration();
-        if (httpsConfiguration.isEnabled()) {
-            service.secure(httpsConfiguration.getKeystoreFilePath(),
-                httpsConfiguration.getKeystorePassword(),
-                httpsConfiguration.getTruststoreFilePath(),
-                httpsConfiguration.getTruststorePassword());
+        TlsConfiguration tlsConfiguration = 
configuration.getTlsConfiguration();
+        if (tlsConfiguration.isEnabled()) {
+            service.secure(tlsConfiguration.getKeystoreFilePath(),
+                tlsConfiguration.getKeystorePassword(),
+                tlsConfiguration.getTruststoreFilePath(),
+                tlsConfiguration.getTruststorePassword());
             LOGGER.info("Web admin set up to use HTTPS");
         }
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/9db1633a/server/protocols/webadmin/src/test/java/org/apache/james/webadmin/HttpsConfigurationTest.java
----------------------------------------------------------------------
diff --git 
a/server/protocols/webadmin/src/test/java/org/apache/james/webadmin/HttpsConfigurationTest.java
 
b/server/protocols/webadmin/src/test/java/org/apache/james/webadmin/HttpsConfigurationTest.java
deleted file mode 100644
index 0d69cbe..0000000
--- 
a/server/protocols/webadmin/src/test/java/org/apache/james/webadmin/HttpsConfigurationTest.java
+++ /dev/null
@@ -1,101 +0,0 @@
-/****************************************************************
- * 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.webadmin;
-
-import static org.assertj.core.api.Assertions.assertThat;
-
-import org.junit.Rule;
-import org.junit.Test;
-import org.junit.rules.ExpectedException;
-
-import nl.jqno.equalsverifier.EqualsVerifier;
-
-public class HttpsConfigurationTest {
-
-    @Rule
-    public ExpectedException expectedException = ExpectedException.none();
-
-    @Test
-    public void buildShouldThrowWhenNotEnabled() {
-        expectedException.expect(IllegalStateException.class);
-
-        HttpsConfiguration.builder().build();
-    }
-
-    @Test
-    public void buildShouldThrowWhenEnableWithoutKeystore() {
-        expectedException.expect(IllegalStateException.class);
-
-        HttpsConfiguration.builder().enabled().build();
-    }
-
-    @Test
-    public void selfSignedShouldThrowOnNullKeyStorePath() {
-        expectedException.expect(NullPointerException.class);
-
-        HttpsConfiguration.builder()
-            .enabled()
-            .selfSigned(null, "abc");
-    }
-
-    @Test
-    public void selfSignedShouldThrowOnNullKeyStorePassword() {
-        expectedException.expect(NullPointerException.class);
-
-        HttpsConfiguration.builder()
-            .enabled()
-            .selfSigned("abc", null);
-    }
-
-    @Test
-    public void buildShouldWorkOnDisabledHttps() {
-        assertThat(
-            HttpsConfiguration.builder()
-                .disabled()
-                .build())
-            .isEqualTo(new HttpsConfiguration(false, null, null, null, null));
-    }
-
-    @Test
-    public void buildShouldWorkOnSelfSignedHttps() {
-        assertThat(
-            HttpsConfiguration.builder()
-                .enabled()
-                .selfSigned("abcd", "efgh")
-                .build())
-            .isEqualTo(new HttpsConfiguration(true, "abcd", "efgh", null, 
null));
-    }
-
-    @Test
-    public void buildShouldWorkOnTrustedHttps() {
-        assertThat(
-            HttpsConfiguration.builder()
-                .enabled()
-                .raw("a", "b", "c", "d")
-                .build())
-            .isEqualTo(new HttpsConfiguration(true, "a", "b", "c", "d"));
-    }
-
-    @Test
-    public void shouldRespectBeanContract() {
-        EqualsVerifier.forClass(HttpsConfiguration.class).verify();
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/james-project/blob/9db1633a/server/protocols/webadmin/src/test/java/org/apache/james/webadmin/TlsConfigurationTest.java
----------------------------------------------------------------------
diff --git 
a/server/protocols/webadmin/src/test/java/org/apache/james/webadmin/TlsConfigurationTest.java
 
b/server/protocols/webadmin/src/test/java/org/apache/james/webadmin/TlsConfigurationTest.java
new file mode 100644
index 0000000..c21ddb7
--- /dev/null
+++ 
b/server/protocols/webadmin/src/test/java/org/apache/james/webadmin/TlsConfigurationTest.java
@@ -0,0 +1,101 @@
+/****************************************************************
+ * 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.webadmin;
+
+import static org.assertj.core.api.Assertions.assertThat;
+
+import org.junit.Rule;
+import org.junit.Test;
+import org.junit.rules.ExpectedException;
+
+import nl.jqno.equalsverifier.EqualsVerifier;
+
+public class TlsConfigurationTest {
+
+    @Rule
+    public ExpectedException expectedException = ExpectedException.none();
+
+    @Test
+    public void buildShouldThrowWhenNotEnabled() {
+        expectedException.expect(IllegalStateException.class);
+
+        TlsConfiguration.builder().build();
+    }
+
+    @Test
+    public void buildShouldThrowWhenEnableWithoutKeystore() {
+        expectedException.expect(IllegalStateException.class);
+
+        TlsConfiguration.builder().enabled().build();
+    }
+
+    @Test
+    public void selfSignedShouldThrowOnNullKeyStorePath() {
+        expectedException.expect(NullPointerException.class);
+
+        TlsConfiguration.builder()
+            .enabled()
+            .selfSigned(null, "abc");
+    }
+
+    @Test
+    public void selfSignedShouldThrowOnNullKeyStorePassword() {
+        expectedException.expect(NullPointerException.class);
+
+        TlsConfiguration.builder()
+            .enabled()
+            .selfSigned("abc", null);
+    }
+
+    @Test
+    public void buildShouldWorkOnDisabledHttps() {
+        assertThat(
+            TlsConfiguration.builder()
+                .disabled()
+                .build())
+            .isEqualTo(new TlsConfiguration(false, null, null, null, null));
+    }
+
+    @Test
+    public void buildShouldWorkOnSelfSignedHttps() {
+        assertThat(
+            TlsConfiguration.builder()
+                .enabled()
+                .selfSigned("abcd", "efgh")
+                .build())
+            .isEqualTo(new TlsConfiguration(true, "abcd", "efgh", null, null));
+    }
+
+    @Test
+    public void buildShouldWorkOnTrustedHttps() {
+        assertThat(
+            TlsConfiguration.builder()
+                .enabled()
+                .raw("a", "b", "c", "d")
+                .build())
+            .isEqualTo(new TlsConfiguration(true, "a", "b", "c", "d"));
+    }
+
+    @Test
+    public void shouldRespectBeanContract() {
+        EqualsVerifier.forClass(TlsConfiguration.class).verify();
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/james-project/blob/9db1633a/server/protocols/webadmin/src/test/java/org/apache/james/webadmin/WebAdminConfigurationTest.java
----------------------------------------------------------------------
diff --git 
a/server/protocols/webadmin/src/test/java/org/apache/james/webadmin/WebAdminConfigurationTest.java
 
b/server/protocols/webadmin/src/test/java/org/apache/james/webadmin/WebAdminConfigurationTest.java
index 4606e94..48df15e 100644
--- 
a/server/protocols/webadmin/src/test/java/org/apache/james/webadmin/WebAdminConfigurationTest.java
+++ 
b/server/protocols/webadmin/src/test/java/org/apache/james/webadmin/WebAdminConfigurationTest.java
@@ -48,7 +48,7 @@ public class WebAdminConfigurationTest {
             .build())
             .isEqualTo(new WebAdminConfiguration(false,
                 null,
-                HttpsConfiguration.builder().disabled().build(),
+                TlsConfiguration.builder().disabled().build(),
                 false,
                 "*"));
     }
@@ -70,14 +70,14 @@ public class WebAdminConfigurationTest {
             .isEqualTo(new WebAdminConfiguration(
                 true,
                 PORT,
-                HttpsConfiguration.builder().disabled().build(),
+                TlsConfiguration.builder().disabled().build(),
                 false,
                 "*"));
     }
 
     @Test
     public void builderShouldAcceptHttps() {
-        HttpsConfiguration httpsConfiguration = HttpsConfiguration.builder()
+        TlsConfiguration tlsConfiguration = TlsConfiguration.builder()
             .enable(true)
             .selfSigned("abcd", "efgh")
             .build();
@@ -85,13 +85,13 @@ public class WebAdminConfigurationTest {
         assertThat(
             WebAdminConfiguration.builder()
                 .enabled()
-                .https(httpsConfiguration)
+                .https(tlsConfiguration)
                 .port(PORT)
                 .build())
             .isEqualTo(new WebAdminConfiguration(
                 true,
                 PORT,
-                httpsConfiguration,
+                tlsConfiguration,
                 false,
                 "*"));
     }
@@ -107,7 +107,7 @@ public class WebAdminConfigurationTest {
             .isEqualTo(new WebAdminConfiguration(
                 true,
                 PORT,
-                HttpsConfiguration.builder().disabled().build(),
+                TlsConfiguration.builder().disabled().build(),
                 true,
                 "*"));
     }
@@ -123,7 +123,7 @@ public class WebAdminConfigurationTest {
             .isEqualTo(new WebAdminConfiguration(
                 true,
                 PORT,
-                HttpsConfiguration.builder().disabled().build(),
+                TlsConfiguration.builder().disabled().build(),
                 false,
                 "*"));
     }
@@ -141,7 +141,7 @@ public class WebAdminConfigurationTest {
             .isEqualTo(new WebAdminConfiguration(
                 true,
                 PORT,
-                HttpsConfiguration.builder().disabled().build(),
+                TlsConfiguration.builder().disabled().build(),
                 true,
                 origin));
     }


---------------------------------------------------------------------
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