package com.intrbiz.bergamot.agent.handler; import com.intrbiz.bergamot.agent.BergamotAgent; import com.intrbiz.bergamot.model.message.agent.AgentMessage; import com.intrbiz.bergamot.model.message.agent.check.CheckAgent; import com.intrbiz.bergamot.model.message.agent.error.GeneralError; import com.intrbiz.bergamot.model.message.agent.stat.AgentStat; public class AgentInfoHandler extends AbstractAgentHandler { public AgentInfoHandler() { super(); } @Override public Class<?>[] getMessages() { return new Class[] { CheckAgent.class }; } @Override public AgentMessage handle(AgentMessage request) { try { AgentStat stat = new AgentStat(request); // agent version stat.setAgentVendor(BergamotAgent.AGENT_VENDOR); stat.setAgentProduct(BergamotAgent.AGENT_PRODUCT); stat.setAgentVersion(BergamotAgent.AGENT_VERSION); // runtime info stat.setRuntime("Java"); stat.setRuntimeVendor(System.getProperty("java.vendor")); stat.setRuntimeVersion(System.getProperty("java.version")); // user stat.setUserName(System.getProperty("user.name")); // os stat.setOsName(System.getProperty("os.name")); stat.setOsVersion(System.getProperty("os.version")); stat.setOsArch(System.getProperty("os.arch")); // memory stats Runtime runtime = Runtime.getRuntime(); stat.setProcessors(runtime.availableProcessors()); stat.setFreeMemory(runtime.freeMemory()); stat.setTotalMemory(runtime.totalMemory()); stat.setMaxMemory(runtime.maxMemory()); return stat; } catch (Exception e) { return new GeneralError(e.getMessage()); } } }