Skip to content

Commit 2dbd5af

Browse files
committed
Porting configOverride extensions
from FasterXML/jackson-module-kotlin#959
1 parent 40c4b67 commit 2dbd5af

File tree

2 files changed

+12
-6
lines changed
  • src
    • main/kotlin/io/github/projectmapk/jackson/module/kogera
    • test/kotlin/io/github/projectmapk/jackson/module/kogera/zPorted/test/github

2 files changed

+12
-6
lines changed

src/main/kotlin/io/github/projectmapk/jackson/module/kogera/Extensions.kt

+5
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,11 @@ import com.fasterxml.jackson.databind.JsonDeserializer
77
import com.fasterxml.jackson.databind.JsonNode
88
import com.fasterxml.jackson.databind.JsonSerializer
99
import com.fasterxml.jackson.databind.MappingIterator
10+
import com.fasterxml.jackson.databind.Module
1011
import com.fasterxml.jackson.databind.ObjectMapper
1112
import com.fasterxml.jackson.databind.ObjectReader
1213
import com.fasterxml.jackson.databind.RuntimeJsonMappingException
14+
import com.fasterxml.jackson.databind.cfg.MutableConfigOverride
1315
import com.fasterxml.jackson.databind.json.JsonMapper
1416
import com.fasterxml.jackson.databind.module.SimpleModule
1517
import com.fasterxml.jackson.databind.node.ArrayNode
@@ -302,3 +304,6 @@ public fun <T : Any> SimpleModule.addDeserializer(
302304
kClass.javaPrimitiveType?.let { addDeserializer(it, deserializer) }
303305
addDeserializer(kClass.javaObjectType, deserializer)
304306
}
307+
308+
public inline fun <reified T : Any> ObjectMapper.configOverride(): MutableConfigOverride = configOverride(T::class.java)
309+
public inline fun <reified T : Any> Module.SetupContext.configOverride(): MutableConfigOverride = configOverride(T::class.java)

src/test/kotlin/io/github/projectmapk/jackson/module/kogera/zPorted/test/github/GitHub876.kt

+7-6
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ package io.github.projectmapk.jackson.module.kogera.zPorted.test.github
22

33
import com.fasterxml.jackson.annotation.JsonSetter
44
import com.fasterxml.jackson.annotation.Nulls
5+
import io.github.projectmapk.jackson.module.kogera.configOverride
56
import io.github.projectmapk.jackson.module.kogera.jacksonObjectMapper
67
import io.github.projectmapk.jackson.module.kogera.readValue
78
import org.junit.jupiter.api.Assertions.assertEquals
@@ -89,9 +90,9 @@ class GitHub876 {
8990
@Nested
9091
inner class WithoutAnnotationWithoutDefaultTest {
9192
val mapper = jacksonObjectMapper().apply {
92-
configOverride(List::class.java).setterInfo = JsonSetter.Value.forValueNulls(Nulls.AS_EMPTY)
93-
configOverride(Map::class.java).setterInfo = JsonSetter.Value.forValueNulls(Nulls.AS_EMPTY)
94-
configOverride(String::class.java).setterInfo = JsonSetter.Value.forValueNulls(Nulls.AS_EMPTY)
93+
configOverride<List<*>>().setterInfo = JsonSetter.Value.forValueNulls(Nulls.AS_EMPTY)
94+
configOverride<Map<*, *>>().setterInfo = JsonSetter.Value.forValueNulls(Nulls.AS_EMPTY)
95+
configOverride<String>().setterInfo = JsonSetter.Value.forValueNulls(Nulls.AS_EMPTY)
9596
}
9697

9798
@Test
@@ -124,9 +125,9 @@ class GitHub876 {
124125
@Nested
125126
inner class WithoutAnnotationWithDefaultTest {
126127
val mapper = jacksonObjectMapper().apply {
127-
configOverride(List::class.java).setterInfo = JsonSetter.Value.forValueNulls(Nulls.AS_EMPTY)
128-
configOverride(Map::class.java).setterInfo = JsonSetter.Value.forValueNulls(Nulls.AS_EMPTY)
129-
configOverride(String::class.java).setterInfo = JsonSetter.Value.forValueNulls(Nulls.AS_EMPTY)
128+
configOverride<List<*>>().setterInfo = JsonSetter.Value.forValueNulls(Nulls.AS_EMPTY)
129+
configOverride<Map<*, *>>().setterInfo = JsonSetter.Value.forValueNulls(Nulls.AS_EMPTY)
130+
configOverride<String>().setterInfo = JsonSetter.Value.forValueNulls(Nulls.AS_EMPTY)
130131
}
131132

132133
@Test

0 commit comments

Comments
 (0)