#1255 Extract forum-specific data source actions into separate extension classes

This commit is contained in:
ljacqu
2017-07-23 14:01:35 +02:00
parent 870810a230
commit cbc794ba20
14 changed files with 589 additions and 420 deletions
@@ -9,6 +9,7 @@ import fr.xephi.authme.datasource.FlatFile;
import fr.xephi.authme.datasource.MySQL;
import fr.xephi.authme.datasource.SQLite;
import fr.xephi.authme.datasource.converter.ForceFlatToSqlite;
import fr.xephi.authme.datasource.mysqlextensions.MySqlExtensionsFactory;
import fr.xephi.authme.service.BukkitService;
import fr.xephi.authme.settings.Settings;
import fr.xephi.authme.settings.properties.DatabaseSettings;
@@ -36,6 +37,8 @@ public class DataSourceProvider implements Provider<DataSource> {
private BukkitService bukkitService;
@Inject
private PlayerCache playerCache;
@Inject
private MySqlExtensionsFactory mySqlExtensionsFactory;
DataSourceProvider() {
}
@@ -67,7 +70,7 @@ public class DataSourceProvider implements Provider<DataSource> {
dataSource = new FlatFile(source);
break;
case MYSQL:
dataSource = new MySQL(settings);
dataSource = new MySQL(settings, mySqlExtensionsFactory);
break;
case SQLITE:
dataSource = new SQLite(settings);
@@ -82,12 +85,12 @@ public class DataSourceProvider implements Provider<DataSource> {
dataSource = new CacheDataSource(dataSource, playerCache);
}
if (DataSourceType.SQLITE.equals(dataSourceType)) {
checkDataSourceSize(dataSource, bukkitService);
checkDataSourceSize(dataSource);
}
return dataSource;
}
private void checkDataSourceSize(final DataSource dataSource, BukkitService bukkitService) {
private void checkDataSourceSize(DataSource dataSource) {
bukkitService.runTaskAsynchronously(() -> {
int accounts = dataSource.getAccountsRegistered();
if (accounts >= SQLITE_MAX_SIZE) {