diff --git a/boot/src/main/java/com/zfoo/boot/BootAutoConfiguration.java b/boot/src/main/java/com/zfoo/boot/BootAutoConfiguration.java index cb939306..e638534c 100644 --- a/boot/src/main/java/com/zfoo/boot/BootAutoConfiguration.java +++ b/boot/src/main/java/com/zfoo/boot/BootAutoConfiguration.java @@ -15,6 +15,7 @@ package com.zfoo.boot; import com.fasterxml.jackson.databind.ObjectMapper; import com.zfoo.boot.graalvm.GraalvmProtocolHints; import com.zfoo.boot.graalvm.GraalvmStorageHints; +import com.zfoo.protocol.util.GraalVmUtils; import com.zfoo.protocol.util.JsonUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -37,6 +38,7 @@ public class BootAutoConfiguration { @ConditionalOnMissingBean public ObjectMapper getObjectMapper() { logger.info("Jackson auto config successfully!"); + logger.info("GraalVM environment [{}]", GraalVmUtils.isGraalVM()); return JsonUtils.MAPPER; } diff --git a/protocol/src/main/java/com/zfoo/protocol/util/GraalVmUtils.java b/protocol/src/main/java/com/zfoo/protocol/util/GraalVmUtils.java index e8262c82..4bad5159 100644 --- a/protocol/src/main/java/com/zfoo/protocol/util/GraalVmUtils.java +++ b/protocol/src/main/java/com/zfoo/protocol/util/GraalVmUtils.java @@ -13,6 +13,8 @@ package com.zfoo.protocol.util; +import java.io.IOException; +import java.io.InputStream; import java.util.List; /** @@ -29,7 +31,20 @@ public abstract class GraalVmUtils { , System.getProperty("java.vendor.url", "") , System.getProperty("org.graalvm.nativeimage.imagecode", "") ); - GRAALVM = properties.stream().map(it -> it.toLowerCase()).anyMatch(it -> it.contains("graalvm")); + var graalvm = properties.stream().map(it -> it.toLowerCase()).anyMatch(it -> it.contains("graalvm")); + if (!graalvm) { + // If the graalvm keyword is not included, it must not be a Graal VM environment. + GRAALVM = false; + } else { + InputStream graalvmInputStream = null; + try { + // graalvm environment must not include YHOy5hWaRXNxJuSg.CZgueirdE9x6sOUl file + graalvmInputStream = ClassUtils.getFileFromClassPath("YHOy5hWaRXNxJuSg.CZgueirdE9x6sOUl"); + } catch (IOException e) { + } + GRAALVM = graalvmInputStream == null; + IOUtils.closeIO(graalvmInputStream); + } } public static boolean isGraalVM() { diff --git a/protocol/src/main/resources/YHOy5hWaRXNxJuSg.CZgueirdE9x6sOUl b/protocol/src/main/resources/YHOy5hWaRXNxJuSg.CZgueirdE9x6sOUl new file mode 100644 index 00000000..e69de29b