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/12/07 06:26:28 UTC
svn commit: r1718255 - in /zookeeper/trunk: ./
src/java/main/org/apache/zookeeper/server/
src/java/test/org/apache/zookeeper/server/
Author: rgs
Date: Mon Dec 7 05:26:27 2015
New Revision: 1718255
URL: http://svn.apache.org/viewvc?rev=1718255&view=rev
Log:
ZOOKEEPER-2300: Expose SecureClientPort and SecureClientAddress JMX properties
(Arshad Mohammad via rgs)
Added:
zookeeper/trunk/src/java/test/org/apache/zookeeper/server/ZooKeeperServerBeanTest.java
Modified:
zookeeper/trunk/CHANGES.txt
zookeeper/trunk/src/java/main/org/apache/zookeeper/server/ZooKeeperServerBean.java
zookeeper/trunk/src/java/main/org/apache/zookeeper/server/ZooKeeperServerMXBean.java
Modified: zookeeper/trunk/CHANGES.txt
URL: http://svn.apache.org/viewvc/zookeeper/trunk/CHANGES.txt?rev=1718255&r1=1718254&r2=1718255&view=diff
==============================================================================
--- zookeeper/trunk/CHANGES.txt (original)
+++ zookeeper/trunk/CHANGES.txt Mon Dec 7 05:26:27 2015
@@ -339,6 +339,9 @@ IMPROVEMENTS:
ZOOKEEPER-2306: Remove file delete duplicate code from test code
(Arshad Mohammad via rgs)
+ ZOOKEEPER-2300: Expose SecureClientPort and SecureClientAddress JMX properties
+ (Arshad Mohammad via rgs)
+
Release 3.5.0 - 8/4/2014
NEW FEATURES:
Modified: zookeeper/trunk/src/java/main/org/apache/zookeeper/server/ZooKeeperServerBean.java
URL: http://svn.apache.org/viewvc/zookeeper/trunk/src/java/main/org/apache/zookeeper/server/ZooKeeperServerBean.java?rev=1718255&r1=1718254&r2=1718255&view=diff
==============================================================================
--- zookeeper/trunk/src/java/main/org/apache/zookeeper/server/ZooKeeperServerBean.java (original)
+++ zookeeper/trunk/src/java/main/org/apache/zookeeper/server/ZooKeeperServerBean.java Mon Dec 7 05:26:27 2015
@@ -144,4 +144,22 @@ public class ZooKeeperServerBean impleme
public long getNumAliveConnections() {
return zks.getNumAliveConnections();
}
+
+ @Override
+ public String getSecureClientPort() {
+ if (zks.secureServerCnxnFactory != null) {
+ return Integer.toString(zks.secureServerCnxnFactory.getLocalPort());
+ }
+ return "";
+ }
+
+ @Override
+ public String getSecureClientAddress() {
+ if (zks.secureServerCnxnFactory != null) {
+ return String.format("%s:%d", zks.secureServerCnxnFactory
+ .getLocalAddress().getHostString(),
+ zks.secureServerCnxnFactory.getLocalPort());
+ }
+ return "";
+ }
}
Modified: zookeeper/trunk/src/java/main/org/apache/zookeeper/server/ZooKeeperServerMXBean.java
URL: http://svn.apache.org/viewvc/zookeeper/trunk/src/java/main/org/apache/zookeeper/server/ZooKeeperServerMXBean.java?rev=1718255&r1=1718254&r2=1718255&view=diff
==============================================================================
--- zookeeper/trunk/src/java/main/org/apache/zookeeper/server/ZooKeeperServerMXBean.java (original)
+++ zookeeper/trunk/src/java/main/org/apache/zookeeper/server/ZooKeeperServerMXBean.java Mon Dec 7 05:26:27 2015
@@ -116,4 +116,13 @@ public interface ZooKeeperServerMXBean {
* @return estimated size of log directory in bytes
*/
public long getLogDirSize();
+
+ /**
+ * @return secure client port
+ */
+ public String getSecureClientPort();
+ /**
+ * @return secure client address
+ */
+ public String getSecureClientAddress();
}
Added: zookeeper/trunk/src/java/test/org/apache/zookeeper/server/ZooKeeperServerBeanTest.java
URL: http://svn.apache.org/viewvc/zookeeper/trunk/src/java/test/org/apache/zookeeper/server/ZooKeeperServerBeanTest.java?rev=1718255&view=auto
==============================================================================
--- zookeeper/trunk/src/java/test/org/apache/zookeeper/server/ZooKeeperServerBeanTest.java (added)
+++ zookeeper/trunk/src/java/test/org/apache/zookeeper/server/ZooKeeperServerBeanTest.java Mon Dec 7 05:26:27 2015
@@ -0,0 +1,102 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.zookeeper.server;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
+
+import java.io.IOException;
+import java.net.InetSocketAddress;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+
+public class ZooKeeperServerBeanTest {
+ @Before
+ public void setup() {
+ System.setProperty(ServerCnxnFactory.ZOOKEEPER_SERVER_CNXN_FACTORY,
+ "org.apache.zookeeper.server.NettyServerCnxnFactory");
+ }
+
+ @After
+ public void teardown() throws Exception {
+ System.clearProperty(ServerCnxnFactory.ZOOKEEPER_SERVER_CNXN_FACTORY);
+ }
+
+ @Test
+ public void testGetSecureClientPort() throws IOException {
+ ZooKeeperServer zks = new ZooKeeperServer();
+ /**
+ * case 1: When secure client is not configured GetSecureClientPort
+ * should return empty string
+ */
+ ZooKeeperServerBean serverBean = new ZooKeeperServerBean(zks);
+ String result = serverBean.getSecureClientPort();
+ assertEquals("", result);
+
+ /**
+ * case 2: When secure client is configured GetSecureClientPort should
+ * return configured port
+ */
+
+ ServerCnxnFactory cnxnFactory = ServerCnxnFactory.createFactory();
+ int secureClientPort = 8443;
+ InetSocketAddress address = new InetSocketAddress(secureClientPort);
+ cnxnFactory.configure(address, 5, true);
+ zks.setSecureServerCnxnFactory(cnxnFactory);
+
+ result = serverBean.getSecureClientPort();
+ assertEquals(Integer.toString(secureClientPort), result);
+
+ // cleanup
+ cnxnFactory.shutdown();
+
+ }
+
+ @Test
+ public void testGetSecureClientAddress() throws IOException {
+ ZooKeeperServer zks = new ZooKeeperServer();
+ /**
+ * case 1: When secure client is not configured getSecureClientAddress
+ * should return empty string
+ */
+ ZooKeeperServerBean serverBean = new ZooKeeperServerBean(zks);
+ String result = serverBean.getSecureClientPort();
+ assertEquals("", result);
+
+ /**
+ * case 2: When secure client is configured getSecureClientAddress
+ * should return configured SecureClientAddress
+ */
+
+ ServerCnxnFactory cnxnFactory = ServerCnxnFactory.createFactory();
+ int secureClientPort = 8443;
+ InetSocketAddress address = new InetSocketAddress(secureClientPort);
+ cnxnFactory.configure(address, 5, true);
+ zks.setSecureServerCnxnFactory(cnxnFactory);
+
+ result = serverBean.getSecureClientAddress();
+ String ipv4 = "0.0.0.0:" + secureClientPort;
+ String ipv6 = "0:0:0:0:0:0:0:0:" + secureClientPort;
+ assertTrue(result.equals(ipv4) || result.equals(ipv6));
+
+ // cleanup
+ cnxnFactory.shutdown();
+ }
+
+}