forked from TuxCoding/FastLogin
@ -57,7 +57,6 @@ import java.nio.file.Files;
|
||||
import java.nio.file.Path;
|
||||
import java.util.Collection;
|
||||
import java.util.HashSet;
|
||||
import java.util.Locale;
|
||||
import java.util.Map;
|
||||
import java.util.Objects;
|
||||
import java.util.Set;
|
||||
@ -221,7 +220,7 @@ public class FastLoginCore<P extends C, C, T extends PlatformPlugin<C>> {
|
||||
}
|
||||
|
||||
public boolean setupDatabase() {
|
||||
String type = config.getString("driver").toLowerCase(Locale.ENGLISH);
|
||||
String type = config.getString("driver");
|
||||
|
||||
HikariConfig databaseConfig = new HikariConfig();
|
||||
String database = config.getString("database");
|
||||
|
@ -28,6 +28,8 @@ package com.github.games647.fastlogin.core.storage;
|
||||
import com.github.games647.fastlogin.core.shared.PlatformPlugin;
|
||||
import com.zaxxer.hikari.HikariConfig;
|
||||
|
||||
import java.util.Locale;
|
||||
|
||||
public class MySQLStorage extends SQLStorage {
|
||||
|
||||
private static final String JDBC_PROTOCOL = "jdbc:";
|
||||
@ -68,12 +70,12 @@ public class MySQLStorage extends SQLStorage {
|
||||
}
|
||||
|
||||
private static String buildJDBCUrl(String driver, String host, int port, String database) {
|
||||
String protocol = "mysql";
|
||||
if (driver.contains("mariadb")) {
|
||||
protocol = "mariadb";
|
||||
MySQLVariant variant = MySQLVariant.fromDriver(driver);
|
||||
if (variant == null) {
|
||||
throw new IllegalArgumentException("Unknown storage driver");
|
||||
}
|
||||
|
||||
return protocol + "://" + host + ':' + port + '/' + database;
|
||||
return variant.getJdbcPrefix() + "://" + host + ':' + port + '/' + database;
|
||||
}
|
||||
|
||||
private static void addPerformanceProperties(HikariConfig config) {
|
||||
@ -106,4 +108,32 @@ public class MySQLStorage extends SQLStorage {
|
||||
// In our case it can be useful to see the time in error messages
|
||||
// config.addDataSourceProperty("maintainTimeStats", false);
|
||||
}
|
||||
|
||||
enum MySQLVariant {
|
||||
|
||||
MYSQL("mysql"),
|
||||
|
||||
MARIADB("mariadb");
|
||||
|
||||
private final String jdbcPrefix;
|
||||
|
||||
public static MySQLVariant fromDriver(String driver) {
|
||||
String normalizedDriver = driver.toLowerCase(Locale.ENGLISH);
|
||||
if (normalizedDriver.contains("mysql")) {
|
||||
return MYSQL;
|
||||
} else if (normalizedDriver.contains("mariadb")) {
|
||||
return MARIADB;
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
MySQLVariant(String jdbcPrefix) {
|
||||
this.jdbcPrefix = jdbcPrefix;
|
||||
}
|
||||
|
||||
public String getJdbcPrefix() {
|
||||
return jdbcPrefix;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user