diff --git a/build.gradle.kts b/build.gradle.kts index 441973702..dfd6df5b5 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -18,6 +18,7 @@ infra { } publishing { include(":kotlinx-datetime") + include(":kotlinx-datetime-serialization") libraryRepoUrl = "https://github.com/Kotlin/kotlinx-datetime" sonatype { } } diff --git a/core/build.gradle.kts b/core/build.gradle.kts index abf89e9c7..5902c3483 100644 --- a/core/build.gradle.kts +++ b/core/build.gradle.kts @@ -152,7 +152,6 @@ kotlin { commonMain { dependencies { api("org.jetbrains.kotlin:kotlin-stdlib-common") - compileOnly("org.jetbrains.kotlinx:kotlinx-serialization-core:$serializationVersion") } } diff --git a/core/common/src/DateTimePeriod.kt b/core/common/src/DateTimePeriod.kt index 3ebc6d65a..fb896005c 100644 --- a/core/common/src/DateTimePeriod.kt +++ b/core/common/src/DateTimePeriod.kt @@ -5,14 +5,10 @@ package kotlinx.datetime -import kotlinx.datetime.serializers.DatePeriodIso8601Serializer -import kotlinx.datetime.serializers.DateTimePeriodIso8601Serializer import kotlin.math.* import kotlin.time.Duration import kotlin.time.ExperimentalTime -import kotlinx.serialization.Serializable -@Serializable(with = DateTimePeriodIso8601Serializer::class) // TODO: could be error-prone without explicitly named params public sealed class DateTimePeriod { internal abstract val totalMonths: Int @@ -237,7 +233,6 @@ public sealed class DateTimePeriod { public fun String.toDateTimePeriod(): DateTimePeriod = DateTimePeriod.parse(this) -@Serializable(with = DatePeriodIso8601Serializer::class) public class DatePeriod internal constructor( internal override val totalMonths: Int, override val days: Int, diff --git a/core/common/src/DateTimeUnit.kt b/core/common/src/DateTimeUnit.kt index 5d7d8a67b..ee3cfa58f 100644 --- a/core/common/src/DateTimeUnit.kt +++ b/core/common/src/DateTimeUnit.kt @@ -5,16 +5,12 @@ package kotlinx.datetime -import kotlinx.datetime.serializers.* -import kotlinx.serialization.Serializable import kotlin.time.* -@Serializable(with = DateTimeUnitSerializer::class) public sealed class DateTimeUnit { public abstract operator fun times(scalar: Int): DateTimeUnit - @Serializable(with = TimeBasedDateTimeUnitSerializer::class) public class TimeBased(public val nanoseconds: Long) : DateTimeUnit() { private val unitName: String private val unitScale: Long @@ -64,10 +60,8 @@ public sealed class DateTimeUnit { override fun toString(): String = formatToString(unitScale, unitName) } - @Serializable(with = DateBasedDateTimeUnitSerializer::class) public sealed class DateBased : DateTimeUnit() { // TODO: investigate how to move subclasses up to DateTimeUnit scope - @Serializable(with = DayBasedDateTimeUnitSerializer::class) public class DayBased(public val days: Int) : DateBased() { init { require(days > 0) { "Unit duration must be positive, but was $days days." } @@ -85,7 +79,6 @@ public sealed class DateTimeUnit { else formatToString(days, "DAY") } - @Serializable(with = MonthBasedDateTimeUnitSerializer::class) public class MonthBased(public val months: Int) : DateBased() { init { require(months > 0) { "Unit duration must be positive, but was $months months." } diff --git a/core/common/src/Instant.kt b/core/common/src/Instant.kt index 62fda985a..da33f0745 100644 --- a/core/common/src/Instant.kt +++ b/core/common/src/Instant.kt @@ -5,12 +5,9 @@ package kotlinx.datetime -import kotlinx.datetime.serializers.InstantIso8601Serializer -import kotlinx.serialization.Serializable import kotlin.time.* @OptIn(ExperimentalTime::class) -@Serializable(with = InstantIso8601Serializer::class) public expect class Instant : Comparable { /** diff --git a/core/common/src/LocalDate.kt b/core/common/src/LocalDate.kt index bea808ef6..e7cf2dd67 100644 --- a/core/common/src/LocalDate.kt +++ b/core/common/src/LocalDate.kt @@ -5,10 +5,6 @@ package kotlinx.datetime -import kotlinx.datetime.serializers.LocalDateIso8601Serializer -import kotlinx.serialization.Serializable - -@Serializable(with = LocalDateIso8601Serializer::class) public expect class LocalDate : Comparable { public companion object { /** diff --git a/core/common/src/LocalDateTime.kt b/core/common/src/LocalDateTime.kt index a7d206533..60cf77ba6 100644 --- a/core/common/src/LocalDateTime.kt +++ b/core/common/src/LocalDateTime.kt @@ -5,10 +5,6 @@ package kotlinx.datetime -import kotlinx.datetime.serializers.LocalDateTimeIso8601Serializer -import kotlinx.serialization.Serializable - -@Serializable(with = LocalDateTimeIso8601Serializer::class) public expect class LocalDateTime : Comparable { public companion object { diff --git a/core/common/src/TimeZone.kt b/core/common/src/TimeZone.kt index a9e279fa9..da834c2fe 100644 --- a/core/common/src/TimeZone.kt +++ b/core/common/src/TimeZone.kt @@ -8,11 +8,6 @@ package kotlinx.datetime -import kotlinx.datetime.serializers.TimeZoneSerializer -import kotlinx.datetime.serializers.ZoneOffsetSerializer -import kotlinx.serialization.Serializable - -@Serializable(with = TimeZoneSerializer::class) public expect open class TimeZone { /** * Returns the identifier string of the time zone. @@ -85,7 +80,6 @@ public expect open class TimeZone { public fun LocalDateTime.toInstant(): Instant } -@Serializable(with = ZoneOffsetSerializer::class) public expect class ZoneOffset : TimeZone { public val totalSeconds: Int } diff --git a/core/js/src/Instant.kt b/core/js/src/Instant.kt index ad39f22e1..551e68f5b 100644 --- a/core/js/src/Instant.kt +++ b/core/js/src/Instant.kt @@ -15,11 +15,8 @@ import kotlinx.datetime.internal.JSJoda.OffsetDateTime as jtOffsetDateTime import kotlinx.datetime.internal.JSJoda.Duration as jtDuration import kotlinx.datetime.internal.JSJoda.Clock as jtClock import kotlinx.datetime.internal.JSJoda.ChronoUnit -import kotlinx.datetime.serializers.InstantIso8601Serializer -import kotlinx.serialization.Serializable import kotlin.math.truncate -@Serializable(with = InstantIso8601Serializer::class) @OptIn(ExperimentalTime::class) public actual class Instant internal constructor(internal val value: jtInstant) : Comparable { diff --git a/core/js/src/LocalDate.kt b/core/js/src/LocalDate.kt index d27b9fdb5..4ab391ca3 100644 --- a/core/js/src/LocalDate.kt +++ b/core/js/src/LocalDate.kt @@ -6,11 +6,8 @@ package kotlinx.datetime import kotlinx.datetime.internal.JSJoda.ChronoUnit -import kotlinx.datetime.serializers.LocalDateIso8601Serializer -import kotlinx.serialization.Serializable import kotlinx.datetime.internal.JSJoda.LocalDate as jtLocalDate -@Serializable(with = LocalDateIso8601Serializer::class) public actual class LocalDate internal constructor(internal val value: jtLocalDate) : Comparable { public actual companion object { public actual fun parse(isoString: String): LocalDate = try { diff --git a/core/js/src/LocalDateTime.kt b/core/js/src/LocalDateTime.kt index 9bc99505e..62420928a 100644 --- a/core/js/src/LocalDateTime.kt +++ b/core/js/src/LocalDateTime.kt @@ -4,11 +4,8 @@ */ package kotlinx.datetime -import kotlinx.datetime.serializers.LocalDateTimeIso8601Serializer -import kotlinx.serialization.Serializable import kotlinx.datetime.internal.JSJoda.LocalDateTime as jtLocalDateTime -@Serializable(with = LocalDateTimeIso8601Serializer::class) public actual class LocalDateTime internal constructor(internal val value: jtLocalDateTime) : Comparable { public actual constructor(year: Int, monthNumber: Int, dayOfMonth: Int, hour: Int, minute: Int, second: Int, nanosecond: Int) : diff --git a/core/js/src/TimeZone.kt b/core/js/src/TimeZone.kt index da9187fcd..28d9f458b 100644 --- a/core/js/src/TimeZone.kt +++ b/core/js/src/TimeZone.kt @@ -5,12 +5,8 @@ package kotlinx.datetime import kotlinx.datetime.internal.JSJoda.ZoneId -import kotlinx.datetime.serializers.TimeZoneSerializer -import kotlinx.datetime.serializers.ZoneOffsetSerializer -import kotlinx.serialization.Serializable import kotlinx.datetime.internal.JSJoda.ZoneOffset as jtZoneOffset -@Serializable(with = TimeZoneSerializer::class) public actual open class TimeZone internal constructor(internal val zoneId: ZoneId) { public actual val id: String get() = zoneId.id() @@ -46,7 +42,6 @@ public actual open class TimeZone internal constructor(internal val zoneId: Zone } } -@Serializable(with = ZoneOffsetSerializer::class) public actual class ZoneOffset internal constructor(zoneOffset: jtZoneOffset): TimeZone(zoneOffset) { private val zoneOffset get() = zoneId as jtZoneOffset diff --git a/core/jvm/src/Instant.kt b/core/jvm/src/Instant.kt index a56d7f0fb..5badc8a5b 100644 --- a/core/jvm/src/Instant.kt +++ b/core/jvm/src/Instant.kt @@ -6,8 +6,6 @@ package kotlinx.datetime -import kotlinx.datetime.serializers.InstantIso8601Serializer -import kotlinx.serialization.Serializable import java.time.DateTimeException import java.time.format.DateTimeParseException import java.time.temporal.ChronoUnit @@ -16,7 +14,6 @@ import java.time.Instant as jtInstant import java.time.OffsetDateTime as jtOffsetDateTime import java.time.Clock as jtClock -@Serializable(with = InstantIso8601Serializer::class) @OptIn(ExperimentalTime::class) public actual class Instant internal constructor(internal val value: jtInstant) : Comparable { diff --git a/core/jvm/src/LocalDate.kt b/core/jvm/src/LocalDate.kt index 6ea5b8002..4711064d3 100644 --- a/core/jvm/src/LocalDate.kt +++ b/core/jvm/src/LocalDate.kt @@ -5,14 +5,11 @@ @file:JvmName("LocalDateJvmKt") package kotlinx.datetime -import kotlinx.datetime.serializers.LocalDateIso8601Serializer -import kotlinx.serialization.Serializable import java.time.DateTimeException import java.time.format.DateTimeParseException import java.time.temporal.ChronoUnit import java.time.LocalDate as jtLocalDate -@Serializable(with = LocalDateIso8601Serializer::class) public actual class LocalDate internal constructor(internal val value: jtLocalDate) : Comparable { public actual companion object { public actual fun parse(isoString: String): LocalDate = try { diff --git a/core/jvm/src/LocalDateTime.kt b/core/jvm/src/LocalDateTime.kt index 59b54b9a1..228edc76a 100644 --- a/core/jvm/src/LocalDateTime.kt +++ b/core/jvm/src/LocalDateTime.kt @@ -5,8 +5,6 @@ @file:JvmName("LocalDateTimeJvmKt") package kotlinx.datetime -import kotlinx.datetime.serializers.LocalDateTimeIso8601Serializer -import kotlinx.serialization.Serializable import java.time.DateTimeException import java.time.format.DateTimeParseException import java.time.LocalDateTime as jtLocalDateTime @@ -14,7 +12,6 @@ import java.time.LocalDateTime as jtLocalDateTime public actual typealias Month = java.time.Month public actual typealias DayOfWeek = java.time.DayOfWeek -@Serializable(with = LocalDateTimeIso8601Serializer::class) public actual class LocalDateTime internal constructor(internal val value: jtLocalDateTime) : Comparable { public actual constructor(year: Int, monthNumber: Int, dayOfMonth: Int, hour: Int, minute: Int, second: Int, nanosecond: Int) : diff --git a/core/jvm/src/TimeZoneJvm.kt b/core/jvm/src/TimeZoneJvm.kt index c4c2771fd..97f2b1676 100644 --- a/core/jvm/src/TimeZoneJvm.kt +++ b/core/jvm/src/TimeZoneJvm.kt @@ -8,14 +8,10 @@ package kotlinx.datetime -import kotlinx.datetime.serializers.TimeZoneSerializer -import kotlinx.datetime.serializers.ZoneOffsetSerializer -import kotlinx.serialization.Serializable import java.time.DateTimeException import java.time.ZoneId import java.time.ZoneOffset as jtZoneOffset -@Serializable(with = TimeZoneSerializer::class) public actual open class TimeZone internal constructor(internal val zoneId: ZoneId) { public actual val id: String get() = zoneId.id @@ -51,7 +47,6 @@ public actual open class TimeZone internal constructor(internal val zoneId: Zone } } -@Serializable(with = ZoneOffsetSerializer::class) public actual class ZoneOffset internal constructor(zoneOffset: jtZoneOffset): TimeZone(zoneOffset) { internal val zoneOffset get() = zoneId as jtZoneOffset diff --git a/core/native/src/Instant.kt b/core/native/src/Instant.kt index 0228422c5..9984b1826 100644 --- a/core/native/src/Instant.kt +++ b/core/native/src/Instant.kt @@ -8,8 +8,6 @@ package kotlinx.datetime -import kotlinx.datetime.serializers.InstantIso8601Serializer -import kotlinx.serialization.Serializable import kotlin.math.* import kotlin.time.* @@ -126,7 +124,6 @@ private fun isValidInstantSecond(second: Long) = second >= MIN_SECOND && second internal expect fun currentTime(): Instant -@Serializable(with = InstantIso8601Serializer::class) @OptIn(ExperimentalTime::class) public actual class Instant internal constructor(public actual val epochSeconds: Long, public actual val nanosecondsOfSecond: Int) : Comparable { diff --git a/core/native/src/LocalDate.kt b/core/native/src/LocalDate.kt index 330dc6e17..8c6c34322 100644 --- a/core/native/src/LocalDate.kt +++ b/core/native/src/LocalDate.kt @@ -8,8 +8,6 @@ package kotlinx.datetime -import kotlinx.datetime.serializers.LocalDateIso8601Serializer -import kotlinx.serialization.Serializable import kotlin.math.* // This is a function and not a value due to https://github.com/Kotlin/kotlinx-datetime/issues/5 @@ -36,7 +34,6 @@ internal const val YEAR_MAX = 999_999 private fun isValidYear(year: Int): Boolean = year >= YEAR_MIN && year <= YEAR_MAX -@Serializable(with = LocalDateIso8601Serializer::class) public actual class LocalDate actual constructor(public actual val year: Int, public actual val monthNumber: Int, public actual val dayOfMonth: Int) : Comparable { init { diff --git a/core/native/src/LocalDateTime.kt b/core/native/src/LocalDateTime.kt index b04180348..db59e1568 100644 --- a/core/native/src/LocalDateTime.kt +++ b/core/native/src/LocalDateTime.kt @@ -8,9 +8,6 @@ package kotlinx.datetime -import kotlinx.datetime.serializers.LocalDateTimeIso8601Serializer -import kotlinx.serialization.Serializable - // This is a function and not a value due to https://github.com/Kotlin/kotlinx-datetime/issues/5 // org.threeten.bp.format.DateTimeFormatter#ISO_LOCAL_DATE_TIME internal val localDateTimeParser: Parser @@ -21,7 +18,6 @@ internal val localDateTimeParser: Parser LocalDateTime(date, time) } -@Serializable(with = LocalDateTimeIso8601Serializer::class) public actual class LocalDateTime internal constructor( public actual val date: LocalDate, internal val time: LocalTime) : Comparable { public actual companion object { diff --git a/core/native/src/TimeZone.kt b/core/native/src/TimeZone.kt index 29879b0d8..6dcd553ae 100644 --- a/core/native/src/TimeZone.kt +++ b/core/native/src/TimeZone.kt @@ -8,13 +8,9 @@ package kotlinx.datetime -import kotlinx.datetime.serializers.TimeZoneSerializer -import kotlinx.datetime.serializers.ZoneOffsetSerializer import kotlin.math.abs import kotlin.native.concurrent.* -import kotlinx.serialization.Serializable -@Serializable(with = TimeZoneSerializer::class) public actual open class TimeZone internal constructor(internal val value: TimeZoneImpl) { public actual companion object { @@ -83,7 +79,6 @@ public actual open class TimeZone internal constructor(internal val value: TimeZ @ThreadLocal private var zoneOffsetCache: MutableMap = mutableMapOf() -@Serializable(with = ZoneOffsetSerializer::class) public actual class ZoneOffset internal constructor(internal val offset: ZoneOffsetImpl) : TimeZone(offset) { public actual val totalSeconds: Int get() = offset.totalSeconds diff --git a/serialization/build.gradle.kts b/serialization/build.gradle.kts index 432f00a8a..2ad40ab29 100644 --- a/serialization/build.gradle.kts +++ b/serialization/build.gradle.kts @@ -3,6 +3,7 @@ import java.util.Locale plugins { id("kotlin-multiplatform") kotlin("plugin.serialization") + `maven-publish` } val JDK_8: String by project @@ -70,6 +71,7 @@ kotlin { dependencies { api(project(":kotlinx-datetime")) api("org.jetbrains.kotlin:kotlin-stdlib-common") + api("org.jetbrains.kotlinx:kotlinx-serialization-core:$serializationVersion") } } diff --git a/core/common/src/serializers/DateTimePeriodSerializers.kt b/serialization/common/src/DateTimePeriodSerializers.kt similarity index 99% rename from core/common/src/serializers/DateTimePeriodSerializers.kt rename to serialization/common/src/DateTimePeriodSerializers.kt index 5e362850e..15e8f467e 100644 --- a/core/common/src/serializers/DateTimePeriodSerializers.kt +++ b/serialization/common/src/DateTimePeriodSerializers.kt @@ -3,7 +3,7 @@ * Use of this source code is governed by the Apache 2.0 License that can be found in the LICENSE.txt file. */ -package kotlinx.datetime.serializers +package kotlinx.datetime.serialization import kotlinx.datetime.DatePeriod import kotlinx.datetime.DateTimePeriod diff --git a/core/common/src/serializers/DateTimeUnitSerializers.kt b/serialization/common/src/DateTimeUnitSerializers.kt similarity index 99% rename from core/common/src/serializers/DateTimeUnitSerializers.kt rename to serialization/common/src/DateTimeUnitSerializers.kt index 3eec77f9b..9f68ef812 100644 --- a/core/common/src/serializers/DateTimeUnitSerializers.kt +++ b/serialization/common/src/DateTimeUnitSerializers.kt @@ -3,7 +3,7 @@ * Use of this source code is governed by the Apache 2.0 License that can be found in the LICENSE.txt file. */ -package kotlinx.datetime.serializers +package kotlinx.datetime.serialization import kotlinx.datetime.DateTimeUnit import kotlinx.serialization.* diff --git a/core/common/src/serializers/DayOfWeekSerializers.kt b/serialization/common/src/DayOfWeekSerializers.kt similarity index 95% rename from core/common/src/serializers/DayOfWeekSerializers.kt rename to serialization/common/src/DayOfWeekSerializers.kt index f03c2d427..a53c94ef8 100644 --- a/core/common/src/serializers/DayOfWeekSerializers.kt +++ b/serialization/common/src/DayOfWeekSerializers.kt @@ -3,7 +3,7 @@ * Use of this source code is governed by the Apache 2.0 License that can be found in the LICENSE.txt file. */ -package kotlinx.datetime.serializers +package kotlinx.datetime.serialization import kotlinx.datetime.DayOfWeek import kotlinx.serialization.* diff --git a/core/common/src/serializers/InstantSerializers.kt b/serialization/common/src/InstantSerializers.kt similarity index 98% rename from core/common/src/serializers/InstantSerializers.kt rename to serialization/common/src/InstantSerializers.kt index 0ebeb8213..7cfc48423 100644 --- a/core/common/src/serializers/InstantSerializers.kt +++ b/serialization/common/src/InstantSerializers.kt @@ -3,7 +3,7 @@ * Use of this source code is governed by the Apache 2.0 License that can be found in the LICENSE.txt file. */ -package kotlinx.datetime.serializers +package kotlinx.datetime.serialization import kotlinx.datetime.Instant import kotlinx.serialization.* diff --git a/core/common/src/serializers/LocalDateSerializers.kt b/serialization/common/src/LocalDateSerializers.kt similarity index 98% rename from core/common/src/serializers/LocalDateSerializers.kt rename to serialization/common/src/LocalDateSerializers.kt index 21fd68bce..d679fee8b 100644 --- a/core/common/src/serializers/LocalDateSerializers.kt +++ b/serialization/common/src/LocalDateSerializers.kt @@ -3,7 +3,7 @@ * Use of this source code is governed by the Apache 2.0 License that can be found in the LICENSE.txt file. */ -package kotlinx.datetime.serializers +package kotlinx.datetime.serialization import kotlinx.datetime.LocalDate import kotlinx.serialization.* diff --git a/core/common/src/serializers/LocalDateTimeSerializers.kt b/serialization/common/src/LocalDateTimeSerializers.kt similarity index 98% rename from core/common/src/serializers/LocalDateTimeSerializers.kt rename to serialization/common/src/LocalDateTimeSerializers.kt index 7f7f76745..ee41b8ad4 100644 --- a/core/common/src/serializers/LocalDateTimeSerializers.kt +++ b/serialization/common/src/LocalDateTimeSerializers.kt @@ -3,7 +3,7 @@ * Use of this source code is governed by the Apache 2.0 License that can be found in the LICENSE.txt file. */ -package kotlinx.datetime.serializers +package kotlinx.datetime.serialization import kotlinx.datetime.LocalDateTime import kotlinx.serialization.* diff --git a/core/common/src/serializers/MonthSerializers.kt b/serialization/common/src/MonthSerializers.kt similarity index 95% rename from core/common/src/serializers/MonthSerializers.kt rename to serialization/common/src/MonthSerializers.kt index d96ab158a..cbea22797 100644 --- a/core/common/src/serializers/MonthSerializers.kt +++ b/serialization/common/src/MonthSerializers.kt @@ -3,7 +3,7 @@ * Use of this source code is governed by the Apache 2.0 License that can be found in the LICENSE.txt file. */ -package kotlinx.datetime.serializers +package kotlinx.datetime.serialization import kotlinx.datetime.Month import kotlinx.serialization.* diff --git a/core/common/src/serializers/TimeZoneSerializers.kt b/serialization/common/src/TimeZoneSerializers.kt similarity index 97% rename from core/common/src/serializers/TimeZoneSerializers.kt rename to serialization/common/src/TimeZoneSerializers.kt index c0a4f49b1..dff7d44ef 100644 --- a/core/common/src/serializers/TimeZoneSerializers.kt +++ b/serialization/common/src/TimeZoneSerializers.kt @@ -3,7 +3,7 @@ * Use of this source code is governed by the Apache 2.0 License that can be found in the LICENSE.txt file. */ -package kotlinx.datetime.serializers +package kotlinx.datetime.serialization import kotlinx.datetime.TimeZone import kotlinx.datetime.ZoneOffset diff --git a/serialization/common/test/DateTimePeriodSerializationTest.kt b/serialization/common/test/DateTimePeriodSerializationTest.kt index b70407e71..640ad68b2 100644 --- a/serialization/common/test/DateTimePeriodSerializationTest.kt +++ b/serialization/common/test/DateTimePeriodSerializationTest.kt @@ -6,7 +6,7 @@ package kotlinx.datetime.serialization.test import kotlinx.datetime.* -import kotlinx.datetime.serializers.* +import kotlinx.datetime.serialization.* import kotlinx.serialization.* import kotlinx.serialization.json.* import kotlin.test.* @@ -115,11 +115,4 @@ class DateTimePeriodSerializationTest { dateTimePeriodComponentSerialization(DateTimePeriodComponentSerializer) } - @Test - fun testDefaultSerializers() { - // Check that they behave the same as the ISO-8601 serializers - dateTimePeriodIso8601Serialization(Json.serializersModule.serializer()) - datePeriodIso8601Serialization(Json.serializersModule.serializer(), Json.serializersModule.serializer()) - } - } diff --git a/serialization/common/test/DateTimeUnitSerializationTest.kt b/serialization/common/test/DateTimeUnitSerializationTest.kt index f63fcab87..6cd654090 100644 --- a/serialization/common/test/DateTimeUnitSerializationTest.kt +++ b/serialization/common/test/DateTimeUnitSerializationTest.kt @@ -6,10 +6,9 @@ package kotlinx.datetime.serialization.test import kotlinx.datetime.* -import kotlinx.datetime.serializers.* +import kotlinx.datetime.serialization.* import kotlinx.serialization.KSerializer import kotlinx.serialization.json.* -import kotlinx.serialization.serializer import kotlin.random.* import kotlin.test.* @@ -110,13 +109,4 @@ class DateTimeUnitSerializationTest { serialization(DateTimeUnitSerializer) } - @Test - fun testDefaultSerializers() { - monthBasedSerialization(Json.serializersModule.serializer()) - timeBasedSerialization(Json.serializersModule.serializer()) - dayBasedSerialization(Json.serializersModule.serializer()) - dateBasedSerialization(Json.serializersModule.serializer()) - serialization(Json.serializersModule.serializer()) - } - } \ No newline at end of file diff --git a/serialization/common/test/DayOfWeekSerializationTest.kt b/serialization/common/test/DayOfWeekSerializationTest.kt index 18470976b..6ccabce62 100644 --- a/serialization/common/test/DayOfWeekSerializationTest.kt +++ b/serialization/common/test/DayOfWeekSerializationTest.kt @@ -6,7 +6,7 @@ package kotlinx.datetime.serialization.test import kotlinx.datetime.* -import kotlinx.datetime.serializers.* +import kotlinx.datetime.serialization.* import kotlinx.serialization.json.* import kotlin.test.* diff --git a/serialization/common/test/InstantSerializationTest.kt b/serialization/common/test/InstantSerializationTest.kt index ffb92cd8b..0e78427e8 100644 --- a/serialization/common/test/InstantSerializationTest.kt +++ b/serialization/common/test/InstantSerializationTest.kt @@ -5,7 +5,7 @@ package kotlinx.datetime.serialization.test import kotlinx.datetime.* -import kotlinx.datetime.serializers.* +import kotlinx.datetime.serialization.* import kotlinx.serialization.* import kotlinx.serialization.json.* import kotlin.test.* @@ -60,10 +60,4 @@ class InstantSerializationTest { fun testComponentSerialization() { componentSerialization(InstantComponentSerializer) } - - @Test - fun testDefaultSerializers() { - // should be the same as the ISO-8601 - iso8601Serialization(Json.serializersModule.serializer()) - } } \ No newline at end of file diff --git a/serialization/common/test/IntegrationTest.kt b/serialization/common/test/IntegrationTest.kt index 0452a10fd..2c21ebc1a 100644 --- a/serialization/common/test/IntegrationTest.kt +++ b/serialization/common/test/IntegrationTest.kt @@ -6,7 +6,7 @@ package kotlinx.datetime.serialization.test import kotlinx.datetime.* -import kotlinx.datetime.serializers.* +import kotlinx.datetime.serialization.* import kotlinx.serialization.Contextual import kotlinx.serialization.Serializable import kotlinx.serialization.decodeFromString @@ -64,38 +64,6 @@ class IntegrationTest { @Serializable data class Dummy2( - val instant: Instant, - val date: LocalDate, - val dateTime: LocalDateTime, - val datePeriod: DatePeriod, - val dateTimePeriod: DateTimePeriod, - // val dayOfWeek: DayOfWeek, - // val month: Month, - ) - - @Test - fun testDefaultSerialization() { - val dummyValue = Dummy2( - Instant.parse("2021-03-24T01:29:30.123456789Z"), - LocalDate.parse("2020-01-02"), - LocalDateTime.parse("2020-01-03T12:59:58.010203045"), - DatePeriod.parse("P20Y-2M-3D"), - DateTimePeriod.parse("-P50Y-1M-2DT3H4M5.0123S"), - // DayOfWeek.MONDAY, - // Month.DECEMBER, - ) - val json = "{\"instant\":\"2021-03-24T01:29:30.123456789Z\"," + - "\"date\":\"2020-01-02\"," + - "\"dateTime\":\"2020-01-03T12:59:58.010203045\"," + - "\"datePeriod\":\"P19Y10M-3D\"," + - "\"dateTimePeriod\":\"P-49Y-11M2DT-3H-4M-5.012300000S\"" + - "}" - assertEquals(dummyValue, Json.decodeFromString(json)) - assertEquals(json, Json.encodeToString(dummyValue)) - } - - @Serializable - data class Dummy3( @Serializable(with = InstantComponentSerializer::class) val instant: Instant, @Serializable(with = LocalDateComponentSerializer::class) val date: LocalDate, @Serializable(with = LocalDateTimeComponentSerializer::class) val dateTime: LocalDateTime, @@ -107,7 +75,7 @@ class IntegrationTest { @Test fun testExplicitSerializerSpecification() { - val dummyValue = Dummy3( + val dummyValue = Dummy2( Instant.parse("2021-03-24T01:29:30.123456789Z"), LocalDate.parse("2020-01-02"), LocalDateTime.parse("2020-01-03T12:59:58.010203045"), diff --git a/serialization/common/test/LocalDateSerializationTest.kt b/serialization/common/test/LocalDateSerializationTest.kt index 1dd953352..3e41e5598 100644 --- a/serialization/common/test/LocalDateSerializationTest.kt +++ b/serialization/common/test/LocalDateSerializationTest.kt @@ -6,7 +6,7 @@ package kotlinx.datetime.serialization.test import kotlinx.datetime.* -import kotlinx.datetime.serializers.* +import kotlinx.datetime.serialization.* import kotlinx.serialization.* import kotlinx.serialization.json.* import kotlin.test.* @@ -64,10 +64,4 @@ class LocalDateSerializationTest { componentSerialization(LocalDateComponentSerializer) } - @Test - fun testDefaultSerializers() { - // should be the same as the ISO-8601 - iso8601Serialization(Json.serializersModule.serializer()) - } - } diff --git a/serialization/common/test/LocalDateTimeSerializationTest.kt b/serialization/common/test/LocalDateTimeSerializationTest.kt index f01254d8a..1bb790bf6 100644 --- a/serialization/common/test/LocalDateTimeSerializationTest.kt +++ b/serialization/common/test/LocalDateTimeSerializationTest.kt @@ -6,10 +6,9 @@ package kotlinx.datetime.serialization.test import kotlinx.datetime.* -import kotlinx.datetime.serializers.* +import kotlinx.datetime.serialization.* import kotlinx.serialization.KSerializer import kotlinx.serialization.json.* -import kotlinx.serialization.serializer import kotlin.test.* class LocalDateTimeSerializationTest { @@ -76,10 +75,4 @@ class LocalDateTimeSerializationTest { fun testComponentSerialization() { componentSerialization(LocalDateTimeComponentSerializer) } - - @Test - fun testDefaultSerializers() { - // should be the same as the ISO-8601 - iso8601Serialization(Json.serializersModule.serializer()) - } } diff --git a/serialization/common/test/MonthSerializationTest.kt b/serialization/common/test/MonthSerializationTest.kt index 8d8879b72..8c491900b 100644 --- a/serialization/common/test/MonthSerializationTest.kt +++ b/serialization/common/test/MonthSerializationTest.kt @@ -6,7 +6,7 @@ package kotlinx.datetime.serialization.test import kotlinx.datetime.* -import kotlinx.datetime.serializers.* +import kotlinx.datetime.serialization.* import kotlinx.serialization.json.* import kotlin.test.* diff --git a/serialization/common/test/TimeZoneSerializationTest.kt b/serialization/common/test/TimeZoneSerializationTest.kt index 9cb0f5058..a61ee6d96 100644 --- a/serialization/common/test/TimeZoneSerializationTest.kt +++ b/serialization/common/test/TimeZoneSerializationTest.kt @@ -6,10 +6,9 @@ package kotlinx.datetime.serialization.test import kotlinx.datetime.* -import kotlinx.datetime.serializers.* +import kotlinx.datetime.serialization.* import kotlinx.serialization.KSerializer import kotlinx.serialization.json.* -import kotlinx.serialization.serializer import kotlin.test.* class TimeZoneSerializationTest { @@ -43,10 +42,4 @@ class TimeZoneSerializationTest { fun testSerialization() { serialization(TimeZoneSerializer) } - - @Test - fun testDefaultSerializers() { - zoneOffsetSerialization(Json.serializersModule.serializer()) - serialization(Json.serializersModule.serializer()) - } } \ No newline at end of file