Skip to content

Commit be02d96

Browse files
committed
Merge branch '6.2.x'
2 parents 077146d + 7bb19fc commit be02d96

File tree

2 files changed

+23
-2
lines changed

2 files changed

+23
-2
lines changed

spring-core/src/main/java/org/springframework/aot/hint/BindingReflectionHintsRegistrar.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright 2002-2024 the original author or authors.
2+
* Copyright 2002-2025 the original author or authors.
33
*
44
* Licensed under the Apache License, Version 2.0 (the "License");
55
* you may not use this file except in compliance with the License.
@@ -148,7 +148,8 @@ private void registerKotlinSerializationHints(ReflectionHints hints, Class<?> cl
148148
String companionClassName = clazz.getCanonicalName() + KOTLIN_COMPANION_SUFFIX;
149149
if (ClassUtils.isPresent(companionClassName, null)) {
150150
Class<?> companionClass = ClassUtils.resolveClassName(companionClassName, null);
151-
Method serializerMethod = ClassUtils.getMethodIfAvailable(companionClass, "serializer");
151+
Method serializerMethod = ClassUtils.getMethodIfAvailable(companionClass, "serializer",
152+
(Class<?>[]) null);
152153
if (serializerMethod != null) {
153154
hints.registerMethod(serializerMethod, ExecutableMode.INVOKE);
154155
}

spring-core/src/test/kotlin/org/springframework/aot/hint/BindingReflectionHintsRegistrarKotlinTests.kt

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,12 @@ class BindingReflectionHintsRegistrarKotlinTests {
8080
bindingRegistrar.registerReflectionHints(hints.reflection(), SampleClass::class.java)
8181
assertThat(RuntimeHintsPredicates.reflection().onType(SampleClass::class.java)).accepts(hints)
8282
}
83+
84+
@Test
85+
fun `Register reflection hints on serializer function with parameter`() {
86+
bindingRegistrar.registerReflectionHints(hints.reflection(), SampleResult::class.java)
87+
assertThat(RuntimeHintsPredicates.reflection().onMethodInvocation(SampleResult.Companion::class.java, "serializer")).accepts(hints)
88+
}
8389
}
8490

8591
@kotlinx.serialization.Serializable
@@ -88,3 +94,17 @@ class SampleSerializableClass(val name: String)
8894
data class SampleDataClass(val name: String, val isNonNullable: Boolean, val isNullable: Boolean?)
8995

9096
class SampleClass(val name: String)
97+
98+
@kotlinx.serialization.Serializable
99+
data class SampleResult <T>(
100+
val code: Int,
101+
val message: String,
102+
val data: T,
103+
) {
104+
companion object {
105+
private const val SUCCESS: Int = 200
106+
private const val FAILURE: Int = 500
107+
fun <T> success(message: String, data: T) = SampleResult<T>(code = SUCCESS, message = message, data = data)
108+
fun <T> failure(message: String, data: T) = SampleResult<T>(code = FAILURE, message = message, data = data)
109+
}
110+
}

0 commit comments

Comments
 (0)