You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@zookeeper.apache.org by rg...@apache.org on 2015/06/30 20:50:11 UTC

svn commit: r1688505 - in /zookeeper/trunk: CHANGES.txt src/docs/src/documentation/content/xdocs/zookeeperAdmin.xml src/java/main/org/apache/zookeeper/server/admin/JettyAdminServer.java

Author: rgs
Date: Tue Jun 30 18:50:11 2015
New Revision: 1688505

URL: http://svn.apache.org/r1688505
Log:
ZOOKEEPER-2221: Zookeeper JettyAdminServer server should start on configured IP
(Surendra Singh Lilhore via rgs)

Modified:
    zookeeper/trunk/CHANGES.txt
    zookeeper/trunk/src/docs/src/documentation/content/xdocs/zookeeperAdmin.xml
    zookeeper/trunk/src/java/main/org/apache/zookeeper/server/admin/JettyAdminServer.java

Modified: zookeeper/trunk/CHANGES.txt
URL: http://svn.apache.org/viewvc/zookeeper/trunk/CHANGES.txt?rev=1688505&r1=1688504&r2=1688505&view=diff
==============================================================================
--- zookeeper/trunk/CHANGES.txt (original)
+++ zookeeper/trunk/CHANGES.txt Tue Jun 30 18:50:11 2015
@@ -140,6 +140,9 @@ BUGFIXES:
   ZOOKEEPER-2193: reconfig command completes even if parameter is wrong obviously
   (Yasuhito Fukuda via rgs)
 
+  ZOOKEEPER-2221: Zookeeper JettyAdminServer server should start on configured IP
+  (Surendra Singh Lilhore via rgs)
+
 IMPROVEMENTS:
   ZOOKEEPER-1660 Documentation for Dynamic Reconfiguration (Reed Wanderman-Milne via shralex)  
 

Modified: zookeeper/trunk/src/docs/src/documentation/content/xdocs/zookeeperAdmin.xml
URL: http://svn.apache.org/viewvc/zookeeper/trunk/src/docs/src/documentation/content/xdocs/zookeeperAdmin.xml?rev=1688505&r1=1688504&r2=1688505&view=diff
==============================================================================
--- zookeeper/trunk/src/docs/src/documentation/content/xdocs/zookeeperAdmin.xml (original)
+++ zookeeper/trunk/src/docs/src/documentation/content/xdocs/zookeeperAdmin.xml Tue Jun 30 18:50:11 2015
@@ -1474,6 +1474,17 @@ server.3=zoo3:2888:3888</programlisting>
           </varlistentry>
 
           <varlistentry>
+            <term>admin.serverAddress</term>
+
+            <listitem>
+              <para>(Java system property: <emphasis
+              role="bold">zookeeper.admin.serverAddress</emphasis>)</para>
+
+              <para>The address the embedded Jetty server listens on. Defaults to 0.0.0.0.</para>
+            </listitem>
+          </varlistentry>
+
+          <varlistentry>
             <term>admin.serverPort</term>
 
             <listitem>

Modified: zookeeper/trunk/src/java/main/org/apache/zookeeper/server/admin/JettyAdminServer.java
URL: http://svn.apache.org/viewvc/zookeeper/trunk/src/java/main/org/apache/zookeeper/server/admin/JettyAdminServer.java?rev=1688505&r1=1688504&r2=1688505&view=diff
==============================================================================
--- zookeeper/trunk/src/java/main/org/apache/zookeeper/server/admin/JettyAdminServer.java (original)
+++ zookeeper/trunk/src/java/main/org/apache/zookeeper/server/admin/JettyAdminServer.java Tue Jun 30 18:50:11 2015
@@ -32,6 +32,7 @@ import javax.servlet.http.HttpServletRes
 
 import org.apache.zookeeper.server.ZooKeeperServer;
 import org.mortbay.jetty.Server;
+import org.mortbay.jetty.nio.SelectChannelConnector;
 import org.mortbay.jetty.servlet.Context;
 import org.mortbay.jetty.servlet.ServletHolder;
 import org.slf4j.Logger;
@@ -54,26 +55,36 @@ public class JettyAdminServer implements
     static final Logger LOG = LoggerFactory.getLogger(JettyAdminServer.class);
 
     public static final int DEFAULT_PORT = 8080;
+    private static final String DEFAULT_ADDRESS = "0.0.0.0";
     public static final String DEFAULT_COMMAND_URL = "/commands";
 
     private final Server server;
     private ZooKeeperServer zkServer;
     private final int port;
+    private String address;
     private final String commandUrl;
 
     public JettyAdminServer() throws AdminServerException {
-        this(Integer.getInteger("zookeeper.admin.serverPort", DEFAULT_PORT),
-             System.getProperty("zookeeper.admin.commandURL", DEFAULT_COMMAND_URL));
+        this(System.getProperty("zookeeper.admin.serverAddress",
+                DEFAULT_ADDRESS), Integer.getInteger(
+                "zookeeper.admin.serverPort", DEFAULT_PORT), System
+                .getProperty("zookeeper.admin.commandURL", DEFAULT_COMMAND_URL));
     }
 
-    public JettyAdminServer(int port, String commandUrl) {
+    public JettyAdminServer(String address, int port, String commandUrl) {
         this.port = port;
         this.commandUrl = commandUrl;
+        this.address = address;
 
-        server = new Server(port);
+        server = new Server();
+        SelectChannelConnector connector = new SelectChannelConnector();
+        connector.setHost(address);
+        connector.setPort(port);
+        server.addConnector(connector);
         Context context = new Context(server, "/");
         server.setHandler(context);
-        context.addServlet(new ServletHolder(new CommandServlet()), commandUrl + "/*");
+        context.addServlet(new ServletHolder(new CommandServlet()), commandUrl
+                + "/*");
     }
 
     /**
@@ -86,12 +97,13 @@ public class JettyAdminServer implements
         } catch (Exception e) {
             // Server.start() only throws Exception, so let's at least wrap it
             // in an identifiable subclass
-            throw new AdminServerException(
-                    String.format("Problem starting AdminServer on port %d, command URL %s",
-                                  port, commandUrl), e);
+            throw new AdminServerException(String.format(
+                    "Problem starting AdminServer on address %s,"
+                            + " port %d and command URL %s", address, port,
+                    commandUrl), e);
         }
-        LOG.info(String.format("Started AdminServer on port %d, command URL %s",
-                               port, commandUrl));
+        LOG.info(String.format("Started AdminServer on address %s, port %d"
+                + " and command URL %s", address, port, commandUrl));
     }
 
     /**
@@ -106,9 +118,10 @@ public class JettyAdminServer implements
         try {
             server.stop();
         } catch (Exception e) {
-            throw new AdminServerException(
-                    String.format("Problem stopping AdminServer on port %d, command URL %s",
-                                  port, commandUrl), e);
+            throw new AdminServerException(String.format(
+                    "Problem stopping AdminServer on address %s,"
+                            + " port %d and command URL %s", address, port, commandUrl),
+                    e);
         }
     }