package edu.kit.aifb.cumulus.webapp; import java.io.IOException; import java.io.PrintWriter; import java.util.Enumeration; import javax.servlet.ServletContext; import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import edu.kit.aifb.cumulus.framework.Environment.ConfigParams; import edu.kit.aifb.cumulus.store.Store; import edu.kit.aifb.cumulus.webapp.HttpProtocol.Headers; import edu.kit.aifb.cumulus.webapp.HttpProtocol.MimeTypes; /** * A servlet that displays the current status of the connected Cassandra * cluster. That is the status of every pool of the cluster, read/write * statistics, information about the schema and the number of active * additions/deletions. * * @author Andreas Harth * @author Andrea Gazzarini */ public class InfoServlet extends AbstractCumulusServlet { private static final long serialVersionUID = -326095061705259451L; @SuppressWarnings("unchecked") @Override public void service(final HttpServletRequest request, final HttpServletResponse response) throws IOException, ServletException { String accept = request.getHeader(Headers.ACCEPT) == null ? "text/plain" : request.getHeader(Headers.ACCEPT); if (accept.contains("html")) { request.setAttribute("page", "Overview"); forwardTo(request, response, "info.vm"); } else { PrintWriter out = response.getWriter(); response.setContentType(MimeTypes.TEXT_PLAIN); ServletContext ctx = getServletContext(); Store crdf = (Store) getServletContext().getAttribute(ConfigParams.STORE); out.println("Status: " + crdf.getStatus()); for (Enumeration<String> e = ctx.getAttributeNames(); e.hasMoreElements();) { String attr = e.nextElement(); out.println("Setting: attribute = " + attr + " @ value = " + ctx.getAttribute(attr)); } out.close(); } } }