package at.gv.egovernment.moa.spss.server.service; import java.io.IOException; import java.io.PrintWriter; import java.text.MessageFormat; import java.util.List; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import at.gv.egovernment.moa.sig.tsl.engine.data.TSLProcessingResultElement; import at.gv.egovernment.moa.spss.server.monitoring.ServiceStatusContainer; public class TSLClientStatusServlet extends HttpServlet { /** * */ private static final long serialVersionUID = 1L; public static final String STATUS_RESP = "'{'\"EUTSLStatus\":\"{0}\", \"EUTSLStatusMsg\":\"{1}\"{2}'}'"; public static final String DETAIL_INFO = ", \"Details\":'{'{0}'}'"; // public static final String DETAIL_ENTRY = "\"{0}\":'{'\"verified\":\"{1}\", // \"processed\":\"{2}\"'}'"; public static final String DETAIL_ENTRY = "\"{0}\":'{'\"processed\":\"{2}\"'}'"; @Override public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { if (ServiceStatusContainer.getStatus()) { response.setStatus(200); } else { response.setStatus(500); } response.setContentType("application/json"); final PrintWriter out = response.getWriter(); out.println(MessageFormat.format(STATUS_RESP, new Object[] { String.valueOf(ServiceStatusContainer.getStatus()), ServiceStatusContainer.getStatusMsg(), getTSLClientDetailInfos() })); out.flush(); out.close(); } private String getTSLClientDetailInfos() { String detailInfo = ""; final List tslDetailStatus = ServiceStatusContainer.getTslDetailStatus(); if (tslDetailStatus != null) { String detailElements = null; for (final TSLProcessingResultElement el : tslDetailStatus) { final String entry = MessageFormat.format(DETAIL_ENTRY, new Object[] { el.getCountryCode(), String.valueOf(el.isVerified()), String.valueOf(el.isProcessed()) }); if (detailElements == null) { detailElements = entry; } else { detailElements += ", " + entry; } } if (detailElements != null) { detailInfo = MessageFormat.format(DETAIL_INFO, new Object[] { detailElements }); } } return detailInfo; } }