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.TslClientFactory; import at.gv.egovernment.moa.sig.tsl.engine.data.TSLProcessingResultElement; import at.gv.egovernment.moa.spss.server.monitoring.ServiceStatusContainer; import at.gv.egovernment.moa.spss.tsl.TSLServiceFactory; 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}\"'}'"; public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { if (ServiceStatusContainer.getStatus()) response.setStatus(200); else response.setStatus(500); response.setContentType("application/json"); 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 = ""; List tslDetailStatus = ServiceStatusContainer.getTslDetailStatus(); if (tslDetailStatus != null) { String detailElements = null; for (TSLProcessingResultElement el : tslDetailStatus) { 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; } }