Search in sources :

Example 1 with SQLite

use of fr.xephi.authme.datasource.SQLite in project AuthMeReloaded by AuthMe.

the class DataSourceProvider method createDataSource.

/**
 * Sets up the data source.
 *
 * @return the constructed data source
 * @throws SQLException when initialization of a SQL data source failed
 */
private DataSource createDataSource() throws SQLException {
    DataSourceType dataSourceType = settings.getProperty(DatabaseSettings.BACKEND);
    DataSource dataSource;
    switch(dataSourceType) {
        case MYSQL:
            dataSource = new MySQL(settings, mySqlExtensionsFactory);
            break;
        case POSTGRESQL:
            dataSource = new PostgreSqlDataSource(settings, mySqlExtensionsFactory);
            break;
        case SQLITE:
            dataSource = new SQLite(settings, dataFolder);
            break;
        default:
            throw new UnsupportedOperationException("Unknown data source type '" + dataSourceType + "'");
    }
    if (settings.getProperty(DatabaseSettings.USE_CACHING)) {
        dataSource = new CacheDataSource(dataSource, playerCache);
    }
    if (DataSourceType.SQLITE.equals(dataSourceType)) {
        checkDataSourceSize(dataSource);
    }
    return dataSource;
}
Also used : CacheDataSource(fr.xephi.authme.datasource.CacheDataSource) DataSourceType(fr.xephi.authme.datasource.DataSourceType) MySQL(fr.xephi.authme.datasource.MySQL) SQLite(fr.xephi.authme.datasource.SQLite) PostgreSqlDataSource(fr.xephi.authme.datasource.PostgreSqlDataSource) CacheDataSource(fr.xephi.authme.datasource.CacheDataSource) DataSource(fr.xephi.authme.datasource.DataSource) PostgreSqlDataSource(fr.xephi.authme.datasource.PostgreSqlDataSource)

Example 2 with SQLite

use of fr.xephi.authme.datasource.SQLite in project AuthMeReloaded by AuthMe.

the class DataSourceProvider method convertFlatfileToSqlite.

/**
     * Converts the data source from the deprecated FLATFILE type to SQLITE.
     *
     * @param dataSource the data source to convert if necessary
     * @return the data source to use: the converted datasource (SQLite),
     *         or the same data source if no conversion was performed
     */
private DataSource convertFlatfileToSqlite(DataSource dataSource) {
    if (DataSourceType.FILE == settings.getProperty(DatabaseSettings.BACKEND)) {
        ConsoleLogger.warning("FlatFile backend has been detected and is now deprecated; it will be changed " + "to SQLite... Connection will be impossible until conversion is done!");
        FlatFile flatFile = (FlatFile) dataSource;
        try {
            SQLite sqlite = new SQLite(settings);
            ForceFlatToSqlite converter = new ForceFlatToSqlite(flatFile, sqlite);
            converter.execute(null);
            settings.setProperty(DatabaseSettings.BACKEND, DataSourceType.SQLITE);
            settings.save();
            return sqlite;
        } catch (Exception e) {
            ConsoleLogger.logException("Error during conversion from Flatfile to SQLite", e);
            throw new IllegalStateException(e);
        }
    }
    return dataSource;
}
Also used : SQLite(fr.xephi.authme.datasource.SQLite) FlatFile(fr.xephi.authme.datasource.FlatFile) ForceFlatToSqlite(fr.xephi.authme.datasource.converter.ForceFlatToSqlite) IOException(java.io.IOException) SQLException(java.sql.SQLException)

Aggregations

SQLite (fr.xephi.authme.datasource.SQLite)2 CacheDataSource (fr.xephi.authme.datasource.CacheDataSource)1 DataSource (fr.xephi.authme.datasource.DataSource)1 DataSourceType (fr.xephi.authme.datasource.DataSourceType)1 FlatFile (fr.xephi.authme.datasource.FlatFile)1 MySQL (fr.xephi.authme.datasource.MySQL)1 PostgreSqlDataSource (fr.xephi.authme.datasource.PostgreSqlDataSource)1 ForceFlatToSqlite (fr.xephi.authme.datasource.converter.ForceFlatToSqlite)1 IOException (java.io.IOException)1 SQLException (java.sql.SQLException)1