diff --git a/pom.xml b/pom.xml index be39568..b07c56c 100644 --- a/pom.xml +++ b/pom.xml @@ -17,8 +17,8 @@ UTF-8 17 3.1.1 - 3.3.4 - 1.2.21 + 3.3.5 + 1.2.23 3.5.2 6.0.0 1.1 @@ -31,13 +31,14 @@ 6.6.3 2.17.0 3.2.2 - 5.2.3 + 5.3.0 4.5.14 2.3 0.12.5 4.5.0 3.0.3 - 8.2.0 + + 8.4.0 2.3.1 4.0.5 2.1.0 diff --git a/ruoyi-admin/src/main/resources/application-lp.yml b/ruoyi-admin/src/main/resources/application-lp.yml new file mode 100644 index 0000000..66ea810 --- /dev/null +++ b/ruoyi-admin/src/main/resources/application-lp.yml @@ -0,0 +1,7 @@ +netty: + websocket: + maxMessageSize: 65536 + bossThreads: 4 + workerThreads: 16 + port: 8081 + enable: true \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/application.yml b/ruoyi-admin/src/main/resources/application.yml index 855a882..45c0a29 100644 --- a/ruoyi-admin/src/main/resources/application.yml +++ b/ruoyi-admin/src/main/resources/application.yml @@ -69,7 +69,7 @@ spring: # 国际化资源文件路径 basename: i18n/messages profiles: - active: druid,mybatis,auth,pay,middleware + active: druid,mybatis,auth,pay,middleware,lp # 文件上传 servlet: multipart: diff --git a/ruoyi-framework/pom.xml b/ruoyi-framework/pom.xml index ec0d561..01a7195 100644 --- a/ruoyi-framework/pom.xml +++ b/ruoyi-framework/pom.xml @@ -57,6 +57,12 @@ + + + com.mysql + mysql-connector-j + + com.github.oshi diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/DynamicDataSourceProperties.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/DynamicDataSourceProperties.java index 9728213..67c8810 100644 --- a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/DynamicDataSourceProperties.java +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/DynamicDataSourceProperties.java @@ -38,27 +38,27 @@ public class DynamicDataSourceProperties { } } - protected Properties build(DataSourceProperties dataSourceProperties) { + public Properties build(DataSourceProperties dataSourceProperties) { Properties prop = new Properties(); DruidProperties druidProperties = SpringUtils.getBean(DruidProperties.class); - prop.put("url", dataSourceProperties.getUrl()); - prop.put("username", dataSourceProperties.getUsername()); - prop.put("password", dataSourceProperties.getPassword()); - prop.put("initialSize", druidProperties.getInitialSize()); - prop.put("minIdle", druidProperties.getMinIdle()); - prop.put("maxActive", druidProperties.getMaxActive()); - prop.put("maxWait", druidProperties.getMaxWait()); - prop.put("timeBetweenEvictionRunsMillis", druidProperties.getTimeBetweenEvictionRunsMillis()); - prop.put("minEvictableIdleTimeMillis", druidProperties.getMinEvictableIdleTimeMillis()); - prop.put("maxEvictableIdleTimeMillis", druidProperties.getMaxEvictableIdleTimeMillis()); - prop.put("validationQuery", druidProperties.getValidationQuery()); - prop.put("testWhileIdle", druidProperties.isTestWhileIdle()); - prop.put("testOnBorrow", druidProperties.isTestOnBorrow()); - prop.put("testOnReturn", druidProperties.isTestOnReturn()); + prop.setProperty("url", dataSourceProperties.getUrl()); + prop.setProperty("username", dataSourceProperties.getUsername()); + prop.setProperty("password", dataSourceProperties.getPassword()); + prop.setProperty("initialSize", String.valueOf(druidProperties.getInitialSize())); + prop.setProperty("minIdle", String.valueOf(druidProperties.getMinIdle())); + prop.setProperty("maxActive", String.valueOf(druidProperties.getMaxActive())); + prop.setProperty("maxWait", String.valueOf(druidProperties.getMaxWait())); + prop.setProperty("timeBetweenEvictionRunsMillis", String.valueOf(druidProperties.getTimeBetweenEvictionRunsMillis())); + prop.setProperty("minEvictableIdleTimeMillis", String.valueOf(druidProperties.getMinEvictableIdleTimeMillis())); + prop.setProperty("maxEvictableIdleTimeMillis", String.valueOf(druidProperties.getMaxEvictableIdleTimeMillis())); + prop.setProperty("validationQuery", druidProperties.getValidationQuery()); + prop.setProperty("testWhileIdle", String.valueOf(druidProperties.isTestWhileIdle())); + prop.setProperty("testOnBorrow", String.valueOf(druidProperties.isTestOnBorrow())); + prop.setProperty("testOnReturn", String.valueOf(druidProperties.isTestOnReturn())); return prop; } - protected void setProperties(DruidDataSource dataSource, Properties prop) { + public void setProperties(DruidDataSource dataSource, Properties prop) { dataSource.setUrl(prop.getProperty("url")); dataSource.setUsername(prop.getProperty("username")); dataSource.setPassword(prop.getProperty("password")); diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/AtomikosDataSourceCreate.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/datasource/AtomikosDataSourceCreate.java similarity index 81% rename from ruoyi-framework/src/main/java/com/ruoyi/framework/config/AtomikosDataSourceCreate.java rename to ruoyi-framework/src/main/java/com/ruoyi/framework/datasource/AtomikosDataSourceCreate.java index cdcd858..ba07d2a 100644 --- a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/AtomikosDataSourceCreate.java +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/datasource/AtomikosDataSourceCreate.java @@ -1,4 +1,4 @@ -package com.ruoyi.framework.config; +package com.ruoyi.framework.datasource; import java.util.Properties; @@ -12,8 +12,11 @@ import org.springframework.context.annotation.DependsOn; import org.springframework.stereotype.Component; import com.alibaba.druid.pool.xa.DruidXADataSource; -import com.atomikos.jdbc.AtomikosDataSourceBean; +import com.atomikos.spring.AtomikosDataSourceBean; import com.ruoyi.common.service.datasource.CreateDataSource; +import com.ruoyi.framework.config.AtomikosConfig; +import com.ruoyi.framework.config.DruidConfig; +import com.ruoyi.framework.config.DynamicDataSourceProperties; @Component @DependsOn({ "transactionManager" }) @@ -36,13 +39,16 @@ public class AtomikosDataSourceCreate implements CreateDataSource { dataSource.setConnectProperties(prop); properties.setProperties(dataSource, prop); AtomikosDataSourceBean ds = new AtomikosDataSourceBean(); + atomikosConfig.getAtomikosDataSourceBeans().add(ds); ds.setXaDataSourceClassName("com.alibaba.druid.pool.xa.DruidXADataSource"); ds.setUniqueResourceName(name); - ds.setXaProperties(prop); ds.setXaDataSource(dataSource); + ds.setXaProperties(prop); + ds.setMaxPoolSize(dataSource.getMaxActive()); + ds.setMinPoolSize(dataSource.getMinIdle()); properties.validateDataSource(ds); logger.info("数据源:{} 链接成功", name); - return ds; + return dataSource; } } diff --git a/ruoyi-plugins/ruoyi-netty/src/main/java/com/ruoyi/netty/websocket/nettyServer/NettyWebSocketEndpointHandler.java b/ruoyi-plugins/ruoyi-netty/src/main/java/com/ruoyi/netty/websocket/nettyServer/NettyWebSocketEndpointHandler.java index 357c1c4..da07018 100644 --- a/ruoyi-plugins/ruoyi-netty/src/main/java/com/ruoyi/netty/websocket/nettyServer/NettyWebSocketEndpointHandler.java +++ b/ruoyi-plugins/ruoyi-netty/src/main/java/com/ruoyi/netty/websocket/nettyServer/NettyWebSocketEndpointHandler.java @@ -4,11 +4,8 @@ import java.util.Map; import io.netty.channel.ChannelFutureListener; import io.netty.channel.ChannelHandlerContext; -import io.netty.channel.group.ChannelGroup; -import io.netty.channel.group.DefaultChannelGroup; import io.netty.handler.codec.http.FullHttpMessage; import io.netty.handler.codec.http.websocketx.TextWebSocketFrame; -import io.netty.util.concurrent.GlobalEventExecutor; public abstract class NettyWebSocketEndpointHandler { diff --git a/ruoyi-plugins/ruoyi-netty/src/main/java/com/ruoyi/netty/websocket/nettyServer/NettyWebSocketServer.java b/ruoyi-plugins/ruoyi-netty/src/main/java/com/ruoyi/netty/websocket/nettyServer/NettyWebSocketServer.java index 6350541..c37314d 100644 --- a/ruoyi-plugins/ruoyi-netty/src/main/java/com/ruoyi/netty/websocket/nettyServer/NettyWebSocketServer.java +++ b/ruoyi-plugins/ruoyi-netty/src/main/java/com/ruoyi/netty/websocket/nettyServer/NettyWebSocketServer.java @@ -4,6 +4,7 @@ import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Component; import com.ruoyi.netty.websocket.nettyServer.handler.WebSocketHandler; + import io.netty.bootstrap.ServerBootstrap; import io.netty.channel.ChannelInitializer; import io.netty.channel.ChannelOption; @@ -59,6 +60,6 @@ public class NettyWebSocketServer { System.out.println( "----------------------------------------------------------------------------------- \n Arknights!"); NettyWebSocketServer.serverBootstrap = serverBootstrap; - return serverBootstrap; + return NettyWebSocketServer.serverBootstrap; } } diff --git a/ruoyi-plugins/ruoyi-websocket/pom.xml b/ruoyi-plugins/ruoyi-websocket/pom.xml index ee7ac53..66fccdb 100644 --- a/ruoyi-plugins/ruoyi-websocket/pom.xml +++ b/ruoyi-plugins/ruoyi-websocket/pom.xml @@ -26,11 +26,6 @@ spring-boot-starter-websocket - - io.netty - netty-all - -