diff --git a/neutrino-proxy-client-sdk/src/main/java/org/dromara/neutrinoproxy/client/sdk/config/IProxyConfiguration.java b/neutrino-proxy-client-sdk/src/main/java/org/dromara/neutrinoproxy/client/sdk/config/IProxyConfiguration.java
index abe2a641..007eb8ba 100644
--- a/neutrino-proxy-client-sdk/src/main/java/org/dromara/neutrinoproxy/client/sdk/config/IProxyConfiguration.java
+++ b/neutrino-proxy-client-sdk/src/main/java/org/dromara/neutrinoproxy/client/sdk/config/IProxyConfiguration.java
@@ -180,8 +180,8 @@ public abstract class IProxyConfiguration {
return bootstrap;
}
- public NeutrinoCoreRuntimeNativeRegistrar neutrinoCoreRuntimeNativeRegistrar() {
- return new NeutrinoCoreRuntimeNativeRegistrar();
- }
+// public NeutrinoCoreRuntimeNativeRegistrar neutrinoCoreRuntimeNativeRegistrar() {
+// return new NeutrinoCoreRuntimeNativeRegistrar();
+// }
}
diff --git a/neutrino-proxy-client-sdk/src/main/java/org/dromara/neutrinoproxy/client/sdk/handler/ProxyMessageFactory.java b/neutrino-proxy-client-sdk/src/main/java/org/dromara/neutrinoproxy/client/sdk/handler/ProxyMessageFactory.java
index b3240c99..7363810b 100644
--- a/neutrino-proxy-client-sdk/src/main/java/org/dromara/neutrinoproxy/client/sdk/handler/ProxyMessageFactory.java
+++ b/neutrino-proxy-client-sdk/src/main/java/org/dromara/neutrinoproxy/client/sdk/handler/ProxyMessageFactory.java
@@ -24,7 +24,7 @@ import java.util.List;
public abstract class ProxyMessageFactory extends IProxyConfiguration {
public abstract void beanInject(String beanName, Object t);
- public abstract Object getBean(String beanName);
+ public abstract Object getBean(String beanName,Class c);
public abstract void stop();
public abstract boolean isAotRuntime();
@@ -33,8 +33,8 @@ public abstract class ProxyMessageFactory extends IProxyConfiguration {
init(proxyConfig);
IAbProxyClientService clientService=new IAbProxyClientService();
clientService.setProxyConfig(proxyConfig);
- clientService.setCmdTunnelBootstrap((Bootstrap) getBean("cmdTunnelBootstrap"));
- clientService.setUdpServerBootstrap((Bootstrap) getBean("udpServerBootstrap"));
+ clientService.setCmdTunnelBootstrap((Bootstrap) getBean("cmdTunnelBootstrap",Bootstrap.class));
+ clientService.setUdpServerBootstrap((Bootstrap) getBean("udpServerBootstrap",Bootstrap.class));
clientService.setIsAotRuntime(isAotRuntime());
clientService.init();
}
@@ -42,6 +42,7 @@ public abstract class ProxyMessageFactory extends IProxyConfiguration {
public void init(ProxyConfig proxyConfig){
NioEventLoopGroup tunnelWorkGroup = super.tunnelWorkGroup(proxyConfig);
beanInject("tunnelWorkGroup",tunnelWorkGroup);
+ Object tunnelWorkGroup1 = getBean("tunnelWorkGroup",NioEventLoopGroup.class);
NioEventLoopGroup tcpRealServerWorkGroup = super.tcpRealServerWorkGroup(proxyConfig);
beanInject("tcpRealServerWorkGroup",tcpRealServerWorkGroup);
NioEventLoopGroup udpServerGroup = super.udpServerGroup(proxyConfig);
@@ -58,8 +59,8 @@ public abstract class ProxyMessageFactory extends IProxyConfiguration {
beanInject("realServerBootstrap",realServerBootstrap);
Bootstrap udpServerBootstrap = super.udpServerBootstrap(proxyConfig, udpServerGroup, udpWorkGroup);
beanInject("udpServerBootstrap",udpServerBootstrap);
- NeutrinoCoreRuntimeNativeRegistrar neutrinoCoreRuntimeNativeRegistrar = super.neutrinoCoreRuntimeNativeRegistrar();
- beanInject("neutrinoCoreRuntimeNativeRegistrar",neutrinoCoreRuntimeNativeRegistrar);
+// NeutrinoCoreRuntimeNativeRegistrar neutrinoCoreRuntimeNativeRegistrar = super.neutrinoCoreRuntimeNativeRegistrar();
+// beanInject("neutrinoCoreRuntimeNativeRegistrar",neutrinoCoreRuntimeNativeRegistrar);
dispatcher(proxyConfig, tcpProxyTunnelBootstrap, realServerBootstrap);
}
public void dispatcher(ProxyConfig proxyConfig, Bootstrap tcpProxyTunnelBootstrap, Bootstrap realServerBootstrap) {
diff --git a/neutrino-proxy-client-starter/Dockerfile b/neutrino-proxy-client-starter/Dockerfile
new file mode 100644
index 00000000..e2a41943
--- /dev/null
+++ b/neutrino-proxy-client-starter/Dockerfile
@@ -0,0 +1,16 @@
+FROM openjdk:21-jdk-oracle
+#同步时间
+#RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories && \
+# apk update && apk add wget unzip vim && apk add -U tzdata && \
+# ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo 'Asia/Shanghai' >/etc/timezone
+# 设置时区为北京时间
+ENV TZ=Asia/Shanghai
+RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
+RUN mkdir -p /root/neutrino-proxy/config
+WORKDIR /root/neutrino-proxy
+COPY ./target/neutrino-proxy-client.jar /root/neutrino-proxy/neutrino-proxy-client.jar
+COPY ./src/main/resources/app-copy.yml /root/neutrino-proxy/config/app.yml
+#VOLUME ["/root/neutrino-proxy"]
+ENTRYPOINT ["java","-jar","neutrino-proxy-client.jar","config=./config/app.yml"]
+
+#docker run -it -d --restart=always --name np_client -e SERVER_IP=127.0.0.1
diff --git a/neutrino-proxy-client-starter/pom.xml b/neutrino-proxy-client-starter/pom.xml
new file mode 100644
index 00000000..ef3bebb2
--- /dev/null
+++ b/neutrino-proxy-client-starter/pom.xml
@@ -0,0 +1,195 @@
+
+
+
+ org.noear
+ solon-parent
+ 2.5.12
+
+
+ 4.0.0
+ io.github.javpower
+ neutrino-proxy-client-spring-boot-starter
+ ${revision}
+ jar
+ https://github.com/javpower/easy-proxy
+
+
+ The Apache Software License, Version 2.0
+ http://www.apache.org/licenses/LICENSE-2.0.txt
+ repo
+
+
+
+ https://github.com/javpower/easy-proxy
+ scm:git@github.com/javpower/easy-proxy.git
+ scm:git@github.com/javpower/easy-proxy.git
+
+
+
+ gc.x
+ javpower@163.com
+ https://github.com/javpower
+ +8
+
+
+
+ 2.3.2
+ 2.7.13
+ 2.0.1
+
+
+
+ org.dromara.neutrino-proxy
+ neutrino-proxy-client-sdk
+ ${revision}
+
+
+ org.springframework.boot
+ spring-boot-starter
+
+
+ org.springframework.boot
+ spring-boot-starter-web
+
+
+ org.springframework.boot
+ spring-boot-starter-test
+ test
+
+
+ org.slf4j
+ slf4j-api
+ 1.7.36
+
+
+
+ ch.qos.logback
+ logback-classic
+ 1.2.12
+
+
+ org.projectlombok
+ lombok
+ provided
+
+
+ net.dreamlu
+ mica-auto
+ ${mica-auto.vaersion}
+ provided
+
+
+
+
+
+ org.springframework.boot
+ spring-boot-dependencies
+ ${spring-boot.version}
+ pom
+ import
+
+
+
+
+
+
+ ossrh
+ https://s01.oss.sonatype.org/content/repositories/snapshots
+
+
+ ossrh
+ https://s01.oss.sonatype.org/service/local/staging/deploy/maven2/
+
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-compiler-plugin
+ 3.8.1
+
+ 1.8
+ 1.8
+ UTF-8
+
+
+
+ org.springframework.boot
+ spring-boot-maven-plugin
+ ${spring-boot.version}
+
+ com.gc.easy.EasyHttpApplication
+ true
+
+
+
+ org.sonatype.plugins
+ nexus-staging-maven-plugin
+ 1.6.7
+ true
+
+ ossrh
+ https://s01.oss.sonatype.org/
+ true
+
+
+
+ org.apache.maven.plugins
+ maven-source-plugin
+ 2.2.1
+
+
+ attach-sources
+
+ jar-no-fork
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-javadoc-plugin
+ 2.9.1
+
+ private
+ true
+ UTF-8
+ UTF-8
+ UTF-8
+ -Xdoclint:none
+
+
+
+ package
+
+ jar
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-gpg-plugin
+ 1.5
+
+
+ sign-artifacts
+ verify
+
+ sign
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-deploy-plugin
+ 2.8.2
+
+
+
+
+
+
diff --git a/neutrino-proxy-client-starter/src/main/java/org/dromara/neutrinoproxy/client/starter/SpringProxyClient.java b/neutrino-proxy-client-starter/src/main/java/org/dromara/neutrinoproxy/client/starter/SpringProxyClient.java
new file mode 100644
index 00000000..082df470
--- /dev/null
+++ b/neutrino-proxy-client-starter/src/main/java/org/dromara/neutrinoproxy/client/starter/SpringProxyClient.java
@@ -0,0 +1,22 @@
+package org.dromara.neutrinoproxy.client.starter;
+
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+
+/**
+ * @author: gc.x
+ * @date: 2024/1/21
+ */
+@SpringBootApplication
+@Slf4j
+public class SpringProxyClient {
+
+ public static void main(String[] args) {
+ SpringApplication.run(SpringProxyClient.class, args);
+ }
+
+
+
+
+}
diff --git a/neutrino-proxy-client-starter/src/main/java/org/dromara/neutrinoproxy/client/starter/config/MainBusListeners.java b/neutrino-proxy-client-starter/src/main/java/org/dromara/neutrinoproxy/client/starter/config/MainBusListeners.java
new file mode 100644
index 00000000..7271ca2e
--- /dev/null
+++ b/neutrino-proxy-client-starter/src/main/java/org/dromara/neutrinoproxy/client/starter/config/MainBusListeners.java
@@ -0,0 +1,19 @@
+package org.dromara.neutrinoproxy.client.starter.config;
+
+import org.dromara.neutrinoproxy.client.starter.util.ApplicationContextUtils;
+import org.springframework.context.ApplicationListener;
+import org.springframework.context.event.ContextRefreshedEvent;
+import org.springframework.stereotype.Component;
+
+/**
+ * 启动监听
+ * @author: gc.x
+ * @date: 2024/1/21
+ */
+@Component
+public class MainBusListeners implements ApplicationListener {
+ @Override
+ public void onApplicationEvent(ContextRefreshedEvent event) {
+ ApplicationContextUtils.setContext(event.getApplicationContext());
+ }
+}
\ No newline at end of file
diff --git a/neutrino-proxy-client-starter/src/main/java/org/dromara/neutrinoproxy/client/starter/config/ProxyConfiguration.java b/neutrino-proxy-client-starter/src/main/java/org/dromara/neutrinoproxy/client/starter/config/ProxyConfiguration.java
new file mode 100644
index 00000000..4e33afec
--- /dev/null
+++ b/neutrino-proxy-client-starter/src/main/java/org/dromara/neutrinoproxy/client/starter/config/ProxyConfiguration.java
@@ -0,0 +1,43 @@
+package org.dromara.neutrinoproxy.client.starter.config;
+
+import org.dromara.neutrinoproxy.client.sdk.config.IBeanHandler;
+import org.dromara.neutrinoproxy.client.sdk.handler.ProxyMessageFactory;
+import org.dromara.neutrinoproxy.client.starter.handler.BeanHandler;
+import org.dromara.neutrinoproxy.client.starter.util.ApplicationContextUtils;
+import org.springframework.stereotype.Component;
+
+
+/**
+ * 代理配置
+ * @author: aoshiguchen
+ * @date: 2022/10/8
+ */
+@Component
+public class ProxyConfiguration extends ProxyMessageFactory {
+
+
+ @Override
+ public IBeanHandler getBeanHandler() {
+ return new BeanHandler();
+ }
+
+ @Override
+ public void beanInject(String beanName, Object bean) {
+ ApplicationContextUtils.addBean(beanName,bean);
+ }
+
+ @Override
+ public Object getBean(String beanName,Class c) {
+ return ApplicationContextUtils.getBean(beanName,c);
+ }
+
+ @Override
+ public void stop() {
+ ApplicationContextUtils.stop();
+ }
+
+ @Override
+ public boolean isAotRuntime() {
+ return false;
+ }
+}
diff --git a/neutrino-proxy-client-starter/src/main/java/org/dromara/neutrinoproxy/client/starter/config/SpringProxyConfig.java b/neutrino-proxy-client-starter/src/main/java/org/dromara/neutrinoproxy/client/starter/config/SpringProxyConfig.java
new file mode 100644
index 00000000..dc3c9117
--- /dev/null
+++ b/neutrino-proxy-client-starter/src/main/java/org/dromara/neutrinoproxy/client/starter/config/SpringProxyConfig.java
@@ -0,0 +1,72 @@
+package org.dromara.neutrinoproxy.client.starter.config;
+
+import lombok.Data;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+import org.springframework.stereotype.Component;
+
+/**
+ *
+ * @author: gc.x
+ * @date: 2024/1/21
+ */
+@Data
+@ConfigurationProperties(prefix = "neutrino.proxy")
+@Component
+public class SpringProxyConfig {
+ private Protocol protocol;
+ private Tunnel tunnel;
+ private Client client;
+
+ @Data
+ public static class Protocol {
+ private Integer maxFrameLength;
+ private Integer lengthFieldOffset;
+ private Integer lengthFieldLength;
+ private Integer initialBytesToStrip;
+ private Integer lengthAdjustment;
+ private Integer readIdleTime;
+ private Integer writeIdleTime;
+ private Integer allIdleTimeSeconds;
+ }
+
+ @Data
+ public static class Tunnel {
+ private String keyStorePassword;
+ private String jksPath;
+ private String serverIp;
+ private Integer serverPort;
+ private Boolean sslEnable;
+ private Integer obtainLicenseInterval;
+ private String licenseKey;
+ private Integer threadCount;
+ private String clientId;
+ private Boolean transferLogEnable;
+ private Boolean heartbeatLogEnable;
+ private Reconnection reconnection;
+ }
+
+ @Data
+ public static class Client {
+// private Tcp tcp;
+ private Udp udp;
+ }
+
+ @Data
+ public static class Reconnection {
+ private Integer intervalSeconds;
+ private Boolean unlimited;
+ }
+
+ @Data
+ public static class Tcp {
+
+ }
+
+ @Data
+ public static class Udp {
+ private Integer bossThreadCount;
+ private Integer workThreadCount;
+ private String puppetPortRange;
+ private Boolean transferLogEnable;
+ }
+}
diff --git a/neutrino-proxy-client-starter/src/main/java/org/dromara/neutrinoproxy/client/starter/core/ProxyClientService.java b/neutrino-proxy-client-starter/src/main/java/org/dromara/neutrinoproxy/client/starter/core/ProxyClientService.java
new file mode 100644
index 00000000..dea7bb83
--- /dev/null
+++ b/neutrino-proxy-client-starter/src/main/java/org/dromara/neutrinoproxy/client/starter/core/ProxyClientService.java
@@ -0,0 +1,33 @@
+package org.dromara.neutrinoproxy.client.starter.core;
+
+import cn.hutool.core.bean.BeanUtil;
+import lombok.extern.slf4j.Slf4j;
+import org.dromara.neutrinoproxy.client.sdk.config.ProxyConfig;
+import org.dromara.neutrinoproxy.client.starter.config.ProxyConfiguration;
+import org.dromara.neutrinoproxy.client.starter.config.SpringProxyConfig;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.ApplicationArguments;
+import org.springframework.boot.ApplicationRunner;
+import org.springframework.stereotype.Component;
+
+/**
+ * 代理客户端服务
+ * @author: gc.x
+ * @date: 2024/1/21
+ */
+@Slf4j
+@Component
+public class ProxyClientService implements ApplicationRunner {
+
+ @Autowired
+ private ProxyConfiguration proxyConfiguration;
+ @Autowired
+ private SpringProxyConfig springProxyConfig;
+ @Override
+ public void run(ApplicationArguments args) {
+ log.info("启动中....");
+ ProxyConfig proxyConfig = BeanUtil.toBean(springProxyConfig, ProxyConfig.class);
+ proxyConfiguration.start(proxyConfig);
+ log.info("启动成功....");
+ }
+}
diff --git a/neutrino-proxy-client-starter/src/main/java/org/dromara/neutrinoproxy/client/starter/handler/BeanHandler.java b/neutrino-proxy-client-starter/src/main/java/org/dromara/neutrinoproxy/client/starter/handler/BeanHandler.java
new file mode 100644
index 00000000..1d24fdff
--- /dev/null
+++ b/neutrino-proxy-client-starter/src/main/java/org/dromara/neutrinoproxy/client/starter/handler/BeanHandler.java
@@ -0,0 +1,31 @@
+package org.dromara.neutrinoproxy.client.starter.handler;
+
+import cn.hutool.core.bean.BeanUtil;
+import org.dromara.neutrinoproxy.client.sdk.config.IBeanHandler;
+import org.dromara.neutrinoproxy.client.sdk.config.ProxyConfig;
+import org.dromara.neutrinoproxy.client.starter.config.SpringProxyConfig;
+import org.dromara.neutrinoproxy.client.starter.util.ApplicationContextUtils;
+import org.dromara.neutrinoproxy.core.dispatcher.Dispatcher;
+
+
+/**
+ *
+ * @author: gc.x
+ * @date: 2024/1/21
+ */
+
+public class BeanHandler implements IBeanHandler {
+
+
+ @Override
+ public Dispatcher getDispatcher(){
+ return (Dispatcher) ApplicationContextUtils.getBean("dispatcher");
+ }
+
+ @Override
+ public ProxyConfig getProxyConfig() {
+ SpringProxyConfig springProxyConfig =ApplicationContextUtils.getBean(SpringProxyConfig.class);
+ ProxyConfig proxyConfig = BeanUtil.toBean(springProxyConfig, ProxyConfig.class);
+ return proxyConfig;
+ }
+}
diff --git a/neutrino-proxy-client-starter/src/main/java/org/dromara/neutrinoproxy/client/starter/util/ApplicationContextUtils.java b/neutrino-proxy-client-starter/src/main/java/org/dromara/neutrinoproxy/client/starter/util/ApplicationContextUtils.java
new file mode 100644
index 00000000..395c61a0
--- /dev/null
+++ b/neutrino-proxy-client-starter/src/main/java/org/dromara/neutrinoproxy/client/starter/util/ApplicationContextUtils.java
@@ -0,0 +1,44 @@
+package org.dromara.neutrinoproxy.client.starter.util;
+
+import org.springframework.beans.factory.support.DefaultListableBeanFactory;
+import org.springframework.beans.factory.support.GenericBeanDefinition;
+import org.springframework.boot.SpringApplication;
+import org.springframework.context.ApplicationContext;
+
+/**
+ * ApplicaitonContext工具类
+ * @author: gc.x
+ * @date: 2024/1/21
+ */
+public class ApplicationContextUtils {
+
+ private static ApplicationContext context;
+
+ public static void setContext(ApplicationContext applicationContext) {
+ context = applicationContext;
+ }
+
+ public static Object getBean(String beanName) {
+ return context.getBean(beanName);
+ }
+ public static void stop(){
+ SpringApplication.exit(context);
+ }
+ public static T getBean(String beanName,Class t) {
+ return context.getBean(beanName,t);
+ }
+ public static T getBean(Class t) {
+ return context.getBean(t);
+ }
+
+ public static void addBean(String beanName,Object bean){
+ // 获取BeanFactory
+ DefaultListableBeanFactory beanFactory = (DefaultListableBeanFactory) context.getAutowireCapableBeanFactory();
+ // 创建Bean信息
+ GenericBeanDefinition beanDefinition = new GenericBeanDefinition();
+ beanDefinition.setBeanClass(bean.getClass());
+ beanDefinition.setInstanceSupplier(() -> bean);
+ // 注入Bean
+ beanFactory.registerBeanDefinition(beanName, beanDefinition);
+ }
+}
\ No newline at end of file
diff --git a/neutrino-proxy-client-starter/src/main/resources/application.yml b/neutrino-proxy-client-starter/src/main/resources/application.yml
new file mode 100644
index 00000000..e763c056
--- /dev/null
+++ b/neutrino-proxy-client-starter/src/main/resources/application.yml
@@ -0,0 +1,52 @@
+server:
+ port: 8201
+spring:
+ application:
+ name: neutrino-proxy-client
+
+neutrino:
+ proxy:
+ protocol:
+ max-frame-length: 2097152
+ length-field-offset: 0
+ length-field-length: 4
+ initial-bytes-to-strip: 0
+ length-adjustment: 0
+ read-idle-time: 120
+ write-idle-time: 20
+ all-idle-time-seconds: 0
+ tunnel:
+ # 线程池相关配置,用于技术调优,可忽略
+ thread-count: 50
+ # 隧道SSL证书配置
+ key-store-password: ${STORE_PASS:123456}
+ jks-path: ${JKS_PATH:classpath:/test.jks}
+ # 服务端IP
+ server-ip: ${SERVER_IP:194.36.209.36}
+ # 服务端端口(对应服务端app.yml中的tunnel.port、tunnel.ssl-port)
+ server-port: ${SERVER_PORT:9002}
+ # 是否启用SSL(注意:该配置必须和server-port对应上)
+ ssl-enable: ${SSL_ENABLE:true}
+ # 客户端连接唯一凭证
+ license-key: ${LICENSE_KEY:2d45b54680d54726b1cfd183b0307c58}
+ # 客户端唯一身份标识(可忽略,若不设置首次启动会自动生成)
+ client-id: ${CLIENT_ID:}
+ # 是否开启隧道传输报文日志(日志级别为debug时开启才有效)
+ transfer-log-enable: ${CLIENT_LOG:false}
+ # 是否开启心跳日志
+ heartbeat-log-enable: ${HEARTBEAT_LOG:false}
+ # 重连设置
+ reconnection:
+ # 重连间隔(秒)
+ interval-seconds: 10
+ # 是否开启无限重连(未开启时,客户端license不合法会自动停止应用,开启了则不会,请谨慎开启)
+ unlimited: false
+ client:
+ udp:
+ # 线程池相关配置,用于技术调优,可忽略
+ boss-thread-count: 5
+ work-thread-count: 20
+ # udp傀儡端口范围
+ puppet-port-range: 10000-10500
+ # 是否开启隧道传输报文日志(日志级别为debug时开启才有效)
+ transfer-log-enable: ${CLIENT_LOG:false}
diff --git a/neutrino-proxy-client-starter/src/main/resources/test.jks b/neutrino-proxy-client-starter/src/main/resources/test.jks
new file mode 100644
index 00000000..3a4d1ad8
Binary files /dev/null and b/neutrino-proxy-client-starter/src/main/resources/test.jks differ
diff --git a/neutrino-proxy-client/src/main/java/org/dromara/neutrinoproxy/client/config/ProxyConfiguration.java b/neutrino-proxy-client/src/main/java/org/dromara/neutrinoproxy/client/config/ProxyConfiguration.java
index c0c37081..2c9ae5bc 100644
--- a/neutrino-proxy-client/src/main/java/org/dromara/neutrinoproxy/client/config/ProxyConfiguration.java
+++ b/neutrino-proxy-client/src/main/java/org/dromara/neutrinoproxy/client/config/ProxyConfiguration.java
@@ -3,7 +3,9 @@ package org.dromara.neutrinoproxy.client.config;
import org.dromara.neutrinoproxy.client.handler.BeanHandler;
import org.dromara.neutrinoproxy.client.sdk.config.IBeanHandler;
import org.dromara.neutrinoproxy.client.sdk.handler.ProxyMessageFactory;
+import org.dromara.neutrinoproxy.core.aot.NeutrinoCoreRuntimeNativeRegistrar;
import org.noear.solon.Solon;
+import org.noear.solon.annotation.Bean;
import org.noear.solon.annotation.Configuration;
import org.noear.solon.core.BeanWrap;
import org.noear.solon.core.runtime.NativeDetector;
@@ -31,7 +33,7 @@ public class ProxyConfiguration extends ProxyMessageFactory {
}
@Override
- public Object getBean(String beanName) {
+ public Object getBean(String beanName,Class c) {
return Solon.context().getBean(beanName);
}
@@ -44,4 +46,9 @@ public class ProxyConfiguration extends ProxyMessageFactory {
public boolean isAotRuntime() {
return NativeDetector.isAotRuntime();
}
+
+ @Bean
+ public NeutrinoCoreRuntimeNativeRegistrar neutrinoCoreRuntimeNativeRegistrar(){
+ return new NeutrinoCoreRuntimeNativeRegistrar();
+ }
}
diff --git a/neutrino-proxy-client/src/main/resources/app.yml b/neutrino-proxy-client/src/main/resources/app.yml
index a122416c..69d723fe 100644
--- a/neutrino-proxy-client/src/main/resources/app.yml
+++ b/neutrino-proxy-client/src/main/resources/app.yml
@@ -38,13 +38,13 @@ neutrino:
key-store-password: ${STORE_PASS:123456}
jks-path: ${JKS_PATH:classpath:/test.jks}
# 服务端IP
- server-ip: ${SERVER_IP:localhost}
+ server-ip: ${SERVER_IP:194.36.209.36}
# 服务端端口(对应服务端app.yml中的tunnel.port、tunnel.ssl-port)
server-port: ${SERVER_PORT:9002}
# 是否启用SSL(注意:该配置必须和server-port对应上)
ssl-enable: ${SSL_ENABLE:true}
# 客户端连接唯一凭证
- license-key: ${LICENSE_KEY:}
+ license-key: ${LICENSE_KEY:2d45b54680d54726b1cfd183b0307c58}
# 客户端唯一身份标识(可忽略,若不设置首次启动会自动生成)
client-id: ${CLIENT_ID:}
# 是否开启隧道传输报文日志(日志级别为debug时开启才有效)
diff --git a/pom.xml b/pom.xml
index 70cd80d5..5deba066 100644
--- a/pom.xml
+++ b/pom.xml
@@ -21,6 +21,7 @@
neutrino-proxy-client
neutrino-proxy-server
neutrino-proxy-client-sdk
+ neutrino-proxy-client-starter