diff --git a/.github/workflows/nightly-artifacts.yml b/.github/workflows/nightly-artifacts.yml index 7ce2f0c..a3a24db 100644 --- a/.github/workflows/nightly-artifacts.yml +++ b/.github/workflows/nightly-artifacts.yml @@ -58,7 +58,7 @@ jobs: shell: pwsh run: | New-Item -ItemType Directory -Force -Path dist | Out-Null - jpackage --type app-image --name praktiKST --input target/dist-libs --main-jar app.jar --main-class kst4contest.view.Kst4ContestApplication --module-path target/dist-libs --add-modules javafx.controls,javafx.graphics,javafx.fxml,javafx.web,javafx.media,java.sql --dest dist + jpackage --type app-image --name praktiKST --input target/dist-libs --main-jar app.jar --main-class kst4contest.view.Kst4ContestApplication --module-path target/dist-libs --add-modules javafx.controls,javafx.graphics,javafx.fxml,javafx.web,javafx.media,java.sql,java.net.http,jdk.crypto.ec --dest dist - name: Create Windows ZIP shell: pwsh @@ -113,7 +113,7 @@ jobs: --main-jar app.jar \ --main-class kst4contest.view.Kst4ContestApplication \ --module-path target/dist-libs \ - --add-modules javafx.controls,javafx.graphics,javafx.fxml,javafx.web,javafx.media,java.sql \ + --add-modules javafx.controls,javafx.graphics,javafx.fxml,javafx.web,javafx.media,java.sql,java.net.http,jdk.crypto.ec \ --dest dist - name: Create AppDir metadata @@ -198,7 +198,7 @@ jobs: --main-jar app.jar \ --main-class kst4contest.view.Kst4ContestApplication \ --module-path target/dist-libs \ - --add-modules javafx.controls,javafx.graphics,javafx.fxml,javafx.web,javafx.media,java.sql \ + --add-modules javafx.controls,javafx.graphics,javafx.fxml,javafx.web,javafx.media,java.sql,java.net.http,jdk.crypto.ec \ --dest dist DEB="$(ls dist/*.deb | head -n 1)" if [ -z "$DEB" ]; then @@ -256,7 +256,7 @@ jobs: --main-jar app.jar \ --main-class kst4contest.view.Kst4ContestApplication \ --module-path target/dist-libs \ - --add-modules javafx.controls,javafx.graphics,javafx.fxml,javafx.web,javafx.media,java.sql \ + --add-modules javafx.controls,javafx.graphics,javafx.fxml,javafx.web,javafx.media,java.sql,java.net.http,jdk.crypto.ec \ --dest dist RPM="$(ls dist/*.rpm | head -n 1)" if [ -z "$RPM" ]; then @@ -316,7 +316,7 @@ jobs: --main-jar app.jar \ --main-class kst4contest.view.Kst4ContestApplication \ --module-path target/dist-libs \ - --add-modules javafx.controls,javafx.graphics,javafx.fxml,javafx.web,javafx.media,java.sql \ + --add-modules javafx.controls,javafx.graphics,javafx.fxml,javafx.web,javafx.media,java.sql,java.net.http,jdk.crypto.ec \ --dest dist - name: Build Arch Linux package artifact @@ -413,7 +413,7 @@ jobs: --main-jar app.jar \ --main-class kst4contest.view.Kst4ContestApplication \ --module-path target/dist-libs \ - --add-modules javafx.controls,javafx.graphics,javafx.fxml,javafx.web,javafx.media,java.sql \ + --add-modules javafx.controls,javafx.graphics,javafx.fxml,javafx.web,javafx.media,java.sql,java.net.http,jdk.crypto.ec \ --dest target/flatpak-src - name: Create Flatpak manifest @@ -511,7 +511,7 @@ jobs: --main-jar app.jar \ --main-class kst4contest.view.Kst4ContestApplication \ --module-path target/dist-libs \ - --add-modules javafx.controls,javafx.graphics,javafx.fxml,javafx.web,javafx.media,java.sql \ + --add-modules javafx.controls,javafx.graphics,javafx.fxml,javafx.web,javafx.media,java.sql,java.net.http,jdk.crypto.ec \ --dest dist env: diff --git a/.github/workflows/tagged-release.yml b/.github/workflows/tagged-release.yml index 3b58954..7bf4859 100644 --- a/.github/workflows/tagged-release.yml +++ b/.github/workflows/tagged-release.yml @@ -46,7 +46,7 @@ jobs: shell: pwsh run: | New-Item -ItemType Directory -Force -Path dist | Out-Null - jpackage --type app-image --name praktiKST --input target/dist-libs --main-jar app.jar --main-class kst4contest.view.Kst4ContestApplication --module-path target/dist-libs --add-modules javafx.controls,javafx.graphics,javafx.fxml,javafx.web,javafx.media,java.sql --dest dist + jpackage --type app-image --name praktiKST --input target/dist-libs --main-jar app.jar --main-class kst4contest.view.Kst4ContestApplication --module-path target/dist-libs --add-modules javafx.controls,javafx.graphics,javafx.fxml,javafx.web,javafx.media,java.sql,java.net.http,jdk.crypto.ec --dest dist - name: Create Windows ZIP shell: pwsh @@ -94,7 +94,7 @@ jobs: --main-jar app.jar \ --main-class kst4contest.view.Kst4ContestApplication \ --module-path target/dist-libs \ - --add-modules javafx.controls,javafx.graphics,javafx.fxml,javafx.web,javafx.media,java.sql \ + --add-modules javafx.controls,javafx.graphics,javafx.fxml,javafx.web,javafx.media,java.sql,java.net.http,jdk.crypto.ec \ --dest dist - name: Create AppDir metadata @@ -172,7 +172,7 @@ jobs: --main-jar app.jar \ --main-class kst4contest.view.Kst4ContestApplication \ --module-path target/dist-libs \ - --add-modules javafx.controls,javafx.graphics,javafx.fxml,javafx.web,javafx.media,java.sql \ + --add-modules javafx.controls,javafx.graphics,javafx.fxml,javafx.web,javafx.media,java.sql,java.net.http,jdk.crypto.ec \ --dest dist DEB="$(ls dist/*.deb | head -n 1)" if [ -z "$DEB" ]; then @@ -223,7 +223,7 @@ jobs: --main-jar app.jar \ --main-class kst4contest.view.Kst4ContestApplication \ --module-path target/dist-libs \ - --add-modules javafx.controls,javafx.graphics,javafx.fxml,javafx.web,javafx.media,java.sql \ + --add-modules javafx.controls,javafx.graphics,javafx.fxml,javafx.web,javafx.media,java.sql,java.net.http,jdk.crypto.ec \ --dest dist RPM="$(ls dist/*.rpm | head -n 1)" if [ -z "$RPM" ]; then @@ -274,7 +274,7 @@ jobs: --main-jar app.jar \ --main-class kst4contest.view.Kst4ContestApplication \ --module-path target/dist-libs \ - --add-modules javafx.controls,javafx.graphics,javafx.fxml,javafx.web,javafx.media,java.sql \ + --add-modules javafx.controls,javafx.graphics,javafx.fxml,javafx.web,javafx.media,java.sql,java.net.http,jdk.crypto.ec \ --dest dist - name: Build Arch Linux package artifact @@ -362,7 +362,7 @@ jobs: --main-jar app.jar \ --main-class kst4contest.view.Kst4ContestApplication \ --module-path target/dist-libs \ - --add-modules javafx.controls,javafx.graphics,javafx.fxml,javafx.web,javafx.media,java.sql \ + --add-modules javafx.controls,javafx.graphics,javafx.fxml,javafx.web,javafx.media,java.sql,java.net.http,jdk.crypto.ec \ --dest target/flatpak-src - name: Create Flatpak manifest @@ -477,7 +477,7 @@ jobs: --main-jar app.jar \ --main-class kst4contest.view.Kst4ContestApplication \ --module-path target/dist-libs \ - --add-modules javafx.controls,javafx.graphics,javafx.fxml,javafx.web,javafx.media,java.sql \ + --add-modules javafx.controls,javafx.graphics,javafx.fxml,javafx.web,javafx.media,java.sql,java.net.http,jdk.crypto.ec \ --dest dist env: diff --git a/pom.xml b/pom.xml index 5384cb4..5a45603 100644 --- a/pom.xml +++ b/pom.xml @@ -437,6 +437,8 @@ javafx.fxml javafx.web java.sql + java.net.http + jdk.crypto.ec ${main.class} ${project.build.directory}/modules diff --git a/src/main/java/kst4contest/view/map/MapHtmlResources.java b/src/main/java/kst4contest/view/map/MapHtmlResources.java index 0dcced9..8b78af3 100644 --- a/src/main/java/kst4contest/view/map/MapHtmlResources.java +++ b/src/main/java/kst4contest/view/map/MapHtmlResources.java @@ -1,5 +1,10 @@ package kst4contest.view.map; +import java.io.IOException; +import java.io.InputStream; +import java.io.UncheckedIOException; +import java.nio.charset.StandardCharsets; + /** * HTML host for the JavaFX WebView map. * @@ -16,7 +21,21 @@ public final class MapHtmlResources { private MapHtmlResources() { } - public static String createStationMapHtml() { + private static String readRequiredResource(String resourcePath) { + try (InputStream inputStream = MapHtmlResources.class.getResourceAsStream(resourcePath)) { + if (inputStream == null) { + throw new IllegalStateException("Missing map resource: " + resourcePath); + } + return new String(inputStream.readAllBytes(), StandardCharsets.UTF_8); + } catch (IOException exception) { + throw new UncheckedIOException("Could not read map resource: " + resourcePath, exception); + } + } + + public static String createStationMapHtml(int tileProxyPort) { + String leafletCss = readRequiredResource("/web/leaflet/leaflet.css"); + String leafletJs = readRequiredResource("/web/leaflet/leaflet.js"); + return """ @@ -24,10 +43,9 @@ public final class MapHtmlResources { KST4Contest Station Map - +