aboutsummaryrefslogtreecommitdiff
path: root/moaSig/moa-sig/src/main/java/at/gv/egovernment/moa/spss/server/service/TSLClientStatusServlet.java
diff options
context:
space:
mode:
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.java83
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;
+ }
+}