From ffddb198c279848ee9d0a638cc8604a879ba4459 Mon Sep 17 00:00:00 2001 From: Michal Karm Babacek Date: Sun, 28 Sep 2025 19:26:25 +0200 Subject: [PATCH 1/4] Additional JDK25 and Quarkus 3.28.1 add-opens, whitelist --- .github/workflows/builder_image_tests.yml | 32 ++++++------ .github/workflows/local_tests.yml | 50 +++++++++---------- .../.mvn/jvm.config | 3 ++ apps/quarkus-mp-orm-dbs-awt/.mvn/jvm.config | 3 ++ apps/quarkus-mp-orm-dbs-awt/pom.xml | 12 +++++ .../src/main/resources/application.properties | 2 + .../integration/utils/BuildAndRunCmds.java | 40 +++++++++++---- .../integration/utils/WhitelistLogLines.java | 11 ++-- 8 files changed, 97 insertions(+), 56 deletions(-) create mode 100644 apps/jfr-native-image-performance/.mvn/jvm.config create mode 100644 apps/quarkus-mp-orm-dbs-awt/.mvn/jvm.config diff --git a/.github/workflows/builder_image_tests.yml b/.github/workflows/builder_image_tests.yml index 38beb3aa..da8dbfaa 100644 --- a/.github/workflows/builder_image_tests.yml +++ b/.github/workflows/builder_image_tests.yml @@ -60,24 +60,24 @@ jobs: mandrel-builder-base: 'ubi' os: 'ubuntu-22.04' - - quarkus-version: '3.20.0' + - quarkus-version: '3.20.3' mandrel-builder-version: 'jdk-21' mandrel-builder-base: 'ubi' os: 'ubuntu-22.04' - - quarkus-version: '3.21.0' + - quarkus-version: '3.21.4' mandrel-builder-version: 'jdk-21' mandrel-builder-base: 'ubi' os: 'ubuntu-22.04' - - quarkus-version: '3.21.0' + - quarkus-version: '3.21.4' mandrel-builder-version: 'jdk-21' mandrel-builder-base: 'ubi9' os: 'ubuntu-24.04' - - quarkus-version: '3.21.0' + - quarkus-version: '3.21.4' mandrel-builder-version: 'jdk-21' mandrel-builder-base: 'ubi' os: 'ubuntu-22.04-arm' - - quarkus-version: '3.21.0' + - quarkus-version: '3.21.4' mandrel-builder-version: 'jdk-21' mandrel-builder-base: 'ubi9' os: 'ubuntu-24.04-arm' @@ -91,29 +91,29 @@ jobs: mandrel-builder-base: 'ubi9' os: 'ubuntu-24.04' - - quarkus-version: '3.21.0' - mandrel-builder-version: 'jdk-23' + - quarkus-version: '3.21.4' + mandrel-builder-version: 'jdk-24' mandrel-builder-base: 'ubi' os: 'ubuntu-22.04' - - quarkus-version: '3.21.0' + - quarkus-version: '3.21.4' mandrel-builder-version: 'jdk-23' mandrel-builder-base: 'ubi9' os: 'ubuntu-24.04' - - quarkus-version: '3.22.0.CR1' - mandrel-builder-version: 'jdk-24' + - quarkus-version: '3.28.3' + mandrel-builder-version: 'jdk-25' mandrel-builder-base: 'ubi' os: 'ubuntu-22.04' - - quarkus-version: '3.22.0.CR1' - mandrel-builder-version: 'jdk-24' + - quarkus-version: '3.28.3' + mandrel-builder-version: 'jdk-25' mandrel-builder-base: 'ubi9' os: 'ubuntu-24.04' - - quarkus-version: '3.22.0.CR1' - mandrel-builder-version: 'jdk-24' + - quarkus-version: '3.28.3' + mandrel-builder-version: 'jdk-25' mandrel-builder-base: 'ubi' os: 'ubuntu-22.04-arm' - - quarkus-version: '3.22.0.CR1' - mandrel-builder-version: 'jdk-24' + - quarkus-version: '3.28.3' + mandrel-builder-version: 'jdk-25' mandrel-builder-base: 'ubi9' os: 'ubuntu-24.04-arm' steps: diff --git a/.github/workflows/local_tests.yml b/.github/workflows/local_tests.yml index c8f2f0e9..35ccc395 100644 --- a/.github/workflows/local_tests.yml +++ b/.github/workflows/local_tests.yml @@ -76,13 +76,13 @@ jobs: os: 'ubuntu-22.04' timeout-minutes: 130 - - quarkus-version: '3.21.0' - mandrel-version: '23.1.6.0-Final' + - quarkus-version: '3.21.4' + mandrel-version: '23.1.8.0-Final' java-version: '21' os: 'windows-2022' timeout-minutes: 80 - - quarkus-version: '3.21.0' - mandrel-version: '23.1.6.0-Final' + - quarkus-version: '3.21.4' + mandrel-version: '23.1.8.0-Final' java-version: '21' os: 'ubuntu-22.04' timeout-minutes: 130 @@ -98,47 +98,47 @@ jobs: os: 'ubuntu-22.04' timeout-minutes: 130 - - quarkus-version: '3.21.0' - mandrel-version: '24.1.2.0-Final' - java-version: '23' + - quarkus-version: '3.21.4' + mandrel-version: '24.2.2.0-Final' + java-version: '24' os: 'windows-2022' timeout-minutes: 80 - - quarkus-version: '3.21.0' - mandrel-version: '24.1.2.0-Final' - java-version: '23' + - quarkus-version: '3.21.4' + mandrel-version: '24.2.2.0-Final' + java-version: '24' os: 'ubuntu-22.04' timeout-minutes: 130 - - quarkus-version: '3.22.0.CR1' - mandrel-version: '24.2.0.0-Final' - java-version: '24' + - quarkus-version: '3.28.3' + mandrel-version: '25.0.0.1-Final' + java-version: '25' os: 'windows-2022' timeout-minutes: 80 - - quarkus-version: '3.22.0.CR1' - mandrel-version: '24.2.0.0-Final' - java-version: '24' + - quarkus-version: '3.28.3' + mandrel-version: '25.0.0.1-Final' + java-version: '25' os: 'ubuntu-22.04' timeout-minutes: 130 - - quarkus-version: '3.21.0' - mandrel-version: '23.1.6.0-Final' + - quarkus-version: '3.21.4' + mandrel-version: '23.1.8.0-Final' java-version: '21' os: 'ubuntu-22.04-arm' timeout-minutes: 130 - - quarkus-version: '3.22.0.CR1' - mandrel-version: '24.2.0.0-Final' - java-version: '24' + - quarkus-version: '3.28.3' + mandrel-version: '25.0.0.1-Final' + java-version: '25' os: 'ubuntu-22.04-arm' timeout-minutes: 130 - - quarkus-version: '3.21.0' + - quarkus-version: '3.21.4' mandrel-version: '23.1.6.0-Final' java-version: '21' os: 'macos-15' timeout-minutes: 130 - - quarkus-version: '3.22.0.CR1' - mandrel-version: '24.2.0.0-Final' - java-version: '24' + - quarkus-version: '3.28.3' + mandrel-version: '25.0.0.1-Final' + java-version: '25' os: 'macos-15' timeout-minutes: 130 diff --git a/apps/jfr-native-image-performance/.mvn/jvm.config b/apps/jfr-native-image-performance/.mvn/jvm.config new file mode 100644 index 00000000..77b9fca8 --- /dev/null +++ b/apps/jfr-native-image-performance/.mvn/jvm.config @@ -0,0 +1,3 @@ +--enable-native-access=ALL-UNNAMED +--add-opens=java.base/java.lang=ALL-UNNAMED + diff --git a/apps/quarkus-mp-orm-dbs-awt/.mvn/jvm.config b/apps/quarkus-mp-orm-dbs-awt/.mvn/jvm.config new file mode 100644 index 00000000..77b9fca8 --- /dev/null +++ b/apps/quarkus-mp-orm-dbs-awt/.mvn/jvm.config @@ -0,0 +1,3 @@ +--enable-native-access=ALL-UNNAMED +--add-opens=java.base/java.lang=ALL-UNNAMED + diff --git a/apps/quarkus-mp-orm-dbs-awt/pom.xml b/apps/quarkus-mp-orm-dbs-awt/pom.xml index 42ba6f70..bb38d46d 100644 --- a/apps/quarkus-mp-orm-dbs-awt/pom.xml +++ b/apps/quarkus-mp-orm-dbs-awt/pom.xml @@ -15,6 +15,7 @@ mp-orm-dbs-awt + --enable-native-access=ALL-UNNAMED --add-opens=java.base/java.lang=ALL-UNNAMED 17 UTF-8 UTF-8 @@ -166,6 +167,7 @@ maven-surefire-plugin ${maven.surefire.version} + ${jvm.args} org.jboss.logmanager.LogManager ${maven.home} @@ -182,12 +184,17 @@ verify + ${jvm.args} + ${jvm.args} ${project.build.directory}/${project.build.finalName}-runner org.jboss.logmanager.LogManager ${maven.home} + + ${jvm.args} + @@ -213,7 +220,9 @@ verify + ${jvm.args} + ${jvm.args} ${project.build.directory}/${project.build.finalName}-runner @@ -221,6 +230,9 @@ ${maven.home} + + ${jvm.args} + diff --git a/apps/quarkus-mp-orm-dbs-awt/src/main/resources/application.properties b/apps/quarkus-mp-orm-dbs-awt/src/main/resources/application.properties index 8f07e6b0..2092b92c 100644 --- a/apps/quarkus-mp-orm-dbs-awt/src/main/resources/application.properties +++ b/apps/quarkus-mp-orm-dbs-awt/src/main/resources/application.properties @@ -58,6 +58,8 @@ ${UnlockExperimentalBEGIN}\ -H:ResourceConfigurationFiles=resource-config.json,\ -H:BuildOutputJSONFile=${BuildOutputJSONFile},\ ${UnlockExperimentalEND}\ +-J--enable-native-access=ALL-UNNAMED,\ +-J--add-opens=java.base/java.lang=ALL-UNNAMED,\ --initialize-at-run-time=\ org.apache.fontbox.ttf.RAFDataStream\\,\ org.apache.fontbox.ttf.TTFParser\\,\ diff --git a/testsuite/src/it/java/org/graalvm/tests/integration/utils/BuildAndRunCmds.java b/testsuite/src/it/java/org/graalvm/tests/integration/utils/BuildAndRunCmds.java index 7afa3a73..69d98af6 100755 --- a/testsuite/src/it/java/org/graalvm/tests/integration/utils/BuildAndRunCmds.java +++ b/testsuite/src/it/java/org/graalvm/tests/integration/utils/BuildAndRunCmds.java @@ -75,6 +75,8 @@ public enum BuildAndRunCmds { "-DBuildOutputJSONFile=" + GRAALVM_BUILD_OUTPUT_JSON_FILE, "-DUnlockExperimentalBEGIN=" + GRAALVM_EXPERIMENTAL_BEGIN, "-DUnlockExperimentalEND=" + GRAALVM_EXPERIMENTAL_END, + // You can't add additional-build-args here. It overrides what's in application.properties. + //"-Dquarkus.native.additional-build-args=", "-Dquarkus.native.native-image-xmx=" + NATIVE_IMAGE_XMX_GB + "g", "-DfinalName=" + FINAL_NAME_TOKEN } }, @@ -105,7 +107,9 @@ public enum BuildAndRunCmds { { "mvn", "--batch-mode", "package", "-Pnative", "-Dquarkus.version=" + QUARKUS_VERSION.getVersionString(), "-Dquarkus.native.additional-build-args=" + "-H:Log=registerResource:," + - "--trace-object-instantiation=java.util.Random" + "--trace-object-instantiation=java.util.Random," + + "-J--add-opens=java.base/java.lang=ALL-UNNAMED," + + "-J--enable-native-access=ALL-UNNAMED" } }, new String[][] { { IS_THIS_WINDOWS ? "target\\quarkus-runner.exe" : "./target/quarkus-runner" } } @@ -115,7 +119,9 @@ public enum BuildAndRunCmds { { "mvn", "--batch-mode", "package", "-Pnative", "-Dquarkus.native.debug.enabled=true", "-Dquarkus.version=" + QUARKUS_VERSION.getVersionString(), "-Dquarkus.native.additional-build-args=" + "-H:Log=registerResource:," + - "--trace-object-instantiation=java.util.Random" + "--trace-object-instantiation=java.util.Random," + + "-J--add-opens=java.base/java.lang=ALL-UNNAMED," + + "-J--enable-native-access=ALL-UNNAMED" }, { "mvn", "--batch-mode", "dependency:resolve-sources", "-Dquarkus.version=" + QUARKUS_VERSION.getVersionString() } }, new String[][] { { IS_THIS_WINDOWS ? "target\\quarkus-runner.exe" : "./target/quarkus-runner" } } @@ -124,6 +130,8 @@ public enum BuildAndRunCmds { new String[][] { { "mvn", "--batch-mode", "package", "-Pnative", "-Dquarkus.version=" + QUARKUS_VERSION.getVersionString(), "-Dquarkus.native.additional-build-args=" + + "-J--add-opens=java.base/java.lang=ALL-UNNAMED," + + "-J--enable-native-access=ALL-UNNAMED," + "-H:Log=registerResource:," + "--trace-object-instantiation=java.util.Random," + "-R:MaxHeapSize=" + MX_HEAP_MB + "m" + @@ -158,12 +166,16 @@ public enum BuildAndRunCmds { // TODO tune and report: https://www.graalvm.org/22.0/reference-manual/native-image/MemoryManagement/ { "mvn", "--batch-mode", "package", "-Pnative", "-Dquarkus.version=" + QUARKUS_VERSION.getVersionString(), "-Dquarkus.native.additional-build-args=" + + "-J--add-opens=java.base/java.lang=ALL-UNNAMED," + + "-J--enable-native-access=ALL-UNNAMED," + "-R:MaxHeapSize=" + MX_HEAP_MB + "m," + "-H:-ParseOnce" + GRAALVM_BUILD_OUTPUT_JSON_FILE + "-ParseOnce", "-Dcustom.final.name=quarkus-json_-ParseOnce" }, { "mvn", "--batch-mode", "package", "-Pnative", "-Dquarkus.version=" + QUARKUS_VERSION.getVersionString(), "-Dquarkus.native.additional-build-args=" + + "-J--add-opens=java.base/java.lang=ALL-UNNAMED," + + "-J--enable-native-access=ALL-UNNAMED," + "-R:MaxHeapSize=" + MX_HEAP_MB + "m," + "-H:+ParseOnce" + GRAALVM_BUILD_OUTPUT_JSON_FILE + "+ParseOnce", @@ -182,6 +194,8 @@ public enum BuildAndRunCmds { // TODO tune and report: https://www.graalvm.org/22.0/reference-manual/native-image/MemoryManagement/ { "mvn", "--batch-mode", "package", "-Pnative", "-Dquarkus.version=" + QUARKUS_VERSION.getVersionString(), "-Dquarkus.native.additional-build-args=" + + "-J--add-opens=java.base/java.lang=ALL-UNNAMED," + + "-J--enable-native-access=ALL-UNNAMED," + "-R:MaxHeapSize=" + MX_HEAP_MB + "m" + GRAALVM_BUILD_OUTPUT_JSON_FILE, "-Dcustom.final.name=quarkus-json" }, @@ -194,7 +208,8 @@ public enum BuildAndRunCmds { new String[][] { { "mvn", "--batch-mode", "package", "-Pnative", "-Dquarkus.native.container-build=true", "-Dquarkus.native.container-runtime=" + CONTAINER_RUNTIME, - "-Dquarkus.native.builder-image=" + BUILDER_IMAGE, "-Dquarkus.version=" + QUARKUS_VERSION.getVersionString() }, + "-Dquarkus.native.builder-image=" + BUILDER_IMAGE, "-Dquarkus.version=" + QUARKUS_VERSION.getVersionString(), + "-Dquarkus.native.additional-build-args=-J--add-opens=java.base/java.lang=ALL-UNNAMED,-J--enable-native-access=ALL-UNNAMED"}, { CONTAINER_RUNTIME, "build", "-f", "src/main/docker/Dockerfile.native", "-t", "my-quarkus-mandrel-app", "." } }, new String[][] { @@ -207,7 +222,9 @@ public enum BuildAndRunCmds { { "mvn", "--batch-mode", "package", "-Pnative", "-Dquarkus.native.container-build=true", "-Dquarkus.native.container-runtime=" + CONTAINER_RUNTIME, "-Dquarkus.native.builder-image=" + BUILDER_IMAGE, - "-Dquarkus.native.debug.enabled=true", "-Dquarkus.version=" + QUARKUS_VERSION.getVersionString() }, + "-Dquarkus.native.debug.enabled=true", "-Dquarkus.version=" + QUARKUS_VERSION.getVersionString(), + "-Dquarkus.native.additional-build-args=-J--add-opens=java.base/java.lang=ALL-UNNAMED,-J--enable-native-access=ALL-UNNAMED" + }, { CONTAINER_RUNTIME, "build", "--network=host", "-f", "src/main/docker/Dockerfile.native", "-t", "my-quarkus-mandrel-app", "." }, { CONTAINER_RUNTIME, "run", "--network=host", "--ulimit", "memlock=-1:-1", "-it", "-d", "--rm=true", "--name", "quarkus_test_db", "-e", "POSTGRES_USER=quarkus_test", "-e", "POSTGRES_PASSWORD=quarkus_test", @@ -250,7 +267,7 @@ public enum BuildAndRunCmds { CACERTS( new String[][] { { "mvn", "--batch-mode", "package" }, - { "native-image", "--link-at-build-time=", "--no-fallback", "-jar", "target/cacerts.jar", "target/cacerts" } + { "native-image", "-J--enable-native-access=ALL-UNNAMED", "--link-at-build-time=", "--no-fallback", "-jar", "target/cacerts.jar", "target/cacerts" } }, new String[][] { { IS_THIS_WINDOWS ? "target\\cacerts.exe" : "./target/cacerts" } } @@ -273,7 +290,7 @@ public enum BuildAndRunCmds { CALENDARS( new String[][] { { "mvn", "--batch-mode", "package" }, - { "native-image", "--link-at-build-time=calendar.Main", "-jar", "target/calendars.jar", "target/calendars" } }, + { "native-image", "-J--enable-native-access=ALL-UNNAMED", "--link-at-build-time=calendar.Main", "-jar", "target/calendars.jar", "target/calendars" } }, new String[][] { { IS_THIS_WINDOWS ? "target\\calendars.exe" : "./target/calendars" } } ), @@ -351,7 +368,7 @@ public enum BuildAndRunCmds { // I don't think the difference between the two will be that huge anyway though. // Source: https://github.com/Karm/mandrel-integration-tests/pull/179#discussion_r1295933521 { "mvn", "--batch-mode", "package", "-Pnative", "-Dquarkus.version=" + QUARKUS_VERSION.getVersionString(), "-Dquarkus.native.monitoring=jfr", - "-Dquarkus.native.additional-build-args=-H:+SignalHandlerBasedExecutionSampler", + "-Dquarkus.native.additional-build-args=-J--add-opens=java.base/java.lang=ALL-UNNAMED,-J--enable-native-access=ALL-UNNAMED,-H:+SignalHandlerBasedExecutionSampler", "-DfinalName=jfr-perf" } }, new String[][] { { "./target/jfr-perf-runner", @@ -363,6 +380,7 @@ public enum BuildAndRunCmds { PLAINTEXT_PERFORMANCE( new String[][] { { "mvn", "--batch-mode", "package", "-Pnative", "-Dquarkus.version=" + QUARKUS_VERSION.getVersionString(), + "-Dquarkus.native.additional-build-args=-J--add-opens=java.base/java.lang=ALL-UNNAMED,-J--enable-native-access=ALL-UNNAME", "-DfinalName=jfr-plaintext" } }, new String[][] { { "./target/jfr-plaintext-runner" }, @@ -373,7 +391,7 @@ public enum BuildAndRunCmds { { "mvn", "--batch-mode", "package", "-Pnative", "-Dquarkus.native.container-build=true", "-Dquarkus.native.container-runtime=" + CONTAINER_RUNTIME, "-Dquarkus.native.builder-image=" + BUILDER_IMAGE, "-Dquarkus.version=" + QUARKUS_VERSION.getVersionString(), "-Dquarkus.native.monitoring=jfr", - "-Dquarkus.native.additional-build-args=-H:+SignalHandlerBasedExecutionSampler", + "-Dquarkus.native.additional-build-args=-J--add-opens=java.base/java.lang=ALL-UNNAMED,-J--enable-native-access=ALL-UNNAMED,-H:+SignalHandlerBasedExecutionSampler", "-DfinalName=jfr-perf" }, { CONTAINER_RUNTIME, "build", "-f", "src/main/docker/Dockerfile.native", "-t", "jfr-performance-app", "." } }, new String[][] { @@ -392,6 +410,7 @@ public enum BuildAndRunCmds { { "mvn", "--batch-mode", "package", "-Pnative", "-Dquarkus.native.container-build=true", "-Dquarkus.native.container-runtime=" + CONTAINER_RUNTIME, "-Dquarkus.native.builder-image=" + BUILDER_IMAGE, "-Dquarkus.version=" + QUARKUS_VERSION.getVersionString(), + "-Dquarkus.native.additional-build-args=-J--add-opens=java.base/java.lang=ALL-UNNAMED,-J--enable-native-access=ALL-UNNAME", "-DfinalName=jfr-plaintext" }, { CONTAINER_RUNTIME, "build", "-f", "src/main/docker/Dockerfile.native", "-t", "jfr-plaintext-app", "." } }, new String[][] { @@ -466,6 +485,7 @@ public enum BuildAndRunCmds { new String[][] { { "mvn", "--batch-mode", "package" }, { "native-image", "--initialize-at-build-time=.", "--no-fallback", + "-J--add-opens=java.base/java.lang=ALL-UNNAMED", "-J--add-opens=java.desktop/com.sun.imageio.plugins.common=ALL-UNNAMED", "-J--add-exports=java.desktop/com.sun.imageio.plugins.common=ALL-UNNAMED", "-jar", "./target/reslocations.jar", "target/reslocations" } }, @@ -579,10 +599,10 @@ public enum BuildAndRunCmds { new String[][] { // We build runtime images, different bases { CONTAINER_RUNTIME, "build", "--network=host", "-f", "Dockerfile." + RUNTIME_IMAGE_BASE_TOKEN, - "-t", ContainerNames.IMAGEIO_BUILDER_IMAGE.name + "_" + RUNTIME_IMAGE_BASE_TOKEN, "." }, + "-t", ContainerNames.VTHREADS_PROPS_BUILDER_IMAGE.name + "_" + RUNTIME_IMAGE_BASE_TOKEN, "." }, { CONTAINER_RUNTIME, "run", IS_THIS_WINDOWS ? "" : "-u", IS_THIS_WINDOWS ? "" : getUnixUIDGID(), "-t", "-v", BASE_DIR + File.separator + "apps" + File.separator + "vthread_props:/work:z", - ContainerNames.IMAGEIO_BUILDER_IMAGE.name + "_" + RUNTIME_IMAGE_BASE_TOKEN, + ContainerNames.VTHREADS_PROPS_BUILDER_IMAGE.name + "_" + RUNTIME_IMAGE_BASE_TOKEN, "/work/target/vthread_props.bin" } } ); diff --git a/testsuite/src/it/java/org/graalvm/tests/integration/utils/WhitelistLogLines.java b/testsuite/src/it/java/org/graalvm/tests/integration/utils/WhitelistLogLines.java index 979c9af6..476bcb2f 100755 --- a/testsuite/src/it/java/org/graalvm/tests/integration/utils/WhitelistLogLines.java +++ b/testsuite/src/it/java/org/graalvm/tests/integration/utils/WhitelistLogLines.java @@ -51,7 +51,6 @@ public Pattern[] get(boolean inContainer) { p.add(Pattern.compile(".*com.google.errorprone.*")); // JDK: p.add(Pattern.compile(".*location of system modules is not set in conjunction with -source 11.*")); - p.add(Pattern.compile("WARNING.* reflective access.*")); p.add(Pattern.compile("WARNING: All illegal access operations.*")); p.add(Pattern.compile("WARNING: Please consider reporting this to the maintainers of com.google.inject.internal.cglib.*")); p.add(Pattern.compile("WARNING: Please consider reporting this to the maintainers of com.fasterxml.jackson.databind.util.*")); @@ -84,14 +83,11 @@ public Pattern[] get(boolean inContainer) { p.add(Pattern.compile(".*Isolation level: .*")); p.add(Pattern.compile(".*Maximum pool size: undefined/unknown.*")); if ((UsedVersion.getVersion(inContainer).compareTo(Version.create(24, 2, 0)) >= 0)) { - p.add(Pattern.compile(".*A restricted method in java.lang.System has been called.*")); p.add(Pattern.compile(".*A terminally deprecated method in sun.misc.Unsafe has been called.*")); p.add(Pattern.compile(".*java.lang.System::load has been called by org.fusesource.jansi.internal.JansiLoader in an unnamed module.*jansi-.*.jar.*")); p.add(Pattern.compile(".*Please consider reporting this to the maintainers of class com.google.common.util.concurrent.AbstractFuture\\$UnsafeAtomicHelper.*")); - p.add(Pattern.compile(".*Restricted methods will be blocked in a future release unless native access is enabled.*")); p.add(Pattern.compile(".*sun.misc.Unsafe::objectFieldOffset has been called by com.google.common.util.concurrent.AbstractFuture\\$UnsafeAtomicHelper.*guava-.*.jar.*")); p.add(Pattern.compile(".*sun.misc.Unsafe::objectFieldOffset will be removed in a future release.*")); - p.add(Pattern.compile(".*Use --enable-native-access=ALL-UNNAMED to avoid a warning for callers in this module.*")); } // TODO: Revisit when we leave JDK 17... p.add(Pattern.compile(".*location of system modules is not set in conjunction with -source 17.*")); @@ -305,7 +301,7 @@ public Pattern[] get(boolean inContainer) { p.add(Pattern.compile(".*WARNING: sun.misc.Unsafe::arrayBaseOffset has been called by .*jctools.util.UnsafeRefArrayAccess.*")); p.add(Pattern.compile(".*WARNING: Please consider reporting this to the maintainers of class .*jctools.util.UnsafeRefArrayAccess")); p.add(Pattern.compile(".*WARNING: sun.misc.Unsafe::arrayBaseOffset will be removed in a future release")); - if (QUARKUS_VERSION.compareTo(new QuarkusVersion("3.21.3")) >= 0 || QUARKUS_VERSION.isSnapshot()) { + if (QUARKUS_VERSION.compareTo(new QuarkusVersion("3.21.0")) >= 0 || QUARKUS_VERSION.isSnapshot()) { p.add(Pattern.compile(".*consider reporting this to the maintainers of class io.netty.util.internal.PlatformDependent0.*")); p.add(Pattern.compile(".*sun.misc.Unsafe::allocateMemory will be removed in a future release.*")); p.add(Pattern.compile(".*sun.misc.Unsafe::allocateMemory has been called by io.netty.util.internal.PlatformDependent0.*")); @@ -313,6 +309,11 @@ public Pattern[] get(boolean inContainer) { p.add(Pattern.compile(".*sun.misc.Unsafe::objectFieldOffset has been called by org.jboss.threads.JBossExecutors.*")); p.add(Pattern.compile(".*java.lang.System::load has been called by com.sun.jna.Native in.*net/java/dev/jna.*")); } + if (QUARKUS_VERSION.compareTo(new QuarkusVersion("3.28.1")) >= 0 || QUARKUS_VERSION.isSnapshot()) { + p.add(Pattern.compile(".*JDBC fetch size: undefined/unknown.*")); + p.add(Pattern.compile(".*Pool: undefined/unknown.*")); + p.add(Pattern.compile(".*catalog/schema: unknown/unknown.*")); + } } return p.toArray(new Pattern[0]); } From ca94ce2423a2376af2d2b47b91bfcdfb3ab788d9 Mon Sep 17 00:00:00 2001 From: Michal Karm Babacek Date: Tue, 14 Oct 2025 10:59:52 +0200 Subject: [PATCH 2/4] .mvn config for module access --- apps/cacerts/.mvn/jvm.config | 3 +++ apps/calendars/.mvn/jvm.config | 3 +++ apps/debug-symbols-smoke/.mvn/jvm.config | 3 +++ apps/for-serialization/.mvn/jvm.config | 3 +++ apps/helidon-quickstart-se/.mvn/jvm.config | 3 +++ apps/imageio/.mvn/jvm.config | 3 +++ apps/jdkreflections/.mvn/jvm.config | 3 +++ apps/monitor-field-offset/.mvn/jvm.config | 3 +++ apps/quarkus-full-microprofile/.mvn/jvm.config | 3 +++ apps/quarkus-json/.mvn/jvm.config | 3 +++ "apps/quarkus-sp\303\266klik-encoding/.mvn/jvm.config" | 3 +++ apps/quarkus-vertx/.mvn/jvm.config | 3 +++ apps/random-numbers/.mvn/jvm.config | 3 +++ apps/recordannotations/.mvn/jvm.config | 3 +++ apps/reslocations/.mvn/jvm.config | 3 +++ apps/timezones/.mvn/jvm.config | 3 +++ apps/versions/.mvn/jvm.config | 3 +++ apps/vthread_props/.mvn/jvm.config | 3 +++ .../graalvm/tests/integration/utils/BuildAndRunCmds.java | 6 ++++-- 19 files changed, 58 insertions(+), 2 deletions(-) create mode 100644 apps/cacerts/.mvn/jvm.config create mode 100644 apps/calendars/.mvn/jvm.config create mode 100644 apps/debug-symbols-smoke/.mvn/jvm.config create mode 100644 apps/for-serialization/.mvn/jvm.config create mode 100644 apps/helidon-quickstart-se/.mvn/jvm.config create mode 100644 apps/imageio/.mvn/jvm.config create mode 100644 apps/jdkreflections/.mvn/jvm.config create mode 100644 apps/monitor-field-offset/.mvn/jvm.config create mode 100644 apps/quarkus-full-microprofile/.mvn/jvm.config create mode 100644 apps/quarkus-json/.mvn/jvm.config create mode 100644 "apps/quarkus-sp\303\266klik-encoding/.mvn/jvm.config" create mode 100644 apps/quarkus-vertx/.mvn/jvm.config create mode 100644 apps/random-numbers/.mvn/jvm.config create mode 100644 apps/recordannotations/.mvn/jvm.config create mode 100644 apps/reslocations/.mvn/jvm.config create mode 100644 apps/timezones/.mvn/jvm.config create mode 100644 apps/versions/.mvn/jvm.config create mode 100644 apps/vthread_props/.mvn/jvm.config diff --git a/apps/cacerts/.mvn/jvm.config b/apps/cacerts/.mvn/jvm.config new file mode 100644 index 00000000..77b9fca8 --- /dev/null +++ b/apps/cacerts/.mvn/jvm.config @@ -0,0 +1,3 @@ +--enable-native-access=ALL-UNNAMED +--add-opens=java.base/java.lang=ALL-UNNAMED + diff --git a/apps/calendars/.mvn/jvm.config b/apps/calendars/.mvn/jvm.config new file mode 100644 index 00000000..77b9fca8 --- /dev/null +++ b/apps/calendars/.mvn/jvm.config @@ -0,0 +1,3 @@ +--enable-native-access=ALL-UNNAMED +--add-opens=java.base/java.lang=ALL-UNNAMED + diff --git a/apps/debug-symbols-smoke/.mvn/jvm.config b/apps/debug-symbols-smoke/.mvn/jvm.config new file mode 100644 index 00000000..77b9fca8 --- /dev/null +++ b/apps/debug-symbols-smoke/.mvn/jvm.config @@ -0,0 +1,3 @@ +--enable-native-access=ALL-UNNAMED +--add-opens=java.base/java.lang=ALL-UNNAMED + diff --git a/apps/for-serialization/.mvn/jvm.config b/apps/for-serialization/.mvn/jvm.config new file mode 100644 index 00000000..77b9fca8 --- /dev/null +++ b/apps/for-serialization/.mvn/jvm.config @@ -0,0 +1,3 @@ +--enable-native-access=ALL-UNNAMED +--add-opens=java.base/java.lang=ALL-UNNAMED + diff --git a/apps/helidon-quickstart-se/.mvn/jvm.config b/apps/helidon-quickstart-se/.mvn/jvm.config new file mode 100644 index 00000000..77b9fca8 --- /dev/null +++ b/apps/helidon-quickstart-se/.mvn/jvm.config @@ -0,0 +1,3 @@ +--enable-native-access=ALL-UNNAMED +--add-opens=java.base/java.lang=ALL-UNNAMED + diff --git a/apps/imageio/.mvn/jvm.config b/apps/imageio/.mvn/jvm.config new file mode 100644 index 00000000..77b9fca8 --- /dev/null +++ b/apps/imageio/.mvn/jvm.config @@ -0,0 +1,3 @@ +--enable-native-access=ALL-UNNAMED +--add-opens=java.base/java.lang=ALL-UNNAMED + diff --git a/apps/jdkreflections/.mvn/jvm.config b/apps/jdkreflections/.mvn/jvm.config new file mode 100644 index 00000000..77b9fca8 --- /dev/null +++ b/apps/jdkreflections/.mvn/jvm.config @@ -0,0 +1,3 @@ +--enable-native-access=ALL-UNNAMED +--add-opens=java.base/java.lang=ALL-UNNAMED + diff --git a/apps/monitor-field-offset/.mvn/jvm.config b/apps/monitor-field-offset/.mvn/jvm.config new file mode 100644 index 00000000..77b9fca8 --- /dev/null +++ b/apps/monitor-field-offset/.mvn/jvm.config @@ -0,0 +1,3 @@ +--enable-native-access=ALL-UNNAMED +--add-opens=java.base/java.lang=ALL-UNNAMED + diff --git a/apps/quarkus-full-microprofile/.mvn/jvm.config b/apps/quarkus-full-microprofile/.mvn/jvm.config new file mode 100644 index 00000000..77b9fca8 --- /dev/null +++ b/apps/quarkus-full-microprofile/.mvn/jvm.config @@ -0,0 +1,3 @@ +--enable-native-access=ALL-UNNAMED +--add-opens=java.base/java.lang=ALL-UNNAMED + diff --git a/apps/quarkus-json/.mvn/jvm.config b/apps/quarkus-json/.mvn/jvm.config new file mode 100644 index 00000000..77b9fca8 --- /dev/null +++ b/apps/quarkus-json/.mvn/jvm.config @@ -0,0 +1,3 @@ +--enable-native-access=ALL-UNNAMED +--add-opens=java.base/java.lang=ALL-UNNAMED + diff --git "a/apps/quarkus-sp\303\266klik-encoding/.mvn/jvm.config" "b/apps/quarkus-sp\303\266klik-encoding/.mvn/jvm.config" new file mode 100644 index 00000000..77b9fca8 --- /dev/null +++ "b/apps/quarkus-sp\303\266klik-encoding/.mvn/jvm.config" @@ -0,0 +1,3 @@ +--enable-native-access=ALL-UNNAMED +--add-opens=java.base/java.lang=ALL-UNNAMED + diff --git a/apps/quarkus-vertx/.mvn/jvm.config b/apps/quarkus-vertx/.mvn/jvm.config new file mode 100644 index 00000000..77b9fca8 --- /dev/null +++ b/apps/quarkus-vertx/.mvn/jvm.config @@ -0,0 +1,3 @@ +--enable-native-access=ALL-UNNAMED +--add-opens=java.base/java.lang=ALL-UNNAMED + diff --git a/apps/random-numbers/.mvn/jvm.config b/apps/random-numbers/.mvn/jvm.config new file mode 100644 index 00000000..77b9fca8 --- /dev/null +++ b/apps/random-numbers/.mvn/jvm.config @@ -0,0 +1,3 @@ +--enable-native-access=ALL-UNNAMED +--add-opens=java.base/java.lang=ALL-UNNAMED + diff --git a/apps/recordannotations/.mvn/jvm.config b/apps/recordannotations/.mvn/jvm.config new file mode 100644 index 00000000..77b9fca8 --- /dev/null +++ b/apps/recordannotations/.mvn/jvm.config @@ -0,0 +1,3 @@ +--enable-native-access=ALL-UNNAMED +--add-opens=java.base/java.lang=ALL-UNNAMED + diff --git a/apps/reslocations/.mvn/jvm.config b/apps/reslocations/.mvn/jvm.config new file mode 100644 index 00000000..77b9fca8 --- /dev/null +++ b/apps/reslocations/.mvn/jvm.config @@ -0,0 +1,3 @@ +--enable-native-access=ALL-UNNAMED +--add-opens=java.base/java.lang=ALL-UNNAMED + diff --git a/apps/timezones/.mvn/jvm.config b/apps/timezones/.mvn/jvm.config new file mode 100644 index 00000000..77b9fca8 --- /dev/null +++ b/apps/timezones/.mvn/jvm.config @@ -0,0 +1,3 @@ +--enable-native-access=ALL-UNNAMED +--add-opens=java.base/java.lang=ALL-UNNAMED + diff --git a/apps/versions/.mvn/jvm.config b/apps/versions/.mvn/jvm.config new file mode 100644 index 00000000..77b9fca8 --- /dev/null +++ b/apps/versions/.mvn/jvm.config @@ -0,0 +1,3 @@ +--enable-native-access=ALL-UNNAMED +--add-opens=java.base/java.lang=ALL-UNNAMED + diff --git a/apps/vthread_props/.mvn/jvm.config b/apps/vthread_props/.mvn/jvm.config new file mode 100644 index 00000000..77b9fca8 --- /dev/null +++ b/apps/vthread_props/.mvn/jvm.config @@ -0,0 +1,3 @@ +--enable-native-access=ALL-UNNAMED +--add-opens=java.base/java.lang=ALL-UNNAMED + diff --git a/testsuite/src/it/java/org/graalvm/tests/integration/utils/BuildAndRunCmds.java b/testsuite/src/it/java/org/graalvm/tests/integration/utils/BuildAndRunCmds.java index 69d98af6..8ea685c7 100755 --- a/testsuite/src/it/java/org/graalvm/tests/integration/utils/BuildAndRunCmds.java +++ b/testsuite/src/it/java/org/graalvm/tests/integration/utils/BuildAndRunCmds.java @@ -152,6 +152,8 @@ public enum BuildAndRunCmds { new String[][] { { "mvn", "--batch-mode", "package", "-Pnative", "-Dquarkus.version=" + QUARKUS_VERSION.getVersionString(), "-Dquarkus.native.additional-build-args=" + + "-J--add-opens=java.base/java.lang=ALL-UNNAMED," + + "-J--enable-native-access=ALL-UNNAMED," + "-R:MaxHeapSize=" + GC_HEAP_MB + "m" + GRAALVM_BUILD_OUTPUT_JSON_FILE }, @@ -380,7 +382,7 @@ public enum BuildAndRunCmds { PLAINTEXT_PERFORMANCE( new String[][] { { "mvn", "--batch-mode", "package", "-Pnative", "-Dquarkus.version=" + QUARKUS_VERSION.getVersionString(), - "-Dquarkus.native.additional-build-args=-J--add-opens=java.base/java.lang=ALL-UNNAMED,-J--enable-native-access=ALL-UNNAME", + "-Dquarkus.native.additional-build-args=-J--add-opens=java.base/java.lang=ALL-UNNAMED,-J--enable-native-access=ALL-UNNAMED", "-DfinalName=jfr-plaintext" } }, new String[][] { { "./target/jfr-plaintext-runner" }, @@ -410,7 +412,7 @@ public enum BuildAndRunCmds { { "mvn", "--batch-mode", "package", "-Pnative", "-Dquarkus.native.container-build=true", "-Dquarkus.native.container-runtime=" + CONTAINER_RUNTIME, "-Dquarkus.native.builder-image=" + BUILDER_IMAGE, "-Dquarkus.version=" + QUARKUS_VERSION.getVersionString(), - "-Dquarkus.native.additional-build-args=-J--add-opens=java.base/java.lang=ALL-UNNAMED,-J--enable-native-access=ALL-UNNAME", + "-Dquarkus.native.additional-build-args=-J--add-opens=java.base/java.lang=ALL-UNNAMED,-J--enable-native-access=ALL-UNNAMED", "-DfinalName=jfr-plaintext" }, { CONTAINER_RUNTIME, "build", "-f", "src/main/docker/Dockerfile.native", "-t", "jfr-plaintext-app", "." } }, new String[][] { From 405c7d58c74191337133518e3304c3b51436c0c5 Mon Sep 17 00:00:00 2001 From: Michal Karm Babacek Date: Wed, 15 Oct 2025 09:45:27 +0200 Subject: [PATCH 3/4] https://github.com/quarkusio/quarkus/issues/50015 --- .../src/main/resources/application.properties | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/apps/quarkus-mp-orm-dbs-awt/src/main/resources/application.properties b/apps/quarkus-mp-orm-dbs-awt/src/main/resources/application.properties index 2092b92c..b3508821 100644 --- a/apps/quarkus-mp-orm-dbs-awt/src/main/resources/application.properties +++ b/apps/quarkus-mp-orm-dbs-awt/src/main/resources/application.properties @@ -1,10 +1,10 @@ # ORM, Databases quarkus.datasource.db1.db-kind=postgresql -quarkus.datasource.db1.jdbc.url=jdbc:postgresql://localhost:5432/db1 +%dev.quarkus.datasource.db1.jdbc.url=jdbc:postgresql://localhost:5432/db1 quarkus.datasource.db1.username=quarkus quarkus.datasource.db1.password=quarkus quarkus.datasource.db1.devservices.enabled=true -quarkus.datasource.db1.devservices.port=5432 +%dev.quarkus.datasource.db1.devservices.port=5432 quarkus.datasource.db1.devservices.image-name=quay.io/debezium/postgres:15 quarkus.hibernate-orm.db1.datasource=db1 quarkus.hibernate-orm.db1.database.generation=drop-and-create @@ -12,11 +12,11 @@ quarkus.hibernate-orm.db1.sql-load-script=importDB1.sql quarkus.hibernate-orm.db1.packages=quarkus.orm.db1 quarkus.datasource.db2.db-kind=mariadb -quarkus.datasource.db2.jdbc.url=jdbc:mariadb://localhost:49157/db2 +%dev.quarkus.datasource.db2.jdbc.url=jdbc:mariadb://localhost:49157/db2 quarkus.datasource.db2.username=quarkus quarkus.datasource.db2.password=quarkus quarkus.datasource.db2.devservices.enabled=true -quarkus.datasource.db2.devservices.port=49157 +%dev.quarkus.datasource.db2.devservices.port=49157 quarkus.datasource.db2.devservices.image-name=quay.io/mariadb-foundation/mariadb-devel:11.0 quarkus.hibernate-orm.db2.datasource=db2 quarkus.hibernate-orm.db2.database.generation=drop-and-create From 307fb9474c8f801c1e88398578f1cbeacf2ba98a Mon Sep 17 00:00:00 2001 From: Michal Karm Babacek Date: Wed, 15 Oct 2025 10:40:53 +0200 Subject: [PATCH 4/4] https://github.com/quarkusio/quarkus/issues/50568 --- .../org/graalvm/tests/integration/utils/WhitelistLogLines.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/testsuite/src/it/java/org/graalvm/tests/integration/utils/WhitelistLogLines.java b/testsuite/src/it/java/org/graalvm/tests/integration/utils/WhitelistLogLines.java index 476bcb2f..d7197ba3 100755 --- a/testsuite/src/it/java/org/graalvm/tests/integration/utils/WhitelistLogLines.java +++ b/testsuite/src/it/java/org/graalvm/tests/integration/utils/WhitelistLogLines.java @@ -313,6 +313,8 @@ public Pattern[] get(boolean inContainer) { p.add(Pattern.compile(".*JDBC fetch size: undefined/unknown.*")); p.add(Pattern.compile(".*Pool: undefined/unknown.*")); p.add(Pattern.compile(".*catalog/schema: unknown/unknown.*")); + // https://github.com/quarkusio/quarkus/issues/50568 + p.add(Pattern.compile(".*smallrye.common.process.*SRCOM05000: Command.*completed but logged errors.*")); } } return p.toArray(new Pattern[0]);