Skip to content

Commit 2195679

Browse files
committed
Added possibility to provide external object mapper.
1 parent 417ef8f commit 2195679

24 files changed

+162
-263
lines changed

deployment/pom.xml

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -25,11 +25,6 @@
2525
<artifactId>quarkus-logging-json</artifactId>
2626
<version>3.4.1-SNAPSHOT</version>
2727
</dependency>
28-
<dependency>
29-
<groupId>io.quarkus</groupId>
30-
<artifactId>quarkus-jackson-spi</artifactId>
31-
<optional>true</optional>
32-
</dependency>
3328
<!-- test dependencies -->
3429
<dependency>
3530
<groupId>io.quarkus</groupId>

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

Lines changed: 9 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,15 @@
11
package io.quarkiverse.loggingjson.deployment;
22

3-
import java.util.ArrayList;
43
import java.util.Collection;
5-
import java.util.List;
64

75
import org.jboss.jandex.ClassInfo;
86

97
import io.quarkiverse.loggingjson.JsonFactory;
108
import io.quarkiverse.loggingjson.LoggingJsonRecorder;
11-
import io.quarkiverse.loggingjson.deployment.config.ConfigJackson;
129
import io.quarkiverse.loggingjson.jackson.JacksonJsonFactory;
1310
import io.quarkiverse.loggingjson.jsonb.JsonbJsonFactory;
11+
import io.quarkiverse.loggingjson.providers.ObjectMapperProvider;
1412
import io.quarkus.arc.deployment.AdditionalBeanBuildItem;
15-
import io.quarkus.bootstrap.classloading.QuarkusClassLoader;
1613
import io.quarkus.deployment.Capabilities;
1714
import io.quarkus.deployment.Capability;
1815
import io.quarkus.deployment.annotations.BuildProducer;
@@ -24,7 +21,6 @@
2421
import io.quarkus.deployment.builditem.LogConsoleFormatBuildItem;
2522
import io.quarkus.deployment.builditem.LogFileFormatBuildItem;
2623
import io.quarkus.deployment.builditem.LogSocketFormatBuildItem;
27-
import io.quarkus.jackson.spi.ClassPathJacksonModuleBuildItem;
2824

2925
class LoggingJsonProcessor {
3026

@@ -38,38 +34,31 @@ FeatureBuildItem feature() {
3834
@BuildStep
3935
@Record(ExecutionTime.RUNTIME_INIT)
4036
LogConsoleFormatBuildItem setUpConsoleFormatter(Capabilities capabilities, LoggingJsonRecorder recorder) {
41-
return new LogConsoleFormatBuildItem(recorder.initializeConsoleJsonLogging(jsonFactory(capabilities)));
37+
return new LogConsoleFormatBuildItem(recorder.initializeConsoleJsonLogging(resolveJsonFactoryType(capabilities)));
4238
}
4339

4440
@BuildStep
4541
@Record(ExecutionTime.RUNTIME_INIT)
4642
LogFileFormatBuildItem setUpFileFormatter(Capabilities capabilities, LoggingJsonRecorder recorder) {
47-
return new LogFileFormatBuildItem(recorder.initializeFileJsonLogging(jsonFactory(capabilities)));
43+
return new LogFileFormatBuildItem(recorder.initializeFileJsonLogging(resolveJsonFactoryType(capabilities)));
4844
}
4945

5046
@BuildStep
5147
@Record(ExecutionTime.RUNTIME_INIT)
5248
LogSocketFormatBuildItem setUpSocketFormatter(Capabilities capabilities, LoggingJsonRecorder recorder) {
53-
return new LogSocketFormatBuildItem(recorder.initializeSocketJsonLogging(jsonFactory(capabilities)));
49+
return new LogSocketFormatBuildItem(recorder.initializeSocketJsonLogging(resolveJsonFactoryType(capabilities)));
5450
}
5551

5652
@BuildStep
57-
void autoRegisterModules(BuildProducer<ClassPathJacksonModuleBuildItem> classPathJacksonModules,
58-
ConfigJackson configJackson) {
59-
List<String> moduleNames = new ArrayList<>(configJackson.baseModules());
60-
configJackson.additionalModules().ifPresent(moduleNames::addAll);
61-
for (String moduleClassName : moduleNames) {
62-
if (QuarkusClassLoader.isClassPresentAtRuntime(moduleClassName)) {
63-
classPathJacksonModules.produce(new ClassPathJacksonModuleBuildItem(moduleClassName));
64-
}
65-
}
53+
AdditionalBeanBuildItem registerObjectMapperProvider() {
54+
return AdditionalBeanBuildItem.unremovableOf(ObjectMapperProvider.class);
6655
}
6756

68-
private JsonFactory jsonFactory(Capabilities capabilities) {
57+
private Class<? extends JsonFactory> resolveJsonFactoryType(Capabilities capabilities) {
6958
if (capabilities.isPresent(Capability.JACKSON)) {
70-
return new JacksonJsonFactory();
59+
return JacksonJsonFactory.class;
7160
} else if (capabilities.isPresent(Capability.JSONB)) {
72-
return new JsonbJsonFactory();
61+
return JsonbJsonFactory.class;
7362
} else {
7463
throw new RuntimeException(
7564
"Missing json implementation to use for logging-json. Supported: [quarkus-jackson, quarkus-jsonb]");

deployment/src/main/java/io/quarkiverse/loggingjson/deployment/config/ConfigJackson.java

Lines changed: 0 additions & 33 deletions
This file was deleted.

docs/modules/ROOT/pages/includes/quarkus-logging-json.adoc

Lines changed: 21 additions & 63 deletions
Original file line numberDiff line numberDiff line change
@@ -7,48 +7,6 @@ h|[.header-title]##Configuration property##
77
h|Type
88
h|Default
99

10-
a|icon:lock[title=Fixed at build time] [[quarkus-logging-json_quarkus-log-json-jackson-object-mapper-base-modules]] [.property-path]##link:#quarkus-logging-json_quarkus-log-json-jackson-object-mapper-base-modules[`quarkus.log.json.jackson.object.mapper.base-modules`]##
11-
ifdef::add-copy-button-to-config-props[]
12-
config_property_copy_button:+++quarkus.log.json.jackson.object.mapper.base-modules+++[]
13-
endif::add-copy-button-to-config-props[]
14-
15-
16-
[.description]
17-
--
18-
List of default jackson modules to register always.
19-
20-
21-
ifdef::add-copy-button-to-env-var[]
22-
Environment variable: env_var_with_copy_button:+++QUARKUS_LOG_JSON_JACKSON_OBJECT_MAPPER_BASE_MODULES+++[]
23-
endif::add-copy-button-to-env-var[]
24-
ifndef::add-copy-button-to-env-var[]
25-
Environment variable: `+++QUARKUS_LOG_JSON_JACKSON_OBJECT_MAPPER_BASE_MODULES+++`
26-
endif::add-copy-button-to-env-var[]
27-
--
28-
|list of string
29-
|`+++com.fasterxml.jackson.datatype.jsr310.JavaTimeModule+++`, `+++com.fasterxml.jackson.datatype.jdk8.Jdk8Module+++`, `+++com.fasterxml.jackson.module.paramnames.ParameterNamesModule+++`
30-
31-
a|icon:lock[title=Fixed at build time] [[quarkus-logging-json_quarkus-log-json-jackson-object-mapper-additional-modules]] [.property-path]##link:#quarkus-logging-json_quarkus-log-json-jackson-object-mapper-additional-modules[`quarkus.log.json.jackson.object.mapper.additional-modules`]##
32-
ifdef::add-copy-button-to-config-props[]
33-
config_property_copy_button:+++quarkus.log.json.jackson.object.mapper.additional-modules+++[]
34-
endif::add-copy-button-to-config-props[]
35-
36-
37-
[.description]
38-
--
39-
List of additional jackson modules to register.
40-
41-
42-
ifdef::add-copy-button-to-env-var[]
43-
Environment variable: env_var_with_copy_button:+++QUARKUS_LOG_JSON_JACKSON_OBJECT_MAPPER_ADDITIONAL_MODULES+++[]
44-
endif::add-copy-button-to-env-var[]
45-
ifndef::add-copy-button-to-env-var[]
46-
Environment variable: `+++QUARKUS_LOG_JSON_JACKSON_OBJECT_MAPPER_ADDITIONAL_MODULES+++`
47-
endif::add-copy-button-to-env-var[]
48-
--
49-
|list of string
50-
|
51-
5210
a| [[quarkus-logging-json_quarkus-log-json-console-enabled]] [.property-path]##link:#quarkus-logging-json_quarkus-log-json-console-enabled[`quarkus.log.json.console.enabled`]##
5311
ifdef::add-copy-button-to-config-props[]
5412
config_property_copy_button:+++quarkus.log.json.console.enabled+++[]
@@ -974,27 +932,6 @@ endif::add-copy-button-to-env-var[]
974932
|`+++
975933
+++`
976934

977-
a| [[quarkus-logging-json_quarkus-log-json-log-format]] [.property-path]##link:#quarkus-logging-json_quarkus-log-json-log-format[`quarkus.log.json.log-format`]##
978-
ifdef::add-copy-button-to-config-props[]
979-
config_property_copy_button:+++quarkus.log.json.log-format+++[]
980-
endif::add-copy-button-to-config-props[]
981-
982-
983-
[.description]
984-
--
985-
Support changing logging format.
986-
987-
988-
ifdef::add-copy-button-to-env-var[]
989-
Environment variable: env_var_with_copy_button:+++QUARKUS_LOG_JSON_LOG_FORMAT+++[]
990-
endif::add-copy-button-to-env-var[]
991-
ifndef::add-copy-button-to-env-var[]
992-
Environment variable: `+++QUARKUS_LOG_JSON_LOG_FORMAT+++`
993-
endif::add-copy-button-to-env-var[]
994-
--
995-
a|`default`, `ecs`
996-
|`+++default+++`
997-
998935
h|[[quarkus-logging-json_section_quarkus-log-json-additional-field]] [.section-name.section-level0]##link:#quarkus-logging-json_section_quarkus-log-json-additional-field[For adding fields to the json output directly from the config]##
999936
h|Type
1000937
h|Default
@@ -1042,5 +979,26 @@ a|`string`, `int`, `long`, `float`, `double`
1042979
|`+++string+++`
1043980

1044981

982+
a| [[quarkus-logging-json_quarkus-log-json-log-format]] [.property-path]##link:#quarkus-logging-json_quarkus-log-json-log-format[`quarkus.log.json.log-format`]##
983+
ifdef::add-copy-button-to-config-props[]
984+
config_property_copy_button:+++quarkus.log.json.log-format+++[]
985+
endif::add-copy-button-to-config-props[]
986+
987+
988+
[.description]
989+
--
990+
Support changing logging format.
991+
992+
993+
ifdef::add-copy-button-to-env-var[]
994+
Environment variable: env_var_with_copy_button:+++QUARKUS_LOG_JSON_LOG_FORMAT+++[]
995+
endif::add-copy-button-to-env-var[]
996+
ifndef::add-copy-button-to-env-var[]
997+
Environment variable: `+++QUARKUS_LOG_JSON_LOG_FORMAT+++`
998+
endif::add-copy-button-to-env-var[]
999+
--
1000+
a|`default`, `ecs`
1001+
|`+++default+++`
1002+
10451003
|===
10461004

docs/modules/ROOT/pages/includes/quarkus-logging-json_quarkus.log.adoc

Lines changed: 21 additions & 63 deletions
Original file line numberDiff line numberDiff line change
@@ -7,48 +7,6 @@ h|[.header-title]##Configuration property##
77
h|Type
88
h|Default
99

10-
a|icon:lock[title=Fixed at build time] [[quarkus-logging-json_quarkus-log-json-jackson-object-mapper-base-modules]] [.property-path]##link:#quarkus-logging-json_quarkus-log-json-jackson-object-mapper-base-modules[`quarkus.log.json.jackson.object.mapper.base-modules`]##
11-
ifdef::add-copy-button-to-config-props[]
12-
config_property_copy_button:+++quarkus.log.json.jackson.object.mapper.base-modules+++[]
13-
endif::add-copy-button-to-config-props[]
14-
15-
16-
[.description]
17-
--
18-
List of default jackson modules to register always.
19-
20-
21-
ifdef::add-copy-button-to-env-var[]
22-
Environment variable: env_var_with_copy_button:+++QUARKUS_LOG_JSON_JACKSON_OBJECT_MAPPER_BASE_MODULES+++[]
23-
endif::add-copy-button-to-env-var[]
24-
ifndef::add-copy-button-to-env-var[]
25-
Environment variable: `+++QUARKUS_LOG_JSON_JACKSON_OBJECT_MAPPER_BASE_MODULES+++`
26-
endif::add-copy-button-to-env-var[]
27-
--
28-
|list of string
29-
|`+++com.fasterxml.jackson.datatype.jsr310.JavaTimeModule+++`, `+++com.fasterxml.jackson.datatype.jdk8.Jdk8Module+++`, `+++com.fasterxml.jackson.module.paramnames.ParameterNamesModule+++`
30-
31-
a|icon:lock[title=Fixed at build time] [[quarkus-logging-json_quarkus-log-json-jackson-object-mapper-additional-modules]] [.property-path]##link:#quarkus-logging-json_quarkus-log-json-jackson-object-mapper-additional-modules[`quarkus.log.json.jackson.object.mapper.additional-modules`]##
32-
ifdef::add-copy-button-to-config-props[]
33-
config_property_copy_button:+++quarkus.log.json.jackson.object.mapper.additional-modules+++[]
34-
endif::add-copy-button-to-config-props[]
35-
36-
37-
[.description]
38-
--
39-
List of additional jackson modules to register.
40-
41-
42-
ifdef::add-copy-button-to-env-var[]
43-
Environment variable: env_var_with_copy_button:+++QUARKUS_LOG_JSON_JACKSON_OBJECT_MAPPER_ADDITIONAL_MODULES+++[]
44-
endif::add-copy-button-to-env-var[]
45-
ifndef::add-copy-button-to-env-var[]
46-
Environment variable: `+++QUARKUS_LOG_JSON_JACKSON_OBJECT_MAPPER_ADDITIONAL_MODULES+++`
47-
endif::add-copy-button-to-env-var[]
48-
--
49-
|list of string
50-
|
51-
5210
a| [[quarkus-logging-json_quarkus-log-json-console-enabled]] [.property-path]##link:#quarkus-logging-json_quarkus-log-json-console-enabled[`quarkus.log.json.console.enabled`]##
5311
ifdef::add-copy-button-to-config-props[]
5412
config_property_copy_button:+++quarkus.log.json.console.enabled+++[]
@@ -974,27 +932,6 @@ endif::add-copy-button-to-env-var[]
974932
|`+++
975933
+++`
976934

977-
a| [[quarkus-logging-json_quarkus-log-json-log-format]] [.property-path]##link:#quarkus-logging-json_quarkus-log-json-log-format[`quarkus.log.json.log-format`]##
978-
ifdef::add-copy-button-to-config-props[]
979-
config_property_copy_button:+++quarkus.log.json.log-format+++[]
980-
endif::add-copy-button-to-config-props[]
981-
982-
983-
[.description]
984-
--
985-
Support changing logging format.
986-
987-
988-
ifdef::add-copy-button-to-env-var[]
989-
Environment variable: env_var_with_copy_button:+++QUARKUS_LOG_JSON_LOG_FORMAT+++[]
990-
endif::add-copy-button-to-env-var[]
991-
ifndef::add-copy-button-to-env-var[]
992-
Environment variable: `+++QUARKUS_LOG_JSON_LOG_FORMAT+++`
993-
endif::add-copy-button-to-env-var[]
994-
--
995-
a|`default`, `ecs`
996-
|`+++default+++`
997-
998935
h|[[quarkus-logging-json_section_quarkus-log-json-additional-field]] [.section-name.section-level0]##link:#quarkus-logging-json_section_quarkus-log-json-additional-field[For adding fields to the json output directly from the config]##
999936
h|Type
1000937
h|Default
@@ -1042,5 +979,26 @@ a|`string`, `int`, `long`, `float`, `double`
1042979
|`+++string+++`
1043980

1044981

982+
a| [[quarkus-logging-json_quarkus-log-json-log-format]] [.property-path]##link:#quarkus-logging-json_quarkus-log-json-log-format[`quarkus.log.json.log-format`]##
983+
ifdef::add-copy-button-to-config-props[]
984+
config_property_copy_button:+++quarkus.log.json.log-format+++[]
985+
endif::add-copy-button-to-config-props[]
986+
987+
988+
[.description]
989+
--
990+
Support changing logging format.
991+
992+
993+
ifdef::add-copy-button-to-env-var[]
994+
Environment variable: env_var_with_copy_button:+++QUARKUS_LOG_JSON_LOG_FORMAT+++[]
995+
endif::add-copy-button-to-env-var[]
996+
ifndef::add-copy-button-to-env-var[]
997+
Environment variable: `+++QUARKUS_LOG_JSON_LOG_FORMAT+++`
998+
endif::add-copy-button-to-env-var[]
999+
--
1000+
a|`default`, `ecs`
1001+
|`+++default+++`
1002+
10451003
|===
10461004

runtime/pom.xml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,10 @@
3030
<artifactId>quarkus-jsonb</artifactId>
3131
<optional>true</optional>
3232
</dependency>
33+
<dependency>
34+
<groupId>org.eclipse</groupId>
35+
<artifactId>yasson</artifactId>
36+
</dependency>
3337

3438
<dependency>
3539
<groupId>io.quarkus</groupId>

0 commit comments

Comments
 (0)