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 +