Skip to content

Commit b2be4ae

Browse files
authored
Merge pull request #751 from k163377/fix-prop-name
Marked useKotlinPropertyNameForGetter as deprecated.
2 parents 452cc57 + 2cc4589 commit b2be4ae

File tree

4 files changed

+22
-26
lines changed

4 files changed

+22
-26
lines changed

release-notes/CREDITS-2.x

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

2020
WrongWrong (@k163377)
21+
* #751: Marked useKotlinPropertyNameForGetter as deprecated.
2122
* #747: Improved performance related to KotlinModule initialization and setupModule.
2223
* #746: The KotlinModule#serialVersionUID is set to private.
2324
* #745: Modified isKotlinClass determination method.

release-notes/VERSION-2.x

+2
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,8 @@ Co-maintainers:
1818

1919
2.17.0 (not yet released)
2020

21+
#751: The KotlinModule#useKotlinPropertyNameForGetter property was deprecated because it differed from the name of the KotlinFeature.
22+
Please use KotlinModule#kotlinPropertyNameAsImplicitName from now on.
2123
#747: Improved performance related to KotlinModule initialization and setupModule.
2224
With this change, the KotlinModule initialization error when using Kotlin 1.4 or lower has been eliminated.
2325
#746: The KotlinModule#serialVersionUID is set to private.

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

+8
Original file line numberDiff line numberDiff line change
@@ -53,9 +53,17 @@ class KotlinModule @Deprecated(
5353
val nullIsSameAsDefault: Boolean = NullIsSameAsDefault.enabledByDefault,
5454
val singletonSupport: SingletonSupport = DISABLED,
5555
val strictNullChecks: Boolean = StrictNullChecks.enabledByDefault,
56+
@Deprecated(
57+
level = DeprecationLevel.WARNING,
58+
message = "There was a discrepancy between the property name and the Feature name." +
59+
" To migrate to the correct property name, it will be ERROR in 2.18 and removed in 2.19.",
60+
replaceWith = ReplaceWith("kotlinPropertyNameAsImplicitName")
61+
)
5662
val useKotlinPropertyNameForGetter: Boolean = KotlinPropertyNameAsImplicitName.enabledByDefault,
5763
val useJavaDurationConversion: Boolean = UseJavaDurationConversion.enabledByDefault,
5864
) : SimpleModule(KotlinModule::class.java.name, PackageVersion.VERSION) {
65+
val kotlinPropertyNameAsImplicitName: Boolean get() = useKotlinPropertyNameForGetter
66+
5967
companion object {
6068
// Increment when option is added
6169
private const val serialVersionUID = 2L

src/test/kotlin/com/fasterxml/jackson/module/kotlin/KotlinModuleTest.kt

+11-26
Original file line numberDiff line numberDiff line change
@@ -1,35 +1,14 @@
11
package com.fasterxml.jackson.module.kotlin
22

33
import com.fasterxml.jackson.databind.ObjectMapper
4-
import com.fasterxml.jackson.module.kotlin.KotlinFeature.NullIsSameAsDefault
5-
import com.fasterxml.jackson.module.kotlin.KotlinFeature.NullToEmptyCollection
6-
import com.fasterxml.jackson.module.kotlin.KotlinFeature.NullToEmptyMap
7-
import com.fasterxml.jackson.module.kotlin.KotlinFeature.SingletonSupport
8-
import com.fasterxml.jackson.module.kotlin.KotlinFeature.StrictNullChecks
9-
import com.fasterxml.jackson.module.kotlin.SingletonSupport.CANONICALIZE
10-
import com.fasterxml.jackson.module.kotlin.SingletonSupport.DISABLED
4+
import com.fasterxml.jackson.module.kotlin.KotlinFeature.*
115
import org.junit.Assert.assertEquals
126
import org.junit.Assert.assertFalse
137
import org.junit.Assert.assertTrue
148
import org.junit.Test
159
import kotlin.test.assertNotNull
1610

1711
class KotlinModuleTest {
18-
/**
19-
* Ensure that the default Builder matches Feature default settings.
20-
*/
21-
@Test
22-
fun builderDefaultsMatchFeatures() {
23-
val module = KotlinModule.Builder().build()
24-
25-
assertEquals(module.reflectionCacheSize, 512)
26-
assertFalse(module.nullToEmptyCollection)
27-
assertFalse(module.nullToEmptyMap)
28-
assertFalse(module.nullIsSameAsDefault)
29-
assertEquals(module.singletonSupport, DISABLED)
30-
assertFalse(module.strictNullChecks)
31-
}
32-
3312
@Test
3413
fun builder_Defaults() {
3514
val module = KotlinModule.Builder().build()
@@ -38,8 +17,10 @@ class KotlinModuleTest {
3817
assertFalse(module.nullToEmptyCollection)
3918
assertFalse(module.nullToEmptyMap)
4019
assertFalse(module.nullIsSameAsDefault)
41-
assertEquals(DISABLED, module.singletonSupport)
20+
assertEquals(SingletonSupport.DISABLED, module.singletonSupport)
4221
assertFalse(module.strictNullChecks)
22+
assertFalse(module.kotlinPropertyNameAsImplicitName)
23+
assertFalse(module.useJavaDurationConversion)
4324
}
4425

4526
@Test
@@ -51,14 +32,18 @@ class KotlinModuleTest {
5132
enable(NullIsSameAsDefault)
5233
enable(SingletonSupport)
5334
enable(StrictNullChecks)
35+
enable(KotlinPropertyNameAsImplicitName)
36+
enable(UseJavaDurationConversion)
5437
}.build()
5538

5639
assertEquals(123, module.reflectionCacheSize)
5740
assertTrue(module.nullToEmptyCollection)
5841
assertTrue(module.nullToEmptyMap)
5942
assertTrue(module.nullIsSameAsDefault)
60-
assertEquals(CANONICALIZE, module.singletonSupport)
43+
assertEquals(SingletonSupport.CANONICALIZE, module.singletonSupport)
6144
assertTrue(module.strictNullChecks)
45+
assertTrue(module.kotlinPropertyNameAsImplicitName)
46+
assertTrue(module.useJavaDurationConversion)
6247
}
6348

6449
@Test
@@ -94,7 +79,7 @@ class KotlinModuleTest {
9479
enable(SingletonSupport)
9580
}.build()
9681

97-
assertEquals(CANONICALIZE, module.singletonSupport)
82+
assertEquals(SingletonSupport.CANONICALIZE, module.singletonSupport)
9883
}
9984

10085
@Test
@@ -125,7 +110,7 @@ class KotlinModuleTest {
125110
assertTrue(deserialized.nullToEmptyCollection)
126111
assertTrue(deserialized.nullToEmptyMap)
127112
assertTrue(deserialized.nullIsSameAsDefault)
128-
assertEquals(CANONICALIZE, deserialized.singletonSupport)
113+
assertEquals(SingletonSupport.CANONICALIZE, deserialized.singletonSupport)
129114
assertTrue(deserialized.strictNullChecks)
130115
}
131116

0 commit comments

Comments
 (0)