diff --git a/LaunchServer/build.gradle b/LaunchServer/build.gradle index c77d4498..32c525bb 100644 --- a/LaunchServer/build.gradle +++ b/LaunchServer/build.gradle @@ -92,8 +92,8 @@ pack project(':LauncherAPI') bundle group: 'io.jsonwebtoken', name: 'jjwt-gson', version: rootProject['verJwt'] testImplementation group: 'org.junit.jupiter', name: 'junit-jupiter', version: rootProject['verJunit'] - hikari 'io.micrometer:micrometer-core:1.5.10' - hikari('com.zaxxer:HikariCP:4.0.3') { + hikari 'io.micrometer:micrometer-core:1.7.2' + hikari('com.zaxxer:HikariCP:5.0.0') { exclude group: 'javassist' exclude group: 'io.micrometer' exclude group: 'org.slf4j' @@ -112,7 +112,7 @@ pack project(':LauncherAPI') compileOnlyA group: 'com.google.guava', name: 'guava', version: rootProject['verGuavaC'] // Do not update (laggy deps). compileOnlyA 'log4j:log4j:1.2.17' - compileOnlyA 'org.apache.logging.log4j:log4j-core:2.11.2' + compileOnlyA 'org.apache.logging.log4j:log4j-core:2.14.1' } task hikari(type: Copy) { diff --git a/LaunchServer/src/main/java/pro/gravit/launchserver/auth/MySQLSourceConfig.java b/LaunchServer/src/main/java/pro/gravit/launchserver/auth/MySQLSourceConfig.java index 459e8c38..ec9d1e60 100644 --- a/LaunchServer/src/main/java/pro/gravit/launchserver/auth/MySQLSourceConfig.java +++ b/LaunchServer/src/main/java/pro/gravit/launchserver/auth/MySQLSourceConfig.java @@ -32,8 +32,8 @@ public final class MySQLSourceConfig implements AutoCloseable { private String username; private String password; private String database; - private String timeZone; - private boolean enableHikari; + private String timezone; + private boolean useHikari; // Cache private transient DataSource source; @@ -93,22 +93,26 @@ public synchronized Connection getConnection() throws SQLException { mysqlSource.setPassword(password); mysqlSource.setDatabaseName(database); mysqlSource.setTcpNoDelay(true); - if (timeZone != null) mysqlSource.setServerTimezone(timeZone); + if (timezone != null) mysqlSource.setServerTimezone(timezone); hikari = false; // Try using HikariCP source = mysqlSource; - if (enableHikari) { + if (useHikari) { try { Class.forName("com.zaxxer.hikari.HikariDataSource"); hikari = true; // Used for shutdown. Not instanceof because of possible classpath error - HikariConfig cfg = new HikariConfig(); - cfg.setDataSource(mysqlSource); - cfg.setPoolName(poolName); - cfg.setMaximumPoolSize(MAX_POOL_SIZE); + HikariConfig hikariConfig = new HikariConfig(); + hikariConfig.setDataSource(mysqlSource); + hikariConfig.setPoolName(poolName); + hikariConfig.setMinimumIdle(1); + hikariConfig.setMaximumPoolSize(MAX_POOL_SIZE); + hikariConfig.setConnectionTestQuery("SELECT 1"); + hikariConfig.setConnectionTimeout(1000); + hikariConfig.setAutoCommit(true); + hikariConfig.setLeakDetectionThreshold(2000); // Set HikariCP pool // Replace source with hds - source = new HikariDataSource(cfg); - logger.warn("HikariCP pooling enabled for '{}'", poolName); + source = new HikariDataSource(hikariConfig); } catch (ClassNotFoundException ignored) { logger.debug("HikariCP isn't in classpath for '{}'", poolName); } diff --git a/LaunchServer/src/main/java/pro/gravit/launchserver/auth/provider/MySQLAuthProvider.java b/LaunchServer/src/main/java/pro/gravit/launchserver/auth/provider/MySQLAuthProvider.java index fbb0f387..d3be58ba 100644 --- a/LaunchServer/src/main/java/pro/gravit/launchserver/auth/provider/MySQLAuthProvider.java +++ b/LaunchServer/src/main/java/pro/gravit/launchserver/auth/provider/MySQLAuthProvider.java @@ -24,9 +24,10 @@ public final class MySQLAuthProvider extends AuthProvider { @Override public void init(LaunchServer srv) { super.init(srv); + if (mySQLHolder == null) throw new RuntimeException("[Verify][AuthProvider] mySQLHolder cannot be null"); if (query == null) throw new RuntimeException("[Verify][AuthProvider] query cannot be null"); if (message == null) throw new RuntimeException("[Verify][AuthProvider] message cannot be null"); - if (mySQLHolder == null) throw new RuntimeException("[Verify][AuthProvider] mySQLHolder cannot be null"); + if (queryParams == null) throw new RuntimeException("[Verify][AuthProvider] queryParams cannot be null"); } @Override