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