Skip to content

Commit e4a9b84

Browse files
rozzakatcharov
authored andcommitted
Ensure kotlinx.datetime.LocalTime exists before adding the serializer (#1530)
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 d3190ff commit e4a9b84

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

+10-5
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)