package us.mn.state.health.lims.metricservice.action; import java.io.IOException; import java.io.PrintWriter; import java.lang.management.ManagementFactory; import java.lang.management.MemoryPoolMXBean; import java.util.List; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class MetricServicesServlet extends HttpServlet { private static final long serialVersionUID = 947483610606055973L; /** * Constructor of the object. */ public MetricServicesServlet() { super(); } /** * Destruction of the servlet. <br> */ public void destroy() { super.destroy(); // Just puts "destroy" string in log // Put your code here } /** * The doGet method of the servlet. <br> * * This method is called when a form has its tag value method equals to get. * * @param request * the request send by the client to the server * @param response * the response send by the server to the client * @throws ServletException * if an error occurred * @throws IOException * if an error occurred */ public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String permGen = getAvailablePermGen(); response.setContentType("text/xml"); PrintWriter out = response.getWriter(); out.println("<?xml version = \"1.0\" encoding = \"utf-8\"?>"); out.println("<metrics>"); out.println("<permgen>"); out.println(permGen); out.println("</permgen>"); out.println("</metrics>"); out.flush(); out.close(); } private String getAvailablePermGen() { List<MemoryPoolMXBean> memoryList = ManagementFactory.getMemoryPoolMXBeans(); for (MemoryPoolMXBean memory : memoryList) { if (memory.getName().contains("Perm Gen")) { return String.valueOf((int)(((double)(memory.getUsage().getMax() - memory.getUsage().getUsed())) / 1024.0)); } } return "0"; } /** * The doPost method of the servlet. <br> * * This method is called when a form has its tag value method equals to * post. * * @param request * the request send by the client to the server * @param response * the response send by the server to the client * @throws ServletException * if an error occurred * @throws IOException * if an error occurred */ public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html"); PrintWriter out = response.getWriter(); out.close(); } /** * Initialization of the servlet. <br> * * @throws ServletException * if an error occurs */ public void init() throws ServletException { // Put your code here } }