You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@nifi.apache.org by mc...@apache.org on 2015/02/21 22:37:00 UTC
[4/6] incubator-nifi git commit: NIFI-353: - Starting to add support
for viewing JSON. - Updating codemirror to add support for JSON and XML.
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