From 08e03d6ac99f4d5a2fa22290d8fef04e8b5a74c3 Mon Sep 17 00:00:00 2001 From: sun Date: Wed, 6 Sep 2023 11:42:02 +0800 Subject: [PATCH] fix[graalvm]: netty graalvm --- .../java/com/zfoo/boot/graalvm/GraalvmProtocolHints.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/boot/src/main/java/com/zfoo/boot/graalvm/GraalvmProtocolHints.java b/boot/src/main/java/com/zfoo/boot/graalvm/GraalvmProtocolHints.java index 039a25d8..02ba4da8 100644 --- a/boot/src/main/java/com/zfoo/boot/graalvm/GraalvmProtocolHints.java +++ b/boot/src/main/java/com/zfoo/boot/graalvm/GraalvmProtocolHints.java @@ -26,6 +26,8 @@ import org.springframework.aot.hint.RuntimeHintsRegistrar; import java.util.HashSet; import java.util.List; +import static org.springframework.aot.hint.MemberCategory.*; + /** * Register runtime hints for the token library * @@ -50,7 +52,10 @@ public class GraalvmProtocolHints implements RuntimeHintsRegistrar { HintUtils.registerRelevantClasses(hints, classes); // netty - HintUtils.registerClasses(hints, List.of(AbstractByteBufAllocator.class, AbstractReferenceCountedByteBuf.class)); + var nettyClassList = List.of(AbstractByteBufAllocator.class, AbstractReferenceCountedByteBuf.class); + for(var clazz : nettyClassList) { + hints.reflection().registerType(clazz, DECLARED_FIELDS, INVOKE_PUBLIC_CONSTRUCTORS, INVOKE_DECLARED_METHODS); + } var include = "*.protocol"; hints.resources().registerPattern(include);