From 41e86837814f8da26b8442a963c90ea39554e736 Mon Sep 17 00:00:00 2001 From: Stephane Nicoll Date: Tue, 23 Aug 2022 14:41:32 +0200 Subject: [PATCH] Polish --- .../json/JacksonModulesRuntimeHints.java | 25 +++++++++++-------- 1 file changed, 15 insertions(+), 10 deletions(-) diff --git a/spring-web/src/main/java/org/springframework/http/converter/json/JacksonModulesRuntimeHints.java b/spring-web/src/main/java/org/springframework/http/converter/json/JacksonModulesRuntimeHints.java index e5a3760f49b..914fb9ea168 100644 --- a/spring-web/src/main/java/org/springframework/http/converter/json/JacksonModulesRuntimeHints.java +++ b/spring-web/src/main/java/org/springframework/http/converter/json/JacksonModulesRuntimeHints.java @@ -16,10 +16,12 @@ package org.springframework.http.converter.json; +import java.util.function.Consumer; + import org.springframework.aot.hint.MemberCategory; -import org.springframework.aot.hint.ReflectionHints; import org.springframework.aot.hint.RuntimeHints; import org.springframework.aot.hint.RuntimeHintsRegistrar; +import org.springframework.aot.hint.TypeHint.Builder; import org.springframework.aot.hint.TypeReference; /** @@ -27,21 +29,24 @@ import org.springframework.aot.hint.TypeReference; * for {@link Jackson2ObjectMapperBuilder} well-known modules. * * @author Sebastien Deleuze + * @author Stephane Nicoll * @since 6.0 */ class JacksonModulesRuntimeHints implements RuntimeHintsRegistrar { + private static final Consumer asJacksonModule = builder -> + builder.onReachableType(TypeReference.of(Jackson2ObjectMapperBuilder.class)) + .withMembers(MemberCategory.INVOKE_DECLARED_CONSTRUCTORS); + @Override public void registerHints(RuntimeHints hints, ClassLoader classLoader) { - ReflectionHints reflectionHints = hints.reflection(); - registerType(reflectionHints, "com.fasterxml.jackson.datatype.jdk8.Jdk8Module", classLoader); - registerType(reflectionHints, "com.fasterxml.jackson.datatype.jsr310.JavaTimeModule", classLoader); - registerType(reflectionHints, "com.fasterxml.jackson.module.kotlin.KotlinModule", classLoader); + hints.reflection() + .registerTypeIfPresent(classLoader, + "com.fasterxml.jackson.datatype.jdk8.Jdk8Module", asJacksonModule) + .registerTypeIfPresent(classLoader, + "com.fasterxml.jackson.datatype.jsr310.JavaTimeModule", asJacksonModule) + .registerTypeIfPresent(classLoader, + "com.fasterxml.jackson.module.kotlin.KotlinModule", asJacksonModule); } - private void registerType(ReflectionHints reflectionHints, String className, ClassLoader classLoader) { - reflectionHints.registerTypeIfPresent(classLoader, className, - builder -> builder.onReachableType(TypeReference.of(Jackson2ObjectMapperBuilder.class)) - .withMembers(MemberCategory.INVOKE_DECLARED_CONSTRUCTORS)); - } }