Repository: james-project
Updated Branches:
  refs/heads/master a43fbd41b -> e8b94d178


JAMES-1958 Rely on this configuration object to start WebAdmin 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/da41f83e
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/da41f83e
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/da41f83e

Branch: refs/heads/master
Commit: da41f83ee2d33942c4090ab2b7c0ee104c26e8bd
Parents: 6ae498a
Author: benwa <btell...@linagora.com>
Authored: Wed Mar 8 14:25:58 2017 +0700
Committer: benwa <btell...@linagora.com>
Committed: Wed Mar 15 09:01:52 2017 +0700

----------------------------------------------------------------------
 .../modules/server/WebAdminServerModule.java    | 29 ++++++++------------
 .../WebAdminConfigurationModule.java            | 19 ++++---------
 .../apache/james/webadmin/WebAdminServer.java   | 27 ++++++++----------
 3 files changed, 29 insertions(+), 46 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/da41f83e/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 a9aed5c..8495797 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
@@ -20,21 +20,20 @@
 package org.apache.james.modules.server;
 
 import static org.apache.james.webadmin.WebAdminServer.NO_CONFIGURATION;
-import static org.apache.james.webadmin.WebAdminServer.WEBADMIN_ENABLED;
-import static org.apache.james.webadmin.WebAdminServer.WEBADMIN_PORT;
 
 import java.io.FileNotFoundException;
 import java.util.List;
 
 import org.apache.commons.configuration.ConfigurationException;
+import org.apache.commons.configuration.PropertiesConfiguration;
 import org.apache.james.lifecycle.api.Configurable;
 import org.apache.james.utils.ConfigurationPerformer;
 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.Port;
 import org.apache.james.webadmin.Routes;
+import org.apache.james.webadmin.WebAdminConfiguration;
 import org.apache.james.webadmin.WebAdminServer;
 import org.apache.james.webadmin.routes.DomainRoutes;
 import org.apache.james.webadmin.routes.UserMailboxesRoutes;
@@ -49,7 +48,6 @@ import com.google.inject.Provides;
 import com.google.inject.Scopes;
 import com.google.inject.Singleton;
 import com.google.inject.multibindings.Multibinder;
-import com.google.inject.name.Named;
 
 public class WebAdminServerModule extends AbstractModule {
 
@@ -68,22 +66,17 @@ public class WebAdminServerModule extends AbstractModule {
     }
 
     @Provides
-    @Named(WEBADMIN_PORT)
-    public Port provideWebAdminPort(PropertiesProvider propertiesProvider) 
throws Exception {
+    public WebAdminConfiguration 
provideWebAdminConfiguration(PropertiesProvider propertiesProvider) throws 
Exception {
         try {
-            return new 
FixedPort(propertiesProvider.getConfiguration("webadmin").getInt("port", 
WebAdminServer.DEFAULT_PORT));
+            PropertiesConfiguration configurationFile = 
propertiesProvider.getConfiguration("webadmin");
+            return WebAdminConfiguration.builder()
+                .enable(configurationFile.getBoolean("enabled", false))
+                .port(new FixedPort(configurationFile.getInt("port", 
WebAdminServer.DEFAULT_PORT)))
+                .build();
         } catch (FileNotFoundException e) {
-            return new FixedPort(WebAdminServer.DEFAULT_PORT);
-        }
-    }
-
-    @Provides
-    @Named(WEBADMIN_ENABLED)
-    public boolean provideWebAdminEnabled(PropertiesProvider 
propertiesProvider) throws Exception {
-        try {
-            return 
propertiesProvider.getConfiguration("webadmin").getBoolean("enabled", false);
-        } catch (FileNotFoundException e) {
-            return false;
+            return WebAdminConfiguration.builder()
+                .disabled()
+                .build();
         }
     }
 

http://git-wip-us.apache.org/repos/asf/james-project/blob/da41f83e/server/protocols/webadmin-integration-test/src/test/java/org/apache/james/webadmin/integration/WebAdminConfigurationModule.java
----------------------------------------------------------------------
diff --git 
a/server/protocols/webadmin-integration-test/src/test/java/org/apache/james/webadmin/integration/WebAdminConfigurationModule.java
 
b/server/protocols/webadmin-integration-test/src/test/java/org/apache/james/webadmin/integration/WebAdminConfigurationModule.java
index f8728dd..d7ccc6d 100644
--- 
a/server/protocols/webadmin-integration-test/src/test/java/org/apache/james/webadmin/integration/WebAdminConfigurationModule.java
+++ 
b/server/protocols/webadmin-integration-test/src/test/java/org/apache/james/webadmin/integration/WebAdminConfigurationModule.java
@@ -19,15 +19,11 @@
 
 package org.apache.james.webadmin.integration;
 
-import static org.apache.james.webadmin.WebAdminServer.WEBADMIN_ENABLED;
-import static org.apache.james.webadmin.WebAdminServer.WEBADMIN_PORT;
-
-import org.apache.james.webadmin.Port;
 import org.apache.james.webadmin.RandomPort;
+import org.apache.james.webadmin.WebAdminConfiguration;
 
 import com.google.inject.AbstractModule;
 import com.google.inject.Provides;
-import com.google.inject.name.Named;
 
 public class WebAdminConfigurationModule extends AbstractModule {
 
@@ -37,14 +33,11 @@ public class WebAdminConfigurationModule extends 
AbstractModule {
     }
 
     @Provides
-    @Named(WEBADMIN_PORT)
-    public Port provideWebAdminPort() throws Exception {
-        return new RandomPort();
+    public WebAdminConfiguration provideWebAdminConfiguration() throws 
Exception {
+        return WebAdminConfiguration.builder()
+            .enabled()
+            .port(new RandomPort())
+            .build();
     }
 
-    @Provides
-    @Named(WEBADMIN_ENABLED)
-    public boolean provideWebAdminEnabled() throws Exception {
-        return true;
-    }
 }

http://git-wip-us.apache.org/repos/asf/james-project/blob/da41f83e/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 b777917..c70f318 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
@@ -24,7 +24,6 @@ import java.util.Set;
 
 import javax.annotation.PreDestroy;
 import javax.inject.Inject;
-import javax.inject.Named;
 
 import org.apache.commons.configuration.ConfigurationException;
 import org.apache.commons.configuration.HierarchicalConfiguration;
@@ -41,35 +40,33 @@ public class WebAdminServer implements Configurable {
 
     private static final Logger LOGGER = 
LoggerFactory.getLogger(WebAdminServer.class);
     public static final HierarchicalConfiguration NO_CONFIGURATION = null;
-    public static final String WEBADMIN_PORT = "webadmin_port";
-    public static final String WEBADMIN_ENABLED = "webadmin_enabled";
     public static final int DEFAULT_PORT = 8080;
 
-    private final Port port;
+    private final WebAdminConfiguration configuration;
     private final Set<Routes> routesList;
-    private final boolean enabled;
     private final Service service;
 
     // Spark do not allow to retrieve allocated port when using a random port. 
Thus we generate the port.
-
-
     @Inject
-    private WebAdminServer(@Named(WEBADMIN_ENABLED) boolean enabled, 
@Named(WEBADMIN_PORT)Port port, Set<Routes> routesList) {
-        this.port = port;
+    private WebAdminServer(WebAdminConfiguration configuration, Set<Routes> 
routesList) {
+        this.configuration = configuration;
         this.routesList = routesList;
-        this.enabled = enabled;
         this.service = Service.ignite();
     }
 
     @VisibleForTesting
     public WebAdminServer(Routes... routes) throws IOException {
-        this(true, new RandomPort(), ImmutableSet.copyOf(routes));
+        this(WebAdminConfiguration.builder()
+            .enabled()
+            .port(new RandomPort())
+            .build(),
+            ImmutableSet.copyOf(routes));
     }
 
     @Override
     public void configure(HierarchicalConfiguration config) throws 
ConfigurationException {
-        if (enabled) {
-            service.port(port.toInt());
+        if (configuration.isEnabled()) {
+            service.port(configuration.getPort().toInt());
             routesList.forEach(routes -> routes.define(service));
             LOGGER.info("Web admin server started");
         }
@@ -77,7 +74,7 @@ public class WebAdminServer implements Configurable {
 
     @PreDestroy
     public void destroy() {
-        if (enabled) {
+        if (configuration.isEnabled()) {
             service.stop();
             LOGGER.info("Web admin server stopped");
         }
@@ -88,6 +85,6 @@ public class WebAdminServer implements Configurable {
     }
 
     public Port getPort() {
-        return port;
+        return configuration.getPort();
     }
 }


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