/** * */ package com.github.lpezet.antiope.metrics.aws; import java.io.IOException; import java.util.Enumeration; import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.commons.io.IOUtils; import org.eclipse.jetty.server.Server; import org.eclipse.jetty.server.handler.AbstractHandler; import org.junit.After; import org.junit.Before; /** * @author Luc Pezet * */ public class BaseSample { private Server mServer; private int mPort; private Server mCloudWatchServer; private int mCloudWatchPort; @Before public void setup() throws Exception { mServer = new Server(0); mServer.setHandler(new AbstractHandler() { @Override public void handle(String target, org.eclipse.jetty.server.Request baseRequest, HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException { response.setContentType("text/html;charset=utf-8"); response.setStatus(HttpServletResponse.SC_OK); baseRequest.setHandled(true); response.getWriter().println("<h1>Hello World</h1>"); } }); mServer.start(); mPort = mServer.getConnectors()[0].getLocalPort(); mCloudWatchServer = new Server(0); mCloudWatchServer.setHandler(new AbstractHandler() { @Override public void handle(String target, org.eclipse.jetty.server.Request baseRequest, HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException { System.out.println("CloudWatch Request...."); System.out.println("######### Got CloudWatch Request:\n" + printRequest(request)); response.setContentType("application/xml;charset=utf-8"); response.setStatus(HttpServletResponse.SC_OK); baseRequest.setHandled(true); response.getWriter().println("<ok/>"); } private String printRequest(HttpServletRequest pRequest) throws IOException { StringBuffer oBuf = new StringBuffer(pRequest.getMethod()).append(" ").append(pRequest.getPathInfo()); for(Enumeration<String> e = pRequest.getHeaderNames(); e.hasMoreElements(); ) { String oHeaderName = e.nextElement(); oBuf.append("\n").append(oHeaderName).append(": ").append(pRequest.getHeader(oHeaderName)); } if (pRequest.getInputStream() != null) { oBuf.append("\n\n").append(IOUtils.toString(pRequest.getInputStream())); } return oBuf.toString(); } }); mCloudWatchServer.start(); mCloudWatchPort = mCloudWatchServer.getConnectors()[0].getLocalPort(); } @After public void tearDown() throws Exception { mServer.stop(); mServer.destroy(); mCloudWatchServer.stop(); mCloudWatchServer.destroy(); } public int getCloudWatchPort() { return mCloudWatchPort; } public Server getCloudWatchServer() { return mCloudWatchServer; } public int getPort() { return mPort; } public Server getServer() { return mServer; } }