package slacknotifications;
import org.mortbay.jetty.Request;
import org.mortbay.jetty.Server;
import org.mortbay.jetty.servlet.Context;
import org.mortbay.jetty.servlet.ServletHolder;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Enumeration;
public class SlackNotificationTestServer {
Server server;
public SlackNotificationTestServer(String host, Integer port) {
server = new Server(port);
Context root = new Context(server,"/",Context.SESSIONS);
root.addServlet(new ServletHolder(new MyHttpServlet(HttpServletResponse.SC_OK)), "/200");
root.addServlet(new ServletHolder(new MyHttpServlet(HttpServletResponse.SC_MOVED_TEMPORARILY)), "/302");
root.addServlet(new ServletHolder(new MyHttpServlet(HttpServletResponse.SC_INTERNAL_SERVER_ERROR)), "/500");
}
public static class MyHttpServlet extends HttpServlet
{
/**
*
*/
private static final long serialVersionUID = 1L;
Integer response;
public MyHttpServlet(Integer response) {
this.response = response;
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
{
response.setContentType("text/plain");
response.setStatus(this.response);
switch (this.response) {
case HttpServletResponse.SC_OK:
//response.getWriter().println("<h1>Hello SimpleServlet</h1>");
this.printParams(request, response);
break;
case HttpServletResponse.SC_MOVED_TEMPORARILY:
response.sendRedirect("/200");
break;
default:
response.getWriter().println("<h1>Hello from defaultt</h1>");
break;
}
System.out.println("Handling Web request for " + ((Request) request).getUri().toString());
}
@SuppressWarnings("unchecked")
private void printParams(HttpServletRequest request, HttpServletResponse response){
PrintWriter out = null;
try {
out = response.getWriter();
} catch (IOException e) {
e.printStackTrace();
}
Enumeration<String> paramNames = request.getParameterNames();
while(paramNames.hasMoreElements()) {
String paramName = paramNames.nextElement();
out.print(paramName + " :: ");
String[] paramValues = request.getParameterValues(paramName);
if (paramValues.length == 1) {
String paramValue = paramValues[0];
if (paramValue.length() == 0)
out.println("No Value");
else
out.println(paramValue);
} else {
out.println();
for(int i=0; i<paramValues.length; i++) {
out.println(" -> " + paramValues[i]);
}
}
}
}
}
}