This is an automated email from the ASF dual-hosted git repository. pkarwasz pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/logging-log4j-transform.git
The following commit(s) were added to refs/heads/main by this push: new 409760c Add trailing newlines and emit formatted JSON (#216) 409760c is described below commit 409760ce2bde1af858e7df2685009f1fac5589a5 Author: Ryan Schmitt <rschm...@pobox.com> AuthorDate: Thu Aug 7 12:26:04 2025 -0700 Add trailing newlines and emit formatted JSON (#216) --- .../config/internal/v2/AbstractJacksonConfigurationMapper.java | 2 ++ .../converter/config/internal/v2/JsonConfigurationMapper.java | 9 ++++++++- .../converter/config/internal/v2/XmlConfigurationMapper.java | 1 + .../logging/converter/config/ConfigurationConverterTest.java | 4 +++- 4 files changed, 14 insertions(+), 2 deletions(-) diff --git a/log4j-converter-config/src/main/java/org/apache/logging/converter/config/internal/v2/AbstractJacksonConfigurationMapper.java b/log4j-converter-config/src/main/java/org/apache/logging/converter/config/internal/v2/AbstractJacksonConfigurationMapper.java index dd4b488..a75d7a4 100644 --- a/log4j-converter-config/src/main/java/org/apache/logging/converter/config/internal/v2/AbstractJacksonConfigurationMapper.java +++ b/log4j-converter-config/src/main/java/org/apache/logging/converter/config/internal/v2/AbstractJacksonConfigurationMapper.java @@ -73,6 +73,8 @@ public abstract class AbstractJacksonConfigurationMapper implements Configuratio ? nodeFactory.objectNode().set(configuration.getPluginName(), configurationNode) : configurationNode; mapper.writeValue(outputStream, documentNode); + outputStream.write('\n'); + outputStream.close(); } private static ConfigurationNode parseObjectNode(ObjectNode objectNode, String fieldName) { diff --git a/log4j-converter-config/src/main/java/org/apache/logging/converter/config/internal/v2/JsonConfigurationMapper.java b/log4j-converter-config/src/main/java/org/apache/logging/converter/config/internal/v2/JsonConfigurationMapper.java index 8eed7c0..2f03437 100644 --- a/log4j-converter-config/src/main/java/org/apache/logging/converter/config/internal/v2/JsonConfigurationMapper.java +++ b/log4j-converter-config/src/main/java/org/apache/logging/converter/config/internal/v2/JsonConfigurationMapper.java @@ -18,6 +18,8 @@ package org.apache.logging.converter.config.internal.v2; import aQute.bnd.annotation.Resolution; import aQute.bnd.annotation.spi.ServiceProvider; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.databind.SerializationFeature; import com.fasterxml.jackson.databind.json.JsonMapper; import org.apache.logging.converter.config.spi.ConfigurationMapper; @@ -27,7 +29,12 @@ public class JsonConfigurationMapper extends AbstractJacksonConfigurationMapper private static final String LOG4J_V2_JSON_FORMAT = "v2:json"; public JsonConfigurationMapper() { - super(JsonMapper.builder().build(), true); + super( + JsonMapper.builder() + .enable(SerializationFeature.INDENT_OUTPUT) + .disable(JsonGenerator.Feature.AUTO_CLOSE_TARGET) + .build(), + true); } @Override diff --git a/log4j-converter-config/src/main/java/org/apache/logging/converter/config/internal/v2/XmlConfigurationMapper.java b/log4j-converter-config/src/main/java/org/apache/logging/converter/config/internal/v2/XmlConfigurationMapper.java index 077c944..f17a7bf 100644 --- a/log4j-converter-config/src/main/java/org/apache/logging/converter/config/internal/v2/XmlConfigurationMapper.java +++ b/log4j-converter-config/src/main/java/org/apache/logging/converter/config/internal/v2/XmlConfigurationMapper.java @@ -88,6 +88,7 @@ public class XmlConfigurationMapper implements ConfigurationMapper { streamWriter.writeEndElement(); streamWriter.writeEndDocument(); streamWriter.flush(); + streamWriter.writeCharacters("\n"); } catch (XMLStreamException e) { throw new IOException("Unable to write configuration.", e); } finally { diff --git a/log4j-converter-config/src/test/java/org/apache/logging/converter/config/ConfigurationConverterTest.java b/log4j-converter-config/src/test/java/org/apache/logging/converter/config/ConfigurationConverterTest.java index eadf189..b0bdca8 100644 --- a/log4j-converter-config/src/test/java/org/apache/logging/converter/config/ConfigurationConverterTest.java +++ b/log4j-converter-config/src/test/java/org/apache/logging/converter/config/ConfigurationConverterTest.java @@ -59,8 +59,10 @@ class ConfigurationConverterTest { ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); converter.convert(Objects.requireNonNull(inputStream), inputFormat, outputStream, DEFAULT_FORMAT); // Parse the result and check if it matches - ConfigurationNode actual = parser.parse(new ByteArrayInputStream(outputStream.toByteArray())); + byte[] outputBytes = outputStream.toByteArray(); + ConfigurationNode actual = parser.parse(new ByteArrayInputStream(outputBytes)); assertThat(actual).ignoringOrder().isEqualTo(EXAMPLE_V2_CONFIGURATION); + assertThat(new String(outputBytes)).endsWith("\n"); } }