mirror of
https://github.com/TuxCoding/FastLogin.git
synced 2025-07-30 18:57:31 +02:00
@ -57,7 +57,6 @@ import java.nio.file.Files;
|
|||||||
import java.nio.file.Path;
|
import java.nio.file.Path;
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
import java.util.HashSet;
|
import java.util.HashSet;
|
||||||
import java.util.Locale;
|
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
@ -221,7 +220,7 @@ public class FastLoginCore<P extends C, C, T extends PlatformPlugin<C>> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public boolean setupDatabase() {
|
public boolean setupDatabase() {
|
||||||
String type = config.getString("driver").toLowerCase(Locale.ENGLISH);
|
String type = config.getString("driver");
|
||||||
|
|
||||||
HikariConfig databaseConfig = new HikariConfig();
|
HikariConfig databaseConfig = new HikariConfig();
|
||||||
String database = config.getString("database");
|
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.github.games647.fastlogin.core.shared.PlatformPlugin;
|
||||||
import com.zaxxer.hikari.HikariConfig;
|
import com.zaxxer.hikari.HikariConfig;
|
||||||
|
|
||||||
|
import java.util.Locale;
|
||||||
|
|
||||||
public class MySQLStorage extends SQLStorage {
|
public class MySQLStorage extends SQLStorage {
|
||||||
|
|
||||||
private static final String JDBC_PROTOCOL = "jdbc:";
|
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) {
|
private static String buildJDBCUrl(String driver, String host, int port, String database) {
|
||||||
String protocol = "mysql";
|
MySQLVariant variant = MySQLVariant.fromDriver(driver);
|
||||||
if (driver.contains("mariadb")) {
|
if (variant == null) {
|
||||||
protocol = "mariadb";
|
throw new IllegalArgumentException("Unknown storage driver");
|
||||||
}
|
}
|
||||||
|
|
||||||
return protocol + "://" + host + ':' + port + '/' + database;
|
return variant.getJdbcPrefix() + "://" + host + ':' + port + '/' + database;
|
||||||
}
|
}
|
||||||
|
|
||||||
private static void addPerformanceProperties(HikariConfig config) {
|
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
|
// In our case it can be useful to see the time in error messages
|
||||||
// config.addDataSourceProperty("maintainTimeStats", false);
|
// 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