Rename Page- & GeolocationCacheHandler -> -Cache

This commit is contained in:
Rsl1122 2017-08-24 11:09:29 +03:00
parent e74c19a28f
commit c4a55c6f8c
14 changed files with 107 additions and 68 deletions

View File

@ -36,7 +36,7 @@ import main.java.com.djrapitops.plan.database.databases.SQLiteDB;
import main.java.com.djrapitops.plan.locale.Locale;
import main.java.com.djrapitops.plan.locale.Msg;
import main.java.com.djrapitops.plan.systems.cache.DataCache;
import main.java.com.djrapitops.plan.systems.cache.PageCacheHandler;
import main.java.com.djrapitops.plan.systems.cache.PageCache;
import main.java.com.djrapitops.plan.systems.info.server.ServerInfoManager;
import main.java.com.djrapitops.plan.systems.listeners.*;
import main.java.com.djrapitops.plan.systems.processing.Processor;
@ -274,7 +274,7 @@ public class Plan extends BukkitPlugin<Plan> {
@Override
public void onDisable() {
//Clears the page cache
PageCacheHandler.clearCache();
PageCache.clearCache();
// Stop the UI Server
if (uiServer != null) {

View File

@ -19,7 +19,7 @@ import java.net.URL;
* @author Fuzzlemann
* @since 3.5.5
*/
public class GeolocationCacheHandler {
public class GeolocationCache {
private static final Cache<String, String> geolocationCache = CacheBuilder.newBuilder()
.build();
@ -27,7 +27,7 @@ public class GeolocationCacheHandler {
/**
* Constructor used to hide the public constructor
*/
private GeolocationCacheHandler() {
private GeolocationCache() {
throw new IllegalStateException("Utility class");
}

View File

@ -19,7 +19,7 @@ import java.util.function.Predicate;
* @author Fuzzlemann
* @since 3.6.0
*/
public class PageCacheHandler {
public class PageCache {
private static final Cache<String, Response> pageCache = CacheBuilder.newBuilder()
.build();
@ -27,7 +27,7 @@ public class PageCacheHandler {
/**
* Constructor used to hide the public constructor
*/
private PageCacheHandler() {
private PageCache() {
throw new IllegalStateException("Utility class");
}

View File

@ -4,6 +4,13 @@
*/
package main.java.com.djrapitops.plan.systems.info;
import main.java.com.djrapitops.plan.Plan;
import main.java.com.djrapitops.plan.database.Database;
import main.java.com.djrapitops.plan.systems.cache.DataCache;
import main.java.com.djrapitops.plan.systems.cache.SessionCache;
import java.util.UUID;
/**
* //TODO Class Javadoc Comment
*
@ -11,4 +18,36 @@ package main.java.com.djrapitops.plan.systems.info;
*/
public class InformationManager {
// TODO Class that manages ALL information for API, WebAPI requests, Command Caching etc.
private final Plan plugin;
private final Database db;
private final DataCache dataCache;
private final SessionCache sessionCache;
private String bungeeWebAddress;
public InformationManager(Plan plugin) {
this.plugin = plugin;
db = plugin.getDB();
plugin.getServerInfoManager().getBungeeConnectionAddress()
.ifPresent(address -> bungeeWebAddress = address);
dataCache = new DataCache(plugin);
sessionCache = new SessionCache(plugin);
if (bungeeWebAddress != null) {
attemptBungeeConnection();
}
}
public void attemptBungeeConnection() {
// TODO WebAPI bungee connection check
}
public void cachePlayer(UUID uuid) {
plugin.addToProcessQueue(); // TODO Player page information parser
// TODO Player page plugin tab request
}
}

View File

@ -6,7 +6,7 @@ package main.java.com.djrapitops.plan.systems.processing.player;
import main.java.com.djrapitops.plan.Log;
import main.java.com.djrapitops.plan.Plan;
import main.java.com.djrapitops.plan.systems.cache.GeolocationCacheHandler;
import main.java.com.djrapitops.plan.systems.cache.GeolocationCache;
import java.sql.SQLException;
import java.util.UUID;
@ -28,7 +28,7 @@ public class IPUpdateProcessor extends PlayerProcessor {
@Override
public void process() {
UUID uuid = getUUID();
String country = GeolocationCacheHandler.getCountry(ip);
String country = GeolocationCache.getCountry(ip);
try {
Plan.getInstance().getDB().getIpsTable().saveIP(uuid, ip, country);
} catch (SQLException e) {

View File

@ -5,7 +5,7 @@
package main.java.com.djrapitops.plan.systems.webapi.bukkit;
import main.java.com.djrapitops.plan.Plan;
import main.java.com.djrapitops.plan.systems.cache.PageCacheHandler;
import main.java.com.djrapitops.plan.systems.cache.PageCache;
import main.java.com.djrapitops.plan.systems.webapi.WebAPI;
import main.java.com.djrapitops.plan.systems.webserver.response.Response;
import main.java.com.djrapitops.plan.systems.webserver.response.api.BadRequestResponse;
@ -20,10 +20,10 @@ public class AnalyticsWebAPI implements WebAPI {
public Response onResponse(Plan plan, Map<String, String> variables) {
String identifier = "analysisJson";
if (!PageCacheHandler.isCached(identifier)) {
return PageCacheHandler.loadPage("No Analysis Data", () -> new BadRequestResponse("No analysis data available"));
if (!PageCache.isCached(identifier)) {
return PageCache.loadPage("No Analysis Data", () -> new BadRequestResponse("No analysis data available"));
}
return PageCacheHandler.loadPage(identifier);
return PageCache.loadPage(identifier);
}
}

View File

@ -5,7 +5,7 @@
package main.java.com.djrapitops.plan.systems.webapi.bukkit;
import main.java.com.djrapitops.plan.Plan;
import main.java.com.djrapitops.plan.systems.cache.PageCacheHandler;
import main.java.com.djrapitops.plan.systems.cache.PageCache;
import main.java.com.djrapitops.plan.systems.webapi.WebAPI;
import main.java.com.djrapitops.plan.systems.webserver.response.Response;
import main.java.com.djrapitops.plan.systems.webserver.response.api.SuccessResponse;
@ -19,6 +19,6 @@ public class AnalyzeWebAPI implements WebAPI {
@Override
public Response onResponse(Plan plan, Map<String, String> variables) {
// TODO plan.getAnalysisCache().updateCache();
return PageCacheHandler.loadPage("success", SuccessResponse::new);
return PageCache.loadPage("success", SuccessResponse::new);
}
}

View File

@ -5,7 +5,7 @@
package main.java.com.djrapitops.plan.systems.webapi.bukkit;
import main.java.com.djrapitops.plan.Plan;
import main.java.com.djrapitops.plan.systems.cache.PageCacheHandler;
import main.java.com.djrapitops.plan.systems.cache.PageCache;
import main.java.com.djrapitops.plan.systems.webapi.WebAPI;
import main.java.com.djrapitops.plan.systems.webserver.response.Response;
import main.java.com.djrapitops.plan.systems.webserver.response.api.BadRequestResponse;
@ -24,14 +24,14 @@ public class ConfigureWebAPI implements WebAPI {
if (key == null) {
String error = "Config Key null";
return PageCacheHandler.loadPage(error, () -> new BadRequestResponse(error));
return PageCache.loadPage(error, () -> new BadRequestResponse(error));
}
String value = variables.get("configValue");
if (value == null) {
String error = "Config Value null";
return PageCacheHandler.loadPage(error, () -> new BadRequestResponse(error));
return PageCache.loadPage(error, () -> new BadRequestResponse(error));
}
if (value.equals("null")) {
@ -42,6 +42,6 @@ public class ConfigureWebAPI implements WebAPI {
config.set(key, value);
plan.saveConfig();
return PageCacheHandler.loadPage("success", SuccessResponse::new);
return PageCache.loadPage("success", SuccessResponse::new);
}
}

View File

@ -5,7 +5,7 @@
package main.java.com.djrapitops.plan.systems.webapi.bukkit;
import main.java.com.djrapitops.plan.Plan;
import main.java.com.djrapitops.plan.systems.cache.PageCacheHandler;
import main.java.com.djrapitops.plan.systems.cache.PageCache;
import main.java.com.djrapitops.plan.systems.webapi.WebAPI;
import main.java.com.djrapitops.plan.systems.webserver.response.Response;
import main.java.com.djrapitops.plan.systems.webserver.response.api.BadRequestResponse;
@ -25,18 +25,18 @@ public class InspectWebAPI implements WebAPI {
if (playerString == null) {
String error = "Player String not included";
return PageCacheHandler.loadPage(error, () -> new BadRequestResponse(error));
return PageCache.loadPage(error, () -> new BadRequestResponse(error));
}
UUID uuid = UUIDUtility.getUUIDOf(playerString);
if (uuid == null) {
String error = "UUID not found";
return PageCacheHandler.loadPage(error, () -> new BadRequestResponse(error));
return PageCache.loadPage(error, () -> new BadRequestResponse(error));
}
// TODO plan.getInspectCache().cache(uuid);
return PageCacheHandler.loadPage("success", SuccessResponse::new);
return PageCache.loadPage("success", SuccessResponse::new);
}
}

View File

@ -9,7 +9,7 @@ import main.java.com.djrapitops.plan.data.WebUser;
import main.java.com.djrapitops.plan.database.tables.SecurityTable;
import main.java.com.djrapitops.plan.locale.Locale;
import main.java.com.djrapitops.plan.locale.Msg;
import main.java.com.djrapitops.plan.systems.cache.PageCacheHandler;
import main.java.com.djrapitops.plan.systems.cache.PageCache;
import main.java.com.djrapitops.plan.systems.webapi.WebAPI;
import main.java.com.djrapitops.plan.systems.webapi.WebAPIManager;
import main.java.com.djrapitops.plan.systems.webserver.response.*;
@ -295,7 +295,7 @@ public class WebServer {
if (args.length < 3) {
String error = "API Method not specified";
return PageCacheHandler.loadPage(error, () -> new BadRequestResponse(error));
return PageCache.loadPage(error, () -> new BadRequestResponse(error));
}
String method = args[2];
@ -304,7 +304,7 @@ public class WebServer {
if (response == null) {
String error = "Error at reading the POST request." +
"Note that the Encoding must be ISO-8859-1.";
return PageCacheHandler.loadPage(error, () -> new BadRequestResponse(error));
return PageCache.loadPage(error, () -> new BadRequestResponse(error));
}
Map<String, String> variables = readVariables(response);
@ -314,7 +314,7 @@ public class WebServer {
if (!checkKey(plan, key)) {
String error = "Server Key not given or invalid";
return PageCacheHandler.loadPage(error, () -> {
return PageCache.loadPage(error, () -> {
ForbiddenResponse forbidden = new ForbiddenResponse();
forbidden.setContent(error);
return forbidden;
@ -325,7 +325,7 @@ public class WebServer {
if (api == null) {
String error = "API Method not found";
return PageCacheHandler.loadPage(error, () -> new BadRequestResponse(error));
return PageCache.loadPage(error, () -> new BadRequestResponse(error));
}
try {
@ -359,12 +359,12 @@ public class WebServer {
private Response getResponse(String target, WebUser user) {
if ("/favicon.ico".equals(target)) {
return PageCacheHandler.loadPage("Redirect: favicon", () -> new RedirectResponse("https://puu.sh/tK0KL/6aa2ba141b.ico"));
return PageCache.loadPage("Redirect: favicon", () -> new RedirectResponse("https://puu.sh/tK0KL/6aa2ba141b.ico"));
}
if (usingHttps) {
if (user == null) {
return PageCacheHandler.loadPage("promptAuthorization", PromptAuthorizationResponse::new);
return PageCache.loadPage("promptAuthorization", PromptAuthorizationResponse::new);
}
int permLevel = user.getPermLevel(); // Lower number has higher clearance.
@ -396,7 +396,7 @@ public class WebServer {
String page = args[1];
switch (page) {
case "players":
return PageCacheHandler.loadPage("players", () -> new PlayersPageResponse(plugin));
return PageCache.loadPage("players", () -> new PlayersPageResponse(plugin));
case "player":
return playerResponse(args);
case "server":
@ -415,7 +415,7 @@ public class WebServer {
}
private Response forbiddenResponse(int permLevel, int required) {
return PageCacheHandler.loadPage("forbidden", () -> {
return PageCache.loadPage("forbidden", () -> {
ForbiddenResponse response403 = new ForbiddenResponse();
String content = "<h1>403 Forbidden - Access Denied</h1>"
+ "<p>Unauthorized User.<br>"
@ -436,7 +436,7 @@ public class WebServer {
case 0:
return serverResponse();
case 1:
return PageCacheHandler.loadPage("players", () -> new PlayersPageResponse(plugin));
return PageCache.loadPage("players", () -> new PlayersPageResponse(plugin));
case 2:
return playerResponse(new String[]{"", "", user.getName()});
default:
@ -447,15 +447,15 @@ public class WebServer {
private Response serverResponse() {
if (!dataReqHandler.checkIfAnalysisIsCached()) {
String error = "Analysis Data was not cached.<br>Use /plan analyze to cache the Data.";
PageCacheHandler.loadPage("notFound: " + error, () -> new NotFoundResponse(error));
PageCache.loadPage("notFound: " + error, () -> new NotFoundResponse(error));
}
return PageCacheHandler.loadPage("analysisPage", () -> new AnalysisPageResponse(dataReqHandler));
return PageCache.loadPage("analysisPage", () -> new AnalysisPageResponse(dataReqHandler));
}
private Response playerResponse(String[] args) {
if (args.length < 3) {
return PageCacheHandler.loadPage("notFound", NotFoundResponse::new);
return PageCache.loadPage("notFound", NotFoundResponse::new);
}
String playerName = args[2].trim();
@ -463,15 +463,15 @@ public class WebServer {
if (uuid == null) {
String error = "Player has no UUID";
return PageCacheHandler.loadPage("notFound: " + error, () -> new NotFoundResponse(error));
return PageCache.loadPage("notFound: " + error, () -> new NotFoundResponse(error));
}
if (!dataReqHandler.checkIfCached(uuid)) {
String error = "Player's data was not cached.<br>Use /plan inspect " + playerName + " to cache the Data.";
return PageCacheHandler.loadPage("notFound: " + error, () -> new NotFoundResponse(error));
return PageCache.loadPage("notFound: " + error, () -> new NotFoundResponse(error));
}
return PageCacheHandler.loadPage("inspectPage: " + uuid, () -> new InspectPageResponse(dataReqHandler, uuid));
return PageCache.loadPage("inspectPage: " + uuid, () -> new InspectPageResponse(dataReqHandler, uuid));
}
private Response notFoundResponse() {
@ -480,7 +480,7 @@ public class WebServer {
+ "<p>" + getProtocol() + HtmlUtils.getInspectUrl("<player>") + " or<br>"
+ getProtocol() + HtmlUtils.getServerAnalysisUrl() + "</p>";
return PageCacheHandler.loadPage("notFound: " + error, () -> {
return PageCache.loadPage("notFound: " + error, () -> {
Response response404 = new NotFoundResponse();
response404.setContent(error);
return response404;

View File

@ -22,24 +22,24 @@ public class InspectionWebAPI implements WebAPI {
//
// if (playerString == null) {
// String error = "Player String not included";
// return PageCacheHandler.loadPage(error, () -> new BadRequestResponse(error));
// return PageCache.loadPage(error, () -> new BadRequestResponse(error));
// }
//
// UUID uuid = UUIDUtility.getUUIDOf(playerString);
//
// if (uuid == null) {
// String error = "UUID not found";
// return PageCacheHandler.loadPage(error, () -> new BadRequestResponse(error));
// return PageCache.loadPage(error, () -> new BadRequestResponse(error));
// }
//
// UserInfo userInfo = plan.getInspectCache().getFromCache(uuid);
//
// if (userInfo == null) {
// String error = "User not cached";
// return PageCacheHandler.loadPage(error, () -> new BadRequestResponse(error));
// return PageCache.loadPage(error, () -> new BadRequestResponse(error));
// }
//
// return PageCacheHandler.loadPage("inspectionJson: " + uuid, () -> new JsonResponse(plan.getInspectCache().getFromCache(uuid)));
// return PageCache.loadPage("inspectionJson: " + uuid, () -> new JsonResponse(plan.getInspectCache().getFromCache(uuid)));
return new BadRequestResponse("Not implemented");
}
}

View File

@ -15,7 +15,7 @@ import main.java.com.djrapitops.plan.database.Database;
import main.java.com.djrapitops.plan.locale.Locale;
import main.java.com.djrapitops.plan.locale.Msg;
import main.java.com.djrapitops.plan.systems.cache.DataCache;
import main.java.com.djrapitops.plan.systems.cache.PageCacheHandler;
import main.java.com.djrapitops.plan.systems.cache.PageCache;
import main.java.com.djrapitops.plan.systems.webserver.response.AnalysisPageResponse;
import main.java.com.djrapitops.plan.systems.webserver.response.PlayersPageResponse;
import main.java.com.djrapitops.plan.systems.webserver.response.api.JsonResponse;
@ -150,10 +150,10 @@ public class Analysis {
Log.info(Locale.get(Msg.ANALYSIS_FINISHED).parse(String.valueOf(time), HtmlUtils.getServerAnalysisUrlWithProtocol()));
PageCacheHandler.removeIf(identifier -> identifier.startsWith("inspectPage: ") || identifier.startsWith("inspectionJson: "));
PageCacheHandler.cachePage("analysisPage", () -> new AnalysisPageResponse(plugin.getUiServer().getDataReqHandler()));
PageCacheHandler.cachePage("analysisJson", () -> new JsonResponse(analysisData));
PageCacheHandler.cachePage("players", () -> new PlayersPageResponse(plugin));
PageCache.removeIf(identifier -> identifier.startsWith("inspectPage: ") || identifier.startsWith("inspectionJson: "));
PageCache.cachePage("analysisPage", () -> new AnalysisPageResponse(plugin.getUiServer().getDataReqHandler()));
PageCache.cachePage("analysisJson", () -> new JsonResponse(analysisData));
PageCache.cachePage("players", () -> new PlayersPageResponse(plugin));
// TODO Export
// ExportUtility.export(analysisData, rawData);

View File

@ -1,6 +1,6 @@
package test.java.main.java.com.djrapitops.plan.data.cache;
import main.java.com.djrapitops.plan.systems.cache.GeolocationCacheHandler;
import main.java.com.djrapitops.plan.systems.cache.GeolocationCache;
import org.bukkit.plugin.java.JavaPlugin;
import org.junit.Before;
import org.junit.Test;
@ -25,7 +25,7 @@ public class GeolocationCacheTest {
@Before
public void setUp() {
GeolocationCacheHandler.clearCache();
GeolocationCache.clearCache();
ipsToCountries.put("8.8.8.8", "United States");
ipsToCountries.put("8.8.4.4", "United States");
ipsToCountries.put("4.4.2.2", "United States");
@ -45,7 +45,7 @@ public class GeolocationCacheTest {
String ip = entry.getKey();
String expCountry = entry.getValue();
String country = GeolocationCacheHandler.getCountry(ip);
String country = GeolocationCache.getCountry(ip);
assertEquals(country, expCountry);
}
@ -59,11 +59,11 @@ public class GeolocationCacheTest {
String ip = entry.getKey();
String expIp = entry.getValue();
assertFalse(GeolocationCacheHandler.isCached(ip));
String countrySecondCall = GeolocationCacheHandler.getCountry(ip);
assertTrue(GeolocationCacheHandler.isCached(ip));
assertFalse(GeolocationCache.isCached(ip));
String countrySecondCall = GeolocationCache.getCountry(ip);
assertTrue(GeolocationCache.isCached(ip));
String countryThirdCall = GeolocationCacheHandler.getCountry(ip);
String countryThirdCall = GeolocationCache.getCountry(ip);
assertEquals(countrySecondCall, countryThirdCall);
assertEquals(countryThirdCall, expIp);

View File

@ -1,6 +1,6 @@
package test.java.main.java.com.djrapitops.plan.data.cache;
import main.java.com.djrapitops.plan.systems.cache.PageCacheHandler;
import main.java.com.djrapitops.plan.systems.cache.PageCache;
import main.java.com.djrapitops.plan.systems.cache.PageLoader;
import main.java.com.djrapitops.plan.systems.webserver.response.Response;
import org.junit.Test;
@ -11,7 +11,7 @@ import static junit.framework.TestCase.*;
/**
* @author Fuzzlemann
*/
public class PageCacheHandlerTest {
public class PageCacheTest {
private final String IDENTIFIER = RandomData.randomString(10);
private final String RESPONSE_STRING = RandomData.randomString(10);
private final Response RESPONSE = new Response() {
@ -34,29 +34,29 @@ public class PageCacheHandlerTest {
public void testCache() {
Response expResponse = LOADER.createResponse();
assertFalse(PageCacheHandler.isCached(IDENTIFIER));
assertFalse(PageCache.isCached(IDENTIFIER));
Response response = PageCacheHandler.loadPage(IDENTIFIER, LOADER);
assertTrue(PageCacheHandler.isCached(IDENTIFIER));
Response response = PageCache.loadPage(IDENTIFIER, LOADER);
assertTrue(PageCache.isCached(IDENTIFIER));
assertEquals(expResponse, response);
}
@Test
public void testClearCache() {
PageCacheHandler.cachePage(IDENTIFIER, LOADER);
assertTrue(PageCacheHandler.isCached(IDENTIFIER));
PageCache.cachePage(IDENTIFIER, LOADER);
assertTrue(PageCache.isCached(IDENTIFIER));
PageCacheHandler.clearCache();
assertFalse(PageCacheHandler.isCached(IDENTIFIER));
PageCache.clearCache();
assertFalse(PageCache.isCached(IDENTIFIER));
}
@Test
public void testRemoveIf() {
PageCacheHandler.cachePage(IDENTIFIER, LOADER);
assertTrue(PageCacheHandler.isCached(IDENTIFIER));
PageCache.cachePage(IDENTIFIER, LOADER);
assertTrue(PageCache.isCached(IDENTIFIER));
PageCacheHandler.removeIf(identifier -> identifier.equals(IDENTIFIER));
assertFalse(PageCacheHandler.isCached(IDENTIFIER));
PageCache.removeIf(identifier -> identifier.equals(IDENTIFIER));
assertFalse(PageCache.isCached(IDENTIFIER));
}
}