diff --git a/_solon_plugin/job-solon-plugin/pom.xml b/_solon_plugin/job-solon-plugin/pom.xml
index 09fa545b..22cec567 100644
--- a/_solon_plugin/job-solon-plugin/pom.xml
+++ b/_solon_plugin/job-solon-plugin/pom.xml
@@ -7,7 +7,7 @@
org.noear
solon-parent
- 2.2.1
+ 2.2.2
fun.asgc
diff --git a/_solon_plugin/orika-solon-plugin/pom.xml b/_solon_plugin/orika-solon-plugin/pom.xml
index 5cfd1276..1a236975 100644
--- a/_solon_plugin/orika-solon-plugin/pom.xml
+++ b/_solon_plugin/orika-solon-plugin/pom.xml
@@ -7,7 +7,7 @@
org.noear
solon-parent
- 2.2.1
+ 2.2.2
fun.asgc
diff --git a/neutrino-core/pom.xml b/neutrino-core/pom.xml
index c144c00a..759d652c 100644
--- a/neutrino-core/pom.xml
+++ b/neutrino-core/pom.xml
@@ -26,21 +26,18 @@
snakeyaml
- com.alibaba
- druid
- 1.1.24
+ com.zaxxer
+ HikariCP
test
mysql
mysql-connector-java
- 8.0.29
test
org.xerial
sqlite-jdbc
- 3.7.2
test
diff --git a/neutrino-core/src/test/java/fun/asgc/neutrino/core/db/dao/DaoTest.java b/neutrino-core/src/test/java/fun/asgc/neutrino/core/db/dao/DaoTest.java
index 6c4888e9..6bd401bf 100644
--- a/neutrino-core/src/test/java/fun/asgc/neutrino/core/db/dao/DaoTest.java
+++ b/neutrino-core/src/test/java/fun/asgc/neutrino/core/db/dao/DaoTest.java
@@ -21,7 +21,7 @@
*/
package fun.asgc.neutrino.core.db.dao;
-import com.alibaba.druid.pool.DruidDataSource;
+import com.zaxxer.hikari.HikariDataSource;
import fun.asgc.neutrino.core.db.annotation.Column;
import fun.asgc.neutrino.core.db.annotation.Id;
import lombok.Data;
@@ -29,6 +29,7 @@ import lombok.ToString;
import lombok.experimental.Accessors;
import org.junit.Test;
+import javax.activation.DataSource;
import java.sql.SQLException;
import java.util.Date;
import java.util.List;
@@ -39,12 +40,12 @@ import java.util.List;
* @date: 2022/6/28
*/
public class DaoTest {
- private DruidDataSource dataSource;
+ private HikariDataSource dataSource;
private DBType dbType;
{
- dataSource = new DruidDataSource();
- dataSource.setUrl("jdbc:mysql://localhost:3306/test1?useUnicode=true&characterEncoding=utf8");
+ dataSource = new HikariDataSource();
+ dataSource.setJdbcUrl("jdbc:mysql://localhost:3306/test1?useUnicode=true&characterEncoding=utf8");
dataSource.setUsername("root");
dataSource.setPassword("YWasgc@10520");
dbType = DBType.MYSQL;
diff --git a/neutrino-core/src/test/java/fun/asgc/neutrino/core/db/mapper/Configuration.java b/neutrino-core/src/test/java/fun/asgc/neutrino/core/db/mapper/Configuration.java
index 3919119c..00b568eb 100644
--- a/neutrino-core/src/test/java/fun/asgc/neutrino/core/db/mapper/Configuration.java
+++ b/neutrino-core/src/test/java/fun/asgc/neutrino/core/db/mapper/Configuration.java
@@ -21,7 +21,7 @@
*/
package fun.asgc.neutrino.core.db.mapper;
-import com.alibaba.druid.pool.DruidDataSource;
+import com.zaxxer.hikari.HikariDataSource;
import fun.asgc.neutrino.core.annotation.Bean;
import fun.asgc.neutrino.core.annotation.Component;
import fun.asgc.neutrino.core.annotation.Order;
@@ -38,8 +38,8 @@ public class Configuration {
@Bean
public JdbcTemplate jdbcTemplate() {
- DruidDataSource dataSource = new DruidDataSource();
- dataSource.setUrl("jdbc:mysql://localhost:3306/test1?useUnicode=true&characterEncoding=utf8");
+ HikariDataSource dataSource = new HikariDataSource();
+ dataSource.setJdbcUrl("jdbc:mysql://localhost:3306/test1?useUnicode=true&characterEncoding=utf8");
dataSource.setUsername("root");
dataSource.setPassword("YWasgc@10520");
return new JdbcTemplate(dataSource);
diff --git a/neutrino-core/src/test/java/fun/asgc/neutrino/core/db/template/JdbcTemplateTestForMySql.java b/neutrino-core/src/test/java/fun/asgc/neutrino/core/db/template/JdbcTemplateTestForMySql.java
index 155f797f..bd41edbc 100644
--- a/neutrino-core/src/test/java/fun/asgc/neutrino/core/db/template/JdbcTemplateTestForMySql.java
+++ b/neutrino-core/src/test/java/fun/asgc/neutrino/core/db/template/JdbcTemplateTestForMySql.java
@@ -21,7 +21,7 @@
*/
package fun.asgc.neutrino.core.db.template;
-import com.alibaba.druid.pool.DruidDataSource;
+import com.zaxxer.hikari.HikariDataSource;
import fun.asgc.neutrino.core.db.annotation.Id;
import lombok.Data;
import lombok.experimental.Accessors;
@@ -42,8 +42,8 @@ public class JdbcTemplateTestForMySql {
private JdbcTemplate jdbcTemplate;
{
- DruidDataSource dataSource = new DruidDataSource();
- dataSource.setUrl("jdbc:mysql://localhost:3306/test1?useUnicode=true&characterEncoding=utf8");
+ HikariDataSource dataSource = new HikariDataSource();
+ dataSource.setJdbcUrl("jdbc:mysql://localhost:3306/test1?useUnicode=true&characterEncoding=utf8");
dataSource.setUsername("root");
dataSource.setPassword("YWasgc@10520");
jdbcTemplate = new JdbcTemplate(dataSource);
diff --git a/neutrino-core/src/test/java/fun/asgc/neutrino/core/db/template/JdbcTemplateTestForSqlite.java b/neutrino-core/src/test/java/fun/asgc/neutrino/core/db/template/JdbcTemplateTestForSqlite.java
index 3e39ec68..b194631e 100644
--- a/neutrino-core/src/test/java/fun/asgc/neutrino/core/db/template/JdbcTemplateTestForSqlite.java
+++ b/neutrino-core/src/test/java/fun/asgc/neutrino/core/db/template/JdbcTemplateTestForSqlite.java
@@ -21,8 +21,7 @@
*/
package fun.asgc.neutrino.core.db.template;
-import com.alibaba.druid.pool.DruidDataSource;
-import com.google.common.collect.Sets;
+import com.zaxxer.hikari.HikariDataSource;
import fun.asgc.neutrino.core.db.annotation.Id;
import lombok.Data;
import lombok.experimental.Accessors;
@@ -41,9 +40,9 @@ public class JdbcTemplateTestForSqlite {
private JdbcTemplate jdbcTemplate;
{
- DruidDataSource dataSource = new DruidDataSource();
+ HikariDataSource dataSource = new HikariDataSource();
// dataSource.setUrl("jdbc:sqlite:" + JdbcTemplateTestForSqlite.class.getResource("/sqlite.db").getPath());
- dataSource.setUrl("jdbc:sqlite:../data.db");
+ dataSource.setJdbcUrl("jdbc:sqlite:../data.db");
dataSource.setDriverClassName("org.sqlite.JDBC");
jdbcTemplate = new JdbcTemplate(dataSource);
}
diff --git a/neutrino-proxy-client/pom.xml b/neutrino-proxy-client/pom.xml
index 761701d1..0a8d0578 100644
--- a/neutrino-proxy-client/pom.xml
+++ b/neutrino-proxy-client/pom.xml
@@ -27,7 +27,6 @@
org.noear
solon-lib
- 2.2.1
diff --git a/neutrino-proxy-core/pom.xml b/neutrino-proxy-core/pom.xml
index 6212d5a9..1187fbf5 100644
--- a/neutrino-proxy-core/pom.xml
+++ b/neutrino-proxy-core/pom.xml
@@ -21,7 +21,7 @@
cn.hutool
hutool-core
- 5.8.15
+ ${hutool.ver}
diff --git a/neutrino-proxy-server/pom.xml b/neutrino-proxy-server/pom.xml
index 1a8d6a41..0b5cbc48 100644
--- a/neutrino-proxy-server/pom.xml
+++ b/neutrino-proxy-server/pom.xml
@@ -13,27 +13,22 @@
neutrino-proxy-server
-
org.noear
solon-api
- 2.2.1
org.noear
mybatis-plus-solon-plugin
- 2.2.1
org.noear
mybatis-pagehelper-solon-plugin
- 2.2.1
org.noear
activerecord-solon-plugin
- 2.2.1
@@ -44,7 +39,7 @@
fun.asgc
orika-solon-plugin
- 2.2.1
+ 2.2.2
system
${project.basedir}/../_solon_plugin/orika-solon-plugin/pom.xml
@@ -52,7 +47,7 @@
fun.asgc
job-solon-plugin
- 2.2.1
+ 2.2.2
system
${project.basedir}/../_solon_plugin/job-solon-plugin/pom.xml
@@ -69,17 +64,14 @@
org.xerial
sqlite-jdbc
- 3.39.2.1
-
-
- com.alibaba
- druid
- 1.1.24
mysql
mysql-connector-java
- 8.0.29
+
+
+ com.zaxxer
+ HikariCP
diff --git a/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/ProxyServer.java b/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/ProxyServer.java
index 2824d25f..cb01ce6b 100644
--- a/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/ProxyServer.java
+++ b/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/ProxyServer.java
@@ -3,6 +3,7 @@ package fun.asgc.neutrino.proxy.server;
import fun.asgc.solon.extend.job.annotation.EnableJob;
import org.noear.solon.Solon;
import org.noear.solon.annotation.Controller;
+import org.noear.solon.annotation.SolonMain;
import org.noear.solon.web.cors.CrossFilter;
/**
@@ -11,7 +12,7 @@ import org.noear.solon.web.cors.CrossFilter;
* @date: 2022/6/16
*/
@EnableJob
-@Controller
+@SolonMain
public class ProxyServer {
public static void main(String[] args) {
diff --git a/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/base/db/DBInitialize.java b/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/base/db/DBInitialize.java
index fa754379..bce3ea7e 100644
--- a/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/base/db/DBInitialize.java
+++ b/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/base/db/DBInitialize.java
@@ -48,6 +48,7 @@ public class DBInitialize implements EventListener {
private static List initDataTableNameList = Lists.newArrayList("user", "license", "port_pool", "port_mapping", "job_info");
@Inject
private DbConfig dbConfig;
+
private DbTypeEnum dbTypeEnum;
@Init
@@ -91,6 +92,7 @@ public class DBInitialize implements EventListener {
/**
* 初始化数据
+ *
* @throws Exception
*/
private void initDBData() throws Exception {
diff --git a/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/base/db/DbConfiguration.java b/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/base/db/DbConfiguration.java
index 487f4c18..014094be 100644
--- a/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/base/db/DbConfiguration.java
+++ b/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/base/db/DbConfiguration.java
@@ -1,10 +1,10 @@
package fun.asgc.neutrino.proxy.server.base.db;
-import com.alibaba.druid.pool.DruidDataSource;
import com.baomidou.mybatisplus.core.MybatisConfiguration;
import com.baomidou.mybatisplus.core.MybatisSqlSessionFactoryBuilder;
import com.baomidou.mybatisplus.core.config.GlobalConfig;
import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler;
+import com.zaxxer.hikari.HikariDataSource;
import fun.asgc.neutrino.proxy.server.constant.DbTypeEnum;
import org.apache.ibatis.solon.annotation.Db;
import org.noear.solon.annotation.Bean;
@@ -31,14 +31,17 @@ public class DbConfiguration {
dataSource.setJournalMode(SQLiteConfig.JournalMode.WAL.getValue());
return dataSource;
} else if (DbTypeEnum.MYSQL == dbTypeEnum) {
- DruidDataSource dataSource = new DruidDataSource();
+ HikariDataSource dataSource = new HikariDataSource();
dataSource.setDriverClassName(dbConfig.getDriverClass());
- dataSource.setUrl(dbConfig.getUrl());
- dataSource.setInitialSize(5);
- dataSource.setMinIdle(5);
- dataSource.setMaxActive(20);
- dataSource.setMaxWait(60000);
- dataSource.setPoolPreparedStatements(true);
+ dataSource.setJdbcUrl(dbConfig.getUrl());
+ dataSource.setMinimumIdle(5);
+ dataSource.setMaximumPoolSize(20);
+ dataSource.setMaxLifetime(60000);
+// dataSource.setInitialSize(5);
+// dataSource.setMinIdle(5);
+// dataSource.setMaxActive(20);
+// dataSource.setMaxWait(60000);
+// dataSource.setPoolPreparedStatements(true);
dataSource.setUsername(dbConfig.getUsername());
dataSource.setPassword(dbConfig.getPassword());
return dataSource;
diff --git a/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/base/proxy/ProxyConfiguration.java b/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/base/proxy/ProxyConfiguration.java
index 46bb6c9f..10f1da7f 100644
--- a/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/base/proxy/ProxyConfiguration.java
+++ b/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/base/proxy/ProxyConfiguration.java
@@ -11,6 +11,7 @@ import org.noear.solon.annotation.Bean;
import org.noear.solon.annotation.Configuration;
import org.noear.solon.annotation.Inject;
import org.noear.solon.core.AopContext;
+import org.noear.solon.core.bean.LifecycleBean;
import java.util.List;
@@ -20,16 +21,19 @@ import java.util.List;
* @date: 2022/10/8
*/
@Configuration
-public class ProxyConfiguration {
- @Bean
- public void dispatcher(@Inject AopContext aopContext) {
- aopContext.lifecycle(() -> {
- List list = aopContext.getBeansOfType(ProxyMessageHandler.class);
- Dispatcher dispatcher = new DefaultDispatcher<>("消息调度器", list,
- proxyMessage -> ProxyDataTypeEnum.of((int)proxyMessage.getType()) == null ?
- null : ProxyDataTypeEnum.of((int)proxyMessage.getType()).getName());
- aopContext.wrapAndPut(Dispatcher.class, dispatcher);
- });
+public class ProxyConfiguration implements LifecycleBean {
+ @Inject
+ AopContext aopContext;
+
+ @Override
+ public void start() throws Throwable {
+ List list = aopContext.getBeansOfType(ProxyMessageHandler.class);
+
+ Dispatcher dispatcher = new DefaultDispatcher<>("消息调度器", list,
+ proxyMessage -> ProxyDataTypeEnum.of((int)proxyMessage.getType()) == null ?
+ null : ProxyDataTypeEnum.of((int)proxyMessage.getType()).getName());
+
+ aopContext.wrapAndPut(Dispatcher.class, dispatcher);
}
@Bean("serverBossGroup")
@@ -41,4 +45,5 @@ public class ProxyConfiguration {
public NioEventLoopGroup serverWorkerGroup() {
return new NioEventLoopGroup();
}
+
}
diff --git a/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/base/rest/interceptor/BaseAuthInterceptor.java b/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/base/rest/interceptor/BaseAuthInterceptor.java
index 8e85d170..88bd09a0 100644
--- a/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/base/rest/interceptor/BaseAuthInterceptor.java
+++ b/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/base/rest/interceptor/BaseAuthInterceptor.java
@@ -74,17 +74,20 @@ public class BaseAuthInterceptor implements RouterInterceptor {
if (result instanceof Throwable) {
log.error("全局异常", (Throwable) result);
+
if (result instanceof ServiceException) {
ServiceException exception = (ServiceException) result;
return new ResponseBody<>()
.setCode(exception.getCode())
.setMsg(exception.getMsg());
}
+
return new ResponseBody<>()
.setCode(ExceptionConstant.SYSTEM_ERROR.getCode())
.setMsg(ExceptionConstant.SYSTEM_ERROR.getMsg())
.setStack(ExceptionUtils.getStackTrace((Throwable) result));
}
+
return new ResponseBody<>()
.setCode(0)
.setData(result);
diff --git a/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/base/rest/interceptor/GlobalExceptionFilter.java b/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/base/rest/interceptor/GlobalExceptionFilter.java
index bbae0236..0893fa4a 100644
--- a/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/base/rest/interceptor/GlobalExceptionFilter.java
+++ b/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/base/rest/interceptor/GlobalExceptionFilter.java
@@ -24,13 +24,15 @@ public class GlobalExceptionFilter implements Filter {
chain.doFilter(ctx);
} catch (Throwable e) {
log.error("全局异常", e);
+
if (e instanceof ServiceException) {
- ServiceException serviceException = (ServiceException)e;
+ ServiceException serviceException = (ServiceException) e;
ctx.render(new ResponseBody<>()
.setCode(serviceException.getCode())
.setMsg(serviceException.getMsg()));
return;
}
+
ctx.render(new ResponseBody<>()
.setCode(ExceptionConstant.SYSTEM_ERROR.getCode())
.setMsg(ExceptionConstant.SYSTEM_ERROR.getMsg())
diff --git a/pom.xml b/pom.xml
index 8a26cf83..5865313e 100644
--- a/pom.xml
+++ b/pom.xml
@@ -4,6 +4,13 @@
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
4.0.0
+
+ org.noear
+ solon-parent
+ 2.2.2
+
+
+
fun.asgc.neutrino
neutrino-proxy
pom
@@ -50,12 +57,12 @@
org.projectlombok
lombok
- 1.18.0
+ 1.18.24
org.yaml
snakeyaml
- 1.25
+ 1.33
junit
@@ -83,6 +90,21 @@
commons-fileupload
1.3.1
+
+ org.xerial
+ sqlite-jdbc
+ 3.39.2.1
+
+
+ mysql
+ mysql-connector-java
+ 5.1.49
+
+
+ com.zaxxer
+ HikariCP
+ 4.0.3
+