From 1f54c4c22952e509c8e1fc855125a1d64373bad6 Mon Sep 17 00:00:00 2001 From: Ross Lawley Date: Tue, 15 Oct 2024 10:24:27 +0100 Subject: [PATCH] Ensure kotlinx.datetime.LocalTime exists before adding the serializer LocalTime was added in kotlinx.datetime v0.4.0 and won't be available if older versions of kotlinx datetime are on the classpath. JAVA-5641 --- .../bson/codecs/kotlinx/DateTimeSerializers.kt | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/bson-kotlinx/src/main/kotlin/org/bson/codecs/kotlinx/DateTimeSerializers.kt b/bson-kotlinx/src/main/kotlin/org/bson/codecs/kotlinx/DateTimeSerializers.kt index e3e228ecbfb..7b597135d4f 100644 --- a/bson-kotlinx/src/main/kotlin/org/bson/codecs/kotlinx/DateTimeSerializers.kt +++ b/bson-kotlinx/src/main/kotlin/org/bson/codecs/kotlinx/DateTimeSerializers.kt @@ -54,11 +54,16 @@ import org.bson.codecs.kotlinx.utils.SerializationModuleUtils.isClassAvailable public val dateTimeSerializersModule: SerializersModule by lazy { var module = SerializersModule {} if (isClassAvailable("kotlinx.datetime.Instant")) { - module += - InstantAsBsonDateTime.serializersModule + - LocalDateAsBsonDateTime.serializersModule + - LocalDateTimeAsBsonDateTime.serializersModule + - LocalTimeAsBsonDateTime.serializersModule + module += InstantAsBsonDateTime.serializersModule + } + if (isClassAvailable("kotlinx.datetime.LocalDate")) { + module += LocalDateAsBsonDateTime.serializersModule + } + if (isClassAvailable("kotlinx.datetime.LocalDateTime")) { + module += LocalDateTimeAsBsonDateTime.serializersModule + } + if (isClassAvailable("kotlinx.datetime.LocalTime")) { + module += LocalTimeAsBsonDateTime.serializersModule } module }