Skip to content

Commit 409760c

Browse files
authored
Add trailing newlines and emit formatted JSON (#216)
1 parent e632ed5 commit 409760c

File tree

4 files changed

+14
-2
lines changed

4 files changed

+14
-2
lines changed

log4j-converter-config/src/main/java/org/apache/logging/converter/config/internal/v2/AbstractJacksonConfigurationMapper.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,8 @@ public void writeConfiguration(OutputStream outputStream, ConfigurationNode conf
7373
? nodeFactory.objectNode().set(configuration.getPluginName(), configurationNode)
7474
: configurationNode;
7575
mapper.writeValue(outputStream, documentNode);
76+
outputStream.write('\n');
77+
outputStream.close();
7678
}
7779

7880
private static ConfigurationNode parseObjectNode(ObjectNode objectNode, String fieldName) {

log4j-converter-config/src/main/java/org/apache/logging/converter/config/internal/v2/JsonConfigurationMapper.java

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,8 @@
1818

1919
import aQute.bnd.annotation.Resolution;
2020
import aQute.bnd.annotation.spi.ServiceProvider;
21+
import com.fasterxml.jackson.core.JsonGenerator;
22+
import com.fasterxml.jackson.databind.SerializationFeature;
2123
import com.fasterxml.jackson.databind.json.JsonMapper;
2224
import org.apache.logging.converter.config.spi.ConfigurationMapper;
2325

@@ -27,7 +29,12 @@ public class JsonConfigurationMapper extends AbstractJacksonConfigurationMapper
2729
private static final String LOG4J_V2_JSON_FORMAT = "v2:json";
2830

2931
public JsonConfigurationMapper() {
30-
super(JsonMapper.builder().build(), true);
32+
super(
33+
JsonMapper.builder()
34+
.enable(SerializationFeature.INDENT_OUTPUT)
35+
.disable(JsonGenerator.Feature.AUTO_CLOSE_TARGET)
36+
.build(),
37+
true);
3138
}
3239

3340
@Override

log4j-converter-config/src/main/java/org/apache/logging/converter/config/internal/v2/XmlConfigurationMapper.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,7 @@ public void writeConfiguration(OutputStream outputStream, ConfigurationNode conf
8888
streamWriter.writeEndElement();
8989
streamWriter.writeEndDocument();
9090
streamWriter.flush();
91+
streamWriter.writeCharacters("\n");
9192
} catch (XMLStreamException e) {
9293
throw new IOException("Unable to write configuration.", e);
9394
} finally {

log4j-converter-config/src/test/java/org/apache/logging/converter/config/ConfigurationConverterTest.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,8 +59,10 @@ void conversionToXml(String inputResource, String inputFormat) throws IOExceptio
5959
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
6060
converter.convert(Objects.requireNonNull(inputStream), inputFormat, outputStream, DEFAULT_FORMAT);
6161
// Parse the result and check if it matches
62-
ConfigurationNode actual = parser.parse(new ByteArrayInputStream(outputStream.toByteArray()));
62+
byte[] outputBytes = outputStream.toByteArray();
63+
ConfigurationNode actual = parser.parse(new ByteArrayInputStream(outputBytes));
6364
assertThat(actual).ignoringOrder().isEqualTo(EXAMPLE_V2_CONFIGURATION);
65+
assertThat(new String(outputBytes)).endsWith("\n");
6466
}
6567
}
6668

0 commit comments

Comments
 (0)