package org.etk.kernel.container.monitor.jvm;
import java.lang.management.ManagementFactory;
import java.lang.management.RuntimeMXBean;
import java.util.Date;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import org.etk.kernel.container.xml.ExoProperties;
import org.etk.kernel.container.xml.InitParams;
import org.etk.kernel.container.xml.PropertiesParam;
import org.picocontainer.Startable;
public class JVMRuntimeInfoImpl implements JVMRuntimeInfo, Startable {
private RuntimeMXBean mxbean_;
public JVMRuntimeInfoImpl(InitParams params) throws Exception {
//mxbean_ = ManagementFactory.getRuntimeMXBean();
PropertiesParam param = params.getPropertiesParam("add.system.properties");
if (param != null) {
ExoProperties props = param.getProperties();
Iterator i = props.entrySet().iterator();
while (i.hasNext()) {
Map.Entry entry = (Map.Entry) i.next();
System.setProperty((String) entry.getKey(), (String) entry.getValue());
}
}
}
public String getName() {
return mxbean_.getName();
}
public String getSpecName() {
return mxbean_.getSpecName();
}
public String getSpecVendor() {
return mxbean_.getSpecVendor();
}
public String getSpecVersion() {
return mxbean_.getSpecVersion();
}
public String getManagementSpecVersion() {
return mxbean_.getManagementSpecVersion();
}
public String getVmName() {
return mxbean_.getVmName();
}
public String getVmVendor() {
return mxbean_.getVmVendor();
}
public String getVmVersion() {
return mxbean_.getVmVersion();
}
public List getInputArguments() {
return mxbean_.getInputArguments();
}
public Map getSystemProperties() {
return mxbean_.getSystemProperties();
}
public boolean getBootClassPathSupported() {
return mxbean_.isBootClassPathSupported();
}
public String getBootClassPath() {
return mxbean_.getBootClassPath();
}
public String getClassPath() {
return mxbean_.getClassPath();
}
public String getLibraryPath() {
return mxbean_.getLibraryPath();
}
public long getStartTime() {
return mxbean_.getStartTime();
}
public long getUptime() {
return mxbean_.getUptime();
}
public boolean isManagementSupported() {
return true;
}
public String getSystemPropertiesAsText() {
StringBuffer b = new StringBuffer();
Iterator i = System.getProperties().entrySet().iterator();
while (i.hasNext()) {
Map.Entry entry = (Map.Entry) i.next();
b.append(entry.getKey()).append("=").append(entry.getValue())
.append("\n");
}
return b.toString();
}
public void start() {
}
public void stop() {
}
public String toString() {
StringBuilder b = new StringBuilder();
b.append("Name: ").append(getName()).append("\n");
b.append("Specification Name: ").append(getSpecName()).append("\n");
b.append("Specification Vendor: ").append(getSpecVendor()).append("\n");
b.append("Specification Version: ").append(getSpecVersion()).append("\n");
b.append("Management Spec Version: ").append(getManagementSpecVersion()).append("\n\n");
b.append("Virtual Machine Name: ").append(getVmName()).append("\n");
b.append("Virtual Machine Vendor: ").append(getVmVendor()).append("\n");
b.append("Virtual Machine Version: ").append(getVmVersion()).append("\n\n");
b.append("Input Arguments: ").append(getInputArguments()).append("\n");
b.append("System Properties: ").append(getSystemProperties()).append("\n\n");
b.append("Boot Class Path Support: ").append(getBootClassPathSupported()).append("\n");
b.append("Boot Class Path: ").append(getBootClassPath()).append("\n");
b.append("Class Path: ").append(getClassPath()).append("\n");
b.append("Library Path: ").append(getLibraryPath()).append("\n\n");
b.append("Start Time: ").append(new Date(getStartTime())).append("\n");
b.append("Up Time: ").append(getUptime() / (1000 * 60)).append("min\n");
return b.toString();
}
}