aboutsummaryrefslogtreecommitdiff
path: root/src/wasm
diff options
context:
space:
mode:
authorMatthias Andreas Benkard <code@mail.matthias.benkard.de>2026-08-23 08:32:08 +0200
committerMatthias Andreas Benkard <code@mail.matthias.benkard.de>2026-08-23 08:32:08 +0200
commit279fca69b86889387fc4c16512fef38bae04b7ce (patch)
tree8c0524301635aa893f74d2a74258a0f644782b80 /src/wasm
parenta5d554451ab352f27dc26b70ae0a417816dee3f6 (diff)
Der Formatierer setzt die Kopfzeilen, nicht die Hand
Achtundfünfzig Java-Dateien brauchen dieselben zwei Zeilen, und jede künftige braucht sie ebenfalls. Von Hand gesetzt, hielte das keinen Monat: Die eine Datei, die man vergisst, ist genau die, an der es später auffällt. Spotless führt daher fortan einen „licenseHeader“ mit dem Wortlaut, den die übrigen Dateien schon tragen. Der voreingestellte Trenner für Java ist das Schlüsselwort „package“; die Kopfzeilen treten also über die Paketangabe, und Spotless prüft und ergänzt sie bei jedem Lauf. Dabei hat sich ergeben, dass „src/wasm/java“ der Formatprüfung bislang verborgen war. Das Verzeichnis tritt dem Quellbaum erst im Profil „wasm“ bei, und zwar durch das Build-Helper-Plugin; im gewöhnlichen Bau sah Spotless es nie. Die Quellverzeichnisse sind deshalb ausdrücklich benannt („src/*/java/**/*.java“), was zugleich die doppelte Erfassung unter dem Profil vermeidet. Als Folge sind „BrowserMain“ und „InflaterErsatz“ erstmals umformatiert worden. Es geht dabei allein um das Satzbild — ein umbrochener Kommentarsatz und vier Annotationen, die nunmehr je auf eigener Zeile stehen; am Sinn ändert sich nichts. Sie stehen hier bewusst neben den Kopfzeilen und nicht in einem eigenen Commit, denn beides folgt aus derselben Einstellung und wäre getrennt nicht nachvollziehbar. Der Lauf von „spotless:apply“ hält achtundfünfzig Dateien sauber. Dreihundertfünfundzwanzig Testfälle bestehen unverändert. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Change-Id: I3a41b93108ad13ed16f78385d6272e5c10a255a1
Diffstat (limited to 'src/wasm')
-rw-r--r--src/wasm/java/eu/mulk/aendggner/wasm/BrowserMain.java20
-rw-r--r--src/wasm/java/eu/mulk/aendggner/wasm/InflaterErsatz.java18
2 files changed, 24 insertions, 14 deletions
diff --git a/src/wasm/java/eu/mulk/aendggner/wasm/BrowserMain.java b/src/wasm/java/eu/mulk/aendggner/wasm/BrowserMain.java
index c4f5a9a..7df8ecb 100644
--- a/src/wasm/java/eu/mulk/aendggner/wasm/BrowserMain.java
+++ b/src/wasm/java/eu/mulk/aendggner/wasm/BrowserMain.java
@@ -1,3 +1,5 @@
+// SPDX-FileCopyrightText: 2020 Matthias Andreas Benkard <code@mail.matthias.benkard.de>
+// SPDX-License-Identifier: AGPL-3.0-or-later
package eu.mulk.aendggner.wasm;
import eu.mulk.aendggner.Pipeline;
@@ -6,8 +8,8 @@ import java.util.ArrayList;
import java.util.Base64;
import java.util.List;
import java.util.function.Function;
-import java.util.logging.LogManager;
import java.util.logging.Level;
+import java.util.logging.LogManager;
import java.util.logging.Logger;
import org.graalvm.webimage.api.JS;
import org.graalvm.webimage.api.JSNumber;
@@ -20,14 +22,14 @@ import org.graalvm.webimage.api.JSValue;
* damit dieselbe {@link Pipeline} auf wie Befehlszeile und Tests.
*
* <p>Erwartet ein JS-Objekt <code>{stamm: {name, base64}, patches: [{name, base64}], artikel,
- * vollstaendig}</code> und liefert <code>{html, angewandt, manuell, normen}</code> oder
- * <code>{fehler}</code> zurück. Geworfen wird nichts: Eine Ausnahme im Wasm hinterlässt auf der
- * JS-Seite nur einen unlesbaren Stapel, also wird jeder Fehler als Text zurückgereicht.
+ * vollstaendig}</code> und liefert <code>{html, angewandt, manuell, normen}</code> oder <code>
+ * {fehler}</code> zurück. Geworfen wird nichts: Eine Ausnahme im Wasm hinterlässt auf der JS-Seite
+ * nur einen unlesbaren Stapel, also wird jeder Fehler als Text zurückgereicht.
*
* <p>Der Dateiinhalt wandert als Base64-Text über die Grenze, nicht als {@code Uint8Array}: Die
- * Umsetzung typisierter Felder nach {@code byte[]} ist in Web Image derzeit defekt
- * („byteArrayHub is not defined“). Zeichenketten überqueren die Grenze zuverlässig, und die
- * Base64-Dekodierung ist reines Java.
+ * Umsetzung typisierter Felder nach {@code byte[]} ist in Web Image derzeit defekt („byteArrayHub
+ * is not defined“). Zeichenketten überqueren die Grenze zuverlässig, und die Base64-Dekodierung ist
+ * reines Java.
*/
public final class BrowserMain {
@@ -71,7 +73,9 @@ public final class BrowserMain {
var ergebnis =
Pipeline.erzeugeSynopse(
- stamm, List.copyOf(patches), artikel == null || artikel.isBlank() ? null : artikel,
+ stamm,
+ List.copyOf(patches),
+ artikel == null || artikel.isBlank() ? null : artikel,
vollstaendig);
// Java-Werte kämen auf der JS-Seite als undurchsichtige Proxys an; JSString/JSNumber
diff --git a/src/wasm/java/eu/mulk/aendggner/wasm/InflaterErsatz.java b/src/wasm/java/eu/mulk/aendggner/wasm/InflaterErsatz.java
index 8817e4d..63a6d81 100644
--- a/src/wasm/java/eu/mulk/aendggner/wasm/InflaterErsatz.java
+++ b/src/wasm/java/eu/mulk/aendggner/wasm/InflaterErsatz.java
@@ -1,3 +1,5 @@
+// SPDX-FileCopyrightText: 2020 Matthias Andreas Benkard <code@mail.matthias.benkard.de>
+// SPDX-License-Identifier: AGPL-3.0-or-later
package eu.mulk.aendggner.wasm;
import com.jcraft.jzlib.JZlib;
@@ -10,22 +12,26 @@ import java.util.zip.DataFormatException;
/**
* Ersetzt java.util.zip.Inflater durch die reine Java-Umsetzung von jzlib.
*
- * <p>Web Image kennt die nativen zlib-Bindungen des JDK nicht (GR-65205); ohne Inflate ist kein
- * PDF lesbar, denn nahezu jeder Inhaltsstrom ist FlateDecode-komprimiert.
+ * <p>Web Image kennt die nativen zlib-Bindungen des JDK nicht (GR-65205); ohne Inflate ist kein PDF
+ * lesbar, denn nahezu jeder Inhaltsstrom ist FlateDecode-komprimiert.
*/
@TargetClass(java.util.zip.Inflater.class)
final class Target_java_util_zip_Inflater {
- @Inject @RecomputeFieldValue(kind = RecomputeFieldValue.Kind.Reset)
+ @Inject
+ @RecomputeFieldValue(kind = RecomputeFieldValue.Kind.Reset)
com.jcraft.jzlib.Inflater impl;
- @Inject @RecomputeFieldValue(kind = RecomputeFieldValue.Kind.Reset)
+ @Inject
+ @RecomputeFieldValue(kind = RecomputeFieldValue.Kind.Reset)
boolean nowrap;
- @Inject @RecomputeFieldValue(kind = RecomputeFieldValue.Kind.Reset)
+ @Inject
+ @RecomputeFieldValue(kind = RecomputeFieldValue.Kind.Reset)
boolean fertig;
- @Inject @RecomputeFieldValue(kind = RecomputeFieldValue.Kind.Reset)
+ @Inject
+ @RecomputeFieldValue(kind = RecomputeFieldValue.Kind.Reset)
boolean braucheWoerterbuch;
@Substitute