diff --git a/headlessmc-launcher/build.gradle b/headlessmc-launcher/build.gradle index 6c781d3..83c86b7 100644 --- a/headlessmc-launcher/build.gradle +++ b/headlessmc-launcher/build.gradle @@ -100,6 +100,7 @@ shadowJar { dependsOn shadowBugWorkaround from shadowBugWorkaround + // TODO: fix this, since it breaks graalvm, because the resource is not available!!! // ignore the forge-cli jar from processResources as it will get expanded // that the runtime and lwjgl jars get expanded isnt problematic processResources.exclude('forgecli*.jar') @@ -125,6 +126,7 @@ graalvmNative { main { sharedLibrary = false buildArgs.add('--enable-url-protocols=https') + buildArgs.add('-Ob') } } } diff --git a/headlessmc-launcher/src/main/java/me/earth/headlessmc/launcher/version/Logging.java b/headlessmc-launcher/src/main/java/me/earth/headlessmc/launcher/version/Logging.java index 60ace55..4626267 100644 --- a/headlessmc-launcher/src/main/java/me/earth/headlessmc/launcher/version/Logging.java +++ b/headlessmc-launcher/src/main/java/me/earth/headlessmc/launcher/version/Logging.java @@ -4,23 +4,39 @@ import com.google.gson.JsonElement; import com.google.gson.JsonObject; import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.RequiredArgsConstructor; import me.earth.headlessmc.launcher.util.JsonUtil; import org.jetbrains.annotations.Nullable; import java.net.URL; @Data +@RequiredArgsConstructor public class Logging { private final String argument; private final String type; private final File file; + @Deprecated + @SuppressWarnings("unused") // used by graalvm + private Logging() { + this(null, null, null); + } + @Data + @RequiredArgsConstructor public static class File { private final String id; private final String sha1; private final Long size; private final URL url; + + @Deprecated + @SuppressWarnings("unused") // used by graalvm + private File() { + this(null, null, 0L, null); + } } public static Logging fromJson(JsonElement element) { diff --git a/headlessmc-launcher/src/test/java/me/earth/headlessmc/launcher/command/forge/ForgeCliTest.java b/headlessmc-launcher/src/test/java/me/earth/headlessmc/launcher/command/forge/ForgeCliTest.java new file mode 100644 index 0000000..0d955be --- /dev/null +++ b/headlessmc-launcher/src/test/java/me/earth/headlessmc/launcher/command/forge/ForgeCliTest.java @@ -0,0 +1,21 @@ +package me.earth.headlessmc.launcher.command.forge; + +import org.junit.jupiter.api.Test; + +import java.io.IOException; +import java.io.InputStream; + +import static org.junit.jupiter.api.Assertions.assertNotNull; + +public class ForgeCliTest { + // just a test to tell GraalVM that we need this resource! + @Test + public void testForgeCliResourceForGraalVM() { + try (InputStream is = ForgeCliTest.class.getClassLoader().getResourceAsStream("headlessmc/forge-cli.jar")) { + assertNotNull(is); + } catch (IOException e) { + throw new RuntimeException(e); + } + } + +}