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

Reply via email to