From f4a69b1d2d688a07358f9463cbd9472c416b1747 Mon Sep 17 00:00:00 2001 From: Kurt Ostfeld Date: Thu, 29 May 2025 15:48:50 -0500 Subject: [PATCH] Upgraded Jackson from 2.x to 3.0.0-rc5 --- log4j-config-jackson/pom.xml | 2 +- .../jackson/AbstractJacksonConfiguration.java | 26 ++++++------------- log4j-config-properties/pom.xml | 2 +- .../properties/JavaPropsConfiguration.java | 6 ++--- log4j-config-yaml/pom.xml | 2 +- .../log4j/config/yaml/YamlConfiguration.java | 9 +++---- log4j-core-test/pom.xml | 16 +++++++++--- log4j-docker/pom.xml | 9 ++----- .../logging/log4j/docker/DockerLookup.java | 4 +-- log4j-layout-template-json-test/pom.xml | 2 ++ .../layout/template/json/JacksonFixture.java | 2 +- .../template/json/JsonTemplateLayoutTest.java | 6 ++--- log4j-parent/pom.xml | 7 +++-- log4j-perf-test/pom.xml | 4 +-- 14 files changed, 45 insertions(+), 52 deletions(-) diff --git a/log4j-config-jackson/pom.xml b/log4j-config-jackson/pom.xml index ab2125febef..aee9dd1387e 100644 --- a/log4j-config-jackson/pom.xml +++ b/log4j-config-jackson/pom.xml @@ -36,7 +36,7 @@ - com.fasterxml.jackson.core + tools.jackson.core jackson-databind diff --git a/log4j-config-jackson/src/main/java/org/apache/logging/log4j/config/jackson/AbstractJacksonConfiguration.java b/log4j-config-jackson/src/main/java/org/apache/logging/log4j/config/jackson/AbstractJacksonConfiguration.java index b6fc2c3cd98..c8ce6666f90 100644 --- a/log4j-config-jackson/src/main/java/org/apache/logging/log4j/config/jackson/AbstractJacksonConfiguration.java +++ b/log4j-config-jackson/src/main/java/org/apache/logging/log4j/config/jackson/AbstractJacksonConfiguration.java @@ -16,18 +16,12 @@ */ package org.apache.logging.log4j.config.jackson; -import com.fasterxml.jackson.databind.JsonNode; -import com.fasterxml.jackson.databind.ObjectMapper; -import com.fasterxml.jackson.databind.node.JsonNodeFactory; -import com.fasterxml.jackson.databind.node.ObjectNode; import java.io.ByteArrayInputStream; import java.io.IOException; import java.io.InputStream; import java.util.ArrayList; -import java.util.Iterator; import java.util.List; import java.util.Map; -import java.util.Map.Entry; import java.util.TreeMap; import org.apache.logging.log4j.core.LoggerContext; import org.apache.logging.log4j.core.config.AbstractConfiguration; @@ -38,6 +32,10 @@ import org.apache.logging.log4j.core.config.status.StatusConfiguration; import org.apache.logging.log4j.plugins.Node; import org.apache.logging.log4j.plugins.model.PluginType; +import tools.jackson.databind.JsonNode; +import tools.jackson.databind.ObjectMapper; +import tools.jackson.databind.node.JsonNodeFactory; +import tools.jackson.databind.node.ObjectNode; /** * Base class for all Jackson-based configurations. @@ -116,10 +114,8 @@ protected abstract Configuration createConfiguration( @Override public void setup() { - final Iterator> iter = root.fields(); final List children = rootNode.getChildren(); - while (iter.hasNext()) { - final Map.Entry entry = iter.next(); + for (Map.Entry entry : root.properties()) { final JsonNode n = entry.getValue(); if (n.isObject()) { LOGGER.debug("Processing node for object {}", entry.getKey()); @@ -154,10 +150,8 @@ private Node constructNode(final String name, final Node parent, final JsonNode final PluginType type = corePlugins.get(getType(jsonNode, name)); final Node node = new Node(parent, name, type); processAttributes(node, jsonNode); - final Iterator> iter = jsonNode.fields(); final List children = node.getChildren(); - while (iter.hasNext()) { - final Map.Entry entry = iter.next(); + for (Map.Entry entry : jsonNode.properties()) { final JsonNode n = entry.getValue(); if (n.isArray() || n.isObject()) { if (type == null) { @@ -195,9 +189,7 @@ private Node constructNode(final String name, final Node parent, final JsonNode } private String getType(final JsonNode node, final String name) { - final Iterator> iter = node.fields(); - while (iter.hasNext()) { - final Map.Entry entry = iter.next(); + for (Map.Entry entry : node.properties()) { if ("type".equalsIgnoreCase(entry.getKey())) { final JsonNode n = entry.getValue(); if (n.isValueNode()) { @@ -210,9 +202,7 @@ private String getType(final JsonNode node, final String name) { private void processAttributes(final Node parent, final JsonNode node) { final Map attrs = parent.getAttributes(); - final Iterator> iter = node.fields(); - while (iter.hasNext()) { - final Map.Entry entry = iter.next(); + for (Map.Entry entry : node.properties()) { if (!"type".equalsIgnoreCase(entry.getKey())) { final JsonNode n = entry.getValue(); if (n.isValueNode()) { diff --git a/log4j-config-properties/pom.xml b/log4j-config-properties/pom.xml index 14a6a5691ce..f8602487ee1 100644 --- a/log4j-config-properties/pom.xml +++ b/log4j-config-properties/pom.xml @@ -38,7 +38,7 @@ - com.fasterxml.jackson.dataformat + tools.jackson.dataformat jackson-dataformat-properties diff --git a/log4j-config-properties/src/main/java/org/apache/logging/log4j/config/properties/JavaPropsConfiguration.java b/log4j-config-properties/src/main/java/org/apache/logging/log4j/config/properties/JavaPropsConfiguration.java index 92d16ff6901..c89d5562c6a 100644 --- a/log4j-config-properties/src/main/java/org/apache/logging/log4j/config/properties/JavaPropsConfiguration.java +++ b/log4j-config-properties/src/main/java/org/apache/logging/log4j/config/properties/JavaPropsConfiguration.java @@ -16,13 +16,12 @@ */ package org.apache.logging.log4j.config.properties; -import com.fasterxml.jackson.core.JsonParser; -import com.fasterxml.jackson.databind.ObjectMapper; -import com.fasterxml.jackson.dataformat.javaprop.JavaPropsMapper; import org.apache.logging.log4j.config.jackson.AbstractJacksonConfiguration; import org.apache.logging.log4j.core.LoggerContext; import org.apache.logging.log4j.core.config.Configuration; import org.apache.logging.log4j.core.config.ConfigurationSource; +import tools.jackson.databind.ObjectMapper; +import tools.jackson.dataformat.javaprop.JavaPropsMapper; /** * Creates a Node hierarchy from a properties file. @@ -41,7 +40,6 @@ protected Configuration createConfiguration( protected ObjectMapper getObjectMapper() { return JavaPropsMapper.builder() - .configure(JsonParser.Feature.ALLOW_COMMENTS, true) .nodeFactory(SortingNodeFactory.INSTANCE) .build(); } diff --git a/log4j-config-yaml/pom.xml b/log4j-config-yaml/pom.xml index 8b02dd275d1..b6f7f56e973 100644 --- a/log4j-config-yaml/pom.xml +++ b/log4j-config-yaml/pom.xml @@ -38,7 +38,7 @@ - com.fasterxml.jackson.dataformat + tools.jackson.dataformat jackson-dataformat-yaml diff --git a/log4j-config-yaml/src/main/java/org/apache/logging/log4j/config/yaml/YamlConfiguration.java b/log4j-config-yaml/src/main/java/org/apache/logging/log4j/config/yaml/YamlConfiguration.java index 0deff0b9dd1..bbc79fd4148 100644 --- a/log4j-config-yaml/src/main/java/org/apache/logging/log4j/config/yaml/YamlConfiguration.java +++ b/log4j-config-yaml/src/main/java/org/apache/logging/log4j/config/yaml/YamlConfiguration.java @@ -16,13 +16,12 @@ */ package org.apache.logging.log4j.config.yaml; -import com.fasterxml.jackson.core.JsonParser; -import com.fasterxml.jackson.databind.ObjectMapper; -import com.fasterxml.jackson.dataformat.yaml.YAMLMapper; import org.apache.logging.log4j.config.jackson.AbstractJacksonConfiguration; import org.apache.logging.log4j.core.LoggerContext; import org.apache.logging.log4j.core.config.Configuration; import org.apache.logging.log4j.core.config.ConfigurationSource; +import tools.jackson.databind.ObjectMapper; +import tools.jackson.dataformat.yaml.YAMLMapper; /** * Creates a Node hierarchy from a YAML file. @@ -41,8 +40,6 @@ protected Configuration createConfiguration( @Override protected ObjectMapper getObjectMapper() { - return YAMLMapper.builder() - .configure(JsonParser.Feature.ALLOW_COMMENTS, true) - .build(); + return YAMLMapper.builder().build(); } } diff --git a/log4j-core-test/pom.xml b/log4j-core-test/pom.xml index ecf1ba9efcd..c1ef4684cb9 100644 --- a/log4j-core-test/pom.xml +++ b/log4j-core-test/pom.xml @@ -156,28 +156,28 @@ - com.fasterxml.jackson.core + tools.jackson.core jackson-core true - com.fasterxml.jackson.core + tools.jackson.core jackson-databind true - com.fasterxml.jackson.dataformat + tools.jackson.dataformat jackson-dataformat-xml true - com.fasterxml.jackson.dataformat + tools.jackson.dataformat jackson-dataformat-yaml true @@ -315,6 +315,14 @@ test + + + com.fasterxml.jackson.core + jackson-databind + ${jackson2.test.version} + test + + org.xmlunit xmlunit-core diff --git a/log4j-docker/pom.xml b/log4j-docker/pom.xml index 2b6c19f09e2..6234d394190 100644 --- a/log4j-docker/pom.xml +++ b/log4j-docker/pom.xml @@ -36,11 +36,6 @@ - - - com.fasterxml.jackson.core;substitute="jackson-core", - com.fasterxml.jackson.databind;substitute="jackson-databind" - org.apache.logging.log4j.core @@ -59,11 +54,11 @@ jackson-annotations - com.fasterxml.jackson.core + tools.jackson.core jackson-core - com.fasterxml.jackson.core + tools.jackson.core jackson-databind diff --git a/log4j-docker/src/main/java/org/apache/logging/log4j/docker/DockerLookup.java b/log4j-docker/src/main/java/org/apache/logging/log4j/docker/DockerLookup.java index d9f0f42dacd..363312a8f87 100644 --- a/log4j-docker/src/main/java/org/apache/logging/log4j/docker/DockerLookup.java +++ b/log4j-docker/src/main/java/org/apache/logging/log4j/docker/DockerLookup.java @@ -16,8 +16,6 @@ */ package org.apache.logging.log4j.docker; -import com.fasterxml.jackson.core.type.TypeReference; -import com.fasterxml.jackson.databind.ObjectMapper; import java.io.IOException; import java.net.URI; import java.net.URL; @@ -33,6 +31,8 @@ import org.apache.logging.log4j.kit.env.PropertyEnvironment; import org.apache.logging.log4j.plugins.Plugin; import org.apache.logging.log4j.status.StatusLogger; +import tools.jackson.core.type.TypeReference; +import tools.jackson.databind.ObjectMapper; /** * Looks up keys for a Docker container. diff --git a/log4j-layout-template-json-test/pom.xml b/log4j-layout-template-json-test/pom.xml index 0eaaedf87f7..e7dd53bb689 100644 --- a/log4j-layout-template-json-test/pom.xml +++ b/log4j-layout-template-json-test/pom.xml @@ -97,9 +97,11 @@ test + com.fasterxml.jackson.core jackson-databind + ${jackson2.test.version} test diff --git a/log4j-layout-template-json-test/src/test/java/org/apache/logging/log4j/layout/template/json/JacksonFixture.java b/log4j-layout-template-json-test/src/test/java/org/apache/logging/log4j/layout/template/json/JacksonFixture.java index aa518c57026..82b919127c1 100644 --- a/log4j-layout-template-json-test/src/test/java/org/apache/logging/log4j/layout/template/json/JacksonFixture.java +++ b/log4j-layout-template-json-test/src/test/java/org/apache/logging/log4j/layout/template/json/JacksonFixture.java @@ -16,7 +16,7 @@ */ package org.apache.logging.log4j.layout.template.json; -import com.fasterxml.jackson.databind.ObjectMapper; +import tools.jackson.databind.ObjectMapper; public final class JacksonFixture { diff --git a/log4j-layout-template-json-test/src/test/java/org/apache/logging/log4j/layout/template/json/JsonTemplateLayoutTest.java b/log4j-layout-template-json-test/src/test/java/org/apache/logging/log4j/layout/template/json/JsonTemplateLayoutTest.java index 662de8be5f6..ebaf948ebbe 100644 --- a/log4j-layout-template-json-test/src/test/java/org/apache/logging/log4j/layout/template/json/JsonTemplateLayoutTest.java +++ b/log4j-layout-template-json-test/src/test/java/org/apache/logging/log4j/layout/template/json/JsonTemplateLayoutTest.java @@ -24,9 +24,6 @@ import static org.assertj.core.api.Assertions.assertThat; import static org.assertj.core.api.Assertions.assertThatThrownBy; -import com.fasterxml.jackson.databind.JsonNode; -import com.fasterxml.jackson.databind.MappingIterator; -import com.fasterxml.jackson.databind.ObjectMapper; import java.io.ByteArrayOutputStream; import java.io.EOFException; import java.io.IOException; @@ -83,6 +80,9 @@ import org.apache.logging.log4j.plugins.Plugin; import org.apache.logging.log4j.plugins.PluginFactory; import org.junit.jupiter.api.Test; +import tools.jackson.databind.JsonNode; +import tools.jackson.databind.MappingIterator; +import tools.jackson.databind.ObjectMapper; @SuppressWarnings("DoubleBraceInitialization") class JsonTemplateLayoutTest { diff --git a/log4j-parent/pom.xml b/log4j-parent/pom.xml index f6cc82b2528..1fea19a3edd 100644 --- a/log4j-parent/pom.xml +++ b/log4j-parent/pom.xml @@ -111,7 +111,10 @@ 3.0 2.2.2 2.7.4 - 2.19.0 + + + 2.19.0 + 3.0.0-rc5 2.0.1 3.3.4 4.0.5 @@ -200,7 +203,7 @@ - com.fasterxml.jackson + tools.jackson jackson-bom ${jackson-bom.version} pom diff --git a/log4j-perf-test/pom.xml b/log4j-perf-test/pom.xml index 0fed2e3aecc..2803d4ca53d 100644 --- a/log4j-perf-test/pom.xml +++ b/log4j-perf-test/pom.xml @@ -145,13 +145,13 @@ - com.fasterxml.jackson.core + tools.jackson.core jackson-core true - com.fasterxml.jackson.core + tools.jackson.core jackson-databind true