Relocate MySQL connector and fix migrations

This commit is contained in:
Gabriele C
2021-11-28 16:47:47 +01:00
parent 0a418e886a
commit 31564d8284
5 changed files with 17 additions and 12 deletions
@@ -104,8 +104,8 @@ public class MySQL extends AbstractSqlDataSource {
try {
Class.forName(this.className);
} catch (ClassNotFoundException e) {
logger.info("Driver class '" + this.className + "' not found! Falling back to legacy MySQL driver (com.mysql.jdbc.Driver)");
this.className = "com.mysql.jdbc.Driver";
this.className = DatabaseSettings.MYSQL_DRIVER_CLASS_NAME.getDefaultValue();
logger.info("Driver class '" + this.className + "' not found! Falling back to the built-in MySQL driver (" + this.className + ")");
}
this.database = settings.getProperty(DatabaseSettings.MYSQL_DATABASE);
this.tableName = settings.getProperty(DatabaseSettings.MYSQL_TABLE);
@@ -65,8 +65,9 @@ public class SettingsMigrationService extends PlainMigrationService {
configurationData.setValue(ALLOWED_NICKNAME_CHARACTERS, "[a-zA-Z0-9_]*");
changes = true;
}
if ("com.mysql.jdbc.Driver".equals(reader.getString(DatabaseSettings.MYSQL_DRIVER_CLASS_NAME.getPath()))) {
configurationData.setValue(DatabaseSettings.MYSQL_DRIVER_CLASS_NAME, "com.mysql.cj.jdbc.Driver");
String driverClass = reader.getString(DatabaseSettings.MYSQL_DRIVER_CLASS_NAME.getPath());
if ("com.mysql.jdbc.Driver".equals(driverClass) || "com.mysql.cj.jdbc.Driver".equals(driverClass)) {
configurationData.setValue(DatabaseSettings.MYSQL_DRIVER_CLASS_NAME, DatabaseSettings.MYSQL_DRIVER_CLASS_NAME.getDefaultValue());
changes = true;
}
@@ -47,10 +47,10 @@ public final class DatabaseSettings implements SettingsHolder {
@Comment({"Driver Name of the MySQL database.",
"Built-in drivers:",
" MySQL: 'com.mysql.cj.jdbc.Driver'",
" MariaDB: 'org.mariadb.jdbc.Driver'"})
" MySQL: 'fr.xephi.authme.libs.com.mysql.cj.jdbc.Driver'",
" MariaDB: 'fr.xephi.authme.libs.org.mariadb.jdbc.Driver'"})
public static final Property<String> MYSQL_DRIVER_CLASS_NAME =
newProperty("DataSource.mySQLDriverClassName", "com.mysql.cj.jdbc.Driver");
newProperty("DataSource.mySQLDriverClassName", "fr.xephi.authme.libs.com.mysql.cj.jdbc.Driver");
@Comment("Database Name, use with converters or as SQLITE database name")
public static final Property<String> MYSQL_DATABASE =