Przeglądaj źródła

ZOOKEEPER-1564. Allow JUnit test build with IBM Java (Paulo Ricardo Paz Vital via phunt)

git-svn-id: https://svn.apache.org/repos/asf/zookeeper/trunk@1420021 13f79535-47bb-0310-9956-ffa450edef68
Patrick D. Hunt 12 lat temu
rodzic
commit
6c81ec754e

+ 3 - 0
CHANGES.txt

@@ -405,6 +405,9 @@ IMPROVEMENTS:
 
   ZOOKEEPER-1505. Multi-thread CommitProcessor (Jay Shrauner via phunt)
 
+  ZOOKEEPER-1564. Allow JUnit test build with IBM Java
+    (Paulo Ricardo Paz Vital via phunt)
+
 
 Release 3.4.0 - 
 

+ 7 - 16
src/java/test/org/apache/zookeeper/test/ClientBase.java

@@ -25,8 +25,6 @@ import java.io.ByteArrayOutputStream;
 import java.io.File;
 import java.io.FileInputStream;
 import java.io.IOException;
-import java.lang.management.ManagementFactory;
-import java.lang.management.OperatingSystemMXBean;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.LinkedList;
@@ -54,14 +52,13 @@ import org.apache.zookeeper.server.ZKDatabase;
 import org.apache.zookeeper.server.ZooKeeperServer;
 import org.apache.zookeeper.server.persistence.FileTxnLog;
 import org.apache.zookeeper.server.quorum.QuorumPeer;
+import org.apache.zookeeper.server.util.OSMXBean;
 import org.junit.After;
 import org.junit.Assert;
 import org.junit.Before;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import com.sun.management.UnixOperatingSystemMXBean;
-
 public abstract class ClientBase extends ZKTestCase {
     protected static final Logger LOG = LoggerFactory.getLogger(ClientBase.class);
 
@@ -393,12 +390,9 @@ public abstract class ClientBase extends ZKTestCase {
          * correctly. Unfortunately this only works on unix systems (the
          * only place sun has implemented as part of the mgmt bean api.
          */
-        OperatingSystemMXBean osMbean =
-            ManagementFactory.getOperatingSystemMXBean();
-        if (osMbean != null && osMbean instanceof UnixOperatingSystemMXBean) {
-            UnixOperatingSystemMXBean unixos =
-                (UnixOperatingSystemMXBean)osMbean;
-            initialFdCount = unixos.getOpenFileDescriptorCount();
+        OSMXBean osMbean = new OSMXBean();
+        if (osMbean.getUnix() == true) {
+            initialFdCount = osMbean.getOpenFileDescriptorCount();  	
             LOG.info("Initial fdcount is: "
                     + initialFdCount);
         }
@@ -474,12 +468,9 @@ public abstract class ClientBase extends ZKTestCase {
          * correctly. Unfortunately this only works on unix systems (the
          * only place sun has implemented as part of the mgmt bean api.
          */
-        OperatingSystemMXBean osMbean =
-            ManagementFactory.getOperatingSystemMXBean();
-        if (osMbean != null && osMbean instanceof UnixOperatingSystemMXBean) {
-            UnixOperatingSystemMXBean unixos =
-                (UnixOperatingSystemMXBean)osMbean;
-            long fdCount = unixos.getOpenFileDescriptorCount();
+        OSMXBean osMbean = new OSMXBean();
+        if (osMbean.getUnix() == true) {
+            long fdCount = osMbean.getOpenFileDescriptorCount();     
             String message = "fdcount after test is: "
                     + fdCount + " at start it was " + initialFdCount;
             LOG.info(message);

+ 5 - 13
src/java/test/org/apache/zookeeper/test/ClientTest.java

@@ -19,8 +19,6 @@
 package org.apache.zookeeper.test;
 
 import java.io.IOException;
-import java.lang.management.ManagementFactory;
-import java.lang.management.OperatingSystemMXBean;
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.List;
@@ -43,11 +41,10 @@ import org.apache.zookeeper.data.ACL;
 import org.apache.zookeeper.data.Id;
 import org.apache.zookeeper.data.Stat;
 import org.apache.zookeeper.server.PrepRequestProcessor;
+import org.apache.zookeeper.server.util.OSMXBean;
 import org.junit.Assert;
 import org.junit.Test;
 
-import com.sun.management.UnixOperatingSystemMXBean;
-
 public class ClientTest extends ClientBase {
     protected static final Logger LOG = LoggerFactory.getLogger(ClientTest.class);
 
@@ -707,11 +704,8 @@ public class ClientTest extends ClientBase {
      */
     @Test
     public void testClientCleanup() throws Throwable {
-        OperatingSystemMXBean osMbean =
-            ManagementFactory.getOperatingSystemMXBean();
-        if (osMbean == null 
-                || !(osMbean instanceof UnixOperatingSystemMXBean))
-        {
+        OSMXBean osMbean = new OSMXBean();
+        if (osMbean.getUnix() == false) {
             LOG.warn("skipping testClientCleanup, only available on Unix");
             return;
         }
@@ -724,9 +718,7 @@ public class ClientTest extends ClientBase {
          * on unix systems (the only place sun has implemented as part of the
          * mgmt bean api).
          */
-        UnixOperatingSystemMXBean unixos =
-            (UnixOperatingSystemMXBean) osMbean;
-        long initialFdCount = unixos.getOpenFileDescriptorCount();
+        long initialFdCount = osMbean.getOpenFileDescriptorCount();
 
         VerifyClientCleanup threads[] = new VerifyClientCleanup[threadCount];
 
@@ -742,7 +734,7 @@ public class ClientTest extends ClientBase {
 
         // if this Assert.fails it means we are not cleaning up after the closed
         // sessions.
-        long currentCount = unixos.getOpenFileDescriptorCount();
+        long currentCount = osMbean.getOpenFileDescriptorCount();
         final String logmsg = "open fds after test ({}) are not significantly higher than before ({})";
         
         if (currentCount > initialFdCount + 10) {

+ 7 - 15
src/java/test/org/apache/zookeeper/test/QuorumBase.java

@@ -20,8 +20,6 @@ package org.apache.zookeeper.test;
 
 import java.io.File;
 import java.io.IOException;
-import java.lang.management.ManagementFactory;
-import java.lang.management.OperatingSystemMXBean;
 import java.net.InetSocketAddress;
 import java.util.HashMap;
 import java.util.LinkedHashSet;
@@ -35,10 +33,10 @@ import org.apache.zookeeper.server.quorum.Election;
 import org.apache.zookeeper.server.quorum.QuorumPeer;
 import org.apache.zookeeper.server.quorum.QuorumPeer.LearnerType;
 import org.apache.zookeeper.server.quorum.QuorumPeer.QuorumServer;
+import org.apache.zookeeper.server.util.OSMXBean;
 import org.junit.Assert;
 import org.junit.Test;
 
-import com.sun.management.UnixOperatingSystemMXBean;
 
 public class QuorumBase extends ClientBase {
     private static final Logger LOG = LoggerFactory.getLogger(QuorumBase.class);
@@ -114,13 +112,10 @@ public class QuorumBase extends ClientBase {
 
         startServers(withObservers);
 
-        OperatingSystemMXBean osMbean =
-            ManagementFactory.getOperatingSystemMXBean();
-        if (osMbean != null && osMbean instanceof UnixOperatingSystemMXBean) {
-            UnixOperatingSystemMXBean unixos =
-                (UnixOperatingSystemMXBean)osMbean;
+        OSMXBean osMbean = new OSMXBean();
+        if (osMbean.getUnix() == true) {
             LOG.info("Initial fdcount is: "
-                    + unixos.getOpenFileDescriptorCount());
+                    + osMbean.getOpenFileDescriptorCount());
         }
 
         LOG.info("Setup finished");
@@ -313,13 +308,10 @@ public class QuorumBase extends ClientBase {
     public void tearDown() throws Exception {
         LOG.info("TearDown started");
         
-        OperatingSystemMXBean osMbean =
-            ManagementFactory.getOperatingSystemMXBean();
-        if (osMbean != null && osMbean instanceof UnixOperatingSystemMXBean) {
-            UnixOperatingSystemMXBean unixos =
-                (UnixOperatingSystemMXBean)osMbean;
+        OSMXBean osMbean = new OSMXBean();
+        if (osMbean.getUnix() == true) {
             LOG.info("fdcount after test is: "
-                    + unixos.getOpenFileDescriptorCount());
+                    + osMbean.getOpenFileDescriptorCount());
         }
 
         shutdownServers();

+ 4 - 8
src/java/test/org/apache/zookeeper/test/QuorumUtil.java

@@ -20,8 +20,6 @@ package org.apache.zookeeper.test;
 
 import java.io.File;
 import java.io.IOException;
-import java.lang.management.ManagementFactory;
-import java.lang.management.OperatingSystemMXBean;
 import java.net.InetSocketAddress;
 import java.util.HashMap;
 import java.util.LinkedHashSet;
@@ -35,10 +33,9 @@ import org.apache.zookeeper.server.quorum.Election;
 import org.apache.zookeeper.server.quorum.QuorumPeer;
 import org.apache.zookeeper.server.quorum.QuorumPeer.LearnerType;
 import org.apache.zookeeper.server.quorum.QuorumPeer.QuorumServer;
+import org.apache.zookeeper.server.util.OSMXBean;
 import org.junit.Assert;
 
-import com.sun.management.UnixOperatingSystemMXBean;
-
 /**
  * Utility for quorum testing. Setups 2n+1 peers and allows to start/stop all
  * peers, particular peer, n peers etc.
@@ -248,10 +245,9 @@ public class QuorumUtil {
     public void tearDown() throws Exception {
         LOG.info("TearDown started");
 
-        OperatingSystemMXBean osMbean = ManagementFactory.getOperatingSystemMXBean();
-        if (osMbean != null && osMbean instanceof UnixOperatingSystemMXBean) {
-            UnixOperatingSystemMXBean unixos = (UnixOperatingSystemMXBean) osMbean;
-            LOG.info("fdcount after test is: " + unixos.getOpenFileDescriptorCount());
+        OSMXBean osMbean = new OSMXBean();
+        if (osMbean.getUnix() == true) {    
+            LOG.info("fdcount after test is: " + osMbean.getOpenFileDescriptorCount());
         }
 
         shutdownAll();