From de36c2147fcc12a03534db483a3381fcadbfe3d2 Mon Sep 17 00:00:00 2001 From: Oliver Drotbohm Date: Tue, 2 Aug 2022 14:19:48 +0200 Subject: [PATCH] =?UTF-8?q?#85=20-=20Open=20up=20PluginRegistryFactoryBean?= =?UTF-8?q?.setType(=E2=80=A6)=20for=20native=20reflection.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../plugin/core/aot/PluginRegistryRuntimeHints.java | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/core/src/main/java/org/springframework/plugin/core/aot/PluginRegistryRuntimeHints.java b/core/src/main/java/org/springframework/plugin/core/aot/PluginRegistryRuntimeHints.java index 09a3c71..ddc3cb0 100644 --- a/core/src/main/java/org/springframework/plugin/core/aot/PluginRegistryRuntimeHints.java +++ b/core/src/main/java/org/springframework/plugin/core/aot/PluginRegistryRuntimeHints.java @@ -23,6 +23,8 @@ import org.springframework.aot.hint.RuntimeHints; import org.springframework.aot.hint.RuntimeHintsRegistrar; import org.springframework.core.DecoratingProxy; import org.springframework.plugin.core.support.AbstractTypeAwareSupport; +import org.springframework.plugin.core.support.PluginRegistryFactoryBean; +import org.springframework.util.ReflectionUtils; /** * Registers proxy runtime hints to make sure {@link AbstractTypeAwareSupport} can create a {@link List} proxy as @@ -38,7 +40,13 @@ class PluginRegistryRuntimeHints implements RuntimeHintsRegistrar { * @see org.springframework.aot.hint.RuntimeHintsRegistrar#registerHints(org.springframework.aot.hint.RuntimeHints, java.lang.ClassLoader) */ @Override + @SuppressWarnings("null") public void registerHints(RuntimeHints hints, ClassLoader classLoader) { - hints.proxies().registerJdkProxy(List.class, SpringProxy.class, Advised.class, DecoratingProxy.class); + + hints.reflection() // + .registerMethod(ReflectionUtils.findMethod(PluginRegistryFactoryBean.class, "setType", Class.class)); + + hints.proxies() // + .registerJdkProxy(List.class, SpringProxy.class, Advised.class, DecoratingProxy.class); } }