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