Removed redundant stuff about MySQL page transfer

This commit is contained in:
Rsl1122 2018-04-02 11:35:01 +03:00
parent bf77d6edfa
commit fb994264e7
5 changed files with 3 additions and 255 deletions

View File

@ -6,7 +6,6 @@ package com.djrapitops.plan.system.database.databases.operation;
import com.djrapitops.plan.api.exceptions.database.DBException; import com.djrapitops.plan.api.exceptions.database.DBException;
import java.util.Map;
import java.util.Optional; import java.util.Optional;
import java.util.UUID; import java.util.UUID;
@ -21,28 +20,10 @@ public interface TransferOperations {
// Save // Save
@Deprecated
void storePlayerHtml(UUID player, String encodedHtml) throws DBException;
@Deprecated
void storeServerHtml(UUID serverUUID, String encodedHtml) throws DBException;
@Deprecated
void storeNetworkPageContent(UUID serverUUID, String encodedHtml) throws DBException;
void storeConfigSettings(String encodedSettingString) throws DBException; void storeConfigSettings(String encodedSettingString) throws DBException;
// Get // Get
@Deprecated
Map<UUID, String> getEncodedPlayerHtml() throws DBException;
@Deprecated
Map<UUID, String> getEncodedNetworkPageContent() throws DBException;
@Deprecated
Map<UUID, String> getEncodedServerHtml() throws DBException;
@Deprecated @Deprecated
Optional<UUID> getServerPlayerIsOnlineOn(UUID playerUUID) throws DBException; Optional<UUID> getServerPlayerIsOnlineOn(UUID playerUUID) throws DBException;

View File

@ -9,7 +9,6 @@ import com.djrapitops.plan.system.database.databases.operation.TransferOperation
import com.djrapitops.plan.system.database.databases.sql.SQLDB; import com.djrapitops.plan.system.database.databases.sql.SQLDB;
import java.sql.SQLException; import java.sql.SQLException;
import java.util.Map;
import java.util.Optional; import java.util.Optional;
import java.util.UUID; import java.util.UUID;
@ -24,60 +23,6 @@ public class SQLTransferOps extends SQLOps implements TransferOperations {
super(db); super(db);
} }
@Override
public void storePlayerHtml(UUID player, String encodedHtml) throws DBException {
try {
transferTable.storePlayerHtml(player, encodedHtml);
} catch (SQLException e) {
throw SQLErrorUtil.getExceptionFor(e);
}
}
@Override
public void storeServerHtml(UUID serverUUID, String encodedHtml) throws DBException {
try {
transferTable.storeServerHtml(serverUUID, encodedHtml);
} catch (SQLException e) {
throw SQLErrorUtil.getExceptionFor(e);
}
}
@Override
public void storeNetworkPageContent(UUID serverUUID, String encodedHtml) throws DBException {
try {
transferTable.storeNetworkPageContent(serverUUID, encodedHtml);
} catch (SQLException e) {
throw SQLErrorUtil.getExceptionFor(e);
}
}
@Override
public Map<UUID, String> getEncodedPlayerHtml() throws DBException {
try {
return transferTable.getPlayerHtml();
} catch (SQLException e) {
throw SQLErrorUtil.getExceptionFor(e);
}
}
@Override
public Map<UUID, String> getEncodedNetworkPageContent() throws DBException {
try {
return transferTable.getNetworkPageContent();
} catch (SQLException e) {
throw SQLErrorUtil.getExceptionFor(e);
}
}
@Override
public Map<UUID, String> getEncodedServerHtml() throws DBException {
try {
return transferTable.getServerHtml();
} catch (SQLException e) {
throw SQLErrorUtil.getExceptionFor(e);
}
}
@Override @Override
public Optional<UUID> getServerPlayerIsOnlineOn(UUID playerUUID) throws DBException { public Optional<UUID> getServerPlayerIsOnlineOn(UUID playerUUID) throws DBException {
try { try {

View File

@ -11,19 +11,15 @@ import com.djrapitops.plan.system.database.databases.sql.processing.QueryStateme
import com.djrapitops.plan.system.database.databases.sql.statements.Column; import com.djrapitops.plan.system.database.databases.sql.statements.Column;
import com.djrapitops.plan.system.database.databases.sql.statements.Sql; import com.djrapitops.plan.system.database.databases.sql.statements.Sql;
import com.djrapitops.plan.system.database.databases.sql.statements.TableSqlParser; import com.djrapitops.plan.system.database.databases.sql.statements.TableSqlParser;
import com.djrapitops.plan.system.info.request.CacheAnalysisPageRequest;
import com.djrapitops.plan.system.info.request.CacheInspectPageRequest;
import com.djrapitops.plan.system.info.request.CacheInspectPluginsTabRequest;
import com.djrapitops.plan.system.info.request.CacheNetworkPageContentRequest;
import com.djrapitops.plan.system.info.server.ServerInfo; import com.djrapitops.plan.system.info.server.ServerInfo;
import com.djrapitops.plan.utilities.Base64Util;
import com.djrapitops.plan.utilities.MiscUtils; import com.djrapitops.plan.utilities.MiscUtils;
import com.djrapitops.plugin.api.TimeAmount; import com.djrapitops.plugin.api.TimeAmount;
import java.sql.PreparedStatement; import java.sql.PreparedStatement;
import java.sql.ResultSet; import java.sql.ResultSet;
import java.sql.SQLException; import java.sql.SQLException;
import java.util.*; import java.util.Optional;
import java.util.UUID;
/** /**
* Table that is in charge of transferring data between network servers. * Table that is in charge of transferring data between network servers.
@ -116,142 +112,6 @@ public class TransferTable extends Table {
}); });
} }
public void storePlayerHtml(UUID player, String encodedHtml) throws SQLException {
execute(new ExecStatement(insertStatementNoParts) {
@Override
public void prepare(PreparedStatement statement) throws SQLException {
statement.setString(1, ServerInfo.getServerUUID().toString());
statement.setLong(2, MiscUtils.getTime() + TimeAmount.MINUTE.ms());
statement.setString(3, CacheInspectPageRequest.class.getSimpleName().toLowerCase());
statement.setString(4, player.toString());
statement.setString(5, encodedHtml);
}
});
}
public void storeServerHtml(UUID serverUUID, String encodedHtml) throws SQLException {
List<String> split = Base64Util.split(encodedHtml, 500000L);
int i = 0;
long expires = MiscUtils.getTime() + TimeAmount.MINUTE.ms();
for (String part : split) {
final int partNumber = i;
execute(new ExecStatement(insertStatementParts) {
@Override
public void prepare(PreparedStatement statement) throws SQLException {
statement.setString(1, ServerInfo.getServerUUID().toString());
statement.setLong(2, expires);
statement.setString(3, CacheAnalysisPageRequest.class.getSimpleName().toLowerCase());
statement.setString(4, serverUUID.toString());
statement.setString(5, part);
statement.setInt(6, partNumber);
}
});
i++;
}
}
public void storeNetworkPageContent(UUID serverUUID, String encodedHtml) throws SQLException {
execute(new ExecStatement(insertStatementNoParts) {
@Override
public void prepare(PreparedStatement statement) throws SQLException {
statement.setString(1, ServerInfo.getServerUUID().toString());
statement.setLong(2, MiscUtils.getTime() + TimeAmount.MINUTE.ms());
statement.setString(3, CacheNetworkPageContentRequest.class.getSimpleName().toLowerCase());
statement.setString(4, serverUUID.toString());
statement.setString(5, encodedHtml);
}
});
}
private Map<UUID, String> getHtmlPerUUIDForCacheRequest(Class c) throws SQLException {
return query(new QueryStatement<Map<UUID, String>>(selectStatement, 250) {
@Override
public void prepare(PreparedStatement statement) throws SQLException {
statement.setString(1, c.getSimpleName().toLowerCase());
statement.setLong(2, MiscUtils.getTime());
}
@Override
public Map<UUID, String> processResults(ResultSet set) throws SQLException {
Map<UUID, String> htmlPerUUID = new HashMap<>();
Map<UUID, Long> expiry = new HashMap<>();
while (set.next()) {
String uuidString = set.getString(Col.EXTRA_VARIABLES.get());
UUID uuid = UUID.fromString(uuidString);
long expires = set.getLong(Col.EXPIRY.get());
long correctExpiry = expiry.getOrDefault(uuid, expires);
if (expires == correctExpiry) {
htmlPerUUID.put(uuid, htmlPerUUID.getOrDefault(uuid, "") + set.getString(Col.CONTENT.get()));
expiry.put(uuid, correctExpiry);
}
}
return htmlPerUUID;
}
});
}
public void storePlayerPluginsTab(UUID player, String encodedHtml) throws SQLException {
execute(new ExecStatement(insertStatementNoParts) {
@Override
public void prepare(PreparedStatement statement) throws SQLException {
statement.setString(1, ServerInfo.getServerUUID().toString());
statement.setLong(2, MiscUtils.getTime() + TimeAmount.MINUTE.ms());
statement.setString(3, CacheInspectPluginsTabRequest.class.getSimpleName().toLowerCase());
statement.setString(4, player.toString());
statement.setString(5, encodedHtml);
}
});
}
public Map<UUID, String> getPlayerHtml() throws SQLException {
return getHtmlPerUUIDForCacheRequest(CacheInspectPageRequest.class);
}
public Map<UUID, String> getNetworkPageContent() throws SQLException {
return getHtmlPerUUIDForCacheRequest(CacheNetworkPageContentRequest.class);
}
public Map<UUID, String> getServerHtml() throws SQLException {
return getHtmlPerUUIDForCacheRequest(CacheAnalysisPageRequest.class);
}
public Map<UUID, String> getPlayerPluginsTabs(UUID playerUUID) throws SQLException {
String serverIDColumn = serverTable + "." + ServerTable.Col.SERVER_ID;
String serverUUIDColumn = serverTable + "." + ServerTable.Col.SERVER_UUID + " as s_uuid";
String sql = "SELECT " +
Col.CONTENT + ", " +
serverUUIDColumn +
" FROM " + tableName +
" INNER JOIN " + serverTable + " on " + serverIDColumn + "=" + Col.SENDER_ID +
" WHERE " + Col.INFO_TYPE + "= ?" +
" AND " + Col.EXPIRY + "> ?" +
" AND " + Col.EXTRA_VARIABLES + "=?";
return query(new QueryStatement<Map<UUID, String>>(sql, 250) {
@Override
public void prepare(PreparedStatement statement) throws SQLException {
statement.setString(1, CacheInspectPluginsTabRequest.class.getSimpleName().toLowerCase());
statement.setLong(2, MiscUtils.getTime());
statement.setString(3, playerUUID.toString());
}
@Override
public Map<UUID, String> processResults(ResultSet set) throws SQLException {
Map<UUID, String> htmlPerUUID = new HashMap<>();
while (set.next()) {
UUID serverUUID = UUID.fromString(set.getString("s_uuid"));
String html64 = set.getString(Col.CONTENT.get());
htmlPerUUID.put(serverUUID, html64);
}
return htmlPerUUID;
}
});
}
@Deprecated @Deprecated
public Optional<UUID> getServerPlayerIsOnline(UUID playerUUID) throws SQLException { public Optional<UUID> getServerPlayerIsOnline(UUID playerUUID) throws SQLException {
String serverIDColumn = serverTable + "." + ServerTable.Col.SERVER_ID; String serverIDColumn = serverTable + "." + ServerTable.Col.SERVER_ID;
@ -279,20 +139,6 @@ public class TransferTable extends Table {
}); });
} }
@Deprecated
public void storePlayerOnlineOnThisServer(UUID playerUUID) throws SQLException {
execute(new ExecStatement(insertStatementNoParts) {
@Override
public void prepare(PreparedStatement statement) throws SQLException {
statement.setString(1, ServerInfo.getServerUUID().toString());
statement.setLong(2, MiscUtils.getTime() + TimeAmount.MINUTE.ms());
statement.setString(3, "onlineStatus");
statement.setString(4, playerUUID.toString());
statement.setString(5, null);
}
});
}
public void storeConfigSettings(String encodedSettingString) throws SQLException { public void storeConfigSettings(String encodedSettingString) throws SQLException {
execute(new ExecStatement(insertStatementNoParts) { execute(new ExecStatement(insertStatementNoParts) {
@Override @Override

View File

@ -48,8 +48,7 @@ public class NetworkPageContent extends Response {
"data-container=\"body\" data-html=\"true\" " + "data-container=\"body\" data-html=\"true\" " +
"data-original-title=\"No Servers\" " + "data-original-title=\"No Servers\" " +
"data-content=\"This is displayed when no servers have sent server information to Bungee." + "data-content=\"This is displayed when no servers have sent server information to Bungee." +
"<br><br>You can try debugging the cause by using /planbungee con & /plan m con" + "<br><br>You can try debugging the cause by using /planbungee con & /plan m con\"" +
"<br><br>If MySQL max_packet_size is too small that may cause page transfer to fail.\"" +
">help_outline</a></div></div></div>" + ">help_outline</a></div></div></div>" +
"<div class=\"body\">" + "<div class=\"body\">" +
"<p>No Servers have sent information to Bungee.</p>" + "<p>No Servers have sent information to Bungee.</p>" +

View File

@ -897,29 +897,6 @@ public class SQLiteTest {
assertEquals(testString, Base64Util.decode(configSettings.get())); assertEquals(testString, Base64Util.decode(configSettings.get()));
} }
@Test
public void testTransferSplitAndRearrange() throws SQLException {
StringBuilder testData = new StringBuilder();
for (int i = 0; i < 900000; i++) {
testData.append("a");
}
String testString = Base64Util.encode(testData.toString());
int length = testString.length();
System.out.println("Test String Length: " + length);
assertTrue(length > 500000);
System.out.println("Test Parts: " + (int) Math.ceil(length / 500000.0));
TransferTable transferTable = db.getTransferTable();
transferTable.storeServerHtml(TestConstants.SERVER_UUID, testString);
String result = transferTable.getServerHtml().get(TestConstants.SERVER_UUID);
assertNotNull(result);
assertEquals(testString, result);
}
@Test @Test
public void testGetNetworkGeolocations() throws SQLException { public void testGetNetworkGeolocations() throws SQLException {
GeoInfoTable geoInfoTable = db.getGeoInfoTable(); GeoInfoTable geoInfoTable = db.getGeoInfoTable();