From 20df1264adfddc77610994efe9e7022e15e17008 Mon Sep 17 00:00:00 2001 From: Rsl1122 Date: Tue, 6 Aug 2019 08:11:05 +0300 Subject: [PATCH] Added gson as dependency --- Plan/build.gradle | 1 + Plan/common/build.gradle | 4 +++- .../pages/json/GraphsJSONHandler.java | 6 +++--- .../pages/json/PlayerJSONHandler.java | 2 +- .../pages/json/PlayerKillsJSONHandler.java | 2 +- .../pages/json/ServerTabJSONHandler.java | 2 +- .../pages/json/SessionsJSONHandler.java | 2 +- .../webserver/response/data/JSONResponse.java | 21 +++++++------------ .../response/pages/RawDataResponse.java | 2 +- 9 files changed, 20 insertions(+), 22 deletions(-) diff --git a/Plan/build.gradle b/Plan/build.gradle index e9ce86285..af8bcab52 100644 --- a/Plan/build.gradle +++ b/Plan/build.gradle @@ -76,6 +76,7 @@ subprojects { ext.hikariVersion = "3.3.1" ext.slf4jVersion = "1.7.28" ext.geoIpVersion = "2.12.0" + ext.gsonVersion = "2.8.5" ext.guavaVersion = "28.0-jre" ext.bstatsVersion = "1.4" diff --git a/Plan/common/build.gradle b/Plan/common/build.gradle index 983d891c1..1a6ce3a96 100644 --- a/Plan/common/build.gradle +++ b/Plan/common/build.gradle @@ -13,10 +13,11 @@ dependencies { compile "org.slf4j:slf4j-nop:$slf4jVersion" compile "org.slf4j:slf4j-api:$slf4jVersion" compile "com.maxmind.geoip2:geoip2:$geoIpVersion" + compile "com.google.code.gson:gson:$gsonVersion" compileOnly "com.google.guava:guava:$guavaVersion" testCompile project(":api") - testCompile "com.google.code.gson:gson:2.8.5" + testCompile "com.google.code.gson:gson:$gsonVersion" } shadowJar { @@ -41,6 +42,7 @@ shadowJar { relocate 'com.zaxxer', 'plan.com.zaxxer' relocate 'com.github.benmanes', 'plan.com.github.benmanes' relocate 'com.googlecode', 'plan.com.googlecode' + relocate 'com.google', 'plan.com.google' relocate 'org.h2', 'plan.org.h2' relocate 'org.bstats', 'plan.org.bstats' relocate 'org.slf4j', 'plan.org.slf4j' diff --git a/Plan/common/src/main/java/com/djrapitops/plan/system/webserver/pages/json/GraphsJSONHandler.java b/Plan/common/src/main/java/com/djrapitops/plan/system/webserver/pages/json/GraphsJSONHandler.java index bb2a33353..b5d2141fe 100644 --- a/Plan/common/src/main/java/com/djrapitops/plan/system/webserver/pages/json/GraphsJSONHandler.java +++ b/Plan/common/src/main/java/com/djrapitops/plan/system/webserver/pages/json/GraphsJSONHandler.java @@ -69,11 +69,11 @@ public class GraphsJSONHandler implements PageHandler { case "serverCalendar": return new JSONResponse(graphJSON.serverCalendarJSON(serverUUID)); case "worldPie": - return new JSONResponse<>(graphJSON.serverWorldPieJSONAsMap(serverUUID)); + return new JSONResponse(graphJSON.serverWorldPieJSONAsMap(serverUUID)); case "activity": - return new JSONResponse<>(graphJSON.activityGraphsJSONAsMap(serverUUID)); + return new JSONResponse(graphJSON.activityGraphsJSONAsMap(serverUUID)); case "geolocation": - return new JSONResponse<>(graphJSON.geolocationGraphsJSONAsMap(serverUUID)); + return new JSONResponse(graphJSON.geolocationGraphsJSONAsMap(serverUUID)); case "ping": return new JSONResponse(graphJSON.pingGraphsJSON(serverUUID)); default: diff --git a/Plan/common/src/main/java/com/djrapitops/plan/system/webserver/pages/json/PlayerJSONHandler.java b/Plan/common/src/main/java/com/djrapitops/plan/system/webserver/pages/json/PlayerJSONHandler.java index 8383cf19f..10c64d0e7 100644 --- a/Plan/common/src/main/java/com/djrapitops/plan/system/webserver/pages/json/PlayerJSONHandler.java +++ b/Plan/common/src/main/java/com/djrapitops/plan/system/webserver/pages/json/PlayerJSONHandler.java @@ -47,7 +47,7 @@ public class PlayerJSONHandler implements PageHandler { @Override public Response getResponse(Request request, RequestTarget target) throws WebException { UUID playerUUID = identifiers.getPlayerUUID(target); // Can throw BadRequestException - return new JSONResponse<>(jsonParser.createJSONAsMap(playerUUID)); + return new JSONResponse(jsonParser.createJSONAsMap(playerUUID)); } @Override diff --git a/Plan/common/src/main/java/com/djrapitops/plan/system/webserver/pages/json/PlayerKillsJSONHandler.java b/Plan/common/src/main/java/com/djrapitops/plan/system/webserver/pages/json/PlayerKillsJSONHandler.java index 91be26a23..98bdcff12 100644 --- a/Plan/common/src/main/java/com/djrapitops/plan/system/webserver/pages/json/PlayerKillsJSONHandler.java +++ b/Plan/common/src/main/java/com/djrapitops/plan/system/webserver/pages/json/PlayerKillsJSONHandler.java @@ -55,7 +55,7 @@ public class PlayerKillsJSONHandler implements PageHandler { @Override public Response getResponse(Request request, RequestTarget target) throws WebException { UUID serverUUID = identifiers.getServerUUID(target); - return new JSONResponse<>(Collections.singletonMap("player_kills", jsonFactory.serverPlayerKillsAsJSONMap(serverUUID))); + return new JSONResponse(Collections.singletonMap("player_kills", jsonFactory.serverPlayerKillsAsJSONMap(serverUUID))); } @Override diff --git a/Plan/common/src/main/java/com/djrapitops/plan/system/webserver/pages/json/ServerTabJSONHandler.java b/Plan/common/src/main/java/com/djrapitops/plan/system/webserver/pages/json/ServerTabJSONHandler.java index c57f7e819..a73adeb6c 100644 --- a/Plan/common/src/main/java/com/djrapitops/plan/system/webserver/pages/json/ServerTabJSONHandler.java +++ b/Plan/common/src/main/java/com/djrapitops/plan/system/webserver/pages/json/ServerTabJSONHandler.java @@ -48,7 +48,7 @@ public class ServerTabJSONHandler implements PageHandler { @Override public Response getResponse(Request request, RequestTarget target) throws WebException { UUID serverUUID = identifiers.getServerUUID(target); // Can throw BadRequestException - return new JSONResponse<>(jsonParser.apply(serverUUID)); + return new JSONResponse(jsonParser.apply(serverUUID)); } @Override diff --git a/Plan/common/src/main/java/com/djrapitops/plan/system/webserver/pages/json/SessionsJSONHandler.java b/Plan/common/src/main/java/com/djrapitops/plan/system/webserver/pages/json/SessionsJSONHandler.java index 0f5abac6d..80b3cb655 100644 --- a/Plan/common/src/main/java/com/djrapitops/plan/system/webserver/pages/json/SessionsJSONHandler.java +++ b/Plan/common/src/main/java/com/djrapitops/plan/system/webserver/pages/json/SessionsJSONHandler.java @@ -55,7 +55,7 @@ public class SessionsJSONHandler implements PageHandler { @Override public Response getResponse(Request request, RequestTarget target) throws WebException { UUID serverUUID = identifiers.getServerUUID(target); - return new JSONResponse<>(Collections.singletonMap("sessions", jsonFactory.serverSessionsAsJSONMap(serverUUID))); + return new JSONResponse(Collections.singletonMap("sessions", jsonFactory.serverSessionsAsJSONMap(serverUUID))); } @Override diff --git a/Plan/common/src/main/java/com/djrapitops/plan/system/webserver/response/data/JSONResponse.java b/Plan/common/src/main/java/com/djrapitops/plan/system/webserver/response/data/JSONResponse.java index b114caa83..7a0916d96 100644 --- a/Plan/common/src/main/java/com/djrapitops/plan/system/webserver/response/data/JSONResponse.java +++ b/Plan/common/src/main/java/com/djrapitops/plan/system/webserver/response/data/JSONResponse.java @@ -18,6 +18,8 @@ package com.djrapitops.plan.system.webserver.response.data; import com.djrapitops.plan.system.webserver.response.Response; import com.djrapitops.plan.system.webserver.response.ResponseType; +import com.google.gson.Gson; +import com.google.gson.JsonElement; /** * Generic JSON response implemented using Gson. @@ -26,21 +28,14 @@ import com.djrapitops.plan.system.webserver.response.ResponseType; * * @author Rsl1122 */ -public class JSONResponse extends Response { +public class JSONResponse extends Response { - public JSONResponse(T object) { - super(ResponseType.JSON); - super.setHeader("HTTP/1.1 200 OK"); + public JSONResponse(Object object) { + this(new Gson().toJson(object)); + } - try { - Class gsonClass = Class.forName("com.google.gson.Gson"); - Object gson = gsonClass.getConstructor().newInstance(); - Object json = gsonClass.getMethod("toJson", Object.class).invoke(gson, object); - - super.setContent(json.toString()); - } catch (ReflectiveOperationException e) { - super.setContent("{\"error\":\"Gson for json responses not available on this server: " + e.toString() + "\"}"); - } + public JSONResponse(JsonElement json) { + this(json.getAsString()); } public JSONResponse(String jsonString) { diff --git a/Plan/common/src/main/java/com/djrapitops/plan/system/webserver/response/pages/RawDataResponse.java b/Plan/common/src/main/java/com/djrapitops/plan/system/webserver/response/pages/RawDataResponse.java index a1dd8a097..e93229d01 100644 --- a/Plan/common/src/main/java/com/djrapitops/plan/system/webserver/response/pages/RawDataResponse.java +++ b/Plan/common/src/main/java/com/djrapitops/plan/system/webserver/response/pages/RawDataResponse.java @@ -32,7 +32,7 @@ import java.util.stream.Collectors; * * @author Rsl1122 */ -public class RawDataResponse extends JSONResponse> { +public class RawDataResponse extends JSONResponse { public RawDataResponse(DataContainer dataContainer) { super(mapToNormalMap(dataContainer));