Skip to content

Commit 1f54c4c

Browse files
committed
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
1 parent 877425e commit 1f54c4c

File tree

1 file changed

+10
-5
lines changed

1 file changed

+10
-5
lines changed

bson-kotlinx/src/main/kotlin/org/bson/codecs/kotlinx/DateTimeSerializers.kt

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -54,11 +54,16 @@ import org.bson.codecs.kotlinx.utils.SerializationModuleUtils.isClassAvailable
5454
public val dateTimeSerializersModule: SerializersModule by lazy {
5555
var module = SerializersModule {}
5656
if (isClassAvailable("kotlinx.datetime.Instant")) {
57-
module +=
58-
InstantAsBsonDateTime.serializersModule +
59-
LocalDateAsBsonDateTime.serializersModule +
60-
LocalDateTimeAsBsonDateTime.serializersModule +
61-
LocalTimeAsBsonDateTime.serializersModule
57+
module += InstantAsBsonDateTime.serializersModule
58+
}
59+
if (isClassAvailable("kotlinx.datetime.LocalDate")) {
60+
module += LocalDateAsBsonDateTime.serializersModule
61+
}
62+
if (isClassAvailable("kotlinx.datetime.LocalDateTime")) {
63+
module += LocalDateTimeAsBsonDateTime.serializersModule
64+
}
65+
if (isClassAvailable("kotlinx.datetime.LocalTime")) {
66+
module += LocalTimeAsBsonDateTime.serializersModule
6267
}
6368
module
6469
}

0 commit comments

Comments
 (0)