This is an automated email from the ASF dual-hosted git repository. joewitt pushed a commit to branch support/nifi-1.16 in repository https://gitbox.apache.org/repos/asf/nifi.git
commit b97752954003451e2dedabf94c719273ddb038a6 Author: Mike Thomsen <[email protected]> AuthorDate: Wed Apr 6 09:18:13 2022 -0400 NIFI-9881 Refactored the JSON services to use Jackson 2 This closes #5934 Signed-off-by: David Handermann <[email protected]> --- .../nifi/json/AbstractJsonRowRecordReader.java | 26 +++++++++++----------- .../java/org/apache/nifi/json/JsonPathReader.java | 4 ++-- .../apache/nifi/json/JsonPathRowRecordReader.java | 2 +- .../org/apache/nifi/json/JsonRecordSource.java | 10 ++++----- .../org/apache/nifi/json/JsonSchemaInference.java | 12 +++++----- .../java/org/apache/nifi/json/JsonTreeReader.java | 2 +- .../apache/nifi/json/JsonTreeRowRecordReader.java | 10 ++++----- .../java/org/apache/nifi/json/WriteJsonResult.java | 10 ++++----- .../json/TestInferJsonSchemaAccessStrategy.java | 2 +- 9 files changed, 39 insertions(+), 39 deletions(-) diff --git a/nifi-nar-bundles/nifi-standard-services/nifi-record-serialization-services-bundle/nifi-record-serialization-services/src/main/java/org/apache/nifi/json/AbstractJsonRowRecordReader.java b/nifi-nar-bundles/nifi-standard-services/nifi-record-serialization-services-bundle/nifi-record-serialization-services/src/main/java/org/apache/nifi/json/AbstractJsonRowRecordReader.java index 403b865b35..51d9533992 100644 --- a/nifi-nar-bundles/nifi-standard-services/nifi-record-serialization-services-bundle/nifi-record-serialization-services/src/main/java/org/apache/nifi/json/AbstractJsonRowRecordReader.java +++ b/nifi-nar-bundles/nifi-standard-services/nifi-record-serialization-services-bundle/nifi-record-serialization-services/src/main/java/org/apache/nifi/json/AbstractJsonRowRecordReader.java @@ -17,6 +17,13 @@ package org.apache.nifi.json; +import com.fasterxml.jackson.core.JsonFactory; +import com.fasterxml.jackson.core.JsonParseException; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.core.JsonToken; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ArrayNode; import org.apache.nifi.logging.ComponentLog; import org.apache.nifi.serialization.MalformedRecordException; import org.apache.nifi.serialization.RecordReader; @@ -31,13 +38,6 @@ import org.apache.nifi.serialization.record.type.ChoiceDataType; import org.apache.nifi.serialization.record.type.MapDataType; import org.apache.nifi.serialization.record.type.RecordDataType; import org.apache.nifi.serialization.record.util.DataTypeUtils; -import org.codehaus.jackson.JsonFactory; -import org.codehaus.jackson.JsonNode; -import org.codehaus.jackson.JsonParseException; -import org.codehaus.jackson.JsonParser; -import org.codehaus.jackson.JsonToken; -import org.codehaus.jackson.map.ObjectMapper; -import org.codehaus.jackson.node.ArrayNode; import java.io.IOException; import java.io.InputStream; @@ -136,19 +136,19 @@ public abstract class AbstractJsonRowRecordReader implements RecordReader { } if (fieldNode.isNumber()) { - return fieldNode.getNumberValue(); + return fieldNode.numberValue(); } if (fieldNode.isBinary()) { - return fieldNode.getBinaryValue(); + return fieldNode.binaryValue(); } if (fieldNode.isBoolean()) { - return fieldNode.getBooleanValue(); + return fieldNode.booleanValue(); } if (fieldNode.isTextual()) { - final String textValue = fieldNode.getTextValue(); + final String textValue = fieldNode.textValue(); if (dataType == null) { return textValue; } @@ -235,7 +235,7 @@ public abstract class AbstractJsonRowRecordReader implements RecordReader { final Map<String, Object> mapValue = new HashMap<>(); - final Iterator<Map.Entry<String, JsonNode>> fieldItr = fieldNode.getFields(); + final Iterator<Map.Entry<String, JsonNode>> fieldItr = fieldNode.fields(); while (fieldItr.hasNext()) { final Map.Entry<String, JsonNode> entry = fieldItr.next(); final String elementName = entry.getKey(); @@ -299,7 +299,7 @@ public abstract class AbstractJsonRowRecordReader implements RecordReader { } private Record createRecordFromRawValue(final JsonNode fieldNode, final RecordSchema childSchema) throws IOException { - final Iterator<String> fieldNames = fieldNode.getFieldNames(); + final Iterator<String> fieldNames = fieldNode.fieldNames(); final Map<String, Object> childValues = new HashMap<>(); while (fieldNames.hasNext()) { final String childFieldName = fieldNames.next(); diff --git a/nifi-nar-bundles/nifi-standard-services/nifi-record-serialization-services-bundle/nifi-record-serialization-services/src/main/java/org/apache/nifi/json/JsonPathReader.java b/nifi-nar-bundles/nifi-standard-services/nifi-record-serialization-services-bundle/nifi-record-serialization-services/src/main/java/org/apache/nifi/json/JsonPathReader.java index 0662e1dfe0..caca7c2d72 100644 --- a/nifi-nar-bundles/nifi-standard-services/nifi-record-serialization-services-bundle/nifi-record-serialization-services/src/main/java/org/apache/nifi/json/JsonPathReader.java +++ b/nifi-nar-bundles/nifi-standard-services/nifi-record-serialization-services-bundle/nifi-record-serialization-services/src/main/java/org/apache/nifi/json/JsonPathReader.java @@ -17,6 +17,7 @@ package org.apache.nifi.json; +import com.fasterxml.jackson.databind.JsonNode; import com.jayway.jsonpath.JsonPath; import org.apache.nifi.annotation.behavior.DynamicProperty; import org.apache.nifi.annotation.documentation.CapabilityDescription; @@ -33,8 +34,8 @@ import org.apache.nifi.expression.ExpressionLanguageScope; import org.apache.nifi.logging.ComponentLog; import org.apache.nifi.schema.access.SchemaAccessStrategy; import org.apache.nifi.schema.access.SchemaNotFoundException; -import org.apache.nifi.schema.inference.SchemaInferenceEngine; import org.apache.nifi.schema.inference.RecordSourceFactory; +import org.apache.nifi.schema.inference.SchemaInferenceEngine; import org.apache.nifi.schema.inference.SchemaInferenceUtil; import org.apache.nifi.schema.inference.TimeValueInference; import org.apache.nifi.schemaregistry.services.SchemaRegistry; @@ -44,7 +45,6 @@ import org.apache.nifi.serialization.RecordReader; import org.apache.nifi.serialization.RecordReaderFactory; import org.apache.nifi.serialization.SchemaRegistryService; import org.apache.nifi.serialization.record.RecordSchema; -import org.codehaus.jackson.JsonNode; import java.io.IOException; import java.io.InputStream; diff --git a/nifi-nar-bundles/nifi-standard-services/nifi-record-serialization-services-bundle/nifi-record-serialization-services/src/main/java/org/apache/nifi/json/JsonPathRowRecordReader.java b/nifi-nar-bundles/nifi-standard-services/nifi-record-serialization-services-bundle/nifi-record-serialization-services/src/main/java/org/apache/nifi/json/JsonPathRowRecordReader.java index 74308f435d..61fa2cdb7f 100644 --- a/nifi-nar-bundles/nifi-standard-services/nifi-record-serialization-services-bundle/nifi-record-serialization-services/src/main/java/org/apache/nifi/json/JsonPathRowRecordReader.java +++ b/nifi-nar-bundles/nifi-standard-services/nifi-record-serialization-services-bundle/nifi-record-serialization-services/src/main/java/org/apache/nifi/json/JsonPathRowRecordReader.java @@ -17,6 +17,7 @@ package org.apache.nifi.json; +import com.fasterxml.jackson.databind.JsonNode; import com.jayway.jsonpath.Configuration; import com.jayway.jsonpath.DocumentContext; import com.jayway.jsonpath.JsonPath; @@ -35,7 +36,6 @@ import org.apache.nifi.serialization.record.type.ArrayDataType; import org.apache.nifi.serialization.record.type.RecordDataType; import org.apache.nifi.serialization.record.util.DataTypeUtils; import org.apache.nifi.serialization.record.util.IllegalTypeConversionException; -import org.codehaus.jackson.JsonNode; import java.io.IOException; import java.io.InputStream; diff --git a/nifi-nar-bundles/nifi-standard-services/nifi-record-serialization-services-bundle/nifi-record-serialization-services/src/main/java/org/apache/nifi/json/JsonRecordSource.java b/nifi-nar-bundles/nifi-standard-services/nifi-record-serialization-services-bundle/nifi-record-serialization-services/src/main/java/org/apache/nifi/json/JsonRecordSource.java index 3887fb0fdf..1c6afce9d4 100644 --- a/nifi-nar-bundles/nifi-standard-services/nifi-record-serialization-services-bundle/nifi-record-serialization-services/src/main/java/org/apache/nifi/json/JsonRecordSource.java +++ b/nifi-nar-bundles/nifi-standard-services/nifi-record-serialization-services-bundle/nifi-record-serialization-services/src/main/java/org/apache/nifi/json/JsonRecordSource.java @@ -16,12 +16,12 @@ */ package org.apache.nifi.json; +import com.fasterxml.jackson.core.JsonFactory; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.core.JsonToken; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; import org.apache.nifi.schema.inference.RecordSource; -import org.codehaus.jackson.JsonFactory; -import org.codehaus.jackson.JsonNode; -import org.codehaus.jackson.JsonParser; -import org.codehaus.jackson.JsonToken; -import org.codehaus.jackson.map.ObjectMapper; import java.io.IOException; import java.io.InputStream; diff --git a/nifi-nar-bundles/nifi-standard-services/nifi-record-serialization-services-bundle/nifi-record-serialization-services/src/main/java/org/apache/nifi/json/JsonSchemaInference.java b/nifi-nar-bundles/nifi-standard-services/nifi-record-serialization-services-bundle/nifi-record-serialization-services/src/main/java/org/apache/nifi/json/JsonSchemaInference.java index 0873a77787..630f6d9074 100644 --- a/nifi-nar-bundles/nifi-standard-services/nifi-record-serialization-services-bundle/nifi-record-serialization-services/src/main/java/org/apache/nifi/json/JsonSchemaInference.java +++ b/nifi-nar-bundles/nifi-standard-services/nifi-record-serialization-services-bundle/nifi-record-serialization-services/src/main/java/org/apache/nifi/json/JsonSchemaInference.java @@ -16,14 +16,14 @@ */ package org.apache.nifi.json; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.node.ArrayNode; +import com.fasterxml.jackson.databind.node.DecimalNode; import org.apache.nifi.schema.inference.HierarchicalSchemaInference; import org.apache.nifi.schema.inference.TimeValueInference; import org.apache.nifi.serialization.record.DataType; import org.apache.nifi.serialization.record.RecordFieldType; import org.apache.nifi.serialization.record.RecordSchema; -import org.codehaus.jackson.JsonNode; -import org.codehaus.jackson.node.ArrayNode; -import org.codehaus.jackson.node.DecimalNode; import java.math.BigDecimal; import java.util.Iterator; @@ -43,7 +43,7 @@ public class JsonSchemaInference extends HierarchicalSchemaInference<JsonNode> { protected DataType getDataType(final JsonNode jsonNode) { if (jsonNode.isTextual()) { - final String text = jsonNode.getTextValue(); + final String text = jsonNode.textValue(); if (text == null) { return RecordFieldType.STRING.getDataType(); } @@ -69,7 +69,7 @@ public class JsonSchemaInference extends HierarchicalSchemaInference<JsonNode> { if (jsonNode.isBigDecimal()) { final DecimalNode decimalNode = (DecimalNode) jsonNode; - final BigDecimal value = decimalNode.getDecimalValue(); + final BigDecimal value = decimalNode.decimalValue(); return RecordFieldType.DECIMAL.getDecimalDataType(value.precision(), value.scale()); } @@ -98,7 +98,7 @@ public class JsonSchemaInference extends HierarchicalSchemaInference<JsonNode> { @Override protected void forEachFieldInRecord(final JsonNode rawRecord, final BiConsumer<String, JsonNode> fieldConsumer) { - final Iterator<Map.Entry<String, JsonNode>> itr = rawRecord.getFields(); + final Iterator<Map.Entry<String, JsonNode>> itr = rawRecord.fields(); while (itr.hasNext()) { final Map.Entry<String, JsonNode> entry = itr.next(); final String fieldName = entry.getKey(); diff --git a/nifi-nar-bundles/nifi-standard-services/nifi-record-serialization-services-bundle/nifi-record-serialization-services/src/main/java/org/apache/nifi/json/JsonTreeReader.java b/nifi-nar-bundles/nifi-standard-services/nifi-record-serialization-services-bundle/nifi-record-serialization-services/src/main/java/org/apache/nifi/json/JsonTreeReader.java index de845101f8..b0ecad1c80 100644 --- a/nifi-nar-bundles/nifi-standard-services/nifi-record-serialization-services-bundle/nifi-record-serialization-services/src/main/java/org/apache/nifi/json/JsonTreeReader.java +++ b/nifi-nar-bundles/nifi-standard-services/nifi-record-serialization-services-bundle/nifi-record-serialization-services/src/main/java/org/apache/nifi/json/JsonTreeReader.java @@ -17,6 +17,7 @@ package org.apache.nifi.json; +import com.fasterxml.jackson.databind.JsonNode; import org.apache.nifi.annotation.documentation.CapabilityDescription; import org.apache.nifi.annotation.documentation.SeeAlso; import org.apache.nifi.annotation.documentation.Tags; @@ -39,7 +40,6 @@ import org.apache.nifi.serialization.RecordReader; import org.apache.nifi.serialization.RecordReaderFactory; import org.apache.nifi.serialization.SchemaRegistryService; import org.apache.nifi.serialization.record.RecordSchema; -import org.codehaus.jackson.JsonNode; import java.io.IOException; import java.io.InputStream; diff --git a/nifi-nar-bundles/nifi-standard-services/nifi-record-serialization-services-bundle/nifi-record-serialization-services/src/main/java/org/apache/nifi/json/JsonTreeRowRecordReader.java b/nifi-nar-bundles/nifi-standard-services/nifi-record-serialization-services-bundle/nifi-record-serialization-services/src/main/java/org/apache/nifi/json/JsonTreeRowRecordReader.java index fa058d8164..1bb34549c8 100644 --- a/nifi-nar-bundles/nifi-standard-services/nifi-record-serialization-services-bundle/nifi-record-serialization-services/src/main/java/org/apache/nifi/json/JsonTreeRowRecordReader.java +++ b/nifi-nar-bundles/nifi-standard-services/nifi-record-serialization-services-bundle/nifi-record-serialization-services/src/main/java/org/apache/nifi/json/JsonTreeRowRecordReader.java @@ -17,6 +17,8 @@ package org.apache.nifi.json; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.node.ArrayNode; import org.apache.nifi.logging.ComponentLog; import org.apache.nifi.serialization.MalformedRecordException; import org.apache.nifi.serialization.SimpleRecordSchema; @@ -31,8 +33,6 @@ import org.apache.nifi.serialization.record.type.ArrayDataType; import org.apache.nifi.serialization.record.type.MapDataType; import org.apache.nifi.serialization.record.type.RecordDataType; import org.apache.nifi.serialization.record.util.DataTypeUtils; -import org.codehaus.jackson.JsonNode; -import org.codehaus.jackson.node.ArrayNode; import java.io.IOException; import java.io.InputStream; @@ -110,7 +110,7 @@ public class JsonTreeRowRecordReader extends AbstractJsonRowRecordReader { values.put(fieldName, value); } } else { - final Iterator<String> fieldNames = jsonNode.getFieldNames(); + final Iterator<String> fieldNames = jsonNode.fieldNames(); while (fieldNames.hasNext()) { final String fieldName = fieldNames.next(); final JsonNode childNode = jsonNode.get(fieldName); @@ -164,7 +164,7 @@ public class JsonTreeRowRecordReader extends AbstractJsonRowRecordReader { final DataType valueType = ((MapDataType) desiredType).getValueType(); final Map<String, Object> map = new HashMap<>(); - final Iterator<String> fieldNameItr = fieldNode.getFieldNames(); + final Iterator<String> fieldNameItr = fieldNode.fieldNames(); while (fieldNameItr.hasNext()) { final String childName = fieldNameItr.next(); final JsonNode childNode = fieldNode.get(childName); @@ -198,7 +198,7 @@ public class JsonTreeRowRecordReader extends AbstractJsonRowRecordReader { if (childSchema == null) { final List<RecordField> fields = new ArrayList<>(); - final Iterator<String> fieldNameItr = fieldNode.getFieldNames(); + final Iterator<String> fieldNameItr = fieldNode.fieldNames(); while (fieldNameItr.hasNext()) { fields.add(new RecordField(fieldNameItr.next(), RecordFieldType.STRING.getDataType())); } diff --git a/nifi-nar-bundles/nifi-standard-services/nifi-record-serialization-services-bundle/nifi-record-serialization-services/src/main/java/org/apache/nifi/json/WriteJsonResult.java b/nifi-nar-bundles/nifi-standard-services/nifi-record-serialization-services-bundle/nifi-record-serialization-services/src/main/java/org/apache/nifi/json/WriteJsonResult.java index 8d6fe9395e..5989618591 100644 --- a/nifi-nar-bundles/nifi-standard-services/nifi-record-serialization-services-bundle/nifi-record-serialization-services/src/main/java/org/apache/nifi/json/WriteJsonResult.java +++ b/nifi-nar-bundles/nifi-standard-services/nifi-record-serialization-services-bundle/nifi-record-serialization-services/src/main/java/org/apache/nifi/json/WriteJsonResult.java @@ -17,6 +17,10 @@ package org.apache.nifi.json; +import com.fasterxml.jackson.core.JsonFactory; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.util.MinimalPrettyPrinter; +import com.fasterxml.jackson.databind.ObjectMapper; import org.apache.nifi.logging.ComponentLog; import org.apache.nifi.record.NullSuppression; import org.apache.nifi.schema.access.SchemaAccessWriter; @@ -35,10 +39,6 @@ import org.apache.nifi.serialization.record.type.ChoiceDataType; import org.apache.nifi.serialization.record.type.MapDataType; import org.apache.nifi.serialization.record.type.RecordDataType; import org.apache.nifi.serialization.record.util.DataTypeUtils; -import org.codehaus.jackson.JsonFactory; -import org.codehaus.jackson.JsonGenerator; -import org.codehaus.jackson.map.ObjectMapper; -import org.codehaus.jackson.util.MinimalPrettyPrinter; import java.io.IOException; import java.io.OutputStream; @@ -93,7 +93,7 @@ public class WriteJsonResult extends AbstractRecordSetWriter implements RecordSe final JsonFactory factory = new JsonFactory(); factory.setCodec(objectMapper); - this.generator = factory.createJsonGenerator(out); + this.generator = factory.createGenerator(out); if (prettyPrint) { generator.useDefaultPrettyPrinter(); } else if (OutputGrouping.OUTPUT_ONELINE.equals(outputGrouping)) { diff --git a/nifi-nar-bundles/nifi-standard-services/nifi-record-serialization-services-bundle/nifi-record-serialization-services/src/test/java/org/apache/nifi/json/TestInferJsonSchemaAccessStrategy.java b/nifi-nar-bundles/nifi-standard-services/nifi-record-serialization-services-bundle/nifi-record-serialization-services/src/test/java/org/apache/nifi/json/TestInferJsonSchemaAccessStrategy.java index 40cdf26aee..960c7b6127 100644 --- a/nifi-nar-bundles/nifi-standard-services/nifi-record-serialization-services-bundle/nifi-record-serialization-services/src/test/java/org/apache/nifi/json/TestInferJsonSchemaAccessStrategy.java +++ b/nifi-nar-bundles/nifi-standard-services/nifi-record-serialization-services-bundle/nifi-record-serialization-services/src/test/java/org/apache/nifi/json/TestInferJsonSchemaAccessStrategy.java @@ -16,6 +16,7 @@ */ package org.apache.nifi.json; +import com.fasterxml.jackson.databind.JsonNode; import org.apache.nifi.logging.ComponentLog; import org.apache.nifi.schema.inference.InferSchemaAccessStrategy; import org.apache.nifi.schema.inference.SchemaInferenceEngine; @@ -26,7 +27,6 @@ import org.apache.nifi.serialization.record.RecordFieldType; import org.apache.nifi.serialization.record.RecordSchema; import org.apache.nifi.serialization.record.type.ChoiceDataType; import org.apache.nifi.serialization.record.type.RecordDataType; -import org.codehaus.jackson.JsonNode; import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; import org.mockito.Mockito;
