From 7327ed5690108271570b84577a522a960f006e0d Mon Sep 17 00:00:00 2001 From: Bhavesh Mistry Date: Fri, 28 Aug 2020 16:56:39 -0700 Subject: [PATCH 1/2] JDK 11 changes --- pom.xml | 35 ++++++++++--------- .../openjdk/tools/LocalVirtualMachine.java | 34 ++++++++---------- .../java/com/jvmtop/view/VMDetailView.java | 2 +- src/main/wrappers/jvmtop.sh | 24 ++++++++----- 4 files changed, 51 insertions(+), 44 deletions(-) diff --git a/pom.xml b/pom.xml index baf9fec..0f97412 100644 --- a/pom.xml +++ b/pom.xml @@ -6,28 +6,19 @@ com.jvmtop jvmtop - 0.9.0-SNAPSHOT + 1.0.0-SNAPSHOT net.sf.jopt-simple jopt-simple - 4.5 - - - com.sun - tools - ${jdk.version} - system - ${toolsjar} + 5.0.4 - - ${java.home}/../lib/tools.jar - 1.6 + 11 @@ -35,7 +26,7 @@ org.apache.maven.plugins maven-assembly-plugin - 2.4.1 + 3.3.0 jar-with-dependencies @@ -73,16 +64,28 @@ org.apache.maven.plugins maven-compiler-plugin - 3.3 + 3.8.1 ${jdk.version} ${jdk.version} + + --add-exports=java.rmi/sun.rmi.server=ALL-UNNAMED + --add-exports=java.rmi/sun.rmi.transport=ALL-UNNAMED + --add-exports=jdk.internal.jvmstat/sun.jvmstat.monitor=ALL-UNNAMED + --add-exports=java.base/jdk.internal.perf=ALL-UNNAMED + --add-exports=java.management/sun.management.counter.perf=ALL-UNNAMED + --add-exports=java.management/sun.management.counter=ALL-UNNAMED + --add-exports=jdk.management.agent/jdk.internal.agent=ALL-UNNAMED + + + + true org.apache.maven.plugins maven-source-plugin - 2.4 + 3.2.1 attach-sources @@ -91,7 +94,7 @@ - + diff --git a/src/main/java/com/jvmtop/openjdk/tools/LocalVirtualMachine.java b/src/main/java/com/jvmtop/openjdk/tools/LocalVirtualMachine.java index 37749b8..3b30b33 100644 --- a/src/main/java/com/jvmtop/openjdk/tools/LocalVirtualMachine.java +++ b/src/main/java/com/jvmtop/openjdk/tools/LocalVirtualMachine.java @@ -29,6 +29,20 @@ */ package com.jvmtop.openjdk.tools; +import com.sun.tools.attach.AgentInitializationException; +import com.sun.tools.attach.AgentLoadException; +import com.sun.tools.attach.AttachNotSupportedException; +import com.sun.tools.attach.VirtualMachine; +import com.sun.tools.attach.VirtualMachineDescriptor; +import jdk.internal.perf.Perf; +import jdk.internal.agent.ConnectorAddressLink; +import sun.jvmstat.monitor.HostIdentifier; +import sun.jvmstat.monitor.MonitorException; +import sun.jvmstat.monitor.MonitoredHost; +import sun.jvmstat.monitor.MonitoredVm; +import sun.jvmstat.monitor.MonitoredVmUtil; +import sun.jvmstat.monitor.VmIdentifier; + import java.io.File; import java.io.IOException; import java.util.Collections; @@ -37,20 +51,6 @@ import java.util.Map; import java.util.Properties; import java.util.Set; - -import sun.jvmstat.monitor.HostIdentifier; -import sun.jvmstat.monitor.MonitorException; -import sun.jvmstat.monitor.MonitoredHost; -import sun.jvmstat.monitor.MonitoredVm; -import sun.jvmstat.monitor.MonitoredVmUtil; -import sun.jvmstat.monitor.VmIdentifier; -import sun.management.ConnectorAddressLink; - -import com.sun.tools.attach.AgentInitializationException; -import com.sun.tools.attach.AgentLoadException; -import com.sun.tools.attach.AttachNotSupportedException; -import com.sun.tools.attach.VirtualMachine; -import com.sun.tools.attach.VirtualMachineDescriptor; // Sun specific // Sun private @@ -189,11 +189,6 @@ public static Map getNewVirtualMachines( private static void getMonitoredVMs(Map map, Map existingMap) { - //Unsupported on J9 - if (J9Mode) - { - return; - } MonitoredHost host; Set vms; try @@ -227,6 +222,7 @@ private static void getMonitoredVMs(Map map, // use the command line as the display name name = MonitoredVmUtil.commandLine(mvm); attachable = MonitoredVmUtil.isAttachable(mvm); + Perf perf = Perf.getPerf(); address = ConnectorAddressLink.importFrom(pid); mvm.detach(); } diff --git a/src/main/java/com/jvmtop/view/VMDetailView.java b/src/main/java/com/jvmtop/view/VMDetailView.java index 21a40f0..305c9af 100644 --- a/src/main/java/com/jvmtop/view/VMDetailView.java +++ b/src/main/java/com/jvmtop/view/VMDetailView.java @@ -46,7 +46,7 @@ public class VMDetailView extends AbstractConsoleView private boolean sortByTotalCPU_ = false; - private int numberOfDisplayedThreads_ = 10; + private int numberOfDisplayedThreads_ = 100; private int threadNameDisplayWidth_ = 30; diff --git a/src/main/wrappers/jvmtop.sh b/src/main/wrappers/jvmtop.sh index 0f4e98d..787075d 100644 --- a/src/main/wrappers/jvmtop.sh +++ b/src/main/wrappers/jvmtop.sh @@ -1,9 +1,9 @@ #!/bin/sh -# jvmtop - java monitoring for the command-line +# jvmtop - java monitoring for the command-line # launch script # # author: Markus Kolb -# +# DIR=$( cd $(dirname $0) ; pwd -P ) if [ -z "$JAVA_HOME" ] ; then @@ -11,13 +11,21 @@ if [ -z "$JAVA_HOME" ] ; then sed 's/\/bin\/java//'` fi -TOOLSJAR="$JAVA_HOME/lib/tools.jar" +JMX_OPTS="$JMX_OPTS -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=9999" +JMX_OPTS="$JMX_OPTS -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false" -if [ ! -f "$TOOLSJAR" ] ; then - echo "$JAVA_HOME seems to be no JDK!" >&2 - exit 1 -fi +#JAVA_DEBUG_OPTS="-Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=*:9002" +JAVA_MODULES="--add-modules java.se + --add-exports=java.base/jdk.internal.ref=ALL-UNNAMED + --add-exports=jdk.internal.jvmstat/sun.jvmstat.monitor=ALL-UNNAMED + --add-exports=java.base/jdk.internal.perf=ALL-UNNAMED + --add-exports=java.management/sun.management.counter.perf=ALL-UNNAMED + --add-exports=java.management/sun.management.counter=ALL-UNNAMED + --add-exports=jdk.management.agent/jdk.internal.agent=ALL-UNNAMED + --add-opens java.rmi/sun.rmi.server=ALL-UNNAMED + --add-opens java.rmi/sun.rmi.transport=ALL-UNNAMED + --add-opens jdk.management/com.sun.management.internal=ALL-UNNAMED" -"$JAVA_HOME"/bin/java $JAVA_OPTS -cp "$DIR/jvmtop.jar:$TOOLSJAR" \ +"$JAVA_HOME"/bin/java $JMX_OPTS $JAVA_DEBUG_OPTS $JAVA_MODULES $JAVA_OPTS -cp "$DIR/jvmtop.jar" \ com.jvmtop.JvmTop "$@" exit $? From 54620fd9b807c85cc4bffa53eeaaf9f91cda9d71 Mon Sep 17 00:00:00 2001 From: Bhavesh Mistry Date: Mon, 31 Aug 2020 11:19:45 -0700 Subject: [PATCH 2/2] Removed unused code --- src/main/java/com/jvmtop/openjdk/tools/LocalVirtualMachine.java | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/main/java/com/jvmtop/openjdk/tools/LocalVirtualMachine.java b/src/main/java/com/jvmtop/openjdk/tools/LocalVirtualMachine.java index 3b30b33..f9da2d4 100644 --- a/src/main/java/com/jvmtop/openjdk/tools/LocalVirtualMachine.java +++ b/src/main/java/com/jvmtop/openjdk/tools/LocalVirtualMachine.java @@ -34,7 +34,6 @@ import com.sun.tools.attach.AttachNotSupportedException; import com.sun.tools.attach.VirtualMachine; import com.sun.tools.attach.VirtualMachineDescriptor; -import jdk.internal.perf.Perf; import jdk.internal.agent.ConnectorAddressLink; import sun.jvmstat.monitor.HostIdentifier; import sun.jvmstat.monitor.MonitorException; @@ -222,7 +221,6 @@ private static void getMonitoredVMs(Map map, // use the command line as the display name name = MonitoredVmUtil.commandLine(mvm); attachable = MonitoredVmUtil.isAttachable(mvm); - Perf perf = Perf.getPerf(); address = ConnectorAddressLink.importFrom(pid); mvm.detach(); }