package rfx.server.http.data.service; import java.util.ArrayList; import java.util.Date; import java.util.Enumeration; import java.util.List; import java.util.Properties; import rfx.server.http.data.DataServiceConfig; import rfx.server.monitor.util.MemoryWatcher; @DataServiceConfig(template = "system/server-info") public class ServerInfoService extends WebDataService { static final String classpath = ServerInfoService.class.getName(); String time; List<Info> infos = new ArrayList<>(); String filter; boolean showAll; boolean showCompact; String memoryStats; String rfxServerVersion = "1.0"; static class Info { String data; int order; public Info(String data, int order) { setData(data); setOrder(order); } public void setData(String data) { this.data = data; } public String getData() { return data; } public int getOrder() { return order; } public void setOrder(int order) { this.order = order; } @Override public String toString() { // TODO Auto-generated method stub return data; } } public ServerInfoService(String filter) { this.filter = filter; } public String getTime() { return time; } public void setTime(String time) { this.time = time; } public List<Info> getInfos() { return infos; } public void setInfos(List<Info> infos) { this.infos = infos; } public String getFilter() { return filter; } public void setFilter(String filter) { this.filter = filter; } public boolean isShowAll() { return showAll; } public void setShowAll(boolean showAll) { this.showAll = showAll; } public boolean isShowCompact() { return showCompact; } public void setShowCompact(boolean showCompact) { this.showCompact = showCompact; } public String getMemoryStats() { return memoryStats; } public void setMemoryStats(String memoryStats) { this.memoryStats = memoryStats; } public String getRfxServerVersion() { return rfxServerVersion; } public void setRfxServerVersion(String rfxServerVersion) { this.rfxServerVersion = rfxServerVersion; } @Override public void freeResource() { infos.clear(); } @Override public WebDataService build() { time = new Date().toString(); if (filter.equals("all")) { showAll = true; showCompact = false; memoryStats = MemoryWatcher.collectMemoryStats(); } else if (filter.equals("compact")) { showAll = false; showCompact = true; } Properties props = System.getProperties(); Enumeration<?> e = props.propertyNames(); int i = 0; while (e.hasMoreElements()) { String key = e.nextElement().toString(); String s = (key + " : " + props.getProperty(key)); if (showAll) { i++; infos.add(new Info(s,i)); } else if (showCompact) { { if (key.startsWith("java.vm")) { i++; infos.add(new Info(s,i)); } } } } // return this; } @Override public String getClasspath() { return classpath; } }