package com.dataiku.wt1.controllers; import java.io.File; import java.io.IOException; import javax.servlet.ServletConfig; import javax.servlet.ServletContext; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.commons.io.FileUtils; import org.apache.log4j.Logger; @SuppressWarnings("serial") /* A "no-op" servlet that only serves the static pixel data, used for benching purposes */ public class NoopServlet extends HttpServlet { private byte[] pixelData; private static final String PIXEL_PATH = "/WEB-INF/spixel.gif"; @Override public void init(ServletConfig config) throws ServletException { ServletContext ctx = config.getServletContext(); try { File f = new File(ctx.getRealPath(PIXEL_PATH)); pixelData = FileUtils.readFileToByteArray(f); } catch (IOException e) { logger.error("Failed to read pixel", e); throw new ServletException(e); } } public void doGet(HttpServletRequest req, HttpServletResponse resp) throws IOException { resp.addHeader("Cache-Control", "private, no-cache, no-cache=Set-Cookie, proxy-revalidate"); resp.setContentType("image/gif"); resp.getOutputStream().write(pixelData); } private static Logger logger = Logger.getLogger("wt1.tracker"); }