diff options
Diffstat (limited to 'moaSig/moa-sig/src/main/java/at/gv/egovernment/moa/spss/server/service/TSLClientStatusServlet.java')
-rw-r--r-- | moaSig/moa-sig/src/main/java/at/gv/egovernment/moa/spss/server/service/TSLClientStatusServlet.java | 83 |
1 files changed, 83 insertions, 0 deletions
diff --git a/moaSig/moa-sig/src/main/java/at/gv/egovernment/moa/spss/server/service/TSLClientStatusServlet.java b/moaSig/moa-sig/src/main/java/at/gv/egovernment/moa/spss/server/service/TSLClientStatusServlet.java new file mode 100644 index 0000000..3bf9a37 --- /dev/null +++ b/moaSig/moa-sig/src/main/java/at/gv/egovernment/moa/spss/server/service/TSLClientStatusServlet.java @@ -0,0 +1,83 @@ +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<TSLProcessingResultElement> 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; + } +} |