This commit is contained in:
Johnny Lim 2022-07-02 15:11:35 +09:00
parent a27104a485
commit 1205f53c4a
3 changed files with 24 additions and 21 deletions

View File

@ -36,10 +36,12 @@ public class CodecConfigurerHintsRegistrar implements RuntimeHintsRegistrar {
@Override
public void registerHints(RuntimeHints hints, @Nullable ClassLoader classLoader) {
hints.resources().registerPattern("org/springframework/http/codec/CodecConfigurer.properties");
hints.reflection().registerType(DefaultClientCodecConfigurer.class, builder ->
builder.onReachableType(TypeReference.of(CodecConfigurerFactory.class))
.withMembers(MemberCategory.INVOKE_PUBLIC_CONSTRUCTORS));
hints.reflection().registerType(DefaultServerCodecConfigurer.class, builder ->
registerType(hints, DefaultClientCodecConfigurer.class);
registerType(hints, DefaultServerCodecConfigurer.class);
}
private void registerType(RuntimeHints hints, Class<?> type) {
hints.reflection().registerType(type, builder ->
builder.onReachableType(TypeReference.of(CodecConfigurerFactory.class))
.withMembers(MemberCategory.INVOKE_PUBLIC_CONSTRUCTORS));
}

View File

@ -33,11 +33,13 @@ public class JacksonBuilderRuntimeHintsRegistrar implements RuntimeHintsRegistra
@Override
public void registerHints(RuntimeHints hints, ClassLoader classLoader) {
ReflectionHints reflectionHints = hints.reflection();
reflectionHints.registerType(TypeReference.of("com.fasterxml.jackson.datatype.jdk8.Jdk8Module"),
builder -> builder.withMembers(MemberCategory.INVOKE_DECLARED_CONSTRUCTORS));
reflectionHints.registerType(TypeReference.of("com.fasterxml.jackson.datatype.jsr310.JavaTimeModule"),
builder -> builder.withMembers(MemberCategory.INVOKE_DECLARED_CONSTRUCTORS));
reflectionHints.registerType(TypeReference.of("com.fasterxml.jackson.module.kotlin.KotlinModule"),
registerType(reflectionHints, "com.fasterxml.jackson.datatype.jdk8.Jdk8Module");
registerType(reflectionHints, "com.fasterxml.jackson.datatype.jsr310.JavaTimeModule");
registerType(reflectionHints, "com.fasterxml.jackson.module.kotlin.KotlinModule");
}
private void registerType(ReflectionHints reflectionHints, String className) {
reflectionHints.registerType(TypeReference.of(className),
builder -> builder.withMembers(MemberCategory.INVOKE_DECLARED_CONSTRUCTORS));
}
}

View File

@ -64,28 +64,27 @@ public class HandshakeHandlerRuntimeHintsRegistrar implements RuntimeHintsRegist
public void registerHints(RuntimeHints hints, ClassLoader classLoader) {
ReflectionHints reflectionHints = hints.reflection();
if (tomcatWsPresent) {
reflectionHints.registerType(TypeReference.of("org.springframework.web.socket.server.standard.TomcatRequestUpgradeStrategy"),
builder -> builder.withMembers(MemberCategory.INVOKE_DECLARED_CONSTRUCTORS));
registerType(reflectionHints, "org.springframework.web.socket.server.standard.TomcatRequestUpgradeStrategy");
}
else if (jettyWsPresent) {
reflectionHints.registerType(TypeReference.of("org.springframework.web.socket.server.jetty.JettyRequestUpgradeStrategy"),
builder -> builder.withMembers(MemberCategory.INVOKE_DECLARED_CONSTRUCTORS));
registerType(reflectionHints, "org.springframework.web.socket.server.jetty.JettyRequestUpgradeStrategy");
}
else if (undertowWsPresent) {
reflectionHints.registerType(TypeReference.of("org.springframework.web.socket.server.standard.UndertowRequestUpgradeStrategy"),
builder -> builder.withMembers(MemberCategory.INVOKE_DECLARED_CONSTRUCTORS));
registerType(reflectionHints, "org.springframework.web.socket.server.standard.UndertowRequestUpgradeStrategy");
}
else if (glassfishWsPresent) {
reflectionHints.registerType(TypeReference.of("org.springframework.web.socket.server.standard.GlassFishRequestUpgradeStrategy"),
builder -> builder.withMembers(MemberCategory.INVOKE_DECLARED_CONSTRUCTORS));
registerType(reflectionHints, "org.springframework.web.socket.server.standard.GlassFishRequestUpgradeStrategy");
}
else if (weblogicWsPresent) {
reflectionHints.registerType(TypeReference.of("org.springframework.web.socket.server.standard.WebLogicRequestUpgradeStrategy"),
builder -> builder.withMembers(MemberCategory.INVOKE_DECLARED_CONSTRUCTORS));
registerType(reflectionHints, "org.springframework.web.socket.server.standard.WebLogicRequestUpgradeStrategy");
}
else if (websphereWsPresent) {
reflectionHints.registerType(TypeReference.of("org.springframework.web.socket.server.standard.WebSphereRequestUpgradeStrategy"),
builder -> builder.withMembers(MemberCategory.INVOKE_DECLARED_CONSTRUCTORS));
registerType(reflectionHints, "org.springframework.web.socket.server.standard.WebSphereRequestUpgradeStrategy");
}
}
private void registerType(ReflectionHints reflectionHints, String className) {
reflectionHints.registerType(TypeReference.of(className),
builder -> builder.withMembers(MemberCategory.INVOKE_DECLARED_CONSTRUCTORS));
}
}