From ce25eb52e3a26b69a21f22175364e0b276b962bd Mon Sep 17 00:00:00 2001 From: "Lukas Rieger (Blue)" Date: Mon, 20 May 2024 21:43:50 +0200 Subject: [PATCH] Small improvements, make webserver more accessible for addons --- BlueMapAPI | 2 +- .../bluemap/common/api/BlueMapAPIImpl.java | 8 +++----- .../bluemap/common/api/RenderManagerImpl.java | 3 +-- .../common/web/BlueMapResponseModifier.java | 8 ++++++-- .../bluemap/common/web/FileRequestHandler.java | 6 +++++- .../common/web/JsonDataRequestHandler.java | 6 +++++- .../common/web/LoggingRequestHandler.java | 18 ++++++++---------- .../common/web/MapStorageRequestHandler.java | 6 +++++- .../common/web/RoutingRequestHandler.java | 8 +++++--- 9 files changed, 39 insertions(+), 26 deletions(-) diff --git a/BlueMapAPI b/BlueMapAPI index 8b179fb5..ec977113 160000 --- a/BlueMapAPI +++ b/BlueMapAPI @@ -1 +1 @@ -Subproject commit 8b179fb5e011ef8ac7e550e2e9aa6c64b644eaee +Subproject commit ec977113495dacd6f2e24239015f4b94b305fc52 diff --git a/BlueMapCommon/src/main/java/de/bluecolored/bluemap/common/api/BlueMapAPIImpl.java b/BlueMapCommon/src/main/java/de/bluecolored/bluemap/common/api/BlueMapAPIImpl.java index fbdbfdd2..b544d4c8 100644 --- a/BlueMapCommon/src/main/java/de/bluecolored/bluemap/common/api/BlueMapAPIImpl.java +++ b/BlueMapCommon/src/main/java/de/bluecolored/bluemap/common/api/BlueMapAPIImpl.java @@ -39,7 +39,6 @@ import java.util.Collection; import java.util.Map; import java.util.Optional; -import java.util.concurrent.ExecutionException; import java.util.stream.Collectors; public class BlueMapAPIImpl extends BlueMapAPI { @@ -107,8 +106,7 @@ public Optional getWorldUncached(Object world) { if (coreWorld != null) world = coreWorld; } - if (world instanceof World) { - var coreWorld = (World) world; + if (world instanceof World coreWorld) { return Optional.of(new BlueMapWorldImpl(plugin, coreWorld)); } @@ -146,7 +144,7 @@ public String getBlueMapVersion() { public void register() { try { BlueMapAPI.registerInstance(this); - } catch (ExecutionException ex) { + } catch (Exception ex) { Logger.global.logError("BlueMapAPI: A BlueMapAPI listener threw an exception (onEnable)!", ex.getCause()); } } @@ -154,7 +152,7 @@ public void register() { public void unregister() { try { BlueMapAPI.unregisterInstance(this); - } catch (ExecutionException ex) { + } catch (Exception ex) { Logger.global.logError("BlueMapAPI: A BlueMapAPI listener threw an exception (onDisable)!", ex.getCause()); } } diff --git a/BlueMapCommon/src/main/java/de/bluecolored/bluemap/common/api/RenderManagerImpl.java b/BlueMapCommon/src/main/java/de/bluecolored/bluemap/common/api/RenderManagerImpl.java index 69703f27..de203f28 100644 --- a/BlueMapCommon/src/main/java/de/bluecolored/bluemap/common/api/RenderManagerImpl.java +++ b/BlueMapCommon/src/main/java/de/bluecolored/bluemap/common/api/RenderManagerImpl.java @@ -31,7 +31,6 @@ import de.bluecolored.bluemap.common.rendermanager.MapPurgeTask; import de.bluecolored.bluemap.common.rendermanager.MapUpdateTask; -import java.io.IOException; import java.util.Collection; public class RenderManagerImpl implements RenderManager { @@ -59,7 +58,7 @@ public boolean scheduleMapUpdateTask(BlueMapMap map, Collection region } @Override - public boolean scheduleMapPurgeTask(BlueMapMap map) throws IOException { + public boolean scheduleMapPurgeTask(BlueMapMap map) { BlueMapMapImpl cmap = castMap(map); return renderManager.scheduleRenderTask(new MapPurgeTask(cmap.getBmMap())); } diff --git a/BlueMapCommon/src/main/java/de/bluecolored/bluemap/common/web/BlueMapResponseModifier.java b/BlueMapCommon/src/main/java/de/bluecolored/bluemap/common/web/BlueMapResponseModifier.java index c11d07f5..034da409 100644 --- a/BlueMapCommon/src/main/java/de/bluecolored/bluemap/common/web/BlueMapResponseModifier.java +++ b/BlueMapCommon/src/main/java/de/bluecolored/bluemap/common/web/BlueMapResponseModifier.java @@ -29,11 +29,15 @@ import de.bluecolored.bluemap.common.web.http.HttpResponse; import de.bluecolored.bluemap.common.web.http.HttpStatusCode; import de.bluecolored.bluemap.core.BlueMap; +import lombok.Getter; +import lombok.NonNull; +import lombok.Setter; +@Getter @Setter public class BlueMapResponseModifier implements HttpRequestHandler { - private final HttpRequestHandler delegate; - private final String serverName; + private @NonNull HttpRequestHandler delegate; + private @NonNull String serverName; public BlueMapResponseModifier(HttpRequestHandler delegate) { this.delegate = delegate; diff --git a/BlueMapCommon/src/main/java/de/bluecolored/bluemap/common/web/FileRequestHandler.java b/BlueMapCommon/src/main/java/de/bluecolored/bluemap/common/web/FileRequestHandler.java index b3f42725..2b0bd825 100644 --- a/BlueMapCommon/src/main/java/de/bluecolored/bluemap/common/web/FileRequestHandler.java +++ b/BlueMapCommon/src/main/java/de/bluecolored/bluemap/common/web/FileRequestHandler.java @@ -25,6 +25,9 @@ package de.bluecolored.bluemap.common.web; import de.bluecolored.bluemap.common.web.http.*; +import lombok.Getter; +import lombok.NonNull; +import lombok.Setter; import org.apache.commons.lang3.time.DateFormatUtils; import java.io.File; @@ -38,9 +41,10 @@ import java.util.TimeZone; import java.util.concurrent.TimeUnit; +@Getter @Setter public class FileRequestHandler implements HttpRequestHandler { - private final Path webRoot; + private @NonNull Path webRoot; public FileRequestHandler(Path webRoot) { this.webRoot = webRoot.normalize(); diff --git a/BlueMapCommon/src/main/java/de/bluecolored/bluemap/common/web/JsonDataRequestHandler.java b/BlueMapCommon/src/main/java/de/bluecolored/bluemap/common/web/JsonDataRequestHandler.java index 41f734ef..a4cc988b 100644 --- a/BlueMapCommon/src/main/java/de/bluecolored/bluemap/common/web/JsonDataRequestHandler.java +++ b/BlueMapCommon/src/main/java/de/bluecolored/bluemap/common/web/JsonDataRequestHandler.java @@ -28,12 +28,16 @@ import de.bluecolored.bluemap.common.web.http.HttpRequestHandler; import de.bluecolored.bluemap.common.web.http.HttpResponse; import de.bluecolored.bluemap.common.web.http.HttpStatusCode; +import lombok.Getter; +import lombok.NonNull; +import lombok.Setter; import java.util.function.Supplier; +@Getter @Setter public class JsonDataRequestHandler implements HttpRequestHandler { - private final Supplier dataSupplier; + private @NonNull Supplier dataSupplier; public JsonDataRequestHandler(Supplier dataSupplier) { this.dataSupplier = dataSupplier; diff --git a/BlueMapCommon/src/main/java/de/bluecolored/bluemap/common/web/LoggingRequestHandler.java b/BlueMapCommon/src/main/java/de/bluecolored/bluemap/common/web/LoggingRequestHandler.java index 62efe642..647af5d1 100644 --- a/BlueMapCommon/src/main/java/de/bluecolored/bluemap/common/web/LoggingRequestHandler.java +++ b/BlueMapCommon/src/main/java/de/bluecolored/bluemap/common/web/LoggingRequestHandler.java @@ -26,14 +26,18 @@ import de.bluecolored.bluemap.common.web.http.*; import de.bluecolored.bluemap.core.logger.Logger; +import lombok.AllArgsConstructor; import lombok.Getter; +import lombok.NonNull; +import lombok.Setter; -@Getter +@Getter @Setter +@AllArgsConstructor public class LoggingRequestHandler implements HttpRequestHandler { - private final HttpRequestHandler delegate; - private final Logger logger; - private final String format; + private @NonNull HttpRequestHandler delegate; + private @NonNull String format; + private @NonNull Logger logger; public LoggingRequestHandler(HttpRequestHandler delegate) { this(delegate, Logger.global); @@ -47,12 +51,6 @@ public LoggingRequestHandler(HttpRequestHandler delegate, String format) { this(delegate, format, Logger.global); } - public LoggingRequestHandler(HttpRequestHandler delegate, String format, Logger logger) { - this.delegate = delegate; - this.format = format; - this.logger = logger; - } - @Override public HttpResponse handle(HttpRequest request) { diff --git a/BlueMapCommon/src/main/java/de/bluecolored/bluemap/common/web/MapStorageRequestHandler.java b/BlueMapCommon/src/main/java/de/bluecolored/bluemap/common/web/MapStorageRequestHandler.java index eaa8043b..726dbe1a 100644 --- a/BlueMapCommon/src/main/java/de/bluecolored/bluemap/common/web/MapStorageRequestHandler.java +++ b/BlueMapCommon/src/main/java/de/bluecolored/bluemap/common/web/MapStorageRequestHandler.java @@ -34,7 +34,10 @@ import de.bluecolored.bluemap.core.storage.MapStorage; import de.bluecolored.bluemap.core.storage.compression.CompressedInputStream; import de.bluecolored.bluemap.core.storage.compression.Compression; +import lombok.Getter; +import lombok.NonNull; import lombok.RequiredArgsConstructor; +import lombok.Setter; import org.apache.commons.io.IOUtils; import java.io.ByteArrayInputStream; @@ -47,11 +50,12 @@ import java.util.regex.Pattern; @RequiredArgsConstructor +@Getter @Setter public class MapStorageRequestHandler implements HttpRequestHandler { private static final Pattern TILE_PATTERN = Pattern.compile("tiles/([\\d/]+)/x(-?[\\d/]+)z(-?[\\d/]+).*"); - private final MapStorage mapStorage; + private @NonNull MapStorage mapStorage; @SuppressWarnings("resource") @Override diff --git a/BlueMapCommon/src/main/java/de/bluecolored/bluemap/common/web/RoutingRequestHandler.java b/BlueMapCommon/src/main/java/de/bluecolored/bluemap/common/web/RoutingRequestHandler.java index c68cb4eb..72c0c0bf 100644 --- a/BlueMapCommon/src/main/java/de/bluecolored/bluemap/common/web/RoutingRequestHandler.java +++ b/BlueMapCommon/src/main/java/de/bluecolored/bluemap/common/web/RoutingRequestHandler.java @@ -34,16 +34,18 @@ import lombok.Setter; import org.intellij.lang.annotations.Language; -import java.util.LinkedList; +import java.util.Deque; +import java.util.concurrent.ConcurrentLinkedDeque; import java.util.regex.Matcher; import java.util.regex.Pattern; +@Getter public class RoutingRequestHandler implements HttpRequestHandler { - public final LinkedList routes; + private final Deque routes; public RoutingRequestHandler() { - this.routes = new LinkedList<>(); + this.routes = new ConcurrentLinkedDeque<>(); } public void register(@Language("RegExp") String pattern, HttpRequestHandler handler) {