原生编译:兼容 client

This commit is contained in:
songyinyin
2023-10-21 23:36:19 +08:00
parent 7baf60e8a7
commit d32cfa5d51
6 changed files with 37 additions and 38 deletions
+7
View File
@@ -23,6 +23,13 @@
<groupId>org.noear</groupId>
<artifactId>solon-lib</artifactId>
</dependency>
<!--solon aot start(用于 aot 时注册 native 元信息)-->
<dependency>
<groupId>org.noear</groupId>
<artifactId>solon.aot</artifactId>
</dependency>
<!--solon aot end-->
</dependencies>
<build>
@@ -0,0 +1,26 @@
package org.dromara.neutrinoproxy.client.config;
import org.noear.solon.annotation.Component;
import org.noear.solon.aot.RuntimeNativeMetadata;
import org.noear.solon.aot.RuntimeNativeRegistrar;
import org.noear.solon.aot.hint.MemberCategory;
import org.noear.solon.core.AppContext;
/**
* @author songyinyin
* @since 2023/10/21 22:50
*/
@Component
public class NeutrinoClientRuntimeNativeRegistrar implements RuntimeNativeRegistrar {
@Override
public void register(AppContext context, RuntimeNativeMetadata metadata) {
metadata.registerResourceInclude("test.jks");
metadata.registerReflection(ProxyConfig.Protocol.class, MemberCategory.DECLARED_FIELDS, MemberCategory.INVOKE_PUBLIC_CONSTRUCTORS, MemberCategory.INVOKE_DECLARED_METHODS);
metadata.registerReflection(ProxyConfig.Client.class, MemberCategory.DECLARED_FIELDS, MemberCategory.INVOKE_PUBLIC_CONSTRUCTORS, MemberCategory.INVOKE_DECLARED_METHODS);
metadata.registerReflection(ProxyConfig.Tunnel.class, MemberCategory.DECLARED_FIELDS, MemberCategory.INVOKE_PUBLIC_CONSTRUCTORS, MemberCategory.INVOKE_DECLARED_METHODS);
metadata.registerReflection(ProxyConfig.Tcp.class, MemberCategory.DECLARED_FIELDS, MemberCategory.INVOKE_PUBLIC_CONSTRUCTORS, MemberCategory.INVOKE_DECLARED_METHODS);
metadata.registerReflection(ProxyConfig.Udp.class, MemberCategory.DECLARED_FIELDS, MemberCategory.INVOKE_PUBLIC_CONSTRUCTORS, MemberCategory.INVOKE_DECLARED_METHODS);
metadata.registerReflection(ProxyConfig.Reconnection.class, MemberCategory.DECLARED_FIELDS, MemberCategory.INVOKE_PUBLIC_CONSTRUCTORS, MemberCategory.INVOKE_DECLARED_METHODS);
}
}
@@ -130,7 +130,7 @@ public class ProxyConfiguration implements LifecycleBean {
}
@Bean("udpProxyTunnelBootstrap")
private Bootstrap udpProxyTunnelBootstrap(@Inject ProxyConfig proxyConfig,
public Bootstrap udpProxyTunnelBootstrap(@Inject ProxyConfig proxyConfig,
@Inject("tunnelWorkGroup") NioEventLoopGroup tunnelWorkGroup) {
Bootstrap bootstrap = new Bootstrap();
bootstrap.group(tunnelWorkGroup);
@@ -3,6 +3,7 @@ solon.logging.appender:
console:
pattern: "%d{yyyy-MM-dd HH:mm:ss.SSS} %highlight(%-5level) %magenta(${PID:-}) --- %-15([%15.15thread]) %-56(%cyan(%-40.40logger{39}%L)) : %msg%n"
file:
enable: false
pattern: "%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level ${PID:-} --- %-15([%15.15thread]) %-56(%-40.40logger{39}%L) : %msg%n"
name: "logs/${neutrino.application.name}"
rolling: "logs/${neutrino.application.name}_%d{yyyy-MM-dd}_%i.log.gz"
@@ -1,36 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<property name="LOG_FILE" value="./logs/neutrino-proxy-client.log"/>
<property name="LOG_PATTERN" value="%d{yyyy-MM-dd HH:mm:ss.SSS} %contextName [%thread] %-5level %logger{50} - %msg%n"/>
<!-- <property name="ENCODE" value="utf8" />-->
<appender name="console" class="ch.qos.logback.core.ConsoleAppender">
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>DEBUG</level>
</filter>
<encoder>
<pattern>${LOG_PATTERN}</pattern>
<!-- <charset>${ENCODE}</charset>-->
</encoder>
</appender>
<appender name="file" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${LOG_FILE}</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${LOG_FILE}.%d{yyyy-MM-dd}.zip</fileNamePattern>
<maxHistory>7</maxHistory>
</rollingPolicy>
<encoder>
<pattern>${LOG_PATTERN}</pattern>
<!-- <charset>${ENCODE}</charset>-->
</encoder>
</appender>
<root level="DEBUG">
<appender-ref ref="console"/>
<appender-ref ref="file"/>
</root>
<logger name="com.example.logback" level="warn"/>
<logger name="io.netty" level="warn"/>
</configuration>
@@ -54,9 +54,10 @@ import java.util.Map;
* @since 2023/10/20 11:24
*/
@Component
public class NeutrinoRuntimeNativeRegistrar implements RuntimeNativeRegistrar {
public class NeutrinoServerRuntimeNativeRegistrar implements RuntimeNativeRegistrar {
@Override
public void register(AppContext context, RuntimeNativeMetadata metadata) {
metadata.registerResourceInclude("test.jks");
// 使用 MP lambda 的类需要注册序列化
metadata.registerLambdaSerialization(ClientConnectRecordService.class);