Skip to content

Commit 892e6be

Browse files
authored
Merge pull request #959 from k163377/configoverride2
Add extensions for `configOverride`
2 parents eaa6f88 + e2a2a6e commit 892e6be

File tree

4 files changed

+15
-6
lines changed

4 files changed

+15
-6
lines changed

release-notes/CREDITS-2.x

+1
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ Contributors:
1818
# 2.19.0 (not yet released)
1919

2020
WrongWrong (@k163377)
21+
* #959: Add extensions for configOverride
2122
* #954: Replace BooleanTriState with OptBoolean
2223
* #944: Fixed to use common util for Member accessibility override
2324
* #937: Added type match check to read functions

release-notes/VERSION-2.x

+1
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ Co-maintainers:
1818

1919
2.19.0 (not yet released)
2020

21+
#959: Extension functions has been added to simplify `configOverride` calls to `ObjectMapper` and `Module.SetupContext`.
2122
#954: Replaced `OptBoolean` of internal caching with a common implementation.
2223
#944: Common util is now used for member accessibility overrides.
2324
#937: For `readValue` and other shorthands for `ObjectMapper` deserialization methods,

src/main/kotlin/com/fasterxml/jackson/module/kotlin/Extensions.kt

+6
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
@@ -226,3 +228,7 @@ fun <T : Any> SimpleModule.addDeserializer(kClass: KClass<T>, deserializer: Json
226228
kClass.javaPrimitiveType?.let { addDeserializer(it, deserializer) }
227229
addDeserializer(kClass.javaObjectType, deserializer)
228230
}
231+
232+
inline fun <reified T : Any> ObjectMapper.configOverride(): MutableConfigOverride = configOverride(T::class.java)
233+
inline fun <reified T : Any> Module.SetupContext.configOverride(): MutableConfigOverride =
234+
configOverride(T::class.java)

src/test/kotlin/com/fasterxml/jackson/module/kotlin/test/github/GitHub876.kt

+7-6
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ package com.fasterxml.jackson.module.kotlin.test.github
22

33
import com.fasterxml.jackson.annotation.JsonSetter
44
import com.fasterxml.jackson.annotation.Nulls
5+
import com.fasterxml.jackson.module.kotlin.configOverride
56
import com.fasterxml.jackson.module.kotlin.jacksonObjectMapper
67
import com.fasterxml.jackson.module.kotlin.readValue
78
import org.junit.jupiter.api.Nested
@@ -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)