public DynamicServerInfo getJavaVMStatistics() { HttpSession session = WebContextFactory.get().getSession(true); ManagementHelper helper = PortletManager.getManagementHelper(session); J2EEDomain[] domains = helper.getDomains(); J2EEServer[] servers = domains[0].getServerInstances(); JVM[] jvms = helper.getJavaVMs(servers[0]); long elapsed = System.currentTimeMillis() - jvms[0].getKernelBootTime().getTime(); if(jvms[0].isStatisticsProvider()) { JVMStats stats = (JVMStats) ((StatisticsProvider)jvms[0]).getStats(); BoundedRangeStatistic heap = stats.getHeapSize(); return new DynamicServerInfo(heap.getCurrent(), heap.getHighWaterMark(), heap.getUpperBound(), elapsed); } else { return new DynamicServerInfo(elapsed); } } }