JAMES-1982 Provides default values for JMX & unbound sockets
Project: http://git-wip-us.apache.org/repos/asf/james-project/repo Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/4321bcc5 Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/4321bcc5 Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/4321bcc5 Branch: refs/heads/master Commit: 4321bcc58781d57e065da8ea87617bcf2e123160 Parents: f41a3cf Author: benwa <btell...@linagora.com> Authored: Sat Apr 1 10:19:00 2017 +0700 Committer: benwa <btell...@linagora.com> Committed: Mon Apr 3 18:09:32 2017 +0700 ---------------------------------------------------------------------- server/container/guice/jmx/pom.xml | 4 ++++ .../org/apache/james/modules/server/JMXServer.java | 15 ++++++++++----- 2 files changed, 14 insertions(+), 5 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/james-project/blob/4321bcc5/server/container/guice/jmx/pom.xml ---------------------------------------------------------------------- diff --git a/server/container/guice/jmx/pom.xml b/server/container/guice/jmx/pom.xml index 397d0bb..abf5f41 100644 --- a/server/container/guice/jmx/pom.xml +++ b/server/container/guice/jmx/pom.xml @@ -190,6 +190,10 @@ <artifactId>guice-multibindings</artifactId> </dependency> <dependency> + <groupId>com.github.fge</groupId> + <artifactId>throwing-lambdas</artifactId> + </dependency> + <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> </dependency> http://git-wip-us.apache.org/repos/asf/james-project/blob/4321bcc5/server/container/guice/jmx/src/main/java/org/apache/james/modules/server/JMXServer.java ---------------------------------------------------------------------- diff --git a/server/container/guice/jmx/src/main/java/org/apache/james/modules/server/JMXServer.java b/server/container/guice/jmx/src/main/java/org/apache/james/modules/server/JMXServer.java index 4b4e63d..5078629 100644 --- a/server/container/guice/jmx/src/main/java/org/apache/james/modules/server/JMXServer.java +++ b/server/container/guice/jmx/src/main/java/org/apache/james/modules/server/JMXServer.java @@ -19,8 +19,8 @@ package org.apache.james.modules.server; -import java.io.IOException; import java.lang.management.ManagementFactory; +import java.net.ServerSocket; import java.rmi.registry.LocateRegistry; import java.util.HashSet; import java.util.Map; @@ -38,6 +38,7 @@ import org.apache.commons.configuration.PropertiesConfiguration; import org.apache.james.filesystem.api.FileSystem; import org.apache.james.util.RestrictingRMISocketFactory; +import com.github.fge.lambdas.Throwing; import com.google.common.base.Throwables; import com.google.common.collect.ImmutableMap; @@ -48,6 +49,7 @@ public class JMXServer { private final Object lock; private JMXConnectorServer jmxConnectorServer; private boolean isStarted; + private RestrictingRMISocketFactory restrictingRMISocketFactory; @Inject public JMXServer(FileSystem fileSystem) { @@ -88,10 +90,10 @@ public class JMXServer { private void doStart() { try { PropertiesConfiguration configuration = new PropertiesConfiguration(fileSystem.getFile(FileSystem.FILE_PROTOCOL_AND_CONF + "jmx.properties")); - String address = configuration.getString("jmx.address"); - int port = configuration.getInt("jmx.port"); + String address = configuration.getString("jmx.address", "localhost"); + int port = configuration.getInt("jmx.port", 9999); String serviceURL = "service:jmx:rmi://" + address + "/jndi/rmi://" + address+ ":" + port +"/jmxrmi"; - RestrictingRMISocketFactory restrictingRMISocketFactory = new RestrictingRMISocketFactory(address); + restrictingRMISocketFactory = new RestrictingRMISocketFactory(address); LocateRegistry.createRegistry(port, restrictingRMISocketFactory, restrictingRMISocketFactory); Map<String, ?> environment = ImmutableMap.of(); @@ -117,7 +119,10 @@ public class JMXServer { }); registeredKeys.clear(); jmxConnectorServer.stop(); - } catch (IOException e) { + restrictingRMISocketFactory.getSockets() + .forEach(Throwing.consumer(ServerSocket::close) + .sneakyThrow()); + } catch (Exception e) { throw Throwables.propagate(e); } } --------------------------------------------------------------------- To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org