Skip to content

Commit 79d0a7b

Browse files
Add the new configuration proprty[enabledJavaTimeModule]
1 parent 5bcec49 commit 79d0a7b

File tree

4 files changed

+24
-6
lines changed

4 files changed

+24
-6
lines changed

deployment/src/main/java/io/quarkiverse/loggingjson/deployment/LoggingJsonProcessor.java

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -34,19 +34,21 @@ FeatureBuildItem feature() {
3434
@Record(ExecutionTime.RUNTIME_INIT)
3535
LogConsoleFormatBuildItem setUpConsoleFormatter(Capabilities capabilities, LoggingJsonRecorder recorder,
3636
Config config) {
37-
return new LogConsoleFormatBuildItem(recorder.initializeConsoleJsonLogging(config, jsonFactory(capabilities)));
37+
return new LogConsoleFormatBuildItem(
38+
recorder.initializeConsoleJsonLogging(config, jsonFactory(capabilities, config.enabledJavaTimeModule)));
3839
}
3940

4041
@BuildStep
4142
@Record(ExecutionTime.RUNTIME_INIT)
4243
LogFileFormatBuildItem setUpFileFormatter(Capabilities capabilities, LoggingJsonRecorder recorder,
4344
Config config) {
44-
return new LogFileFormatBuildItem(recorder.initializeFileJsonLogging(config, jsonFactory(capabilities)));
45+
return new LogFileFormatBuildItem(
46+
recorder.initializeFileJsonLogging(config, jsonFactory(capabilities, config.enabledJavaTimeModule)));
4547
}
4648

47-
private JsonFactory jsonFactory(Capabilities capabilities) {
49+
private JsonFactory jsonFactory(Capabilities capabilities, boolean enabledJavaTimeModule) {
4850
if (capabilities.isPresent(Capability.JACKSON)) {
49-
return new JacksonJsonFactory();
51+
return new JacksonJsonFactory(enabledJavaTimeModule);
5052
} else if (capabilities.isPresent(Capability.JSONB)) {
5153
return new JsonbJsonFactory();
5254
} else {

runtime/src/main/java/io/quarkiverse/loggingjson/config/Config.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,13 @@ public class Config {
3131
*/
3232
@ConfigItem
3333
public boolean prettyPrint;
34+
35+
/**
36+
* Enable the JavaTimeModule for Jackson.
37+
*/
38+
@ConfigItem(defaultValue = "false")
39+
public boolean enabledJavaTimeModule;
40+
3441
/**
3542
* The special end-of-record delimiter to be used. By default, newline delimiter is used.
3643
*/

runtime/src/main/java/io/quarkiverse/loggingjson/jackson/JacksonJsonFactory.java

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55

66
import com.fasterxml.jackson.databind.ObjectMapper;
77
import com.fasterxml.jackson.databind.SerializationFeature;
8+
import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule;
89

910
import io.quarkiverse.loggingjson.JsonFactory;
1011
import io.quarkiverse.loggingjson.JsonGenerator;
@@ -14,7 +15,11 @@ public class JacksonJsonFactory implements JsonFactory {
1415

1516
private final com.fasterxml.jackson.core.JsonFactory jsonFactory;
1617

17-
public JacksonJsonFactory() {
18+
public final boolean enabledJavaTimeModule;
19+
20+
public JacksonJsonFactory(boolean enabledJavaTimeModule) {
21+
this.enabledJavaTimeModule = enabledJavaTimeModule;
22+
1823
jsonFactory = createJsonFactory();
1924
}
2025

@@ -25,6 +30,10 @@ private com.fasterxml.jackson.core.JsonFactory createJsonFactory() {
2530
*/
2631
.disable(SerializationFeature.FAIL_ON_EMPTY_BEANS);
2732

33+
if (this.enabledJavaTimeModule) {
34+
objectMapper.registerModule(new JavaTimeModule());
35+
}
36+
2837
try {
2938
objectMapper.findAndRegisterModules();
3039
} catch (ServiceConfigurationError serviceConfigurationError) {

runtime/src/test/java/io/quarkiverse/loggingjson/providers/JsonProviderBaseTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
abstract class JsonProviderBaseTest {
1818

1919
private static final JsonFactory jsonb = new JsonbJsonFactory();
20-
private static final JsonFactory jackson = new JacksonJsonFactory();
20+
private static final JsonFactory jackson = new JacksonJsonFactory(false);
2121
private static final ObjectMapper mapper = new ObjectMapper();
2222

2323
protected abstract Type type();

0 commit comments

Comments
 (0)