mirror of
https://github.com/plan-player-analytics/Plan.git
synced 2024-10-06 02:17:39 +02:00
Removed DBInitException throws clauses from methods
This commit is contained in:
parent
0b7b0a5a16
commit
acae1c4b3d
@ -78,16 +78,16 @@ public class ShutdownHook extends Thread {
|
|||||||
Map<UUID, Session> activeSessions = SessionCache.getActiveSessions();
|
Map<UUID, Session> activeSessions = SessionCache.getActiveSessions();
|
||||||
prepareSessionsForStorage(activeSessions, System.currentTimeMillis());
|
prepareSessionsForStorage(activeSessions, System.currentTimeMillis());
|
||||||
saveActiveSessions(activeSessions);
|
saveActiveSessions(activeSessions);
|
||||||
} catch (IllegalStateException ignored) {
|
|
||||||
/* Database is not initialized */
|
|
||||||
} catch (DBInitException e) {
|
} catch (DBInitException e) {
|
||||||
errorHandler.log(L.ERROR, this.getClass(), e);
|
errorHandler.log(L.ERROR, this.getClass(), e);
|
||||||
|
} catch (IllegalStateException ignored) {
|
||||||
|
/* Database is not initialized */
|
||||||
} finally {
|
} finally {
|
||||||
closeDatabase(dbSystem.getDatabase());
|
closeDatabase(dbSystem.getDatabase());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void saveActiveSessions(Map<UUID, Session> activeSessions) throws DBInitException {
|
private void saveActiveSessions(Map<UUID, Session> activeSessions) {
|
||||||
Database database = dbSystem.getDatabase();
|
Database database = dbSystem.getDatabase();
|
||||||
if (database.getState() == Database.State.CLOSED) {
|
if (database.getState() == Database.State.CLOSED) {
|
||||||
// Ensure that database is not closed when performing the transaction.
|
// Ensure that database is not closed when performing the transaction.
|
||||||
|
@ -29,7 +29,14 @@ import java.util.concurrent.Future;
|
|||||||
*/
|
*/
|
||||||
public interface Database {
|
public interface Database {
|
||||||
|
|
||||||
void init() throws DBInitException;
|
/**
|
||||||
|
* Initializes the Database.
|
||||||
|
* <p>
|
||||||
|
* Queries can be performed after this request has completed all required transactions for the database operations.
|
||||||
|
*
|
||||||
|
* @throws DBInitException if Database fails to initiate.
|
||||||
|
*/
|
||||||
|
void init();
|
||||||
|
|
||||||
void close();
|
void close();
|
||||||
|
|
||||||
|
@ -68,7 +68,7 @@ public class H2DB extends SQLDB {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void setupDataSource() throws DBInitException {
|
public void setupDataSource() {
|
||||||
try {
|
try {
|
||||||
connection = getNewConnection(databaseFile);
|
connection = getNewConnection(databaseFile);
|
||||||
} catch (SQLException e) {
|
} catch (SQLException e) {
|
||||||
|
@ -79,7 +79,7 @@ public class MySQLDB extends SQLDB {
|
|||||||
* Setups the {@link HikariDataSource}
|
* Setups the {@link HikariDataSource}
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public void setupDataSource() throws DBInitException {
|
public void setupDataSource() {
|
||||||
try {
|
try {
|
||||||
HikariConfig hikariConfig = new HikariConfig();
|
HikariConfig hikariConfig = new HikariConfig();
|
||||||
|
|
||||||
|
@ -89,18 +89,8 @@ public abstract class SQLDB extends AbstractDatabase {
|
|||||||
this.transactionExecutorServiceProvider = () -> Executors.newSingleThreadExecutor(new ThreadFactoryBuilder().setNameFormat("Plan " + getClass().getSimpleName() + "-transaction-thread-%d").build());
|
this.transactionExecutorServiceProvider = () -> Executors.newSingleThreadExecutor(new ThreadFactoryBuilder().setNameFormat("Plan " + getClass().getSimpleName() + "-transaction-thread-%d").build());
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Initializes the Database.
|
|
||||||
* <p>
|
|
||||||
* All tables exist in the database after call to this.
|
|
||||||
* Updates Schema to latest version.
|
|
||||||
* Converts Unsaved Bukkit player files to database data.
|
|
||||||
* Cleans the database.
|
|
||||||
*
|
|
||||||
* @throws DBInitException if Database fails to initiate.
|
|
||||||
*/
|
|
||||||
@Override
|
@Override
|
||||||
public void init() throws DBInitException {
|
public void init() {
|
||||||
List<Runnable> unfinishedTransactions = closeTransactionExecutor(transactionExecutor);
|
List<Runnable> unfinishedTransactions = closeTransactionExecutor(transactionExecutor);
|
||||||
this.transactionExecutor = transactionExecutorServiceProvider.get();
|
this.transactionExecutor = transactionExecutorServiceProvider.get();
|
||||||
|
|
||||||
@ -215,7 +205,12 @@ public abstract class SQLDB extends AbstractDatabase {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public abstract void setupDataSource() throws DBInitException;
|
/**
|
||||||
|
* Set up the source for connections.
|
||||||
|
*
|
||||||
|
* @throws DBInitException If the DataSource fails to be initialized.
|
||||||
|
*/
|
||||||
|
public abstract void setupDataSource();
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void close() {
|
public void close() {
|
||||||
|
@ -67,7 +67,7 @@ public class SQLiteDB extends SQLDB {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void setupDataSource() throws DBInitException {
|
public void setupDataSource() {
|
||||||
try {
|
try {
|
||||||
connection = getNewConnection(databaseFile);
|
connection = getNewConnection(databaseFile);
|
||||||
} catch (SQLException e) {
|
} catch (SQLException e) {
|
||||||
|
@ -16,7 +16,6 @@
|
|||||||
*/
|
*/
|
||||||
package com.djrapitops.plan.db;
|
package com.djrapitops.plan.db;
|
||||||
|
|
||||||
import com.djrapitops.plan.api.exceptions.database.DBInitException;
|
|
||||||
import com.djrapitops.plan.data.WebUser;
|
import com.djrapitops.plan.data.WebUser;
|
||||||
import com.djrapitops.plan.data.container.*;
|
import com.djrapitops.plan.data.container.*;
|
||||||
import com.djrapitops.plan.data.store.Key;
|
import com.djrapitops.plan.data.store.Key;
|
||||||
@ -154,13 +153,13 @@ public abstract class CommonDBTest {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
public void commitTest() throws DBInitException {
|
public void commitTest() {
|
||||||
db.close();
|
db.close();
|
||||||
db.init();
|
db.init();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testSaveCommandUse() throws DBInitException {
|
public void testSaveCommandUse() {
|
||||||
Map<String, Integer> expected = new HashMap<>();
|
Map<String, Integer> expected = new HashMap<>();
|
||||||
|
|
||||||
expected.put("plan", 1);
|
expected.put("plan", 1);
|
||||||
@ -181,7 +180,7 @@ public abstract class CommonDBTest {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void commandUsageSavingDoesNotCreateNewEntriesForOldCommands() throws DBInitException {
|
public void commandUsageSavingDoesNotCreateNewEntriesForOldCommands() {
|
||||||
Map<String, Integer> expected = new HashMap<>();
|
Map<String, Integer> expected = new HashMap<>();
|
||||||
|
|
||||||
expected.put("plan", 1);
|
expected.put("plan", 1);
|
||||||
@ -238,7 +237,7 @@ public abstract class CommonDBTest {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void geoInformationIsStored() throws DBInitException, NoSuchAlgorithmException {
|
public void geoInformationIsStored() throws NoSuchAlgorithmException {
|
||||||
saveUserOne();
|
saveUserOne();
|
||||||
|
|
||||||
String expectedIP = "1.2.3.4";
|
String expectedIP = "1.2.3.4";
|
||||||
@ -256,7 +255,7 @@ public abstract class CommonDBTest {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testNicknamesTable() throws DBInitException {
|
public void testNicknamesTable() {
|
||||||
saveUserOne();
|
saveUserOne();
|
||||||
|
|
||||||
Nickname expected = new Nickname("TestNickname", System.currentTimeMillis(), serverUUID);
|
Nickname expected = new Nickname("TestNickname", System.currentTimeMillis(), serverUUID);
|
||||||
@ -270,7 +269,7 @@ public abstract class CommonDBTest {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void webUserIsRegistered() throws DBInitException {
|
public void webUserIsRegistered() {
|
||||||
WebUser expected = new WebUser(TestConstants.PLAYER_ONE_NAME, "RandomGarbageBlah", 0);
|
WebUser expected = new WebUser(TestConstants.PLAYER_ONE_NAME, "RandomGarbageBlah", 0);
|
||||||
db.executeTransaction(new RegisterWebUserTransaction(expected));
|
db.executeTransaction(new RegisterWebUserTransaction(expected));
|
||||||
commitTest();
|
commitTest();
|
||||||
@ -281,20 +280,20 @@ public abstract class CommonDBTest {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void multipleWebUsersAreFetchedAppropriately() throws DBInitException {
|
public void multipleWebUsersAreFetchedAppropriately() {
|
||||||
webUserIsRegistered();
|
webUserIsRegistered();
|
||||||
assertEquals(1, db.query(WebUserQueries.fetchAllPlanWebUsers()).size());
|
assertEquals(1, db.query(WebUserQueries.fetchAllPlanWebUsers()).size());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void webUserIsRemoved() throws DBInitException {
|
public void webUserIsRemoved() {
|
||||||
webUserIsRegistered();
|
webUserIsRegistered();
|
||||||
db.executeTransaction(new RemoveWebUserTransaction(TestConstants.PLAYER_ONE_NAME));
|
db.executeTransaction(new RemoveWebUserTransaction(TestConstants.PLAYER_ONE_NAME));
|
||||||
assertFalse(db.query(WebUserQueries.fetchWebUser(TestConstants.PLAYER_ONE_NAME)).isPresent());
|
assertFalse(db.query(WebUserQueries.fetchWebUser(TestConstants.PLAYER_ONE_NAME)).isPresent());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void worldNamesAreStored() throws DBInitException {
|
public void worldNamesAreStored() {
|
||||||
String[] expected = {"Test", "Test2", "Test3"};
|
String[] expected = {"Test", "Test2", "Test3"};
|
||||||
saveWorlds(expected);
|
saveWorlds(expected);
|
||||||
|
|
||||||
@ -343,7 +342,7 @@ public abstract class CommonDBTest {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testSessionPlaytimeSaving() throws DBInitException {
|
public void testSessionPlaytimeSaving() {
|
||||||
saveTwoWorlds();
|
saveTwoWorlds();
|
||||||
saveUserOne();
|
saveUserOne();
|
||||||
saveUserTwo();
|
saveUserTwo();
|
||||||
@ -374,7 +373,7 @@ public abstract class CommonDBTest {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testSessionSaving() throws DBInitException {
|
public void testSessionSaving() {
|
||||||
saveUserOne();
|
saveUserOne();
|
||||||
saveUserTwo();
|
saveUserTwo();
|
||||||
|
|
||||||
@ -432,7 +431,7 @@ public abstract class CommonDBTest {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void playerNameIsUpdatedWhenPlayerLogsIn() throws DBInitException {
|
public void playerNameIsUpdatedWhenPlayerLogsIn() {
|
||||||
saveUserOne();
|
saveUserOne();
|
||||||
|
|
||||||
OptionalAssert.equals(playerUUID, db.query(UserIdentifierQueries.fetchPlayerUUIDOf(TestConstants.PLAYER_ONE_NAME)));
|
OptionalAssert.equals(playerUUID, db.query(UserIdentifierQueries.fetchPlayerUUIDOf(TestConstants.PLAYER_ONE_NAME)));
|
||||||
@ -447,7 +446,7 @@ public abstract class CommonDBTest {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testUsersTableKickSaving() throws DBInitException {
|
public void testUsersTableKickSaving() {
|
||||||
saveUserOne();
|
saveUserOne();
|
||||||
OptionalAssert.equals(1, db.query(BaseUserQueries.fetchBaseUserOfPlayer(playerUUID)).map(BaseUser::getTimesKicked));
|
OptionalAssert.equals(1, db.query(BaseUserQueries.fetchBaseUserOfPlayer(playerUUID)).map(BaseUser::getTimesKicked));
|
||||||
|
|
||||||
@ -568,7 +567,7 @@ public abstract class CommonDBTest {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testSessionTableGetInfoOfServer() throws DBInitException {
|
public void testSessionTableGetInfoOfServer() {
|
||||||
saveUserOne();
|
saveUserOne();
|
||||||
saveUserTwo();
|
saveUserTwo();
|
||||||
|
|
||||||
@ -606,7 +605,7 @@ public abstract class CommonDBTest {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testKillTableGetKillsOfServer() throws DBInitException {
|
public void testKillTableGetKillsOfServer() {
|
||||||
saveUserOne();
|
saveUserOne();
|
||||||
saveUserTwo();
|
saveUserTwo();
|
||||||
|
|
||||||
|
@ -16,7 +16,6 @@
|
|||||||
*/
|
*/
|
||||||
package com.djrapitops.plan.db;
|
package com.djrapitops.plan.db;
|
||||||
|
|
||||||
import com.djrapitops.plan.api.exceptions.database.DBInitException;
|
|
||||||
import com.djrapitops.plan.data.store.containers.ServerContainer;
|
import com.djrapitops.plan.data.store.containers.ServerContainer;
|
||||||
import com.djrapitops.plan.data.store.keys.ServerKeys;
|
import com.djrapitops.plan.data.store.keys.ServerKeys;
|
||||||
import com.djrapitops.plan.db.access.queries.containers.ContainerFetchQueries;
|
import com.djrapitops.plan.db.access.queries.containers.ContainerFetchQueries;
|
||||||
@ -66,7 +65,7 @@ public class DBPatchH2RegressionTest extends DBPatchRegressionTest {
|
|||||||
private H2DB underTest;
|
private H2DB underTest;
|
||||||
|
|
||||||
@Before
|
@Before
|
||||||
public void setUpDBWithOldSchema() throws DBInitException {
|
public void setUpDBWithOldSchema() {
|
||||||
PlanConfig config = component.getPlanSystem().getConfigSystem().getConfig();
|
PlanConfig config = component.getPlanSystem().getConfigSystem().getConfig();
|
||||||
|
|
||||||
config.set(DatabaseSettings.MYSQL_USER, "user");
|
config.set(DatabaseSettings.MYSQL_USER, "user");
|
||||||
|
@ -17,7 +17,6 @@
|
|||||||
package com.djrapitops.plan.db;
|
package com.djrapitops.plan.db;
|
||||||
|
|
||||||
import com.djrapitops.plan.api.exceptions.EnableException;
|
import com.djrapitops.plan.api.exceptions.EnableException;
|
||||||
import com.djrapitops.plan.api.exceptions.database.DBInitException;
|
|
||||||
import com.djrapitops.plan.data.store.containers.ServerContainer;
|
import com.djrapitops.plan.data.store.containers.ServerContainer;
|
||||||
import com.djrapitops.plan.data.store.keys.ServerKeys;
|
import com.djrapitops.plan.data.store.keys.ServerKeys;
|
||||||
import com.djrapitops.plan.db.access.queries.containers.ContainerFetchQueries;
|
import com.djrapitops.plan.db.access.queries.containers.ContainerFetchQueries;
|
||||||
@ -78,7 +77,7 @@ public class DBPatchMySQLRegressionTest extends DBPatchRegressionTest {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Before
|
@Before
|
||||||
public void setUpDBWithOldSchema() throws DBInitException, EnableException {
|
public void setUpDBWithOldSchema() throws EnableException {
|
||||||
PlanSystem system = component.getPlanSystem();
|
PlanSystem system = component.getPlanSystem();
|
||||||
PlanConfig config = system.getConfigSystem().getConfig();
|
PlanConfig config = system.getConfigSystem().getConfig();
|
||||||
config.set(DatabaseSettings.MYSQL_DATABASE, "Plan");
|
config.set(DatabaseSettings.MYSQL_DATABASE, "Plan");
|
||||||
|
@ -16,7 +16,6 @@
|
|||||||
*/
|
*/
|
||||||
package com.djrapitops.plan.db;
|
package com.djrapitops.plan.db;
|
||||||
|
|
||||||
import com.djrapitops.plan.api.exceptions.database.DBInitException;
|
|
||||||
import com.djrapitops.plan.data.store.containers.ServerContainer;
|
import com.djrapitops.plan.data.store.containers.ServerContainer;
|
||||||
import com.djrapitops.plan.data.store.keys.ServerKeys;
|
import com.djrapitops.plan.data.store.keys.ServerKeys;
|
||||||
import com.djrapitops.plan.db.access.queries.containers.ContainerFetchQueries;
|
import com.djrapitops.plan.db.access.queries.containers.ContainerFetchQueries;
|
||||||
@ -64,7 +63,7 @@ public class DBPatchSQLiteRegressionTest extends DBPatchRegressionTest {
|
|||||||
private SQLiteDB underTest;
|
private SQLiteDB underTest;
|
||||||
|
|
||||||
@Before
|
@Before
|
||||||
public void setUpDBWithOldSchema() throws DBInitException {
|
public void setUpDBWithOldSchema() {
|
||||||
underTest = component.getPlanSystem().getDatabaseSystem().getSqLiteFactory()
|
underTest = component.getPlanSystem().getDatabaseSystem().getSqLiteFactory()
|
||||||
.usingFileCalled("test");
|
.usingFileCalled("test");
|
||||||
underTest.setTransactionExecutorServiceProvider(MoreExecutors::newDirectExecutorService);
|
underTest.setTransactionExecutorServiceProvider(MoreExecutors::newDirectExecutorService);
|
||||||
|
@ -16,7 +16,6 @@
|
|||||||
*/
|
*/
|
||||||
package com.djrapitops.plan.db;
|
package com.djrapitops.plan.db;
|
||||||
|
|
||||||
import com.djrapitops.plan.api.exceptions.database.DBInitException;
|
|
||||||
import com.djrapitops.plan.data.container.GeoInfo;
|
import com.djrapitops.plan.data.container.GeoInfo;
|
||||||
import com.djrapitops.plan.db.access.queries.ServerAggregateQueries;
|
import com.djrapitops.plan.db.access.queries.ServerAggregateQueries;
|
||||||
import com.djrapitops.plan.db.access.queries.objects.ServerQueries;
|
import com.djrapitops.plan.db.access.queries.objects.ServerQueries;
|
||||||
@ -58,7 +57,7 @@ public class SQLiteTest extends CommonDBTest {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testServerTableBungeeSave() throws DBInitException {
|
public void testServerTableBungeeSave() {
|
||||||
Optional<Server> bungeeInfo = db.query(ServerQueries.fetchProxyServerInformation());
|
Optional<Server> bungeeInfo = db.query(ServerQueries.fetchProxyServerInformation());
|
||||||
assertFalse(bungeeInfo.isPresent());
|
assertFalse(bungeeInfo.isPresent());
|
||||||
|
|
||||||
@ -79,7 +78,7 @@ public class SQLiteTest extends CommonDBTest {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testServerTableBungee() throws DBInitException {
|
public void testServerTableBungee() {
|
||||||
testServerTableBungeeSave();
|
testServerTableBungeeSave();
|
||||||
|
|
||||||
Map<UUID, Server> serverInformation = db.query(ServerQueries.fetchPlanServerInformation());
|
Map<UUID, Server> serverInformation = db.query(ServerQueries.fetchPlanServerInformation());
|
||||||
|
@ -57,7 +57,7 @@ public class SpongeMySQLDB extends MySQLDB {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void setupDataSource() throws DBInitException {
|
public void setupDataSource() {
|
||||||
Optional<SqlService> sqlServiceProvider = Sponge.getServiceManager().provide(SqlService.class);
|
Optional<SqlService> sqlServiceProvider = Sponge.getServiceManager().provide(SqlService.class);
|
||||||
if (!sqlServiceProvider.isPresent()) {
|
if (!sqlServiceProvider.isPresent()) {
|
||||||
return;
|
return;
|
||||||
|
Loading…
Reference in New Issue
Block a user