From e929b5f4c6d9351b29150e6c1843f06806ee7b00 Mon Sep 17 00:00:00 2001 From: Andreas Fitzek Date: Mon, 1 Dec 2014 12:23:47 +0100 Subject: added status servlet to pdf-as-web --- .../at/gv/egiz/status/content/HtmlGenerator.java | 92 ++++++++++++++++++++++ 1 file changed, 92 insertions(+) create mode 100644 pdf-as-web-status/src/main/java/at/gv/egiz/status/content/HtmlGenerator.java (limited to 'pdf-as-web-status/src/main/java/at/gv/egiz/status/content/HtmlGenerator.java') diff --git a/pdf-as-web-status/src/main/java/at/gv/egiz/status/content/HtmlGenerator.java b/pdf-as-web-status/src/main/java/at/gv/egiz/status/content/HtmlGenerator.java new file mode 100644 index 00000000..c94cde22 --- /dev/null +++ b/pdf-as-web-status/src/main/java/at/gv/egiz/status/content/HtmlGenerator.java @@ -0,0 +1,92 @@ +package at.gv.egiz.status.content; + +import java.io.IOException; +import java.util.Iterator; +import java.util.Map; +import java.util.Map.Entry; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.apache.commons.lang3.StringEscapeUtils; + +import at.gv.egiz.status.TestResult; +import at.gv.egiz.status.TestStatus; +import at.gv.egiz.status.impl.TestStatusString; + +public class HtmlGenerator implements ContentGenerator { + + @Override + public void generate(HttpServletRequest request, + HttpServletResponse response, Map results, boolean details) throws IOException { + + boolean allOk = true; + + Iterator testIterator = results.values().iterator(); + while(testIterator.hasNext()) { + TestResult result = testIterator.next(); + if(!result.getStatus().equals(TestStatus.OK)){ + allOk = false; + break; + } + } + + if(!allOk) { + response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR); + } else { + response.setStatus(HttpServletResponse.SC_OK); + } + + response.setContentType("text/html"); + + StringBuilder sb = new StringBuilder(); + + sb.append(""); + sb.append(""); + + if(details) { + sb.append(""); + } + + sb.append(""); + + Iterator> testResultIterator = results.entrySet().iterator(); + while(testResultIterator.hasNext()) { + Entry entry = testResultIterator.next(); + TestResult result = entry.getValue(); + String testName = entry.getKey(); + + sb.append(""); + } + + sb.append("
NameStatusDetails
"); + sb.append(StringEscapeUtils.escapeHtml4(testName)); + sb.append(""); + sb.append(StringEscapeUtils.escapeHtml4(TestStatusString.getString(result.getStatus()))); + + + if(details) { + sb.append(""); + + StringBuilder detail = new StringBuilder(); + + Iterator detailStringIt = result.getDetails().iterator(); + + while(detailStringIt.hasNext()) { + String detailString = detailStringIt.next(); + detail.append(StringEscapeUtils.escapeHtml4(detailString)); + detail.append("
"); + } + + sb.append(detail.toString()); + } + + sb.append("
"); + + sb.append(""); + + response.getOutputStream().write(sb.toString().getBytes("UTF-8")); + response.getOutputStream().close(); + } + +} -- cgit v1.2.3