From ce9c358dd54c3c23261be310d6826a6371dc2018 Mon Sep 17 00:00:00 2001 From: crschnick Date: Mon, 7 Apr 2025 17:13:58 +0000 Subject: [PATCH] Merge branch 'jdk24' into 16-release --- CONTRIBUTING.md | 6 +- .../xpipe/app/core/AppDesktopIntegration.java | 6 +- .../xpipe/app/core/AppDistributionType.java | 3 +- .../xpipe/app/core/AppExtensionManager.java | 5 -- .../java/io/xpipe/app/core/AppProperties.java | 8 +- .../java/io/xpipe/app/core/AppTrayIcon.java | 72 ------------------ .../app/core/check/AppDebugModeCheck.java | 4 +- .../core/window/NativeMacOsWindowControl.java | 3 +- .../java/io/xpipe/app/prefs/AppPrefs.java | 3 +- .../java/io/xpipe/app/util/NativeBridge.java | 3 +- build.gradle | 12 ++- .../java/io/xpipe/core/util/ModuleHelper.java | 57 -------------- .../io/xpipe/core/util/XPipeInstallation.java | 19 +++-- dist/jpackage.gradle | 3 +- dist/licenses/graalvm.properties | 2 +- gradle/wrapper/gradle-wrapper.jar | Bin 43504 -> 43705 bytes gradle/wrapper/gradle-wrapper.properties | 2 +- gradlew | 5 +- 18 files changed, 45 insertions(+), 168 deletions(-) delete mode 100644 core/src/main/java/io/xpipe/core/util/ModuleHelper.java diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index ff4af5ea5..a31a3b241 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -32,8 +32,8 @@ If you are on Linux or macOS, you can easily accomplish that by running ```bash curl -s "https://get.sdkman.io" | bash . "$HOME/.sdkman/bin/sdkman-init.sh" -sdk install java 22.0.2-graalce -sdk default java 22.0.2-graalce +sdk install java 24-graalce +sdk default java 24-graalce ``` . On Windows, you have to manually install a JDK, e.g. from [Adoptium](https://adoptium.net/temurin/releases/?version=21). @@ -65,7 +65,7 @@ many IDEs still have problems building this project properly. For example, you can't build this project in eclipse or vscode as it will complain about missing modules. The tested and recommended IDE is IntelliJ. -When setting up the project in IntelliJ, make sure that the correct JDK (Java 22) +When setting up the project in IntelliJ, make sure that the correct JDK (Java 24) is selected both for the project and for gradle itself. ## Contributing guide diff --git a/app/src/main/java/io/xpipe/app/core/AppDesktopIntegration.java b/app/src/main/java/io/xpipe/app/core/AppDesktopIntegration.java index bccca2db9..3751ae9b5 100644 --- a/app/src/main/java/io/xpipe/app/core/AppDesktopIntegration.java +++ b/app/src/main/java/io/xpipe/app/core/AppDesktopIntegration.java @@ -60,11 +60,7 @@ public class AppDesktopIntegration { AppOpenArguments.handle(List.of(e.getURI().toString())); }); - // Do it this way to prevent IDE inspections from complaining - var c = Class.forName( - ModuleLayer.boot().findModule("java.desktop").orElseThrow(), "com.apple.eawt.Application"); - var m = c.getDeclaredMethod("addAppEventListener", SystemEventListener.class); - m.invoke(c.getMethod("getApplication").invoke(null), new AppReopenedListener() { + Desktop.getDesktop().addAppEventListener(new AppReopenedListener() { @Override public void appReopened(AppReopenedEvent e) { OperationMode.switchToAsync(OperationMode.GUI); diff --git a/app/src/main/java/io/xpipe/app/core/AppDistributionType.java b/app/src/main/java/io/xpipe/app/core/AppDistributionType.java index 022691ec4..ee357cb73 100644 --- a/app/src/main/java/io/xpipe/app/core/AppDistributionType.java +++ b/app/src/main/java/io/xpipe/app/core/AppDistributionType.java @@ -9,7 +9,6 @@ import io.xpipe.app.update.WebtopUpdater; import io.xpipe.app.util.LocalExec; import io.xpipe.app.util.Translatable; import io.xpipe.core.process.OsType; -import io.xpipe.core.util.ModuleHelper; import io.xpipe.core.util.XPipeInstallation; import javafx.beans.value.ObservableValue; @@ -54,7 +53,7 @@ public enum AppDistributionType implements Translatable { return; } - if (!ModuleHelper.isImage()) { + if (!AppProperties.get().isImage()) { type = DEVELOPMENT; return; } diff --git a/app/src/main/java/io/xpipe/app/core/AppExtensionManager.java b/app/src/main/java/io/xpipe/app/core/AppExtensionManager.java index aeec23ea2..a848c4d8e 100644 --- a/app/src/main/java/io/xpipe/app/core/AppExtensionManager.java +++ b/app/src/main/java/io/xpipe/app/core/AppExtensionManager.java @@ -6,7 +6,6 @@ import io.xpipe.app.issue.ErrorEvent; import io.xpipe.app.issue.TrackEvent; import io.xpipe.app.resources.AppResources; import io.xpipe.core.process.OsType; -import io.xpipe.core.util.ModuleHelper; import io.xpipe.core.util.ModuleLayerLoader; import io.xpipe.core.util.XPipeInstallation; @@ -209,10 +208,6 @@ public class AppExtensionManager { return Optional.empty(); } - ext.get().getModule().getPackages().forEach(pkg -> { - ModuleHelper.exportAndOpen(pkg, ext.get().getModule()); - }); - TrackEvent.withInfo("Loaded extension module") .tag("name", ext.get().getName()) .tag("dir", dir.toString()) diff --git a/app/src/main/java/io/xpipe/app/core/AppProperties.java b/app/src/main/java/io/xpipe/app/core/AppProperties.java index 08fdedca2..6eb5c67f0 100644 --- a/app/src/main/java/io/xpipe/app/core/AppProperties.java +++ b/app/src/main/java/io/xpipe/app/core/AppProperties.java @@ -4,7 +4,6 @@ import io.xpipe.app.core.check.AppUserDirectoryCheck; import io.xpipe.app.issue.ErrorEvent; import io.xpipe.app.issue.TrackEvent; import io.xpipe.app.prefs.AppPrefs; -import io.xpipe.core.util.ModuleHelper; import io.xpipe.core.util.XPipeDaemonMode; import lombok.Getter; @@ -84,7 +83,12 @@ public class AppProperties { } var referenceDir = Files.exists(appDir) ? appDir : Path.of(System.getProperty("user.dir")); - image = ModuleHelper.isImage(); + image = AppProperties.class + .getProtectionDomain() + .getCodeSource() + .getLocation() + .getProtocol() + .equals("jrt"); arguments = AppArguments.init(args); fullVersion = Optional.ofNullable(System.getProperty("io.xpipe.app.fullVersion")) .map(Boolean::parseBoolean) diff --git a/app/src/main/java/io/xpipe/app/core/AppTrayIcon.java b/app/src/main/java/io/xpipe/app/core/AppTrayIcon.java index cfd8c881b..1c2291fb9 100644 --- a/app/src/main/java/io/xpipe/app/core/AppTrayIcon.java +++ b/app/src/main/java/io/xpipe/app/core/AppTrayIcon.java @@ -90,7 +90,6 @@ public class AppTrayIcon { EventQueue.invokeLater(() -> { try { tray.add(this.trayIcon); - fixBackground(); } catch (Exception e) { // This can sometimes fail on Linux ErrorEvent.fromThrowable("Unable to add TrayIcon", e).expected().handle(); @@ -98,67 +97,12 @@ public class AppTrayIcon { }); } - private void fixBackground() { - // Ugly fix to show a transparent background on Linux - if (OsType.getLocal().equals(OsType.LINUX)) { - EventQueue.invokeLater(() -> { - try { - Field peerField; - peerField = TrayIcon.class.getDeclaredField("peer"); - peerField.setAccessible(true); - var peer = peerField.get(this.trayIcon); - - // If tray initialization fails, this can be null - if (peer == null) { - return; - } - - var canvasField = peer.getClass().getDeclaredField("canvas"); - canvasField.setAccessible(true); - Component canvas = (Component) canvasField.get(peer); - canvas.setBackground(new Color(0, 0, 0, 0)); - - var frameField = peer.getClass().getDeclaredField("eframe"); - frameField.setAccessible(true); - Frame frame = (Frame) frameField.get(peer); - frame.setTitle("XPipe"); - } catch (Exception e) { - ErrorEvent.fromThrowable(e).omit().handle(); - } - }); - } - } - public void hide() { EventQueue.invokeLater(() -> { tray.remove(trayIcon); }); } - public void showInfoMessage(String title, String message) { - if (OsType.getLocal().equals(OsType.MACOS)) { - showMacAlert(title, message, "Information"); - } else { - EventQueue.invokeLater(() -> this.trayIcon.displayMessage(title, message, TrayIcon.MessageType.INFO)); - } - } - - public void showInfoMessage(String message) { - this.showInfoMessage(null, message); - } - - public void showWarningMessage(String title, String message) { - if (OsType.getLocal().equals(OsType.MACOS)) { - showMacAlert(title, message, "Warning"); - } else { - EventQueue.invokeLater(() -> this.trayIcon.displayMessage(title, message, TrayIcon.MessageType.WARNING)); - } - } - - public void showWarningMessage(String message) { - this.showWarningMessage(null, message); - } - public void showErrorMessage(String title, String message) { if (OsType.getLocal().equals(OsType.MACOS)) { showMacAlert(title, message, "Error"); @@ -167,22 +111,6 @@ public class AppTrayIcon { } } - public void showErrorMessage(String message) { - this.showErrorMessage(null, message); - } - - public void showMessage(String title, String message) { - if (OsType.getLocal().equals(OsType.MACOS)) { - showMacAlert(title, message, "Message"); - } else { - EventQueue.invokeLater(() -> this.trayIcon.displayMessage(title, message, TrayIcon.MessageType.NONE)); - } - } - - public void showMessage(String message) { - this.showMessage(null, message); - } - private void showMacAlert(String subTitle, String message, String title) { String execute = String.format( "display notification \"%s\"" + " with title \"%s\"" + " subtitle \"%s\"", diff --git a/app/src/main/java/io/xpipe/app/core/check/AppDebugModeCheck.java b/app/src/main/java/io/xpipe/app/core/check/AppDebugModeCheck.java index bd2ab35a6..788b49566 100644 --- a/app/src/main/java/io/xpipe/app/core/check/AppDebugModeCheck.java +++ b/app/src/main/java/io/xpipe/app/core/check/AppDebugModeCheck.java @@ -1,13 +1,13 @@ package io.xpipe.app.core.check; import io.xpipe.app.core.AppLogs; +import io.xpipe.app.core.AppProperties; import io.xpipe.app.util.ThreadHelper; -import io.xpipe.core.util.ModuleHelper; public class AppDebugModeCheck { public static void printIfNeeded() { - if (!ModuleHelper.isImage() || !AppLogs.get().getLogLevel().equals("trace")) { + if (!AppProperties.get().isImage() || !AppLogs.get().getLogLevel().equals("trace")) { return; } diff --git a/app/src/main/java/io/xpipe/app/core/window/NativeMacOsWindowControl.java b/app/src/main/java/io/xpipe/app/core/window/NativeMacOsWindowControl.java index 315a22680..57ac4e059 100644 --- a/app/src/main/java/io/xpipe/app/core/window/NativeMacOsWindowControl.java +++ b/app/src/main/java/io/xpipe/app/core/window/NativeMacOsWindowControl.java @@ -3,7 +3,6 @@ package io.xpipe.app.core.window; import io.xpipe.app.core.AppProperties; import io.xpipe.app.issue.ErrorEvent; import io.xpipe.app.util.NativeBridge; -import io.xpipe.core.util.ModuleHelper; import javafx.stage.Window; @@ -33,7 +32,7 @@ public class NativeMacOsWindowControl { } public boolean setAppearance(boolean seamlessFrame, boolean darkMode) { - if (!ModuleHelper.isImage() || !AppProperties.get().isFullVersion()) { + if (!AppProperties.get().isImage() || !AppProperties.get().isFullVersion()) { return false; } diff --git a/app/src/main/java/io/xpipe/app/prefs/AppPrefs.java b/app/src/main/java/io/xpipe/app/prefs/AppPrefs.java index e76b96899..f020d31b8 100644 --- a/app/src/main/java/io/xpipe/app/prefs/AppPrefs.java +++ b/app/src/main/java/io/xpipe/app/prefs/AppPrefs.java @@ -16,7 +16,6 @@ import io.xpipe.app.terminal.TerminalPromptManager; import io.xpipe.app.util.PlatformState; import io.xpipe.app.util.PlatformThread; import io.xpipe.core.process.ShellScript; -import io.xpipe.core.util.ModuleHelper; import javafx.beans.property.*; import javafx.beans.value.ObservableBooleanValue; @@ -345,7 +344,7 @@ public class AppPrefs { } public boolean isDevelopmentEnvironment() { - return developerMode().getValue() && !ModuleHelper.isImage(); + return developerMode().getValue() && !AppProperties.get().isImage(); } public ObservableValue passwordManager() { diff --git a/app/src/main/java/io/xpipe/app/util/NativeBridge.java b/app/src/main/java/io/xpipe/app/util/NativeBridge.java index b062bc384..5ba9091cf 100644 --- a/app/src/main/java/io/xpipe/app/util/NativeBridge.java +++ b/app/src/main/java/io/xpipe/app/util/NativeBridge.java @@ -3,7 +3,6 @@ package io.xpipe.app.util; import io.xpipe.app.core.AppProperties; import io.xpipe.app.issue.ErrorEvent; import io.xpipe.core.process.OsType; -import io.xpipe.core.util.ModuleHelper; import io.xpipe.core.util.XPipeInstallation; import com.sun.jna.Library; @@ -26,7 +25,7 @@ public class NativeBridge { } public static Optional getMacOsLibrary() { - if (!ModuleHelper.isImage() || !AppProperties.get().isFullVersion()) { + if (!AppProperties.get().isImage() || !AppProperties.get().isFullVersion()) { return Optional.empty(); } diff --git a/build.gradle b/build.gradle index 9377f4d8a..cdc62ffb0 100644 --- a/build.gradle +++ b/build.gradle @@ -127,9 +127,12 @@ project.ext { devJavafxVersion = '25-ea+10' platformName = getPlatformName() jvmRunArgs = [ - "--add-opens", "java.base/java.lang=io.xpipe.app", - "--add-opens", "java.base/java.lang=io.xpipe.core", - "--add-opens", "java.desktop/java.awt=io.xpipe.app", + "--enable-native-access=com.sun.jna", + "--enable-native-access=javafx.graphics", + "--enable-native-access=javafx.web", + "--sun-misc-unsafe-memory-access=allow", + "--add-opens", "java.base/java.io=io.xpipe.ext.proc", + "--add-opens", "org.apache.commons.io/org.apache.commons.io.input=io.xpipe.ext.proc", "--add-opens", "net.synedra.validatorfx/net.synedra.validatorfx=io.xpipe.app", "--add-opens", "java.base/java.nio.file=io.xpipe.app", "--add-exports", "javafx.graphics/com.sun.javafx.tk=io.xpipe.app", @@ -145,6 +148,9 @@ project.ext { "-Djdk.virtualThreadScheduler.parallelism=8" ] + // Use project liliput + jvmRunArgs += ['-XX:+UnlockExperimentalVMOptions', '-XX:+UseCompactObjectHeaders'] + // GC config jvmRunArgs += ['-XX:+UseG1GC', '-Xms300m', '-Xmx4G', '-XX:GCTimeRatio=9', '-XX:+UseStringDeduplication']; diff --git a/core/src/main/java/io/xpipe/core/util/ModuleHelper.java b/core/src/main/java/io/xpipe/core/util/ModuleHelper.java deleted file mode 100644 index 54c5e04b5..000000000 --- a/core/src/main/java/io/xpipe/core/util/ModuleHelper.java +++ /dev/null @@ -1,57 +0,0 @@ -package io.xpipe.core.util; - -import lombok.SneakyThrows; - -import java.lang.reflect.Field; -import java.lang.reflect.Method; - -public class ModuleHelper { - - public static boolean isImage() { - return ModuleHelper.class - .getProtectionDomain() - .getCodeSource() - .getLocation() - .getProtocol() - .equals("jrt"); - } - - @SneakyThrows - public static Module getEveryoneModule() { - Method getDeclaredFields0 = Class.class.getDeclaredMethod("getDeclaredFields0", boolean.class); - getDeclaredFields0.setAccessible(true); - Field[] fields = (Field[]) getDeclaredFields0.invoke(Module.class, false); - Field modifiers = null; - for (Field each : fields) { - if ("EVERYONE_MODULE".equals(each.getName())) { - modifiers = each; - break; - } - } - modifiers.setAccessible(true); - return (Module) modifiers.get(null); - } - - @SneakyThrows - public static void exportAndOpen(String pkg, Module mod) { - if (mod.isExported(pkg) && mod.isOpen(pkg)) { - return; - } - - Method getDeclaredFields0 = Class.class.getDeclaredMethod("getDeclaredMethods0", boolean.class); - getDeclaredFields0.setAccessible(true); - Method[] fields = (Method[]) getDeclaredFields0.invoke(Module.class, false); - Method modifiers = null; - for (Method each : fields) { - if ("implAddExportsOrOpens".equals(each.getName())) { - modifiers = each; - break; - } - } - modifiers.setAccessible(true); - - var e = getEveryoneModule(); - modifiers.invoke(mod, pkg, e, false, true); - modifiers.invoke(mod, pkg, e, true, true); - } -} diff --git a/core/src/main/java/io/xpipe/core/util/XPipeInstallation.java b/core/src/main/java/io/xpipe/core/util/XPipeInstallation.java index c8c6e4d1f..33e0d5302 100644 --- a/core/src/main/java/io/xpipe/core/util/XPipeInstallation.java +++ b/core/src/main/java/io/xpipe/core/util/XPipeInstallation.java @@ -55,6 +55,15 @@ public class XPipeInstallation { return "\"" + command + "\"" + modeOption + suffix; } + private static boolean isImage() { + return XPipeInstallation.class + .getProtectionDomain() + .getCodeSource() + .getLocation() + .getProtocol() + .equals("jrt"); + } + @SneakyThrows public static Path getCurrentInstallationBasePath() { var command = ProcessHandle.current().info().command(); @@ -78,7 +87,7 @@ public class XPipeInstallation { if (name.endsWith("java") || name.endsWith("java.exe")) { // If we are not an image, we are probably running in a development environment where we want to use the // working directory - var isImage = ModuleHelper.isImage(); + var isImage = isImage(); if (!isImage) { return Path.of(System.getProperty("user.dir")); } @@ -164,7 +173,7 @@ public class XPipeInstallation { } public static String getLocalDefaultCliExecutable() { - Path path = ModuleHelper.isImage() + Path path = isImage() ? getCurrentInstallationBasePath() : Path.of(getLocalDefaultInstallationBasePath()); return path.resolve(getRelativeCliExecutablePath(OsType.getLocal())).toString(); @@ -174,7 +183,7 @@ public class XPipeInstallation { Path path = getCurrentInstallationBasePath(); // Check for development environment - if (!ModuleHelper.isImage()) { + if (!isImage()) { if (OsType.getLocal().equals(OsType.WINDOWS)) { return path.resolve("dist").resolve("logo").resolve("logo.ico"); } else if (OsType.getLocal().equals(OsType.LINUX)) { @@ -218,7 +227,7 @@ public class XPipeInstallation { } public static Path getLangPath() { - if (!ModuleHelper.isImage()) { + if (!isImage()) { return getCurrentInstallationBasePath().resolve("lang"); } @@ -234,7 +243,7 @@ public class XPipeInstallation { } public static Path getBundledFontsPath() { - if (!ModuleHelper.isImage()) { + if (!isImage()) { return Path.of("dist", "fonts"); } diff --git a/dist/jpackage.gradle b/dist/jpackage.gradle index 7b4906453..2d8afa22f 100644 --- a/dist/jpackage.gradle +++ b/dist/jpackage.gradle @@ -13,7 +13,8 @@ def releaseArguments = distJvmArgs + [ "-Dio.xpipe.app.staging=$rootProject.isStage", '-Dio.xpipe.app.sentryUrl=https://fd5f67ff10764b7e8a704bec9558c8fe@o1084459.ingest.sentry.io/6094279', '-Djna.nosys=false', - '-Djna.nounpack=true' + '-Djna.nounpack=true', + '-Xlog:cds' ] if (org.gradle.internal.os.OperatingSystem.current().isMacOsX()) { diff --git a/dist/licenses/graalvm.properties b/dist/licenses/graalvm.properties index 2e077e2f5..2580c6c2d 100644 --- a/dist/licenses/graalvm.properties +++ b/dist/licenses/graalvm.properties @@ -1,4 +1,4 @@ name=GraalVM Community -version=22.0.2 +version=24 license=GPL2 with the Classpath Exception link=https://www.graalvm.org/ \ No newline at end of file diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar index 2c3521197d7c4586c843d1d3e9090525f1898cde..9bbc975c742b298b441bfb90dbc124400a3751b9 100755 GIT binary patch delta 34884 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 delta 34740 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�{ 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

2jq7_TfZ- zY&mWxCbWkG;7Y^>{IQg27WWqs@h${Q!?#pERq`lbORNK86U_MO)YBZI543+_14W$e zA72ObBUNeXz^8mDv>$%J1HAY-q+FG|=fKSI6(ZgpwX{nOcUgO-o6a-%!4hlfg*;El zCJtt$fqeVsP1}Y3BC`ppRjL##Yq=Rg9^00J=EFoSxyRg{X5h z7?mVcE({1?&^q!5mB7`3CbDM98cTv=S1QO?Kh3|}vEdFJL!1|v*SLP$%@&Rk;snAccM6Fv=1j5fZ;O2zk159z5) z^-n^WSW~_$YGlFJfT3#F{YkOlpoZRfFl13ZD&_?U+2+@?GhE!qYFP3m?q5%tq$mgj z9?hlL?FceTvN08+bQSL;16yxOeX`8=<5R6lGOu3B|Ejypg`-~FUC{lyBn5bH*MKwkN`q*NN3j+`_f3MP#gDdsh#3M(z|nC1P6;lr&-)n!ZBC zEhRiwYh#Hw0CobxnFq*~FkyB_3G&|U+Zjcgp3}%IuvKZs?DXobnCgw1>x}9HM_?dy zy&uqe?6Oc2ryGuQ{KBhYU}3;eye$^dR`~e>mnY=_X4;Zg7P|aHwHoBH$M&t4p9(n@e>V~*8!3mwDx{?-{zEHuG<`W zzAnWQK%y%a*^BkU^^*Gg66upc!r|!DuHhLicxK)JA)$<@e0bzt!Ta`LD}S&-w?ef` zarNE32QYMAu6lt9Cq;{{vXpO}s1`YJeKTp^dl2o zJXWiV@p+>kZ8J>k5~~2W{}m}M#lo5QlgaxxfY*C!V@ciA261-$_V3N_BZN%yQ%?{5 z*x5CHj}M4C>PU?iH5y@@bw8)=rQ@d{eQ!>pSY2HLWUqbTCZcnUW;u^&jy|WM$ea>E zzZd5zo2RCAulP&wM9jZKh?q~4uEDoXr_Wq0!f(T^8t}9y2 z&5R?IDP1qxylOlGqpOIIQf#wG3#9}n3c_maP2dfZL|EH1)3qJp9(W&Ea~K!A%+LET zJ`taFXai(>iNlzi6e3_b_I?$Z$cIuNAdCm$-ZhZF24axl%OlnSnlbGfDVA^Ryt>JS z!S-Yi7tWi;G!e=wbJeOUS#A=1fQWUf_3))7e}7K_@!n!kC=IhNZ}Jw?*=H4c2VS6& zQRDZ=qcjBXmVmQSEFs&L%*gDZBZCunck}4)KlyYQWq8NLNP*VVy!l@ELaRi70pPTV z5$M1qb|H{Jgh~i&hB{KRVpX^yj8!i^_5)}> zeOapSGrSVd^thNCmA!b(M6b(cMWFldkL-+)!AlZ(hN-YP>K*ZZvX)el_d4NjTS-UaV;x>((GE zU8b7ajHI!UPo}n(J!CcjN(qE#mWCX9RIg!_rX%R_9n3 zRQ@)w{&JuLq;@(iWOf4Fu?O0YcnprbLWwycuBh1QnD`~IEKpBl-}z<(_ej7z9K!iX|tVkpu)3dvSp@EU@hi+YMp9X^UkyF05kl&A~Vy+&RO>) z_v@Dzta%zdh!b)i1TNdA13UX&a=b?r?OQ(f2|UvlX@70_858P|6&{%RUg~0hWpq!| zBwE6)TSBc%Nz9^>Qo`rox5M(yPM^A7k)E=I=}!o6<#F9n0LBxZ}-4myXM#!#{cw z7HfWjYAx=T0bAm5mn`&+v-ybYlU5B|3Vz=7YMZmArd{dc<E1Rd>ge}3*8;|LA7=pe46V6 zSkbXkCCLr;$@NCVKg5k7Itq@3vWZe)P$ z^SoFpb8m>?D>#uui$bybqBWynq#xdYZq47?FajE6ioV4flf)d?ii%;8}WAM9a_ygm-%=n3nU_#hC!T+a#<{ipl0MP6MebY!{eGWf6C$k?WNPoU7865+;WDX zT%CoJErn8}nl(Ip`qi@D?j3?h2`a+Gw#cb|q%lA~A@AZ}w(wGYgpRGz0;Sw$UoNs&rYv{2*VU|T+&B(FiK*DSP5 zeclPX&$N(EyN>f0#c~=da*%s#T863tKj9Np~Otj z^HJk|@)x%APBw2G<%vj9;k12pAMwGXXfS&|JOXDtY@~giM=qb-RXrgtrVR`TjRnv2 zSRtb(st6i@xYlMOHYHE(Kw9Ljn64ZGK7ZXVjx=m#o!tn=XjGk{Cv)wvD|oCE*NxiL zaR4q=tP(8>v*i4ek9)bAd}0f(lL|7#*ZJY2v^=47Riz^aO{J<&l2LJzkwvHfb$BA$ zU)coW6#c&glf5B2)ce5T}Ez`1EkJ27P`m~*-zp1X>jCaiCXmato`92 zEOTlAVnVA{O&NJ-XG}1%zR78$KA-GKa*j>JGX<+-VvZk~&N&O@37yi7W^Pbo$RQ;T z!6+(d$oWd`9i!51vEb#{03NmkotT1+2bwo_7=oQlR&vI7Md;QGwjOdKihaq)>+d_SSWE2my^&qxlo+t^h zJ+O(hT<+e8&Jd%Jy;l5I2U_cT8CIz_gLmnJ31A%9x!FG5pgN*?p~ODatWhUagYyE5 z#!99otrH^LHNe>(?H%vtXC-KPvqk?dkW>=6I5p4i^RljWnC9~;+-jq;8WOQWdS&E4 z{)D2o)-&gIKCa9U>rYP5L!+{nYUBgtI66x|&UK2QhXm_TGU!*shTt9it{AOplX{x4 zp^Y@%BxQrVc$65k+glb5z>;98XqDvD#rv%{O(if+OA#K?)fjBQZnPLlb%1nQ`X_P{ z?9q~5Ux|T+jaf>z)LOXoNSC!^h-=IC>hm5pul!I>MFO1#1!oaIEGMrv0=p5AmuoW{ zQx(|5yY*Y$P%D>B8!(hjNT1H85w%XHGi3xJBYp&P#Gz*+hNl3M>#0`~HsZDjR7zx5 zSh6k@UsA#@KnQ=UHLW{9_X7pNu_JoH{sFS-SQ$+(P6fPyuPmfRX0`L9-}njbvOeUa zE)$4fG<}-XU8_m82`5zJb`%bHVjpia8HrwO4UX1dzX%`BwA^3d;EN&S-(ZV|b|_0X3;d}wGn2uYVrXM3 zA@hr0oYMl{^%i3Kp|R9Fcdv;a`VB$yAB6A$Z3GM9BdVx}YPg>=hv; z&By`5pluK;^{}rmrAvSLjFh8<`?tPdqaGFAm4~^+kCNt-hk06~4V4v=`JDg80H%_e zr@PJ(3P=XLI=2pE=2+9_@u#Mq!WGx6Z*fL?Ow7p}fGLrCU<@e<(){H=fhNBdI_yf# z<{$!gS&?sG#uTC^VhIn(W%qXuwDaBty2sUZ65^AY`oem_?!|5xI)c@dqN{8`GSMpv zZi0q@r6d3JI8!+VVhPgaw`Hj+s3aIjYfLWN&7FPr1fntAp_lI3O57qbAe4Vv8htey z3i>9x;QNf0AspNp3gQk~5ZcqYad=L49}T-3mMYLcGyH@cktza2`DVuT^vpShXgm=5 zESEv3=DmUR(8YhX=^Nr=+^(*I6BNXQvo(I>;vwa&Xm!{j@r+Ho&?&dsLA$&C+mU&3 z|1)18#QTHa4Enjz2<%W?K>wPG@$PTziO)pRnhv7|1Xv_mnWMi7*5N6Cd`cT_K7vdQ z|8m(Y>%Y8dT{a-^PvT4fC`k*+Yd8FKf7k${MDkipO>tWU^nA zQ(vSHZ+$0!`lBR}&NqP>^fxD!Q6-vG!;Ki zruv&IWyl3~p0E=ZMz&s%F@=~jA^lnqPF|Vp6l^&}XFfQXn0?-Y{5*qnM7v9BUDKlp z$tR80oD<+dX^#-)k$PTIh)DjC_3^r&&OqpwbV!bwaew+yd0mZ61SiGI$J~g7`_w^Txlk%~x6#*O&=$OQ*kS$yDzLmHw62rLogO>6O6FBLe%Av_w3ztFKNlKjHSR@p+_RHMmkeX0&VCiIv4~aXoHnCz|Cr9n8&*zkFMYp_YjO4JE2tm zX6-ubD97o5cEA5G9^kl#4uU^~0|EI)|NoL2-v8qsg??)`YmZuY+x?9RROdm^$9N3H z6+%N35^~I#$(Aq5fE#aO5G5RHbtDdiBkT)9nN<}NML5j9Kj8rg-+kS_K^lTNgT^5u zo=o$!k_X{R3%ifPZ`cpQFL0`8AJfQnal%Kqiewg(Z(m5BL*T>O+j6vA$?I6lz;ghi zx-`vmX?V+Sd)WPfcHH^;{Q=4@zR^19_AM8l*tQ8c{Mek!grLwU8Rv4Oo~ z30=Ro`Jjqfuk%{4P(8!^>ZEHbSAqjy0(u+ZL+X;m7%0u!_m=wv%es& zGD1jCKFUBLRH7#{?-_y@6=4Za3qhEOvC}ho^wkBs+E0A2f|dW{4mAhv(Q)EM-*ZoH z@k-9Ojr9w|S^=AAR zn5mq&3P4Gv`XD22Vv!I;7(2$3PaY#Pr3WwlB4fsgGlo_pB3@l+_7&<_?S6)JY@D+v z-Q2K0-zY`2#BH>V`a^#?0okacy;e1z>U!DXdYQYmV!E}`-Es9P3HLDTl5}zc`;y;2`nz4zEO9xmg$h@yobqSVKYj)%DQrS zn+`dqtCv_`C{zsN%NA7oZcMCurCQ0+kLVql)z`AknEr-XF}1Fd~jpoL+K3ZXIkE@ z?C3lqG1`!-fdlGy!~q+ilE;g*n7ED=g&6SlcFt2NQBA#1Fg)QVl#3OY;jI=Y$F%uVi)M%xyJ+Eb|Z~8$It75Piwk@ zcr{Lg?Yc%Aa?dtRQ3QtC-+UxglAp3RCJvF3=<;AVmj!4^JM4rUXqIn-O>s|AuLwky zC+r66)(p`m68GO4oA^Tsf}I{+y>_)?11{kRQ8bAlzmFBew<$OSdhFPv=WR9#mX=1J zgd2nu+~d(#?0y0klwx9GjyKFVh8FGSX0u2oV^{Ip&)8B6+1>Vf zxEFsXBRYF@C4Rk4G)Gv;z$bULqyBjBhw@I$YO#e!#%q&qXcI5pP2cu7(Jy8+?b16A zCl+D}>>fHImNeR*JHB3v zTzZ}Kw!4sII7{P8jHFe`A$y(g4txEq(Nx>v=E5}0OONPqw z>q^efGtvgVc=*}wR=bO>Trl`hEvYFZFwXlH-?ssnD*r`ijkpTye_D?~W_oSgtX;## zU6RS`>C4Mqna5Hn5^5yI#}_vzPQYd7RfJ!oo@WQ2CC`5rb4K77efoAb9aO{(YE&O@ zK#1>bYx^)#6h7j_Rh3Macw{=Sq%YAJDZPrst_NO6ngJ6+M5|NS0k%A01RGRwFtJ%Q z7@Gr-NcNWRPoX=h?5PuBz}Qmr%^H-i<=HrE(N6J*E4@gJkzQQ%Y+NXEtNIJdJf9m4 zl{cjYJ+Dwu)(M;rf|z8zhwQ*Nkv)V2T9~8HVZ#7~i%x(LXm^R;O2Ib4XM@mL+15~* zWi}tOr(KeHNTUE2Spf-wx&pm7w7_~pK6?O3%XPVyxBYPdb~m(}3%_k_%3Inbj$XnA z5*wYu8MKP2I8Wmy%^|!*1|qlYLh?;7n}|NTOnfcq9}kd=W_%O(nK2O>qAx8g1b&fK zq`6e55n9G6ghU|h!{h_)z*p7SU+1Q6c=pkthx0kCf(Aqga#=UCE zxmix5eQJu^|NVpcGotNDVJ}4+3K9UE1!-NRQeb*9kVJoRe(U()rS6RXWQP!gY1U2m zOYoCIdeb;ve7g{4sIqP`4i7zbAOj;I_)zWXyw3PjrxN#BI$w@2gEY7NfRT0 z_;gk#>V*fLQrO?x!~NznWc1*>NSAFLHMe4Q#ySqcThTla`y;*4)$O1rbwKWj!dS!W zKEV?77y6O!{ia`aSxhF18V}GGoyBgyf5h5a66k|V6nV(lJVe766t8G;+1m~&MeCU| zf~+5d=6@npca@ou3tIUD#eq6)=YpR0IY$ADB*fu_X9&fkhaEI8Lm0ts+Gy3$OPq*# zie3;Rb#>sCB};XY*uI7=pG!EXi=a?#K zvDo5#hZGs9C#Zk;#YEX&M8NG@sJ@$hH@}GYmEL61mB0}ZJsn?=JpacmmdSydo|wHR zd>Z$@OU|QZFoX2$C*rewiZ<1D00wN-^OT1TansKq`|==!)0KTaZ0tN4Y36(5t&VXc z&rXcL(rX{wVpXt2Uf}`v45rf67YOkmI?};ObEMIn(CVH>I4ju#X;ZP`uAR|F-SPJ{ z2Vj3%4nF+0N!{?$U!SACYx0S%#ipy8C_I235UmbqnCz-2T^4a3CIWl!O+)=64@VIkXVF@T@BF1y#=rx9S z<|t-|a)7)XF&5oK7J3r{VgXamFi|u+Q8nm+O@8b6-tXNip|7_h%XEwY$R9z&P2gPj z;Ns`~*HC)s3WR{H;*qK*IzA?;>08<+5~mQ7OAX6qa)>-HZ8;n1td}3Q6<~Vl;h4Y~ zQZa2nKohkzg6y1c1c{w2VwbQhDn}1`uXNU8g;dA;hWw5?;16K>pLlKiVkh|u0j=Vk z*D3;<-wluJ=Q1d!`xZd$<+w|8DOJYFFXc^nI=Bl8 z`hi)s4tY`^GwjPap8#>{x?=2S$DI?&QA!CkqVmo)hH?GMiKudsMe_ka7+t7Hvy$4+ z{MM>ec=;t4pJ!0PZ)`b(9JNF=gGI&+-KTV%*z;br4*5EmA;M2{9Bu4pK)QG!<=_IXn{q2=S|IkFA^IiFo@(JePLQ{h-ve-{3xe>f+&RXTx2;hemlGx(;gY~G zus&N7Xq^1eVBgEgf2!~kas%o-F(^g=|2B>8!3XE*b^TmA>bzc%wWgT9ZQVNAqQLHD zi^Z;Pco(`)|2n8!f7rddX~)dv$#@v5gT3}61^gAlX_0%Uy9%{!+WOX(x4{b)k4G$x zK@rgRyx$Hn_vz}W@6+&8mrceD*MVMQ)L8>4&E1V@jS=-=)xYK1zs2SAfdj^pCv%ND z&g9!D*~=_upxF1i@2O3a_O?a(&ks0-BsP;YfRh8SDNP>ci9I+lvI~UhK%1>E$ZtA; zZ*r>Y$K%FOj044@8D)3uH!8$#bD1{z*lrW(SYp*Y;EWa z^f1;z)i%66e*y~%9kSrQxpLpga~oHqL8H>iqnRuSiFWgtotYmEVRA@>=PU zyb8U6tZ^qm@6_*(;i-qZ-h%dYthvqutpGYt)?w@-%}YKW$`02_%p+=*?W|kC1yb;{jfd6!0~hs65_x72 zTJN{+y`irWBZi_FS8`5yK8%r@Uekj$%3VNq{<A{)61>(@$GBTBi~$ehQA*P;pvxW0yNq-k^w`S3v23KO(GQ@`2!`9}_b1 z0`V4%1DA432~7NF8bs@qqW>+Ly>D|DwT4{|=uhY~jf^4gX_U`rzVs9B z#C4~K_xz$E>&72;QTU!B&cNA@k)uGE8x zH5i{kIGmx|c-=(gTT>PB&}A~fIg@mk9=(1M18IxTurP&UJMBHH)ys)@TOGQHb2P8bU724);3em z7Q6t7G@A-GGtHu+;D5Bai4g1F;WUV;s`y+IjeOdjPS7l{^_-l5P+ScWUphjn$*{jK zK4yl;A>YovC}?VdYFE}F?gf3ODI8mqLscp->U(Ruxz7fQoN5Dn+L)iQuvwuM=n*3~^O23BxZ4pl zoh}IXnniXZLH%FC)ner#QiGcw0gcuoQ9|ds*lK!AoEKXk;Ht{!65G1ieDfj~t3Y^fx{KJBMe~N&IC0l1$b= z{yT?YOdv2xdnIT{DxS_RW_F6d9URSmyI7eyCppGp1OCS@gwSA$pKywiqV6GODa^}ym3ZWTT`#`1NWg{L*Fx#Zc6)ZHw&@n754*k#aDTw z6f@1dW@_s7$@khJZ|D2#NCPBo&T!4=&a}NPq0-Stt!;V9Wumg=j(XCj#WoD8Pf3uT(Yn3QD{QQ~UVC4SL?%%^5`^z=@PZr~y-Nsq#Mca@~D z=ZUS_!Wa{ApMq=-GI0n2^dDSTiJI2oOg{wxhc;cij;;EdmAq)``9|SJO$>oS>OW5w z@A>RDY0C{+GcHYd>T?G0o^j#2*asaykjjNDusWx4i;d}6*9=!_i zgT>bGo5S&EpPb@Ml?R;iOxbJB-Dzo|N!%kTWw(9`jFeenDjp9j5 z-;n2=TZ5tk2agEW13c-<8|V^=;WG<7g7>~%TyYJk85mi~o{A^!IO?;EpAyIc+GmM# zjuv4Bz9o7NoAPQk`+VAUTGV_Qx(?7B6{nK>rZ#EE<2VgZ+GqyfGBVySJ#{7!JBmq5 z`<m*mO8h)F4$nxiA-3n;dYjC@-qQ?coB~RQ>j*e}X7J#T zqjrb}A|0hz==2`t&I*Vm*TXS(w%NEf7@HGDr{nwJ?uQ}qt_nSpAEoutVOJN0{z*UW zri|~0G|Lg{ao_G!=x(jF_s^{}+Wp@baOHr!I`bcYMjrD2=j}0*kkX)%s4DT2c9Spx z1^!1u@sugx!%cw!@$q(@-2}SVnVmLLYE@&Mvu zuCu0sT&of|&F9@OLgXQT&Q_wRCXIhMtJVJ?%=n{#3b&Nu#70+wsD4MaVoDYtVE(M0 zU>)PI7XTCd{B1Uo;WK*K!LdY#ie;ZOkpleKSFTkj-t}eFsFD5qr|F08t@0w{_5^zA zvMi`+T%TkP&F_Rv+cNU`f?C6eV8QFm>WO3SfGf=pNq=IjryxxG19g2<4)-VbSp?_K z^*?D)b#A^)H2#G4k3xvi$fxeofZ=D0m)%;BK=dv~!M-~JXeL9?LJ%Qnr|SX`Bdo)1 zQcy5RR`=Qz2DDCno*rt#2PfaazI+!w2XsR!40qb&{5=YSSXb)$d;3ObBWC+ zz$S@cuj@8jWHhd*$7j5N)5ZyhHkA61_DHN|5R$llYcr;IC_Dmo4zhwRAdb-bXF*Zc zMjV^IKl6bAio!*3*{$t?O%NAv8m0kf579Qt19UH<9PL`mPRox?gf)z;ou)OfCZUI$ z(mi)L39BjTIdRm{(Xz4~BQl?|9|msMRUL8aNOYj4VIac=D@*F z3FemjH?lJ+gOk+?4*Ci<@?Clu9YRS}F)Lb8EDj zI%?x3M?3n&kA_9tZa~}0NJsXI1jy24r?MDnt?h#8aF9d(O03<^9;N&fDU3RjkEYM4 zx|Ce~yLQq#(mbr)KAtht!G2?H2~YlJuaBAoD~Phv?2&Vals20t0Y_nnDE+nD9V+xbckn`PQizg=u<@=qvg7+BZ&;K4&- z)12WVcrg>g@i`WR#y_78%b0cQf=Nbj{%h0hbEu~pUb=VD2 zD1}TX8x~5or_99T#xc=Jr)VR?>D!{SEgRzw>Ix+dzBug{_?d_Qfz+GufpddCwmPS0 zG4C+d)E#M(+;zG@D`=9J$(LY(+FE00{n4;HOh6exY3}8`0@%c_Qb^b_u9_FJ8a$?- zx7~&s?`CMR&P8;7=sfA>~)gFu-WM3_Fnvj_vFKwe3F$zUIA`8MarHQiio zML6%qsEmci4PX&5^X*Kx?2jLde)5R<7a$~;H_@;KOfXdwO+t~2$xBk?xk-1;4Zqff z5Ig!75;qaiMkAumq@$l$CZ#FiVcwt?>rn|gsIyaNZWTG@I%O{3|19`LUq$v&Y5pcw zbbHc~)jJpYDWxa#e!ha`DrcX~0KAb`((_1o(@m{#YWssg!`kHG;c9K<0hptC_fstTegRU zdbSPVDBNJ(dP}M#>DL$SeMWa1`CKT)SZx?_=g4(2#6AN&7^+(q^%7AuhU0!-MHl0$ zqB*CAN=ls5_&x1Xeh7!)G4wwE8|Joq|4mpf;zzUBeK&t?tx)#8z_X!WGOl|sep~SM%br~?8p9i<3O`;B@7?h&*VCVA zlAgfC2#5cZ8Hy8GwKBiGKbDYeAkx!&*u3*r#F}iG?);>ezB>Cmr;5qh^mji@urT}V zzT*Om+_r%F`x$OqeakZ| zEVfr%`L5IZXlLN1Lx$X$+~*?=bbBH!DkWE20Z&T{tCU_B5$>9N<-1b_)B4t9h0o5F zdg(TV#T=ZS;k;e9y5Pt(cf%BKR`r}pq4b=}Y5!VT0!2?uu5S_u400^GsdDb9m9+E0 z!adTPK5T5=_*&)oy9xJVF2%9jIC6B{IhfKk_L`{##PdAGvbj`=i^IWZR_QpWl7Pcg=0J zJdXRWYv_wxuM9&rzRW2JGR-w|x_nY# z<=SNhGv@xPUGak-)aewAOnebMxo7T5*2xJ~5sH(o<|VTno-QCHVnY?OyJ(A_%xV22|PmuFy5Loq4F zbn=14O2GRnAPT`JqXT`o28eY~6n?e@Ds-2HoD|K#Fb8;4J*ux(Su;#_u$P+r-dY)C zr!4&NVqjo7q8KG?4^rt3Rs}x`7pTe(MU{{v!(@9$53u_Y$Fedo=%c9eaGv~Nsp#bX zrKZw|Qzy|aw3&Q=X)G)FaK6co%S4&(0!>{iH(AqD5o|i*h3ecgtD2iT%f}LQn+*k&&g8+CA4~io72&f{q$+MPgNt=I$tt?_-P(o3-eDeL} zb~4BdUr=p(QaSm-a@oliRgmn07(irTP(U$gQ#DYb%;cRbeLJSP@D2g_Aft}^w z4bGV|h+z=)bmG(tRv5ohM+VWmVqgFcl)&>R1H<7ykRoiOCSu@#Ml?*(!|=$Y$pygP knZ_y|X>dsb%+p7C7#K8Aj2D}nzsiA2h?jxk#2k>V0F7~z=l}o! diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index ed4c299ad..a34806c2b 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.13-all.zip +distributionUrl=https\://services.gradle.org/distributions-snapshots/gradle-8.14-20250406024815+0000-bin.zip networkTimeout=10000 validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME diff --git a/gradlew b/gradlew index f5feea6d6..faf93008b 100755 --- a/gradlew +++ b/gradlew @@ -86,8 +86,7 @@ done # shellcheck disable=SC2034 APP_BASE_NAME=${0##*/} # Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036) -APP_HOME=$( cd -P "${APP_HOME:-./}" > /dev/null && printf '%s -' "$PWD" ) || exit +APP_HOME=$( cd -P "${APP_HOME:-./}" > /dev/null && printf '%s\n' "$PWD" ) || exit # Use the maximum available, or set MAX_FD != -1 to use that value. MAX_FD=maximum @@ -206,7 +205,7 @@ fi DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' # Collect all arguments for the java command: -# * DEFAULT_JVM_OPTS, JAVA_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments, +# * DEFAULT_JVM_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments, # and any embedded shellness will be escaped. # * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be # treated as '${Hostname}' itself on the command line.