http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/43f6e3c0/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-content-viewer/pom.xml ---------------------------------------------------------------------- diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-content-viewer/pom.xml b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-content-viewer/pom.xml index 4025ff0..b4eabfc 100644 --- a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-content-viewer/pom.xml +++ b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-content-viewer/pom.xml @@ -28,6 +28,11 @@ <artifactId>commons-lang3</artifactId> </dependency> <dependency> + <groupId>org.codehaus.jackson</groupId> + <artifactId>jackson-mapper-asl</artifactId> + <version>1.9.13</version> + </dependency> + <dependency> <groupId>commons-io</groupId> <artifactId>commons-io</artifactId> </dependency>
http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/43f6e3c0/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-content-viewer/src/main/java/org/apache/nifi/web/StandardContentViewerController.java ---------------------------------------------------------------------- diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-content-viewer/src/main/java/org/apache/nifi/web/StandardContentViewerController.java b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-content-viewer/src/main/java/org/apache/nifi/web/StandardContentViewerController.java index 0988f53..e1206d0 100644 --- a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-content-viewer/src/main/java/org/apache/nifi/web/StandardContentViewerController.java +++ b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-content-viewer/src/main/java/org/apache/nifi/web/StandardContentViewerController.java @@ -19,14 +19,13 @@ package org.apache.nifi.web; import java.io.IOException; import java.nio.charset.StandardCharsets; -import javax.servlet.ServletConfig; -import javax.servlet.ServletContext; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.commons.io.IOUtils; +import org.codehaus.jackson.map.ObjectMapper; /** * @@ -43,12 +42,25 @@ public class StandardContentViewerController extends HttpServlet { */ @Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { - final ViewableContent content = (ViewableContent) request.getAttribute(ViewableContent.CONTENT_REQUEST_ATTRIBUTE); // handle json/xml if ("application/json".equals(content.getContentType()) || "application/xml".equals(content.getContentType())) { - request.setAttribute("content", IOUtils.toString(content.getContent(), StandardCharsets.UTF_8)); + final String formatted; + + // format the content + if ("application/json".equals(content.getContentType())) { + final String json = IOUtils.toString(content.getContent(), StandardCharsets.UTF_8); + final ObjectMapper mapper = new ObjectMapper(); + final Object objectJson = mapper.readValue(json, Object.class); + formatted = mapper.writerWithDefaultPrettyPrinter().writeValueAsString(objectJson); + } else { + formatted = ""; + } + + // defer the jsp + request.setAttribute("mode", content.getContentType()); + request.setAttribute("content", formatted); request.getRequestDispatcher("/WEB-INF/jsp/codemirror.jsp").include(request, response); } http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/43f6e3c0/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-content-viewer/src/main/webapp/WEB-INF/jsp/codemirror.jsp ---------------------------------------------------------------------- diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-content-viewer/src/main/webapp/WEB-INF/jsp/codemirror.jsp b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-content-viewer/src/main/webapp/WEB-INF/jsp/codemirror.jsp index 5f73d47..13d32f8 100644 --- a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-content-viewer/src/main/webapp/WEB-INF/jsp/codemirror.jsp +++ b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-content-viewer/src/main/webapp/WEB-INF/jsp/codemirror.jsp @@ -15,4 +15,28 @@ limitations under the License. --%> <%@ page contentType="text/html" pageEncoding="UTF-8" session="false" %> -<p>${content}</p> \ No newline at end of file +<link rel="stylesheet" href="../nifi/js/codemirror/lib/codemirror.css" type="text/css" /> +<script type="text/javascript" src="../nifi/js/codemirror/lib/codemirror-compressed.js"></script> + +<textarea id="codemirror-content">${content}</textarea> + +<style> + #codemirror-content { + width: 500px; + } +</style> + +<script type="text/javascript"> + function formatContent() { + var field = document.getElementById('codemirror-content'); + var editor = CodeMirror.fromTextArea(field, { + mode: '${mode}', + lineNumbers: true, + matchBrackets: true, + readOnly: true, + width: 500 + }); + } + + formatContent(); +</script> \ No newline at end of file
