Merge pull request #515 from microwin7/dev

Update dependencies and fix HikariCP
This commit is contained in:
Gravit 2021-09-04 19:59:29 +07:00 committed by GitHub
commit acf106baa9
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 19 additions and 14 deletions

View file

@ -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) {

View file

@ -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);
}

View file

@ -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