Skip to content

Commit 10cdfe5

Browse files
committed
NIFI-14615 - Removed unnecessary properties, reverted to manually format records.
1 parent 2b931e7 commit 10cdfe5

File tree

2 files changed

+24
-22
lines changed

2 files changed

+24
-22
lines changed

nifi-extension-bundles/nifi-parquet-bundle/nifi-parquet-content-viewer/src/main/java/org/apache/parquet/web/controller/ParquetContentViewerController.java

Lines changed: 24 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -16,13 +16,12 @@
1616
*/
1717
package org.apache.parquet.web.controller;
1818

19-
import com.fasterxml.jackson.core.JsonGenerator;
20-
import com.fasterxml.jackson.databind.ObjectMapper;
21-
import com.fasterxml.jackson.databind.SerializationFeature;
2219
import jakarta.servlet.ServletContext;
20+
import jakarta.servlet.ServletOutputStream;
2321
import jakarta.servlet.http.HttpServlet;
2422
import jakarta.servlet.http.HttpServletRequest;
2523
import jakarta.servlet.http.HttpServletResponse;
24+
import org.apache.avro.Schema;
2625
import org.apache.avro.generic.GenericRecord;
2726
import org.apache.commons.io.output.ByteArrayOutputStream;
2827
import org.apache.hadoop.conf.Configuration;
@@ -42,16 +41,14 @@
4241
import java.io.IOException;
4342
import java.io.InputStream;
4443
import java.net.HttpURLConnection;
44+
import java.util.ArrayList;
45+
import java.util.List;
4546

4647
public class ParquetContentViewerController extends HttpServlet {
4748
private static final Logger logger = LoggerFactory.getLogger(ParquetContentViewerController.class);
4849
private static final long MAX_CONTENT_SIZE = 1024 * 1024 * 2; // 10MB
4950
private static final int BUFFER_SIZE = 8 * 1024; // 8KB
50-
private static final ObjectMapper objectMapper = new ObjectMapper().enable(SerializationFeature.INDENT_OUTPUT);
51-
52-
static {
53-
objectMapper.getFactory().configure(JsonGenerator.Feature.AUTO_CLOSE_TARGET, false);
54-
}
51+
private static final String indent = " ";
5552

5653
@Override
5754
public void doGet(final HttpServletRequest request, final HttpServletResponse response) throws IOException {
@@ -101,17 +98,27 @@ public void doGet(final HttpServletRequest request, final HttpServletResponse re
10198
//Format and write out each record
10299
GenericRecord record;
103100
boolean firstRecord = true;
104-
response.getOutputStream().write("[\n".getBytes());
105-
while ((record = reader.read()) != null) {
106-
if (firstRecord) {
107-
firstRecord = false;
108-
} else {
109-
response.getOutputStream().write(",\n".getBytes());
101+
final List<Schema.Field> fields = new ArrayList<>();
102+
try (ServletOutputStream outputStream = response.getOutputStream()) {
103+
outputStream.write("[\n".getBytes());
104+
while ((record = reader.read()) != null) {
105+
if (firstRecord) {
106+
firstRecord = false;
107+
fields.addAll(record.getSchema().getFields());
108+
} else {
109+
outputStream.write(",\n".getBytes());
110+
}
111+
112+
outputStream.write((indent + "{\n").getBytes());
113+
for (Schema.Field field : fields) {
114+
outputStream.write((indent + indent).getBytes());
115+
outputStream.write(("\"" + field.name() + "\": ").getBytes());
116+
outputStream.write(("\"" + record.get(field.name()) + "\" \n").getBytes());
117+
}
118+
outputStream.write((indent + "}").getBytes());
110119
}
111-
112-
objectMapper.writerWithDefaultPrettyPrinter().writeValue(response.getOutputStream(), objectMapper.readTree(record.toString()));
120+
outputStream.write("\n]".getBytes());
113121
}
114-
response.getOutputStream().write("\n]".getBytes());
115122
} catch (final Throwable t) {
116123
logger.warn("Unable to format FlowFile content", t);
117124
response.sendError(HttpURLConnection.HTTP_INTERNAL_ERROR, "Unable to format FlowFile content");

nifi-extension-bundles/nifi-parquet-bundle/nifi-parquet-shared/pom.xml

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -25,11 +25,6 @@
2525

2626
<artifactId>nifi-parquet-shared</artifactId>
2727

28-
<properties>
29-
<maven.compiler.source>21</maven.compiler.source>
30-
<maven.compiler.target>21</maven.compiler.target>
31-
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
32-
</properties>
3328
<dependencies>
3429
<dependency>
3530
<groupId>org.apache.parquet</groupId>

0 commit comments

Comments
 (0)