package rocks.inspectit.agent.java.sensor.platform.provider; /** * The management interface for the runtime system of the Java virtual machine. * * @author Eduard Tudenhoefner * */ public interface RuntimeInfoProvider { /** * Returns the name of the Just-in-time (JIT) compiler. * * @return the name of the JIT compiler. */ String getJitCompilerName(); /** * Returns the approximate accumlated elapsed time (in milliseconds) spent in compilation. If * multiple threads are used for compilation, this value is summation of the approximate time * that each thread spent in compilation. * * <p> * This method is optionally supported by the platform. A Java virtual machine implementation * may not support the compilation time monitoring. The * {@link #isCompilationTimeMonitoringSupported} method can be used to determine if the Java * virtual machine supports this operation. * * <p> * This value does not indicate the level of performance of the Java virtual machine and is not * intended for performance comparisons of different virtual machine implementations. The * implementations may have different definitions and different measurements of the compilation * time. * * @return Compilation time in milliseconds */ long getTotalCompilationTime(); /** * Returns the total number of classes that have been loaded since the Java virtual machine has * started execution. * * @return the total number of classes loaded. * */ long getTotalLoadedClassCount(); /** * Returns the number of classes that are currently loaded in the Java virtual machine. * * @return the number of currently loaded classes. */ int getLoadedClassCount(); /** * Returns the total number of classes unloaded since the Java virtual machine has started * execution. * * @return the total number of unloaded classes. */ long getUnloadedClassCount(); /** * Returns the Java virtual machine implementation name. This method is equivalent to * {@link System#getProperty System.getProperty("java.vm.name")}. * * @return the Java virtual machine implementation name. */ String getVmName(); /** * Returns the Java virtual machine implementation vendor. This method is equivalent to * {@link System#getProperty System.getProperty("java.vm.vendor")}. * * @return the Java virtual machine implementation vendor. */ String getVmVendor(); /** * Returns the Java virtual machine implementation version. This method is equivalent to * {@link System#getProperty System.getProperty("java.vm.version")}. * * @return the Java virtual machine implementation version. */ String getVmVersion(); /** * Returns the Java virtual machine specification name. This method is equivalent to * {@link System#getProperty System.getProperty("java.vm.specification.name")}. * * @return the Java virtual machine specification name. */ String getSpecName(); /** * Returns the Java class path that is used by the system class loader to search for class * files. This method is equivalent to {@link System#getProperty * System.getProperty("java.class.path")}. * * <p> * Multiple paths in the Java class path are separated by the path separator character of the * platform of the Java virtual machine being monitored. * * @return the Java class path. */ String getClassPath(); /** * Returns the Java library path. This method is equivalent to {@link System#getProperty * System.getProperty("java.library.path")}. * * <p> * Multiple paths in the Java library path are separated by the path separator character of the * platform of the Java virtual machine being monitored. * * @return the Java library path. */ String getLibraryPath(); /** * Returns the boot class path that is used by the bootstrap class loader to search for class * files. * * <p> * Multiple paths in the boot class path are separated by the path separator character of the * platform on which the Java virtual machine is running. * * <p> * A Java virtual machine implementation may not support the boot class path mechanism for the * bootstrap class loader to search for class files. The {@link #isBootClassPathSupported} * method can be used to determine if the Java virtual machine supports this method. * * @return the boot class path. */ String getBootClassPath(); /** * Returns the uptime of the Java virtual machine in milliseconds. * * @return uptime of the Java virtual machine in milliseconds. */ long getUptime(); }