package org.stagemonitor.web.monitor.widget; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.ServletConfig; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.stagemonitor.core.Stagemonitor; import org.stagemonitor.configuration.ConfigurationRegistry; import org.stagemonitor.web.monitor.filter.HtmlInjector; public class WidgetServlet extends HttpServlet { private final ConfigurationRegistry configuration; private final StagemonitorWidgetHtmlInjector widgetHtmlInjector; public WidgetServlet() { this(Stagemonitor.getConfiguration(), new StagemonitorWidgetHtmlInjector(true)); } public WidgetServlet(ConfigurationRegistry configuration, StagemonitorWidgetHtmlInjector widgetHtmlInjector) { this.configuration = configuration; this.widgetHtmlInjector = widgetHtmlInjector; } @Override public void init(ServletConfig config) throws ServletException { super.init(config); widgetHtmlInjector.init(new HtmlInjector.InitArguments(configuration, config.getServletContext())); } @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { resp.setContentType("text/html"); final HtmlInjector.InjectArguments injectArguments = new HtmlInjector.InjectArguments(null); widgetHtmlInjector.injectHtml(injectArguments); final PrintWriter w = resp.getWriter(); w.println("<!DOCTYPE html>"); w.println("<html>"); w.println("<body>"); w.println(injectArguments.getContentToInjectBeforeClosingBody()); w.println("</body>"); w.println("</html>"); } }