88import io .quarkiverse .loggingjson .LoggingJsonRecorder ;
99import io .quarkiverse .loggingjson .jackson .JacksonJsonFactory ;
1010import io .quarkiverse .loggingjson .jsonb .JsonbJsonFactory ;
11+ import io .quarkiverse .loggingjson .providers .ObjectMapperProvider ;
1112import io .quarkus .arc .deployment .AdditionalBeanBuildItem ;
1213import io .quarkus .deployment .Capabilities ;
1314import io .quarkus .deployment .Capability ;
@@ -33,26 +34,31 @@ FeatureBuildItem feature() {
3334 @ BuildStep
3435 @ Record (ExecutionTime .RUNTIME_INIT )
3536 LogConsoleFormatBuildItem setUpConsoleFormatter (Capabilities capabilities , LoggingJsonRecorder recorder ) {
36- return new LogConsoleFormatBuildItem (recorder .initializeConsoleJsonLogging (jsonFactory (capabilities )));
37+ return new LogConsoleFormatBuildItem (recorder .initializeConsoleJsonLogging (resolveJsonFactoryType (capabilities )));
3738 }
3839
3940 @ BuildStep
4041 @ Record (ExecutionTime .RUNTIME_INIT )
4142 LogFileFormatBuildItem setUpFileFormatter (Capabilities capabilities , LoggingJsonRecorder recorder ) {
42- return new LogFileFormatBuildItem (recorder .initializeFileJsonLogging (jsonFactory (capabilities )));
43+ return new LogFileFormatBuildItem (recorder .initializeFileJsonLogging (resolveJsonFactoryType (capabilities )));
4344 }
4445
4546 @ BuildStep
4647 @ Record (ExecutionTime .RUNTIME_INIT )
4748 LogSocketFormatBuildItem setUpSocketFormatter (Capabilities capabilities , LoggingJsonRecorder recorder ) {
48- return new LogSocketFormatBuildItem (recorder .initializeSocketJsonLogging (jsonFactory (capabilities )));
49+ return new LogSocketFormatBuildItem (recorder .initializeSocketJsonLogging (resolveJsonFactoryType (capabilities )));
4950 }
5051
51- private JsonFactory jsonFactory (Capabilities capabilities ) {
52+ @ BuildStep
53+ AdditionalBeanBuildItem registerObjectMapperProvider () {
54+ return AdditionalBeanBuildItem .unremovableOf (ObjectMapperProvider .class );
55+ }
56+
57+ private Class <? extends JsonFactory > resolveJsonFactoryType (Capabilities capabilities ) {
5258 if (capabilities .isPresent (Capability .JACKSON )) {
53- return new JacksonJsonFactory () ;
59+ return JacksonJsonFactory . class ;
5460 } else if (capabilities .isPresent (Capability .JSONB )) {
55- return new JsonbJsonFactory () ;
61+ return JsonbJsonFactory . class ;
5662 } else {
5763 throw new RuntimeException (
5864 "Missing json implementation to use for logging-json. Supported: [quarkus-jackson, quarkus-jsonb]" );
0 commit comments