This is an automated email from the ASF dual-hosted git repository.
yashmayya pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/pinot.git
The following commit(s) were added to refs/heads/master by this push:
new bcb5302577a Update usages of some deprecated methods from
jackson-databind (#16941)
bcb5302577a is described below
commit bcb5302577a180596cb0e60af9a2220578b703c6
Author: Yash Mayya <[email protected]>
AuthorDate: Wed Oct 1 15:46:48 2025 -0700
Update usages of some deprecated methods from jackson-databind (#16941)
---
.../org/apache/pinot/client/ExternalViewReader.java | 18 +++++-------------
.../response/PinotBrokerTimeSeriesResponse.java | 2 +-
.../common/response/encoder/JsonResponseEncoder.java | 2 +-
.../controller/api/resources/ZookeeperResource.java | 20 +++++++++-----------
.../controller/helix/ControllerRequestClient.java | 5 +----
.../pinot/controller/util/TableMetadataReader.java | 2 +-
.../ingestion/RealtimeKinesisIntegrationTest.java | 5 +----
.../stream/kinesis/KinesisPartitionGroupOffset.java | 2 +-
.../pinot/segment/local/utils/TableConfigUtils.java | 4 +---
.../segment/spi/partition/PartitionFunctionTest.java | 2 +-
.../org/apache/pinot/spi/config/ConfigUtils.java | 5 +----
.../java/org/apache/pinot/spi/utils/JsonUtils.java | 13 +++----------
12 files changed, 26 insertions(+), 54 deletions(-)
diff --git
a/pinot-clients/pinot-java-client/src/main/java/org/apache/pinot/client/ExternalViewReader.java
b/pinot-clients/pinot-java-client/src/main/java/org/apache/pinot/client/ExternalViewReader.java
index 547de125a13..18989effba2 100644
---
a/pinot-clients/pinot-java-client/src/main/java/org/apache/pinot/client/ExternalViewReader.java
+++
b/pinot-clients/pinot-java-client/src/main/java/org/apache/pinot/client/ExternalViewReader.java
@@ -30,7 +30,6 @@ import java.nio.charset.StandardCharsets;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet;
-import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
@@ -87,12 +86,9 @@ public class ExternalViewReader {
JsonNode jsonObject =
OBJECT_READER.readTree(getInputStream(brokerResourceNodeData));
JsonNode brokerResourceNode = jsonObject.get("mapFields");
- Iterator<Entry<String, JsonNode>> resourceEntries =
brokerResourceNode.fields();
- while (resourceEntries.hasNext()) {
- JsonNode resource = resourceEntries.next().getValue();
- Iterator<Entry<String, JsonNode>> brokerEntries = resource.fields();
- while (brokerEntries.hasNext()) {
- Entry<String, JsonNode> brokerEntry = brokerEntries.next();
+ for (Entry<String, JsonNode> stringJsonNodeEntry :
brokerResourceNode.properties()) {
+ JsonNode resource = stringJsonNodeEntry.getValue();
+ for (Entry<String, JsonNode> brokerEntry : resource.properties()) {
String brokerName = brokerEntry.getKey();
if (brokerName.startsWith("Broker_") &&
"ONLINE".equals(brokerEntry.getValue().asText())) {
brokerUrls.add(getHostPort(brokerName));
@@ -160,16 +156,12 @@ public class ExternalViewReader {
JsonNode jsonObject =
OBJECT_READER.readTree(getInputStream(brokerResourceNodeData));
JsonNode brokerResourceNode = jsonObject.get("mapFields");
- Iterator<Entry<String, JsonNode>> resourceEntries =
brokerResourceNode.fields();
- while (resourceEntries.hasNext()) {
- Entry<String, JsonNode> resourceEntry = resourceEntries.next();
+ for (Entry<String, JsonNode> resourceEntry :
brokerResourceNode.properties()) {
String resourceName = resourceEntry.getKey();
String tableName = resourceName.replace(OFFLINE_SUFFIX,
"").replace(REALTIME_SUFFIX, "");
Set<String> brokerUrls = brokerUrlsMap.computeIfAbsent(tableName, k ->
new HashSet<>());
JsonNode resource = resourceEntry.getValue();
- Iterator<Entry<String, JsonNode>> brokerEntries = resource.fields();
- while (brokerEntries.hasNext()) {
- Entry<String, JsonNode> brokerEntry = brokerEntries.next();
+ for (Entry<String, JsonNode> brokerEntry : resource.properties()) {
String brokerName = brokerEntry.getKey();
if (brokerName.startsWith("Broker_") &&
"ONLINE".equals(brokerEntry.getValue().asText())) {
brokerUrls.add(getHostPort(brokerName));
diff --git
a/pinot-common/src/main/java/org/apache/pinot/common/response/PinotBrokerTimeSeriesResponse.java
b/pinot-common/src/main/java/org/apache/pinot/common/response/PinotBrokerTimeSeriesResponse.java
index 3198d752c30..08f09440afb 100644
---
a/pinot-common/src/main/java/org/apache/pinot/common/response/PinotBrokerTimeSeriesResponse.java
+++
b/pinot-common/src/main/java/org/apache/pinot/common/response/PinotBrokerTimeSeriesResponse.java
@@ -57,7 +57,7 @@ public class PinotBrokerTimeSeriesResponse {
private String _error;
static {
- OBJECT_MAPPER.setSerializationInclusion(JsonInclude.Include.NON_NULL);
+ OBJECT_MAPPER.setDefaultPropertyInclusion(JsonInclude.Include.NON_NULL);
}
@JsonCreator
diff --git
a/pinot-common/src/main/java/org/apache/pinot/common/response/encoder/JsonResponseEncoder.java
b/pinot-common/src/main/java/org/apache/pinot/common/response/encoder/JsonResponseEncoder.java
index 8cac71ea406..0b260779e16 100644
---
a/pinot-common/src/main/java/org/apache/pinot/common/response/encoder/JsonResponseEncoder.java
+++
b/pinot-common/src/main/java/org/apache/pinot/common/response/encoder/JsonResponseEncoder.java
@@ -150,7 +150,7 @@ public class JsonResponseEncoder implements ResponseEncoder
{
private Map<String, Object> extractMap(JsonNode jsonValue) {
Map<String, Object> map = new HashMap<>();
- jsonValue.fields().forEachRemaining(entry -> {
+ jsonValue.properties().forEach(entry -> {
String key = entry.getKey();
Object value = extractValue(entry.getValue());
map.put(key, value);
diff --git
a/pinot-controller/src/main/java/org/apache/pinot/controller/api/resources/ZookeeperResource.java
b/pinot-controller/src/main/java/org/apache/pinot/controller/api/resources/ZookeeperResource.java
index beb77c8b04b..5b04c82b098 100644
---
a/pinot-controller/src/main/java/org/apache/pinot/controller/api/resources/ZookeeperResource.java
+++
b/pinot-controller/src/main/java/org/apache/pinot/controller/api/resources/ZookeeperResource.java
@@ -24,6 +24,7 @@ import com.fasterxml.jackson.databind.DeserializationFeature;
import com.fasterxml.jackson.databind.MapperFeature;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.SerializationFeature;
+import com.fasterxml.jackson.databind.json.JsonMapper;
import com.google.common.annotations.VisibleForTesting;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiKeyAuthDefinition;
@@ -81,17 +82,14 @@ public class ZookeeperResource {
// Helix uses codehaus.jackson.map.ObjectMapper, hence we can't use pinot
JsonUtils here.
@VisibleForTesting
- static final ObjectMapper MAPPER = (new
ObjectMapper()).setAnnotationIntrospector(new CodehausJacksonIntrospector());
-
- static {
- // Configuration should be identical to
org.apache.helix.zookeeper.datamodel.serializer.ZNRecordSerializer.
-
- MAPPER.enable(SerializationFeature.INDENT_OUTPUT);
- MAPPER.enable(new MapperFeature[]{MapperFeature.AUTO_DETECT_FIELDS});
- MAPPER.enable(new
MapperFeature[]{MapperFeature.CAN_OVERRIDE_ACCESS_MODIFIERS});
- MAPPER.enable(new MapperFeature[]{MapperFeature.AUTO_DETECT_SETTERS});
- MAPPER.enable(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES);
- }
+ static final ObjectMapper MAPPER = JsonMapper.builder()
+ .enable(MapperFeature.AUTO_DETECT_FIELDS)
+ .enable(MapperFeature.AUTO_DETECT_FIELDS)
+ .enable(MapperFeature.CAN_OVERRIDE_ACCESS_MODIFIERS)
+ .enable(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES)
+ .enable(SerializationFeature.INDENT_OUTPUT)
+ .build()
+ .setAnnotationIntrospector(new CodehausJacksonIntrospector());
@Inject
PinotHelixResourceManager _pinotHelixResourceManager;
diff --git
a/pinot-controller/src/main/java/org/apache/pinot/controller/helix/ControllerRequestClient.java
b/pinot-controller/src/main/java/org/apache/pinot/controller/helix/ControllerRequestClient.java
index 99869394469..0b2ce9fd3c7 100644
---
a/pinot-controller/src/main/java/org/apache/pinot/controller/helix/ControllerRequestClient.java
+++
b/pinot-controller/src/main/java/org/apache/pinot/controller/helix/ControllerRequestClient.java
@@ -26,7 +26,6 @@ import java.net.URISyntaxException;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
-import java.util.Iterator;
import java.util.List;
import java.util.Map;
import javax.annotation.Nullable;
@@ -326,9 +325,7 @@ public class ControllerRequestClient {
}
HashMap<String, List<String>> result = new HashMap<>();
- Iterator<Map.Entry<String, JsonNode>> fields = serversMap.fields();
- while (fields.hasNext()) {
- Map.Entry<String, JsonNode> field = fields.next();
+ for (Map.Entry<String, JsonNode> field : serversMap.properties()) {
List<String> segments = new ArrayList<>();
ArrayNode value = (ArrayNode) field.getValue();
diff --git
a/pinot-controller/src/main/java/org/apache/pinot/controller/util/TableMetadataReader.java
b/pinot-controller/src/main/java/org/apache/pinot/controller/util/TableMetadataReader.java
index 71e3e4194ba..628c917ff06 100644
---
a/pinot-controller/src/main/java/org/apache/pinot/controller/util/TableMetadataReader.java
+++
b/pinot-controller/src/main/java/org/apache/pinot/controller/util/TableMetadataReader.java
@@ -166,7 +166,7 @@ public class TableMetadataReader {
String segmentName = node.get("segmentName").asText();
aggregatedNode.set(segmentName, node);
} else {
- node.fields().forEachRemaining(entry ->
aggregatedNode.set(entry.getKey(), entry.getValue()));
+ node.properties().forEach(entry -> aggregatedNode.set(entry.getKey(),
entry.getValue()));
}
}
return aggregatedNode;
diff --git
a/pinot-integration-tests/src/test/java/org/apache/pinot/integration/tests/realtime/ingestion/RealtimeKinesisIntegrationTest.java
b/pinot-integration-tests/src/test/java/org/apache/pinot/integration/tests/realtime/ingestion/RealtimeKinesisIntegrationTest.java
index 1f5569a6036..666b78fb341 100644
---
a/pinot-integration-tests/src/test/java/org/apache/pinot/integration/tests/realtime/ingestion/RealtimeKinesisIntegrationTest.java
+++
b/pinot-integration-tests/src/test/java/org/apache/pinot/integration/tests/realtime/ingestion/RealtimeKinesisIntegrationTest.java
@@ -31,7 +31,6 @@ import java.sql.Statement;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
-import java.util.Iterator;
import java.util.List;
import java.util.Map;
import javax.activation.UnsupportedDataTypeException;
@@ -258,9 +257,7 @@ public class RealtimeKinesisIntegrationTest extends
BaseKinesisIntegrationTest {
if (StringUtils.isNotBlank(line)) {
JsonNode dataObject = JsonUtils.stringToJsonNode(line);
- Iterator<Map.Entry<String, JsonNode>> fieldIterator =
dataObject.fields();
- while (fieldIterator.hasNext()) {
- Map.Entry<String, JsonNode> field = fieldIterator.next();
+ for (Map.Entry<String, JsonNode> field : dataObject.properties()) {
String fieldName = field.getKey();
JsonNodeType fieldDataType = field.getValue().getNodeType();
diff --git
a/pinot-plugins/pinot-stream-ingestion/pinot-kinesis/src/main/java/org/apache/pinot/plugin/stream/kinesis/KinesisPartitionGroupOffset.java
b/pinot-plugins/pinot-stream-ingestion/pinot-kinesis/src/main/java/org/apache/pinot/plugin/stream/kinesis/KinesisPartitionGroupOffset.java
index e68c84e82e1..16ce42cded1 100644
---
a/pinot-plugins/pinot-stream-ingestion/pinot-kinesis/src/main/java/org/apache/pinot/plugin/stream/kinesis/KinesisPartitionGroupOffset.java
+++
b/pinot-plugins/pinot-stream-ingestion/pinot-kinesis/src/main/java/org/apache/pinot/plugin/stream/kinesis/KinesisPartitionGroupOffset.java
@@ -50,7 +50,7 @@ public class KinesisPartitionGroupOffset implements
StreamPartitionMsgOffset {
try {
ObjectNode objectNode = (ObjectNode)
JsonUtils.stringToJsonNode(offsetStr);
Preconditions.checkArgument(objectNode.size() == 1);
- Map.Entry<String, JsonNode> entry = objectNode.fields().next();
+ Map.Entry<String, JsonNode> entry =
objectNode.properties().iterator().next();
_shardId = entry.getKey();
_sequenceNumber = entry.getValue().asText();
} catch (Exception e) {
diff --git
a/pinot-segment-local/src/main/java/org/apache/pinot/segment/local/utils/TableConfigUtils.java
b/pinot-segment-local/src/main/java/org/apache/pinot/segment/local/utils/TableConfigUtils.java
index a589075f3c1..13397d62693 100644
---
a/pinot-segment-local/src/main/java/org/apache/pinot/segment/local/utils/TableConfigUtils.java
+++
b/pinot-segment-local/src/main/java/org/apache/pinot/segment/local/utils/TableConfigUtils.java
@@ -1736,9 +1736,7 @@ public final class TableConfigUtils {
}
private static void overwriteConfig(JsonNode oldCfg, JsonNode newCfg) {
- Iterator<Map.Entry<String, JsonNode>> cfgItr = newCfg.fields();
- while (cfgItr.hasNext()) {
- Map.Entry<String, JsonNode> cfgEntry = cfgItr.next();
+ for (Map.Entry<String, JsonNode> cfgEntry : newCfg.properties()) {
((ObjectNode) oldCfg).set(cfgEntry.getKey(), cfgEntry.getValue());
}
}
diff --git
a/pinot-segment-spi/src/test/java/org/apache/pinot/segment/spi/partition/PartitionFunctionTest.java
b/pinot-segment-spi/src/test/java/org/apache/pinot/segment/spi/partition/PartitionFunctionTest.java
index 6d8883bd95d..8bb44bb024f 100644
---
a/pinot-segment-spi/src/test/java/org/apache/pinot/segment/spi/partition/PartitionFunctionTest.java
+++
b/pinot-segment-spi/src/test/java/org/apache/pinot/segment/spi/partition/PartitionFunctionTest.java
@@ -381,7 +381,7 @@ public class PartitionFunctionTest {
if (functionConfig == null) {
assertTrue(functionConfigNode.isNull());
} else {
- functionConfigNode.fields().forEachRemaining(nodeEntry -> {
+ functionConfigNode.properties().forEach(nodeEntry -> {
assertTrue(functionConfig.containsKey(nodeEntry.getKey()));
assertEquals(nodeEntry.getValue().asText(),
functionConfig.get(nodeEntry.getKey()));
});
diff --git
a/pinot-spi/src/main/java/org/apache/pinot/spi/config/ConfigUtils.java
b/pinot-spi/src/main/java/org/apache/pinot/spi/config/ConfigUtils.java
index 289eef7db00..b28b2be095b 100644
--- a/pinot-spi/src/main/java/org/apache/pinot/spi/config/ConfigUtils.java
+++ b/pinot-spi/src/main/java/org/apache/pinot/spi/config/ConfigUtils.java
@@ -24,7 +24,6 @@ import com.fasterxml.jackson.databind.node.JsonNodeFactory;
import com.fasterxml.jackson.databind.node.JsonNodeType;
import java.io.IOException;
import java.util.HashMap;
-import java.util.Iterator;
import java.util.Map;
import org.apache.pinot.spi.utils.JsonUtils;
@@ -81,9 +80,7 @@ public class ConfigUtils {
switch (nodeType) {
case OBJECT:
if (!jsonNode.isEmpty()) {
- Iterator<Map.Entry<String, JsonNode>> iterator = jsonNode.fields();
- while (iterator.hasNext()) {
- final Map.Entry<String, JsonNode> next = iterator.next();
+ for (Map.Entry<String, JsonNode> next : jsonNode.properties()) {
next.setValue(applyConfigWithEnvVariablesAndSystemProperties(configValues,
next.getValue()));
}
}
diff --git a/pinot-spi/src/main/java/org/apache/pinot/spi/utils/JsonUtils.java
b/pinot-spi/src/main/java/org/apache/pinot/spi/utils/JsonUtils.java
index 535cccdebb2..523bf337abb 100644
--- a/pinot-spi/src/main/java/org/apache/pinot/spi/utils/JsonUtils.java
+++ b/pinot-spi/src/main/java/org/apache/pinot/spi/utils/JsonUtils.java
@@ -44,7 +44,6 @@ import java.util.AbstractMap;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
-import java.util.Iterator;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
@@ -456,9 +455,7 @@ public class JsonUtils {
// Put all nested results (from array) into a list to be processed later
List<List<Map<String, String>>> nestedResultsList = new ArrayList<>();
- Iterator<Map.Entry<String, JsonNode>> fieldIterator = node.fields();
- while (fieldIterator.hasNext()) {
- Map.Entry<String, JsonNode> fieldEntry = fieldIterator.next();
+ for (Map.Entry<String, JsonNode> fieldEntry : node.properties()) {
String field = fieldEntry.getKey();
Set<String> excludeFields = jsonIndexConfig.getExcludeFields();
if (excludeFields != null && excludeFields.contains(field)) {
@@ -623,9 +620,7 @@ public class JsonUtils {
@Nullable Map<String, FieldSpec.FieldType> fieldTypeMap, @Nullable
TimeUnit timeUnit, List<String> fieldsToUnnest,
String delimiter, ComplexTypeConfig.CollectionNotUnnestedToJson
collectionNotUnnestedToJson) {
Schema pinotSchema = new Schema();
- Iterator<Map.Entry<String, JsonNode>> fieldIterator = jsonNode.fields();
- while (fieldIterator.hasNext()) {
- Map.Entry<String, JsonNode> fieldEntry = fieldIterator.next();
+ for (Map.Entry<String, JsonNode> fieldEntry : jsonNode.properties()) {
JsonNode childNode = fieldEntry.getValue();
inferPinotSchemaFromJsonNode(childNode, pinotSchema,
fieldEntry.getKey(), fieldTypeMap, timeUnit, fieldsToUnnest,
delimiter, collectionNotUnnestedToJson);
@@ -661,9 +656,7 @@ public class JsonUtils {
}
// do not include the node for other cases
} else if (jsonNode.isObject()) {
- Iterator<Map.Entry<String, JsonNode>> fieldIterator = jsonNode.fields();
- while (fieldIterator.hasNext()) {
- Map.Entry<String, JsonNode> fieldEntry = fieldIterator.next();
+ for (Map.Entry<String, JsonNode> fieldEntry : jsonNode.properties()) {
JsonNode childNode = fieldEntry.getValue();
inferPinotSchemaFromJsonNode(childNode, pinotSchema,
String.join(delimiter, path, fieldEntry.getKey()),
fieldTypeMap, timeUnit, fieldsToUnnest, delimiter,
collectionNotUnnestedToJson);
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]