jdk/src/jdk.jvmstat/share/classes/sun/jvmstat/monitor/MonitoredVmUtil.java
changeset 43716 d5fb222e6151
parent 43332 88688213d2e3
parent 43537 fe3858b549c8
child 43717 303ca4a590e7
--- a/jdk/src/jdk.jvmstat/share/classes/sun/jvmstat/monitor/MonitoredVmUtil.java	Mon Jan 30 09:09:34 2017 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,189 +0,0 @@
-/*
- * Copyright (c) 2004, 2011, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.  Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package sun.jvmstat.monitor;
-
-/**
- * Utility class proving concenience methods for extracting various
- * information from an MonitoredVm object.
- *
- * @author Brian Doherty
- * @since 1.5
- */
-public class MonitoredVmUtil {
-
-    /**
-     * Private constructor - prevent instantiation.
-     */
-    private MonitoredVmUtil() { }
-
-    /**
-     * Return the Java Virtual Machine Version.
-     *
-     * @param vm the target MonitoredVm
-     * @return String - contains the version of the target JVM or the
-     *                  the string "Unknown" if the version cannot be
-     *                  determined.
-     */
-    public static String vmVersion(MonitoredVm vm) throws MonitorException {
-        StringMonitor ver =
-               (StringMonitor)vm.findByName("java.property.java.vm.version");
-        return (ver == null) ? "Unknown" : ver.stringValue();
-    }
-
-    /**
-     * Return the command line for the target Java application.
-     *
-     * @param vm the target MonitoredVm
-     * @return String - contains the command line of the target Java
-     *                  application or the string "Unknown" if the
-     *                  command line cannot be determined.
-     */
-    public static String commandLine(MonitoredVm vm) throws MonitorException {
-        StringMonitor cmd = (StringMonitor)vm.findByName("sun.rt.javaCommand");
-        return (cmd == null) ? "Unknown" : cmd.stringValue();
-    }
-
-    /**
-     * Return the arguments to the main class for the target Java application.
-     * Returns the arguments to the main class. If the arguments can't be
-     * found, the string "Unknown" is returned.
-     *
-     * @param vm the target MonitoredVm
-     * @return String - contains the arguments to the main class for the
-     *                  target Java application or the string "Unknown"
-     *                  if the command line cannot be determined.
-     */
-    public static String mainArgs(MonitoredVm vm) throws MonitorException {
-        String commandLine = commandLine(vm);
-
-        int firstSpace = commandLine.indexOf(' ');
-        if (firstSpace > 0) {
-            return commandLine.substring(firstSpace + 1);
-        } else if (commandLine.compareTo("Unknown") == 0) {
-            return commandLine;
-        } else {
-            return null;
-        }
-    }
-
-    /**
-     * Return the main class for the target Java application.
-     * Returns the main class or the name of the jar file if the application
-     * was started with the <em>-jar</em> option.
-     *
-     * @param vm the target MonitoredVm
-     * @param fullPath include the full path to Jar file, where applicable
-     * @return String - contains the main class of the target Java
-     *                  application or the string "Unknown" if the
-     *                  command line cannot be determined.
-     */
-    public static String mainClass(MonitoredVm vm, boolean fullPath)
-                         throws MonitorException {
-        String cmdLine = commandLine(vm);
-        int firstSpace = cmdLine.indexOf(' ');
-        if (firstSpace > 0) {
-            cmdLine = cmdLine.substring(0, firstSpace);
-        }
-        if (fullPath) {
-            return cmdLine;
-        }
-        /*
-         * Can't use File.separator() here because the separator for the target
-         * jvm may be different than the separator for the monitoring jvm.
-         * And we also strip embedded module e.g. "module/MainClass"
-         */
-        int lastSlash = cmdLine.lastIndexOf("/");
-        int lastBackslash = cmdLine.lastIndexOf("\\");
-        int lastSeparator = lastSlash > lastBackslash ? lastSlash : lastBackslash;
-        if (lastSeparator > 0) {
-            cmdLine = cmdLine.substring(lastSeparator + 1);
-        }
-
-        int lastPackageSeparator = cmdLine.lastIndexOf('.');
-        if (lastPackageSeparator > 0) {
-            String lastPart = cmdLine.substring(lastPackageSeparator + 1);
-            /*
-             * We could have a relative path "my.module" or
-             * a module called "my.module" and a jar file called "my.jar" or
-             * class named "jar" in package "my", e.g. "my.jar".
-             * We can never be sure here, but we assume *.jar is a jar file
-             */
-            if (lastPart.equals("jar")) {
-                return cmdLine; /* presumably a file name without path */
-            }
-            return lastPart; /* presumably a class name without package */
-        }
-
-        return cmdLine;
-    }
-
-    /**
-     * Return the JVM arguments for the target Java application.
-     *
-     * @param vm the target MonitoredVm
-     * @return String - contains the arguments passed to the JVM for the
-     *                  target Java application or the string "Unknown"
-     *                  if the command line cannot be determined.
-     */
-    public static String jvmArgs(MonitoredVm vm) throws MonitorException {
-        StringMonitor jvmArgs = (StringMonitor)vm.findByName("java.rt.vmArgs");
-        return (jvmArgs == null) ? "Unknown" : jvmArgs.stringValue();
-    }
-
-    /**
-     * Return the JVM flags for the target Java application.
-     *
-     * @param vm the target MonitoredVm
-     * @return String - contains the flags passed to the JVM for the
-     *                  target Java application or the string "Unknown"
-     *                  if the command line cannot be determined.
-     */
-    public static String jvmFlags(MonitoredVm vm) throws MonitorException {
-        StringMonitor jvmFlags =
-               (StringMonitor)vm.findByName("java.rt.vmFlags");
-        return (jvmFlags == null) ? "Unknown" : jvmFlags.stringValue();
-    }
-
-    // Index of the sun.rt.jvmCapabilities counter
-    private static int IS_ATTACHABLE = 0;
-    private static int IS_KERNEL_VM  = 1;
-
-    /**
-     * Returns true if the VM supports attach-on-demand.
-     *
-     * @param vm the target MonitoredVm
-     */
-    public static boolean isAttachable(MonitoredVm vm) throws MonitorException {
-        StringMonitor jvmCapabilities =
-               (StringMonitor)vm.findByName("sun.rt.jvmCapabilities");
-        if (jvmCapabilities == null) {
-             return false;
-        } else {
-             return jvmCapabilities.stringValue().charAt(IS_ATTACHABLE) == '1';
-        }
-    }
-
-}