diff --git a/neutrino-proxy-core/pom.xml b/neutrino-proxy-core/pom.xml index 04f1befa..b8909969 100644 --- a/neutrino-proxy-core/pom.xml +++ b/neutrino-proxy-core/pom.xml @@ -37,4 +37,17 @@ + + + + src/main/resources + + + META-INF/native-image/neutrino-proxy-core/*.json + + true + + + + diff --git a/neutrino-proxy-core/src/main/java/org/dromara/neutrinoproxy/core/aot/NeutrinoCoreRuntimeNativeRegistrar.java b/neutrino-proxy-core/src/main/java/org/dromara/neutrinoproxy/core/aot/NeutrinoCoreRuntimeNativeRegistrar.java index 2977ca17..c7a2690f 100644 --- a/neutrino-proxy-core/src/main/java/org/dromara/neutrinoproxy/core/aot/NeutrinoCoreRuntimeNativeRegistrar.java +++ b/neutrino-proxy-core/src/main/java/org/dromara/neutrinoproxy/core/aot/NeutrinoCoreRuntimeNativeRegistrar.java @@ -8,7 +8,6 @@ import org.noear.solon.aot.RuntimeNativeRegistrar; import org.noear.solon.aot.hint.MemberCategory; import org.noear.solon.core.AppContext; -import java.nio.channels.spi.SelectorProvider; import java.util.Set; /** @@ -23,12 +22,9 @@ public class NeutrinoCoreRuntimeNativeRegistrar implements RuntimeNativeRegistra metadata.registerReflection(clazz, MemberCategory.INVOKE_DECLARED_METHODS); } - Set> selectorProviderClasses = ClassUtil.scanPackageBySuper("org.dromara.neutrinoproxy", SelectorProvider.class); - for (Class selectorProviderClass : selectorProviderClasses) { - metadata.registerReflection(selectorProviderClass, MemberCategory.INVOKE_DECLARED_METHODS, MemberCategory.INVOKE_PUBLIC_CONSTRUCTORS); - } - metadata.registerReflection(ProxyMessage.class, MemberCategory.DECLARED_FIELDS, MemberCategory.INVOKE_DECLARED_METHODS, MemberCategory.INVOKE_DECLARED_CONSTRUCTORS); metadata.registerReflection(ProxyMessage.UdpBaseInfo.class, MemberCategory.DECLARED_FIELDS, MemberCategory.INVOKE_DECLARED_METHODS, MemberCategory.INVOKE_DECLARED_CONSTRUCTORS); + + metadata.registerArg("--add-opens java.base/java.lang.invoke=ALL-UNNAMED --add-exports=java.base/jdk.internal.misc=ALL-UNNAMED"); } } diff --git a/neutrino-proxy-core/src/main/resources/META-INF/native-image/neutrino-proxy-core/reflect-config.json b/neutrino-proxy-core/src/main/resources/META-INF/native-image/neutrino-proxy-core/reflect-config.json new file mode 100644 index 00000000..1b0eafea --- /dev/null +++ b/neutrino-proxy-core/src/main/resources/META-INF/native-image/neutrino-proxy-core/reflect-config.json @@ -0,0 +1,18 @@ +[ + { + "name": "java.nio.channels.spi.SelectorProvider", + "allDeclaredMethods": true + }, + { + "name": "sun.nio.ch.KQueueSelectorProvider", + "allDeclaredMethods": true + }, + { + "name": "sun.nio.ch.PollSelectorProvider", + "allDeclaredMethods": true + }, + { + "name": "sun.nio.ch.SelectorProviderImpl", + "allDeclaredMethods": true + } +] \ No newline at end of file diff --git a/neutrino-proxy-server/src/main/java/org/dromara/neutrinoproxy/server/base/proxy/ProxyConfiguration.java b/neutrino-proxy-server/src/main/java/org/dromara/neutrinoproxy/server/base/proxy/ProxyConfiguration.java index 11cfc725..3a9ead13 100644 --- a/neutrino-proxy-server/src/main/java/org/dromara/neutrinoproxy/server/base/proxy/ProxyConfiguration.java +++ b/neutrino-proxy-server/src/main/java/org/dromara/neutrinoproxy/server/base/proxy/ProxyConfiguration.java @@ -49,7 +49,6 @@ public class ProxyConfiguration implements LifecycleBean { @Bean("tcpServerBossGroup") public NioEventLoopGroup tcpServerBossGroup(@Inject ProxyConfig proxyConfig) { ProxyConfig.Server server = proxyConfig.getServer(); - System.out.println("==> server:" + server); ProxyConfig.Tcp tcp = server.getTcp(); return new NioEventLoopGroup(tcp.getBossThreadCount()); }