package com.enonic.cms.web.status.builders; import java.lang.management.ManagementFactory; import java.lang.management.MemoryMXBean; import java.lang.management.MemoryUsage; import org.codehaus.jackson.node.ObjectNode; import org.springframework.stereotype.Component; import com.enonic.cms.web.status.StatusInfoBuilder; @Component public final class MemoryStatusInfoBuilder extends StatusInfoBuilder { public MemoryStatusInfoBuilder() { super( "memory" ); } @Override public void build( final ObjectNode json ) { final MemoryMXBean bean = ManagementFactory.getMemoryMXBean(); build( json.putObject( "heap" ), bean.getHeapMemoryUsage() ); build( json.putObject( "nonHeap" ), bean.getNonHeapMemoryUsage() ); } private void build( final ObjectNode json, final MemoryUsage mem ) { json.put( "init", mem.getInit() ); json.put( "max", mem.getMax() ); json.put( "committed", mem.getCommitted() ); json.put( "used", mem.getUsed() ); } }