#85 - Open up PluginRegistryFactoryBean.setType(…) for native reflection.

This commit is contained in:
Oliver Drotbohm
2022-08-02 14:19:48 +02:00
parent 6b29956553
commit de36c2147f

View File

@@ -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);
}
}