diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/jackson/JsonMixinModuleEntriesBeanRegistrationAotProcessor.java b/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/jackson/JsonMixinModuleEntriesBeanRegistrationAotProcessor.java index 6fa0d2e499..090999126f 100644 --- a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/jackson/JsonMixinModuleEntriesBeanRegistrationAotProcessor.java +++ b/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/jackson/JsonMixinModuleEntriesBeanRegistrationAotProcessor.java @@ -98,7 +98,7 @@ class JsonMixinModuleEntriesBeanRegistrationAotProcessor implements BeanRegistra private void contributeHints(RuntimeHints runtimeHints, JsonMixinModuleEntries entries) { Set> mixins = new LinkedHashSet<>(); - entries.doWithEntry(this.classLoader, (type, mixin) -> mixins.add(type)); + entries.doWithEntry(this.classLoader, (type, mixin) -> mixins.add(mixin)); new BindingReflectionHintsRegistrar().registerReflectionHints(runtimeHints.reflection(), mixins.toArray(Class[]::new)); } diff --git a/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/jackson/JsonMixinModuleEntriesBeanRegistrationAotProcessorTests.java b/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/jackson/JsonMixinModuleEntriesBeanRegistrationAotProcessorTests.java index 7188944221..b6f0a4eff6 100644 --- a/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/jackson/JsonMixinModuleEntriesBeanRegistrationAotProcessorTests.java +++ b/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/jackson/JsonMixinModuleEntriesBeanRegistrationAotProcessorTests.java @@ -24,6 +24,7 @@ import java.util.function.BiConsumer; import org.assertj.core.api.InstanceOfAssertFactories; import org.junit.jupiter.api.Test; +import org.springframework.aot.hint.MemberCategory; import org.springframework.aot.hint.RuntimeHints; import org.springframework.aot.hint.predicate.RuntimeHintsPredicates; import org.springframework.aot.test.generate.TestGenerationContext; @@ -62,8 +63,11 @@ class JsonMixinModuleEntriesBeanRegistrationAotProcessorTests { registerEntries(RenameMixInClass.class); processAheadOfTime(); RuntimeHints runtimeHints = this.generationContext.getRuntimeHints(); - assertThat(RuntimeHintsPredicates.reflection().onMethod(Name.class, "getName")).accepts(runtimeHints); - assertThat(RuntimeHintsPredicates.reflection().onMethod(NameAndAge.class, "getAge")).accepts(runtimeHints); + assertThat(RuntimeHintsPredicates.reflection().onType(RenameMixInClass.class) + .withMemberCategories(MemberCategory.DECLARED_FIELDS, MemberCategory.INVOKE_DECLARED_CONSTRUCTORS)) + .accepts(runtimeHints); + assertThat(RuntimeHintsPredicates.reflection().onMethod(RenameMixInClass.class, "getName").introspect()) + .accepts(runtimeHints); } @Test diff --git a/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/jackson/scan/a/RenameMixInClass.java b/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/jackson/scan/a/RenameMixInClass.java index 15d401f598..a303f007b3 100644 --- a/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/jackson/scan/a/RenameMixInClass.java +++ b/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/jackson/scan/a/RenameMixInClass.java @@ -23,11 +23,9 @@ import org.springframework.boot.jackson.Name; import org.springframework.boot.jackson.NameAndAge; @JsonMixin(type = { Name.class, NameAndAge.class }) -public class RenameMixInClass { +public abstract class RenameMixInClass { @JsonProperty("username") - String getName() { - return null; - } + public abstract String getName(); }