package org.gridkit.jvmtool;
import java.lang.management.ManagementFactory;
import javax.management.MalformedObjectNameException;
import javax.management.ObjectName;
import org.junit.Test;
public class MBeanHelperTest {
private ObjectName memoryMXBean() throws MalformedObjectNameException {
return new ObjectName(ManagementFactory.MEMORY_MXBEAN_NAME);
}
private ObjectName osMXBean() throws MalformedObjectNameException {
return new ObjectName(ManagementFactory.OPERATING_SYSTEM_MXBEAN_NAME);
}
private ObjectName threadMXBean() throws MalformedObjectNameException {
return new ObjectName(ManagementFactory.THREAD_MXBEAN_NAME);
}
private ObjectName runtimeMXBean() throws MalformedObjectNameException {
return new ObjectName(ManagementFactory.RUNTIME_MXBEAN_NAME);
}
private ObjectName managementMXBean() throws MalformedObjectNameException {
return new ObjectName("com.sun.management:type=HotSpotDiagnostic");
}
@Test
public void test_thread_bean_describer() throws Exception {
MBeanHelper helper = new MBeanHelper(ManagementFactory.getPlatformMBeanServer());
System.out.println(helper.describe(threadMXBean()));
}
@Test
public void test_os_bean_describer() throws Exception {
MBeanHelper helper = new MBeanHelper(ManagementFactory.getPlatformMBeanServer());
System.out.println(helper.describe(osMXBean()));
}
@Test
public void test_memory_bean_describer() throws Exception {
MBeanHelper helper = new MBeanHelper(ManagementFactory.getPlatformMBeanServer());
System.out.println(helper.describe(memoryMXBean()));
}
@Test
public void test_runtime_bean_describer() throws Exception {
MBeanHelper helper = new MBeanHelper(ManagementFactory.getPlatformMBeanServer());
System.out.println(helper.describe(runtimeMXBean()));
}
@Test
public void test_management_bean_describer() throws Exception {
MBeanHelper helper = new MBeanHelper(ManagementFactory.getPlatformMBeanServer());
System.out.println(helper.describe(managementMXBean()));
}
@Test
public void test_bean_get_set() throws Exception {
MBeanHelper helper = new MBeanHelper(ManagementFactory.getPlatformMBeanServer());
helper.set(threadMXBean(), "ThreadCpuTimeEnabled", "true");
System.out.println("ThreadCpuTimeEnabled: " + helper.get(threadMXBean(), "ThreadAllocatedMemoryEnabled"));
helper.set(threadMXBean(), "ThreadCpuTimeEnabled", "FALSE");
System.out.println("ThreadCpuTimeEnabled: " + helper.get(threadMXBean(), "ThreadAllocatedMemoryEnabled"));
}
@Test(expected=IllegalArgumentException.class)
public void test_bean_invalid_set() throws Exception {
MBeanHelper helper = new MBeanHelper(ManagementFactory.getPlatformMBeanServer());
helper.set(managementMXBean(), "ThreadCpuTimeEnabled", "true");
}
@Test
public void test_get_sys_props() throws Exception {
MBeanHelper helper = new MBeanHelper(ManagementFactory.getPlatformMBeanServer());
System.out.println(helper.get(runtimeMXBean(), "SystemProperties"));
}
@Test
public void test_get_sys_props_wide() throws Exception {
MBeanHelper helper = new MBeanHelper(ManagementFactory.getPlatformMBeanServer());
helper.setFormatingOption(MBeanHelper.FORMAT_TABLE_COLUMN_WIDTH_THRESHOLD, 200);
System.out.println(helper.get(runtimeMXBean(), "SystemProperties"));
}
@Test
public void test_get_mem_heap() throws Exception {
MBeanHelper helper = new MBeanHelper(ManagementFactory.getPlatformMBeanServer());
System.out.println(helper.get(memoryMXBean(), "HeapMemoryUsage"));
}
@Test
public void test_get_thread_dump() throws Exception {
MBeanHelper helper = new MBeanHelper(ManagementFactory.getPlatformMBeanServer());
System.out.println(helper.invoke(threadMXBean(), "dumpAllThreads", "true", "true"));
}
@Test
public void test_find_deadlocked_threads() throws Exception {
MBeanHelper helper = new MBeanHelper(ManagementFactory.getPlatformMBeanServer());
System.out.println(helper.invoke(threadMXBean(), "findMonitorDeadlockedThreads"));
}
}