diff --git a/src/main/kotlin/tools/jackson/module/kotlin/KotlinKeySerializers.kt b/src/main/kotlin/tools/jackson/module/kotlin/KotlinKeySerializers.kt index 8f9ba73e..52493d89 100644 --- a/src/main/kotlin/tools/jackson/module/kotlin/KotlinKeySerializers.kt +++ b/src/main/kotlin/tools/jackson/module/kotlin/KotlinKeySerializers.kt @@ -6,7 +6,7 @@ import tools.jackson.core.JsonGenerator import tools.jackson.databind.BeanDescription import tools.jackson.databind.JavaType import tools.jackson.databind.SerializationConfig -import tools.jackson.databind.SerializerProvider +import tools.jackson.databind.SerializationContext import tools.jackson.databind.ValueSerializer import tools.jackson.databind.ser.Serializers import tools.jackson.databind.ser.std.StdSerializer @@ -14,17 +14,17 @@ import java.lang.reflect.Method import java.lang.reflect.Modifier internal object ValueClassUnboxKeySerializer : StdSerializer(Any::class.java) { - override fun serialize(value: Any, gen: JsonGenerator, provider: SerializerProvider) { + override fun serialize(value: Any, gen: JsonGenerator, ctxt: SerializationContext) { val method = value::class.java.getMethod("unbox-impl") val unboxed = method.invoke(value) if (unboxed == null) { - val javaType = provider.typeFactory.constructType(method.genericReturnType) - provider.findNullKeySerializer(javaType, null).serialize(null, gen, provider) + val javaType = ctxt.typeFactory.constructType(method.genericReturnType) + ctxt.findNullKeySerializer(javaType, null).serialize(null, gen, ctxt) return } - provider.findKeySerializer(unboxed::class.java, null).serialize(unboxed, gen, provider) + ctxt.findKeySerializer(unboxed::class.java, null).serialize(unboxed, gen, ctxt) } } @@ -40,15 +40,15 @@ internal class ValueClassStaticJsonKeySerializer( private val keyType: Class<*> = staticJsonKeyGetter.returnType private val unboxMethod: Method = t.getMethod("unbox-impl") - override fun serialize(value: T, gen: JsonGenerator, provider: SerializerProvider) { + override fun serialize(value: T, gen: JsonGenerator, ctxt: SerializationContext) { val unboxed = unboxMethod.invoke(value) val jsonKey: Any? = staticJsonKeyGetter.invoke(null, unboxed) val serializer = jsonKey - ?.let { provider.findKeySerializer(keyType, null) } - ?: provider.findNullKeySerializer(provider.constructType(keyType), null) + ?.let { ctxt.findKeySerializer(keyType, null) } + ?: ctxt.findNullKeySerializer(ctxt.constructType(keyType), null) - serializer.serialize(jsonKey, gen, provider) + serializer.serialize(jsonKey, gen, ctxt) } companion object { diff --git a/src/main/kotlin/tools/jackson/module/kotlin/KotlinSerializers.kt b/src/main/kotlin/tools/jackson/module/kotlin/KotlinSerializers.kt index 44f3d17a..dcb06bd3 100644 --- a/src/main/kotlin/tools/jackson/module/kotlin/KotlinSerializers.kt +++ b/src/main/kotlin/tools/jackson/module/kotlin/KotlinSerializers.kt @@ -6,7 +6,7 @@ import tools.jackson.core.JsonGenerator import tools.jackson.databind.BeanDescription import tools.jackson.databind.JavaType import tools.jackson.databind.SerializationConfig -import tools.jackson.databind.SerializerProvider +import tools.jackson.databind.SerializationContext import tools.jackson.databind.ValueSerializer import tools.jackson.databind.ser.Serializers import tools.jackson.databind.ser.std.StdSerializer @@ -15,25 +15,25 @@ import java.lang.reflect.Modifier import java.math.BigInteger object UByteSerializer : StdSerializer(UByte::class.java) { - override fun serialize(value: UByte, gen: JsonGenerator, provider: SerializerProvider) { + override fun serialize(value: UByte, gen: JsonGenerator, ctxt: SerializationContext) { gen.writeNumber(value.toShort()) } } object UShortSerializer : StdSerializer(UShort::class.java) { - override fun serialize(value: UShort, gen: JsonGenerator, provider: SerializerProvider) { + override fun serialize(value: UShort, gen: JsonGenerator, ctxt: SerializationContext) { gen.writeNumber(value.toInt()) } } object UIntSerializer : StdSerializer(UInt::class.java) { - override fun serialize(value: UInt, gen: JsonGenerator, provider: SerializerProvider) { + override fun serialize(value: UInt, gen: JsonGenerator, ctxt: SerializationContext) { gen.writeNumber(value.toLong()) } } object ULongSerializer : StdSerializer(ULong::class.java) { - override fun serialize(value: ULong, gen: JsonGenerator, provider: SerializerProvider) { + override fun serialize(value: ULong, gen: JsonGenerator, ctxt: SerializationContext) { val longValue = value.toLong() when { longValue >= 0 -> gen.writeNumber(longValue) @@ -48,15 +48,15 @@ private fun Class<*>.getStaticJsonValueGetter(): Method? = this.declaredMethods. } object ValueClassUnboxSerializer : StdSerializer(Any::class.java) { - override fun serialize(value: Any, gen: JsonGenerator, provider: SerializerProvider) { + override fun serialize(value: Any, gen: JsonGenerator, ctxt: SerializationContext) { val unboxed = value::class.java.getMethod("unbox-impl").invoke(value) if (unboxed == null) { - provider.findNullValueSerializer(null).serialize(null, gen, provider) + ctxt.findNullValueSerializer(null).serialize(null, gen, ctxt) return } - provider.findValueSerializer(unboxed::class.java).serialize(unboxed, gen, provider) + ctxt.findValueSerializer(unboxed::class.java).serialize(unboxed, gen, ctxt) } } @@ -66,13 +66,13 @@ internal sealed class ValueClassSerializer(t: Class) : StdSerializer ) : ValueClassSerializer(t) { private val unboxMethod: Method = t.getMethod("unbox-impl") - override fun serialize(value: T, gen: JsonGenerator, provider: SerializerProvider) { + override fun serialize(value: T, gen: JsonGenerator, ctxt: SerializationContext) { val unboxed = unboxMethod.invoke(value) // As shown in the processing of the factory function, jsonValueGetter is always a static method. val jsonValue: Any? = staticJsonValueGetter.invoke(null, unboxed) jsonValue - ?.let { provider.findValueSerializer(it::class.java).serialize(it, gen, provider) } - ?: provider.findNullValueSerializer(null).serialize(null, gen, provider) + ?.let { ctxt.findValueSerializer(it::class.java).serialize(it, gen, ctxt) } + ?: ctxt.findNullValueSerializer(null).serialize(null, gen, ctxt) } } diff --git a/src/test/kotlin/tools/jackson/module/kotlin/test/KClassSerializerDeserializerTest.kt b/src/test/kotlin/tools/jackson/module/kotlin/test/KClassSerializerDeserializerTest.kt index 8a09f7d9..3e204f21 100644 --- a/src/test/kotlin/tools/jackson/module/kotlin/test/KClassSerializerDeserializerTest.kt +++ b/src/test/kotlin/tools/jackson/module/kotlin/test/KClassSerializerDeserializerTest.kt @@ -3,7 +3,7 @@ package tools.jackson.module.kotlin.test import tools.jackson.core.JsonGenerator import tools.jackson.core.JsonParser import tools.jackson.databind.DeserializationContext -import tools.jackson.databind.SerializerProvider +import tools.jackson.databind.SerializationContext import tools.jackson.databind.ValueDeserializer import tools.jackson.databind.ValueSerializer import tools.jackson.databind.module.SimpleModule @@ -51,7 +51,7 @@ data class TestDoubleData( ) class RoundingSerializer : ValueSerializer() { - override fun serialize(value: Double?, gen: JsonGenerator?, serializers: SerializerProvider?) { + override fun serialize(value: Double?, gen: JsonGenerator?, ctxt: SerializationContext?) { value?.let { gen?.writeNumber(BigDecimal(it).setScale(2, RoundingMode.HALF_UP)) } diff --git a/src/test/kotlin/tools/jackson/module/kotlin/test/PropertyRequirednessTests.kt b/src/test/kotlin/tools/jackson/module/kotlin/test/PropertyRequirednessTests.kt index 59ff5b72..b05b0f71 100644 --- a/src/test/kotlin/tools/jackson/module/kotlin/test/PropertyRequirednessTests.kt +++ b/src/test/kotlin/tools/jackson/module/kotlin/test/PropertyRequirednessTests.kt @@ -192,7 +192,7 @@ class TestPropertyRequiredness { } private fun introspectSerialization(type: Class<*>, mapper: ObjectMapper): BeanDescription = - mapper._serializerProvider().introspectBeanDescription(mapper.constructType(type)) + mapper._serializationContext().introspectBeanDescription(mapper.constructType(type)) private fun introspectDeserialization(type: Class<*>, mapper: ObjectMapper): BeanDescription = mapper._deserializationContext().introspectBeanDescription(mapper.constructType(type)) diff --git a/src/test/kotlin/tools/jackson/module/kotlin/test/SequenceSerdesTests.kt b/src/test/kotlin/tools/jackson/module/kotlin/test/SequenceSerdesTests.kt index a2f2b957..ef34a20c 100644 --- a/src/test/kotlin/tools/jackson/module/kotlin/test/SequenceSerdesTests.kt +++ b/src/test/kotlin/tools/jackson/module/kotlin/test/SequenceSerdesTests.kt @@ -4,7 +4,7 @@ import org.junit.Test import tools.jackson.module.kotlin.jacksonObjectMapper import tools.jackson.module.kotlin.readValue import tools.jackson.core.JsonGenerator -import tools.jackson.databind.SerializerProvider +import tools.jackson.databind.SerializationContext import tools.jackson.databind.annotation.JsonSerialize import tools.jackson.databind.ser.std.StdSerializer import kotlin.test.assertEquals @@ -47,8 +47,8 @@ class TestSequenceDeserializer { } class ContentSer : StdSerializer(String::class.java) { - override fun serialize(value: String, gen: JsonGenerator, provider: SerializerProvider) { - provider.writeValue(gen, "$value-ser") + override fun serialize(value: String, gen: JsonGenerator, ctxt: SerializationContext) { + ctxt.writeValue(gen, "$value-ser") } } diff --git a/src/test/kotlin/tools/jackson/module/kotlin/test/github/GitHub524.kt b/src/test/kotlin/tools/jackson/module/kotlin/test/github/GitHub524.kt index 68d57f87..cc5b2a83 100644 --- a/src/test/kotlin/tools/jackson/module/kotlin/test/github/GitHub524.kt +++ b/src/test/kotlin/tools/jackson/module/kotlin/test/github/GitHub524.kt @@ -1,7 +1,7 @@ package tools.jackson.module.kotlin.test.github import tools.jackson.core.JsonGenerator -import tools.jackson.databind.SerializerProvider +import tools.jackson.databind.SerializationContext import tools.jackson.databind.annotation.JsonSerialize import tools.jackson.databind.module.SimpleModule import tools.jackson.databind.ser.std.StdSerializer @@ -17,7 +17,7 @@ class GitHub524 { @JvmInline value class HasSerializer(val value: Int?) class Serializer : StdSerializer(HasSerializer::class.java) { - override fun serialize(value: HasSerializer, gen: JsonGenerator, provider: SerializerProvider) { + override fun serialize(value: HasSerializer, gen: JsonGenerator, ctxt: SerializationContext) { gen.writeString(value.toString()) } } diff --git a/src/test/kotlin/tools/jackson/module/kotlin/test/github/GitHub618.kt b/src/test/kotlin/tools/jackson/module/kotlin/test/github/GitHub618.kt index 6f175cc1..6c3f30fd 100644 --- a/src/test/kotlin/tools/jackson/module/kotlin/test/github/GitHub618.kt +++ b/src/test/kotlin/tools/jackson/module/kotlin/test/github/GitHub618.kt @@ -2,7 +2,7 @@ package tools.jackson.module.kotlin.test.github import org.junit.Test import tools.jackson.core.JsonGenerator -import tools.jackson.databind.SerializerProvider +import tools.jackson.databind.SerializationContext import tools.jackson.databind.annotation.JsonSerialize import tools.jackson.databind.ser.std.StdSerializer import tools.jackson.module.kotlin.jacksonObjectMapper @@ -13,7 +13,7 @@ class GitHub618 { @JvmInline value class V(val value: String) { class Serializer : StdSerializer(V::class.java) { - override fun serialize(p0: V, p1: JsonGenerator, p2: SerializerProvider) { + override fun serialize(p0: V, p1: JsonGenerator, p2: SerializationContext) { p1.writeString(p0.toString()) } } diff --git a/src/test/kotlin/tools/jackson/module/kotlin/test/github/Github464.kt b/src/test/kotlin/tools/jackson/module/kotlin/test/github/Github464.kt index e2a1297c..f1191f75 100644 --- a/src/test/kotlin/tools/jackson/module/kotlin/test/github/Github464.kt +++ b/src/test/kotlin/tools/jackson/module/kotlin/test/github/Github464.kt @@ -3,7 +3,7 @@ package tools.jackson.module.kotlin.test.github import tools.jackson.core.JsonGenerator import tools.jackson.databind.ObjectMapper import tools.jackson.databind.ObjectWriter -import tools.jackson.databind.SerializerProvider +import tools.jackson.databind.SerializationContext import tools.jackson.databind.json.JsonMapper import tools.jackson.databind.module.SimpleModule import tools.jackson.databind.ser.std.StdSerializer @@ -17,7 +17,7 @@ import kotlin.test.assertEquals class Github464 { class UnboxTest { object NullValueClassKeySerializer : StdSerializer(ValueClass::class.java) { - override fun serialize(value: ValueClass?, gen: JsonGenerator, provider: SerializerProvider) { + override fun serialize(value: ValueClass?, gen: JsonGenerator, ctxt: SerializationContext) { gen.writeName("null-key") } } @@ -107,7 +107,7 @@ class Github464 { } object NullValueSerializer : StdSerializer(Any::class.java) { - override fun serialize(value: Any?, gen: JsonGenerator, provider: SerializerProvider) { + override fun serialize(value: Any?, gen: JsonGenerator, ctxt: SerializationContext) { gen.writeString("null-value") } } @@ -156,13 +156,13 @@ class Github464 { value class ValueBySerializer(val value: Int) object Serializer : StdSerializer(ValueBySerializer::class.java) { - override fun serialize(value: ValueBySerializer, gen: JsonGenerator, provider: SerializerProvider) { + override fun serialize(value: ValueBySerializer, gen: JsonGenerator, ctxt: SerializationContext) { gen.writeString(value.value.toString()) } } object KeySerializer : StdSerializer(ValueBySerializer::class.java) { - override fun serialize(value: ValueBySerializer, gen: JsonGenerator, provider: SerializerProvider) { + override fun serialize(value: ValueBySerializer, gen: JsonGenerator, ctxt: SerializationContext) { gen.writeName(value.value.toString()) } }