diff --git a/.github/workflows/clouds-native-aws-fargate.yml b/.github/workflows/clouds-native-aws-fargate.yml
index 5560431bb..e68c05754 100644
--- a/.github/workflows/clouds-native-aws-fargate.yml
+++ b/.github/workflows/clouds-native-aws-fargate.yml
@@ -22,7 +22,7 @@ jobs:
- uses: actions/checkout@v4
- uses: graalvm/setup-graalvm@v1
with:
- java-version: '21'
+ java-version: '25'
distribution: 'graalvm'
github-token: ${{ secrets.GITHUB_TOKEN }}
- name: Run 'clouds/native-aws-fargate'
diff --git a/.github/workflows/clouds-native-aws-lambda.yml b/.github/workflows/clouds-native-aws-lambda.yml
index ee9233777..556d4eca3 100644
--- a/.github/workflows/clouds-native-aws-lambda.yml
+++ b/.github/workflows/clouds-native-aws-lambda.yml
@@ -22,7 +22,7 @@ jobs:
- uses: actions/checkout@v4
- uses: graalvm/setup-graalvm@v1
with:
- java-version: '21'
+ java-version: '25'
distribution: 'graalvm'
github-token: ${{ secrets.GITHUB_TOKEN }}
- name: Run 'clouds/native-aws-lambda java'
diff --git a/.github/workflows/clouds-native-google-cloud-run.yml b/.github/workflows/clouds-native-google-cloud-run.yml
index db7b9cad7..7179e12ba 100644
--- a/.github/workflows/clouds-native-google-cloud-run.yml
+++ b/.github/workflows/clouds-native-google-cloud-run.yml
@@ -22,7 +22,7 @@ jobs:
- uses: actions/checkout@v4
- uses: graalvm/setup-graalvm@v1
with:
- java-version: '21'
+ java-version: '25'
distribution: 'graalvm'
github-token: ${{ secrets.GITHUB_TOKEN }}
- name: Run 'clouds/native-google-cloud-run'
diff --git a/.github/workflows/clouds-native-oci-cloud-shell.yml b/.github/workflows/clouds-native-oci-cloud-shell.yml
index 275411022..9d58da22d 100644
--- a/.github/workflows/clouds-native-oci-cloud-shell.yml
+++ b/.github/workflows/clouds-native-oci-cloud-shell.yml
@@ -22,7 +22,7 @@ jobs:
- uses: actions/checkout@v4
- uses: graalvm/setup-graalvm@v1
with:
- java-version: '21'
+ java-version: '25'
distribution: 'graalvm'
github-token: ${{ secrets.GITHUB_TOKEN }}
cache: 'maven'
diff --git a/.github/workflows/clouds-native-oci-container-instances.yml b/.github/workflows/clouds-native-oci-container-instances.yml
index d46a0b027..477a9dc29 100644
--- a/.github/workflows/clouds-native-oci-container-instances.yml
+++ b/.github/workflows/clouds-native-oci-container-instances.yml
@@ -22,7 +22,7 @@ jobs:
- uses: actions/checkout@v4
- uses: graalvm/setup-graalvm@v1
with:
- java-version: '21'
+ java-version: '25'
distribution: 'graalvm'
github-token: ${{ secrets.GITHUB_TOKEN }}
- name: Run 'clouds/native-oci-container-instances'
diff --git a/.github/workflows/clouds-native-oci-generative-ai.yml b/.github/workflows/clouds-native-oci-generative-ai.yml
index 74da886a0..a5e9a5493 100644
--- a/.github/workflows/clouds-native-oci-generative-ai.yml
+++ b/.github/workflows/clouds-native-oci-generative-ai.yml
@@ -22,7 +22,7 @@ jobs:
- uses: actions/checkout@v4
- uses: graalvm/setup-graalvm@v1
with:
- java-version: '21'
+ java-version: '25'
distribution: 'graalvm'
github-token: ${{ secrets.GITHUB_TOKEN }}
- name: Run 'native-oci-generative-ai'
diff --git a/.github/workflows/compiler-java-stream-benchmark.yml b/.github/workflows/compiler-java-stream-benchmark.yml
index a9363c1ab..1919eb158 100644
--- a/.github/workflows/compiler-java-stream-benchmark.yml
+++ b/.github/workflows/compiler-java-stream-benchmark.yml
@@ -20,7 +20,7 @@ jobs:
timeout-minutes: 15
strategy:
matrix:
- java-version: ['21', '25-ea']
+ java-version: ['25']
steps:
- uses: actions/checkout@v4
- uses: graalvm/setup-graalvm@v1
diff --git a/.github/workflows/containerize-spring-boot-jibber.yml b/.github/workflows/containerize-spring-boot-jibber.yml
index cbe62ee82..fb69143ac 100644
--- a/.github/workflows/containerize-spring-boot-jibber.yml
+++ b/.github/workflows/containerize-spring-boot-jibber.yml
@@ -20,7 +20,7 @@ jobs:
timeout-minutes: 20
strategy:
matrix:
- java-version: ['21', '25-ea']
+ java-version: ['25']
steps:
- uses: actions/checkout@v4
- uses: graalvm/setup-graalvm@v1
diff --git a/.github/workflows/containerize-tiny-java-containers.yml b/.github/workflows/containerize-tiny-java-containers.yml
index 182bd3a98..d421cb1d1 100644
--- a/.github/workflows/containerize-tiny-java-containers.yml
+++ b/.github/workflows/containerize-tiny-java-containers.yml
@@ -16,7 +16,7 @@ jobs:
timeout-minutes: 20
strategy:
matrix:
- java-version: ['21', '25-ea']
+ java-version: ['25']
steps:
- uses: actions/checkout@v4
- uses: graalvm/setup-graalvm@v1
diff --git a/.github/workflows/microservices-micronaut-hello-rest-maven.yml b/.github/workflows/microservices-micronaut-hello-rest-maven.yml
index db07e7c1d..f6638c835 100644
--- a/.github/workflows/microservices-micronaut-hello-rest-maven.yml
+++ b/.github/workflows/microservices-micronaut-hello-rest-maven.yml
@@ -16,7 +16,7 @@ jobs:
timeout-minutes: 15
strategy:
matrix:
- java-version: ['21', '25-ea']
+ java-version: ['25']
steps:
- uses: actions/checkout@v4
- uses: graalvm/setup-graalvm@v1
diff --git a/.github/workflows/native-build-tools-maven.yml b/.github/workflows/native-build-tools-maven.yml
index 22e1366a3..912d6ce6b 100644
--- a/.github/workflows/native-build-tools-maven.yml
+++ b/.github/workflows/native-build-tools-maven.yml
@@ -18,11 +18,14 @@ jobs:
name: Run 'native-build-tools-maven'
runs-on: ubuntu-latest
timeout-minutes: 30
+ strategy:
+ matrix:
+ java-version: ['25']
steps:
- uses: actions/checkout@v4
- uses: graalvm/setup-graalvm@v1
with:
- java-version: '25-ea'
+ java-version: ${{ matrix.java-version }}
distribution: 'graalvm'
github-token: ${{ secrets.GITHUB_TOKEN }}
- name: Run 'native-build-tools-maven'
diff --git a/.github/workflows/native-image-access-environment-variables.yml b/.github/workflows/native-image-access-environment-variables.yml
index 10ddd0fc3..6cb0b57d5 100644
--- a/.github/workflows/native-image-access-environment-variables.yml
+++ b/.github/workflows/native-image-access-environment-variables.yml
@@ -20,7 +20,7 @@ jobs:
timeout-minutes: 15
strategy:
matrix:
- java-version: ['21', '25-ea']
+ java-version: ['25']
steps:
- uses: actions/checkout@v4
- uses: graalvm/setup-graalvm@v1
diff --git a/.github/workflows/native-image-add-jfr.yml b/.github/workflows/native-image-add-jfr.yml
index 343d24aac..d29de8360 100644
--- a/.github/workflows/native-image-add-jfr.yml
+++ b/.github/workflows/native-image-add-jfr.yml
@@ -20,7 +20,7 @@ jobs:
timeout-minutes: 15
strategy:
matrix:
- java-version: ['21', '25-ea']
+ java-version: ['25']
steps:
- uses: actions/checkout@v4
- uses: graalvm/setup-graalvm@v1
diff --git a/.github/workflows/native-image-add-jmx.yml b/.github/workflows/native-image-add-jmx.yml
index ff53358c4..383be8f5b 100644
--- a/.github/workflows/native-image-add-jmx.yml
+++ b/.github/workflows/native-image-add-jmx.yml
@@ -20,7 +20,7 @@ jobs:
timeout-minutes: 15
strategy:
matrix:
- java-version: ['21', '25-ea']
+ java-version: ['25']
steps:
- uses: actions/checkout@v4
- uses: graalvm/setup-graalvm@v1
diff --git a/.github/workflows/native-image-add-logging.yml b/.github/workflows/native-image-add-logging.yml
index 30d343aef..c03bdf6b6 100644
--- a/.github/workflows/native-image-add-logging.yml
+++ b/.github/workflows/native-image-add-logging.yml
@@ -20,7 +20,7 @@ jobs:
timeout-minutes: 15
strategy:
matrix:
- java-version: ['21', '25-ea']
+ java-version: ['25']
steps:
- uses: actions/checkout@v4
- uses: graalvm/setup-graalvm@v1
diff --git a/.github/workflows/native-image-build-from-jar.yml b/.github/workflows/native-image-build-from-jar.yml
index 180c67874..ce2b19e33 100644
--- a/.github/workflows/native-image-build-from-jar.yml
+++ b/.github/workflows/native-image-build-from-jar.yml
@@ -20,7 +20,7 @@ jobs:
timeout-minutes: 15
strategy:
matrix:
- java-version: ['21', '25-ea']
+ java-version: ['25']
steps:
- uses: actions/checkout@v4
- uses: graalvm/setup-graalvm@v1
diff --git a/.github/workflows/native-image-build-java-modules.yml b/.github/workflows/native-image-build-java-modules.yml
index 433fd16e7..11cdb5c23 100644
--- a/.github/workflows/native-image-build-java-modules.yml
+++ b/.github/workflows/native-image-build-java-modules.yml
@@ -20,7 +20,7 @@ jobs:
timeout-minutes: 15
strategy:
matrix:
- java-version: ['21', '25-ea']
+ java-version: ['25']
steps:
- uses: actions/checkout@v4
- uses: graalvm/setup-graalvm@v1
diff --git a/.github/workflows/native-image-build-shared-library.yml b/.github/workflows/native-image-build-shared-library.yml
index b23511d2d..a67558c44 100644
--- a/.github/workflows/native-image-build-shared-library.yml
+++ b/.github/workflows/native-image-build-shared-library.yml
@@ -20,7 +20,7 @@ jobs:
timeout-minutes: 15
strategy:
matrix:
- java-version: ['21', '25-ea']
+ java-version: ['25']
steps:
- uses: actions/checkout@v4
- uses: graalvm/setup-graalvm@v1
diff --git a/.github/workflows/native-image-build-static-images.yml b/.github/workflows/native-image-build-static-images.yml
index 12bbf9db1..25ca8d46f 100644
--- a/.github/workflows/native-image-build-static-images.yml
+++ b/.github/workflows/native-image-build-static-images.yml
@@ -20,7 +20,7 @@ jobs:
timeout-minutes: 15
strategy:
matrix:
- java-version: ['21', '24-ea']
+ java-version: ['25']
steps:
- uses: actions/checkout@v4
- uses: graalvm/setup-graalvm@v1
@@ -38,11 +38,14 @@ jobs:
name: Run mostly-static
runs-on: ubuntu-latest
timeout-minutes: 15
+ strategy:
+ matrix:
+ java-version: ['25']
steps:
- uses: actions/checkout@v4
- uses: graalvm/setup-graalvm@v1
with:
- java-version: '25-ea'
+ java-version: ${{ matrix.java-version }}
distribution: 'graalvm'
github-token: ${{ secrets.GITHUB_TOKEN }}
native-image-job-reports: 'true'
diff --git a/.github/workflows/native-image-configure-with-tracing-agent.yml b/.github/workflows/native-image-configure-with-tracing-agent.yml
index 234655c25..e44c47e88 100644
--- a/.github/workflows/native-image-configure-with-tracing-agent.yml
+++ b/.github/workflows/native-image-configure-with-tracing-agent.yml
@@ -20,7 +20,7 @@ jobs:
timeout-minutes: 15
strategy:
matrix:
- java-version: ['21', '25-ea']
+ java-version: ['25']
steps:
- uses: actions/checkout@v4
- uses: graalvm/setup-graalvm@v1
diff --git a/.github/workflows/native-image-create-heap-dumps.yml b/.github/workflows/native-image-create-heap-dumps.yml
index 4dc1f9c86..0d66e107a 100644
--- a/.github/workflows/native-image-create-heap-dumps.yml
+++ b/.github/workflows/native-image-create-heap-dumps.yml
@@ -20,7 +20,7 @@ jobs:
timeout-minutes: 15
strategy:
matrix:
- java-version: ['21', '25-ea']
+ java-version: ['25']
steps:
- uses: actions/checkout@v4
- uses: graalvm/setup-graalvm@v1
diff --git a/.github/workflows/native-image-embed-sbom.yml b/.github/workflows/native-image-embed-sbom.yml
index 9442210b2..8660bd74f 100644
--- a/.github/workflows/native-image-embed-sbom.yml
+++ b/.github/workflows/native-image-embed-sbom.yml
@@ -18,11 +18,14 @@ jobs:
name: Run 'native-image/embed-sbom'
runs-on: ubuntu-latest
timeout-minutes: 15
+ strategy:
+ matrix:
+ java-version: ['25']
steps:
- uses: actions/checkout@v4
- uses: graalvm/setup-graalvm@v1
with:
- java-version: '25-ea'
+ java-version: ${{ matrix.java-version }}
distribution: 'graalvm'
github-token: ${{ secrets.GITHUB_TOKEN }}
native-image-job-reports: 'true'
diff --git a/.github/workflows/native-image-emit-build-report.yml b/.github/workflows/native-image-emit-build-report.yml
index 0d6f1efbf..3b6831f85 100644
--- a/.github/workflows/native-image-emit-build-report.yml
+++ b/.github/workflows/native-image-emit-build-report.yml
@@ -18,11 +18,14 @@ jobs:
name: Run 'native-image/emit-build-report'
runs-on: ubuntu-latest
timeout-minutes: 15
+ strategy:
+ matrix:
+ java-version: ['25']
steps:
- uses: actions/checkout@v4
- uses: graalvm/setup-graalvm@v1
with:
- java-version: '25-ea'
+ java-version: ${{ matrix.java-version }}
distribution: 'graalvm'
github-token: ${{ secrets.GITHUB_TOKEN }}
cache: 'maven'
diff --git a/.github/workflows/native-image-hello-world.yml b/.github/workflows/native-image-hello-world.yml
index c53294ffb..ab2176299 100644
--- a/.github/workflows/native-image-hello-world.yml
+++ b/.github/workflows/native-image-hello-world.yml
@@ -20,7 +20,7 @@ jobs:
timeout-minutes: 15
strategy:
matrix:
- java-version: ['21', '25-ea']
+ java-version: ['25']
steps:
- uses: actions/checkout@v4
- uses: graalvm/setup-graalvm@v1
diff --git a/.github/workflows/native-image-include-resources.yml b/.github/workflows/native-image-include-resources.yml
index 8e0760771..972533a68 100644
--- a/.github/workflows/native-image-include-resources.yml
+++ b/.github/workflows/native-image-include-resources.yml
@@ -20,7 +20,7 @@ jobs:
timeout-minutes: 15
strategy:
matrix:
- java-version: ['21', '25-ea']
+ java-version: ['25']
steps:
- uses: actions/checkout@v4
- uses: graalvm/setup-graalvm@v1
diff --git a/.github/workflows/native-image-jmh-binary-tree.yml b/.github/workflows/native-image-jmh-binary-tree.yml
index 6681cbb07..2305d3983 100644
--- a/.github/workflows/native-image-jmh-binary-tree.yml
+++ b/.github/workflows/native-image-jmh-binary-tree.yml
@@ -20,7 +20,7 @@ jobs:
timeout-minutes: 45
strategy:
matrix:
- java-version: ['21', '25-ea']
+ java-version: ['21']
steps:
- uses: actions/checkout@v4
- uses: graalvm/setup-graalvm@v1
diff --git a/.github/workflows/native-image-list-files.yml b/.github/workflows/native-image-list-files.yml
index 596ebe705..3e1c8d95f 100644
--- a/.github/workflows/native-image-list-files.yml
+++ b/.github/workflows/native-image-list-files.yml
@@ -20,7 +20,7 @@ jobs:
timeout-minutes: 20
strategy:
matrix:
- java-version: ['21', '25-ea']
+ java-version: ['25']
steps:
- uses: actions/checkout@v4
- uses: graalvm/setup-graalvm@v1
diff --git a/.github/workflows/native-image-optimize-memory-footprint.yml b/.github/workflows/native-image-optimize-memory-footprint.yml
index 23e657776..b3d7a647a 100644
--- a/.github/workflows/native-image-optimize-memory-footprint.yml
+++ b/.github/workflows/native-image-optimize-memory-footprint.yml
@@ -20,7 +20,7 @@ jobs:
timeout-minutes: 15
strategy:
matrix:
- java-version: ['21', '25-ea']
+ java-version: ['25']
steps:
- uses: actions/checkout@v4
- uses: graalvm/setup-graalvm@v1
diff --git a/.github/workflows/native-image-optimize-with-pgo.yml b/.github/workflows/native-image-optimize-with-pgo.yml
index 8dea0f904..da7002e7d 100644
--- a/.github/workflows/native-image-optimize-with-pgo.yml
+++ b/.github/workflows/native-image-optimize-with-pgo.yml
@@ -20,7 +20,7 @@ jobs:
timeout-minutes: 15
strategy:
matrix:
- java-version: ['21', '25-ea']
+ java-version: ['25']
steps:
- uses: actions/checkout@v4
- uses: graalvm/setup-graalvm@v1
diff --git a/.github/workflows/native-image-preserve-package.yml b/.github/workflows/native-image-preserve-package.yml
index b00881938..8a14e3c61 100644
--- a/.github/workflows/native-image-preserve-package.yml
+++ b/.github/workflows/native-image-preserve-package.yml
@@ -18,11 +18,14 @@ jobs:
name: Run 'native-image/preserve-package'
runs-on: ubuntu-latest
timeout-minutes: 15
+ strategy:
+ matrix:
+ java-version: ['25']
steps:
- uses: actions/checkout@v4
- uses: graalvm/setup-graalvm@v1
with:
- java-version: '25-ea'
+ java-version: ${{ matrix.java-version }}
distribution: 'graalvm'
github-token: ${{ secrets.GITHUB_TOKEN }}
native-image-job-reports: 'true'
diff --git a/.github/workflows/native-image-specify-class-init.yml b/.github/workflows/native-image-specify-class-init.yml
index 49de7e0ee..f3a4154c8 100644
--- a/.github/workflows/native-image-specify-class-init.yml
+++ b/.github/workflows/native-image-specify-class-init.yml
@@ -20,7 +20,7 @@ jobs:
timeout-minutes: 15
strategy:
matrix:
- java-version: ['21', '25-ea']
+ java-version: ['25']
steps:
- uses: actions/checkout@v4
- uses: graalvm/setup-graalvm@v1
diff --git a/.github/workflows/native-image-use-system-properties.yml b/.github/workflows/native-image-use-system-properties.yml
index 8058a60b2..3ffaf5fe6 100644
--- a/.github/workflows/native-image-use-system-properties.yml
+++ b/.github/workflows/native-image-use-system-properties.yml
@@ -20,7 +20,7 @@ jobs:
timeout-minutes: 15
strategy:
matrix:
- java-version: ['21', '25-ea']
+ java-version: ['25']
steps:
- uses: actions/checkout@v4
- uses: graalvm/setup-graalvm@v1
diff --git a/.github/workflows/native-image-wasm-javac.yml b/.github/workflows/native-image-wasm-javac.yml
index 01c95cb7b..7e38b77e8 100644
--- a/.github/workflows/native-image-wasm-javac.yml
+++ b/.github/workflows/native-image-wasm-javac.yml
@@ -20,7 +20,7 @@ jobs:
timeout-minutes: 15
strategy:
matrix:
- java-version: ['25-ea']
+ java-version: ['25']
steps:
- uses: actions/checkout@v4
- uses: graalvm/setup-graalvm@v1
diff --git a/compiler/java-stream-benchmark/README.md b/compiler/java-stream-benchmark/README.md
index fe50c35a1..b82836760 100644
--- a/compiler/java-stream-benchmark/README.md
+++ b/compiler/java-stream-benchmark/README.md
@@ -5,7 +5,7 @@ This demo contains the code for a simple Java Stream benchmark designed to run o
1. Download and install the GraalVM JDK using [SDKMAN!](https://sdkman.io/). For other installation options, visit the [Downloads page](https://www.graalvm.org/downloads/).
```bash
- sdk install java 23.0.1-graal
+ sdk install java 25-graal
```
2. Download or clone the repository and navigate into the benchmark directory:
@@ -50,7 +50,7 @@ Read more in [this blog post](https://blogs.oracle.com/java/post/including-the-g
1. Switch the JVM from GraalVM (Oracle GraalVM or Community Edition) to Oracle JDK 23 or higher. You can quickly do that with using [SDKMAN!](https://sdkman.io/):
```bash
- sdk install java 23.0.1-oracle
+ sdk install java 25-oracle
```
2. Run this benchmark with the Graal JIT compiler enabled. For that, pass the `-XX:+UseGraalJIT` option to `java`:
@@ -58,6 +58,6 @@ Read more in [this blog post](https://blogs.oracle.com/java/post/including-the-g
java -XX:+UnlockExperimentalVMOptions -XX:+UseGraalJIT -jar target/benchmarks.jar
```
-> To switch between JVMs in the same terminal window (without affecting the global setting), use the `sdk` tool. For example, to switch back to Oracle GraalVM for JDK 23, run: `sdk use java 23.0.1-graal`.
+> To switch between JVMs in the same terminal window (without affecting the global setting), use the `sdk` tool. For example, to switch back to Oracle GraalVM 25, run: `sdk use java 25-graal`.
Learn more about the Graal JIT compiler from [its official documentation](https://www.graalvm.org/reference-manual/java/compiler/).
\ No newline at end of file
diff --git a/compiler/java-stream-benchmark/pom.xml b/compiler/java-stream-benchmark/pom.xml
index f489cad1d..df7196204 100644
--- a/compiler/java-stream-benchmark/pom.xml
+++ b/compiler/java-stream-benchmark/pom.xml
@@ -22,7 +22,7 @@ Licensed under the Universal Permissive License v 1.0 as shown at http://oss.ora
UTF-8
1.37
- 1.8
+ 21
benchmarks
diff --git a/native-image/benchmark/jmh/binary-tree/README.md b/native-image/benchmark/jmh/binary-tree/README.md
index aeb934a78..ffd77ec37 100644
--- a/native-image/benchmark/jmh/binary-tree/README.md
+++ b/native-image/benchmark/jmh/binary-tree/README.md
@@ -1,4 +1,4 @@
-# Binary Tree Benchmark
+# Binary Tree Benchmark
This demo shows how to run a Java Microbenchmark Harness (JMH) benchmark as a native executable.
@@ -20,7 +20,7 @@ This forking process is not possible with GraalVM Native Image and you should co
1. Download and install the GraalVM JDK using [SDKMAN!](https://sdkman.io/). For other installation options, visit the [Downloads page](https://www.graalvm.org/downloads/).
```bash
- sdk install java 21.0.5-graal
+ sdk install java 21.0.8-graal
```
2. Download or clone the repository and navigate into the _/native-image/benchmark/jmh/binary-tree_ directory:
@@ -38,7 +38,7 @@ To build and run the benchmark on HotSpot, run the following Maven command:
./mvnw clean package exec:exec
```
-Note that within the _pom.xml_ file there are instructions to explicitly turn off the Graal JIT compiler using the option `-XX:-UseJVMCICompiler`.
+Note that within the _pom.xml_ file there are instructions to explicitly turn off the Graal JIT compiler using the option `-XX:-UseJVMCICompiler`.
This means that benchmark will run using the C2 JIT compiler.
The application runs the benchmark and displays the results to the terminal.
@@ -58,7 +58,7 @@ This demo uses Oracle GraalVM Native Image, however, if you are using GraalVM Co
```shell
./mvnw package -Pnative
```
-2. Run the benchmark from a native executable:
+2. Run the benchmark from a native executable:
```shell
./target/benchmark-binary-tree
```
@@ -70,12 +70,12 @@ This demo uses Oracle GraalVM Native Image, however, if you are using GraalVM Co
## Optimize the Benchmark for Throughput
-You can improve the performance of this benchmark by applying [Profile-Guided Optimization (PGO)](https://www.graalvm.org/reference-manual/native-image/optimizations-and-performance/PGO/).
+You can improve the performance of this benchmark by applying [Profile-Guided Optimization (PGO)](https://www.graalvm.org/reference-manual/native-image/optimizations-and-performance/PGO/).
> PGO is available with Oracle GraalVM Native Image.
First, you will need to build an instrumented version of this native benchmark that contains extra code to trace the execution of the program and to profile it.
-Therefore, it will run slower than the previous version.
+Therefore, it will run slower than the previous version.
After execution finishes, a profile file, _default.iprof_, is generated in the root directory.
This file contains profiling information about the application and will be used to build a more efficient native executable.
diff --git a/native-image/benchmark/jmh/binary-tree/pom.xml b/native-image/benchmark/jmh/binary-tree/pom.xml
index 58ac2c449..758bc79f6 100644
--- a/native-image/benchmark/jmh/binary-tree/pom.xml
+++ b/native-image/benchmark/jmh/binary-tree/pom.xml
@@ -18,7 +18,7 @@
benchmarks-binary-tree
- 0.10.6
+ 0.11.0
benchmark-binary-tree
diff --git a/native-image/build-with-js-embedded/pom.xml b/native-image/build-with-js-embedded/pom.xml
index 33c07a403..30d48de40 100644
--- a/native-image/build-with-js-embedded/pom.xml
+++ b/native-image/build-with-js-embedded/pom.xml
@@ -12,8 +12,8 @@
UTF-8
21
21
- 24.1.1
- 0.10.6
+ 25.0.0
+ 0.11.0
diff --git a/native-image/clouds/native-aws-fargate/pom.xml b/native-image/clouds/native-aws-fargate/pom.xml
index 649974338..3ba870230 100644
--- a/native-image/clouds/native-aws-fargate/pom.xml
+++ b/native-image/clouds/native-aws-fargate/pom.xml
@@ -78,7 +78,7 @@
io.micronaut.build
micronaut-maven-plugin
-
+
org.apache.maven.plugins
maven-compiler-plugin
diff --git a/native-image/clouds/native-aws-lambda/README.md b/native-image/clouds/native-aws-lambda/README.md
index 5f809d920..b485aa733 100644
--- a/native-image/clouds/native-aws-lambda/README.md
+++ b/native-image/clouds/native-aws-lambda/README.md
@@ -1,6 +1,6 @@
GraalVM on AWS Lambda Demo
====================
-This demo will walk you through the processes for deploying both Java 17 and Native Image applications onto the AWS Lambda platform. In this demo, you will deploy a simple "Hello World" HTTP application and have the ability to compare how the versions of the application compare based on speed and size.
+This demo will walk you through the processes for deploying both Java 21 and Native Image applications onto the AWS Lambda platform. In this demo, you will deploy a simple "Hello World" HTTP application and have the ability to compare how the versions of the application compare based on speed and size.
Prerequisites
----------------------
@@ -40,7 +40,7 @@ public class HomeController {
This code implements the actual RESTful "Hello World" functionality and is the code that snippet which is executed when a request is made to Lambda function. It produces the "Hello World" string when a GET request is made to the function's URL.
-Deploying as a Java 17 Application (.jar)
+Deploying as a Java 21 Application (.jar)
----------------------
1. Navigate to the directory for this demo:
```sh
@@ -55,7 +55,7 @@ cd graalvm-demos/native-aws-lambda

-5. Select “Author from scratch”, choose a name for your function, select “Java 17” as the runtime, and select “x86_64” as the architecture, then click the "Create function" button
+5. Select “Author from scratch”, choose a name for your function, select “Java 21 as the runtime, and select “x86_64” as the architecture, then click the "Create function" button

diff --git a/native-image/clouds/native-aws-lambda/pom.xml b/native-image/clouds/native-aws-lambda/pom.xml
index a2e236343..5ff9f3292 100644
--- a/native-image/clouds/native-aws-lambda/pom.xml
+++ b/native-image/clouds/native-aws-lambda/pom.xml
@@ -88,7 +88,7 @@
io.micronaut.build
micronaut-maven-plugin
-
+
org.apache.maven.plugins
maven-compiler-plugin
diff --git a/native-image/clouds/native-google-cloud-run/pom.xml b/native-image/clouds/native-google-cloud-run/pom.xml
index 649974338..b7d0513e8 100644
--- a/native-image/clouds/native-google-cloud-run/pom.xml
+++ b/native-image/clouds/native-google-cloud-run/pom.xml
@@ -10,7 +10,7 @@
io.micronaut
micronaut-parent
- 3.9.1
+ 3.9.1
@@ -78,7 +78,7 @@
io.micronaut.build
micronaut-maven-plugin
-
+
org.apache.maven.plugins
maven-compiler-plugin
diff --git a/native-image/clouds/native-oci-cloud-shell/pom.xml b/native-image/clouds/native-oci-cloud-shell/pom.xml
index 7ccd1a2d8..3636e9c28 100644
--- a/native-image/clouds/native-oci-cloud-shell/pom.xml
+++ b/native-image/clouds/native-oci-cloud-shell/pom.xml
@@ -17,7 +17,7 @@
17
17
3.2.2
- 0.10.6
+ 0.11.0
diff --git a/native-image/clouds/native-oci-generative-ai/pom.xml b/native-image/clouds/native-oci-generative-ai/pom.xml
index 5a321b68e..437039abf 100644
--- a/native-image/clouds/native-oci-generative-ai/pom.xml
+++ b/native-image/clouds/native-oci-generative-ai/pom.xml
@@ -12,7 +12,7 @@
UTF-8
com.oracle.labs.GenerateTextExample
- 0.10.1
+ 0.11.0
diff --git a/native-image/embed-sbom/run.sh b/native-image/embed-sbom/run.sh
index 0e018f859..13106c710 100755
--- a/native-image/embed-sbom/run.sh
+++ b/native-image/embed-sbom/run.sh
@@ -1,10 +1,9 @@
#!/usr/bin/env bash
set -ex
-native-image -Ob --enable-sbom=cyclonedx -m jdk.httpserver -o jwebserver
+native-image -Ob -m jdk.httpserver -o jwebserver
-# Requires GraalVM for JDK 24 Early Access build 24.ea.23-graal or later:
-# sdk install java 24.ea.23-graal
+# Requires GraalVM 25 or later:
cd sbom-test
mvn clean package
mvn -Pnative package
\ No newline at end of file
diff --git a/native-image/embed-sbom/sbom-test/README.md b/native-image/embed-sbom/sbom-test/README.md
index 079823dc2..d31c6b823 100644
--- a/native-image/embed-sbom/sbom-test/README.md
+++ b/native-image/embed-sbom/sbom-test/README.md
@@ -1,6 +1,6 @@
# Including Class-Level Metadata in the SBOM
This demo tests including class-level metadata to the SBOM components at build time.
-Find more information on [the website](https://www.graalvm.org/jdk24/security-guide/native-image/sbom/#including-class-level-metadata-in-the-sbom).
+Find more information on [the website](https://www.graalvm.org/jdk25/security-guide/native-image/sbom/#including-class-level-metadata-in-the-sbom).
> Available with GraalVM for JDK 24 and later.
\ No newline at end of file
diff --git a/native-image/embed-sbom/sbom-test/pom.xml b/native-image/embed-sbom/sbom-test/pom.xml
index 3f5d284f9..f19cfe582 100644
--- a/native-image/embed-sbom/sbom-test/pom.xml
+++ b/native-image/embed-sbom/sbom-test/pom.xml
@@ -10,7 +10,7 @@
UTF-8
21
21
- 0.10.6
+ 0.11.0
diff --git a/native-image/include-metadata/pom.xml b/native-image/include-metadata/pom.xml
index 57de0b906..228514c2c 100644
--- a/native-image/include-metadata/pom.xml
+++ b/native-image/include-metadata/pom.xml
@@ -11,7 +11,7 @@
2.2.220
21
21
- 0.10.6
+ 0.11.0
org.graalvm.example.H2Example
h2example
@@ -33,7 +33,7 @@
org.graalvm.buildtools
native-maven-plugin
- 0.10.6
+ 0.11.0
true
diff --git a/native-image/microservices/micronaut-hello-rest-gradle/README.md b/native-image/microservices/micronaut-hello-rest-gradle/README.md
index d473627dd..4796e9a07 100644
--- a/native-image/microservices/micronaut-hello-rest-gradle/README.md
+++ b/native-image/microservices/micronaut-hello-rest-gradle/README.md
@@ -7,9 +7,9 @@ Along the way you will see the performance benefits that GraalVM Native Image pr
1. Download and install GraalVM using [SDKMAN!](https://sdkman.io/):
```bash
- sdk install java 21.0.5-graal
+ sdk install java 21.0.8-graal
```
- > Note: A Java version between 17 and 21 is required to execute Gradle (see the Gradle Compatibility Matrix).
+ > Note: A Java version between 17 and 21 is required to execute Gradle (see the [Gradle Compatibility Matrix](https://docs.gradle.org/current/userguide/compatibility.html)).
2. Download or clone GraalVM demos repository and navigate into the example directory:
```bash
@@ -31,13 +31,13 @@ Along the way you will see the performance benefits that GraalVM Native Image pr
java -jar build/libs/hello-0.1-all.jar
```
You can see the app starts in few hundred milliseconds.
-
+
3. To test the `HelloController` you created, either `curl http://localhost:8080/hello` or open it in a browser:
```bash
curl http://localhost:8080/hello
```
- The response should be `Example Response`.
+ The response should be `Example Response`.
Then stop the application:
```
CTRL-C
@@ -52,7 +52,7 @@ Mironaut provides support for GraalVM Native Image by default.
```bash
./gradlew nativeCompile
```
-
+
Compilation can take a few minutes, but more cores and more memory reduce the required time.
The result is a standalone executable placed in the _build/native/nativeCompile/_ directory named `MnHelloRest`.
@@ -71,7 +71,7 @@ Mironaut provides support for GraalVM Native Image by default.
If you are on Linux, you can easily create a Docker container image that includes the native Linux executable you have built.
For Windows or macOS, the process is little different and is not covered here.
-Typically, the first question is what base image to use?
+Typically, the first question is what base image to use?
GraalVM Native Image supports both static and dynamically linked executables, with dynamic being the default.
Your native executable is dynamically linked against `glibc`, you will need a base image that includes it.
One of the smallest base images you could use is Alpine Linux with `glibc`.
diff --git a/native-image/microservices/micronaut-hello-rest-maven/README.md b/native-image/microservices/micronaut-hello-rest-maven/README.md
index 77f9f716a..367b61ca0 100644
--- a/native-image/microservices/micronaut-hello-rest-maven/README.md
+++ b/native-image/microservices/micronaut-hello-rest-maven/README.md
@@ -7,7 +7,7 @@ Along the way you will see the performance benefits that GraalVM Native Image pr
1. Download and install GraalVM using [SDKMAN!](https://sdkman.io/):
```bash
- sdk install java 21.0.5-graal
+ sdk install java 25-graal
```
2. Download or clone GraalVM demos repository and navigate into the example directory:
@@ -30,13 +30,13 @@ Along the way you will see the performance benefits that GraalVM Native Image pr
java -jar target/MnHelloRest-0.1.jar
```
You can see the app starts in few hundred milliseconds.
-
+
3. To test the `HelloController` you created, either `curl http://localhost:8080/GraalVM` or open it in a browser:
```bash
curl http://localhost:8080/GraalVM
```
- The response should be `Hello GraalVM`.
+ The response should be `Hello GraalVM`.
Then stop the application:
```
CTRL-C
@@ -51,7 +51,7 @@ Micronaut provides support for GraalVM Native Image by default.
```bash
./mvnw package -Dpackaging=native-image
```
-
+
Compilation can take a few minutes. Compiling on machine with more cores and more memory will reduce the build time.
The result is a standalone executable placed in the _target/_ directory named `MnHelloRest`.
@@ -69,7 +69,7 @@ Micronaut provides support for GraalVM Native Image by default.
curl http://localhost:8080/GraalVM
```
- The response should be `Hello GraalVM`.
+ The response should be `Hello GraalVM`.
Then stop the application:
```
CTRL-C
@@ -80,7 +80,7 @@ Micronaut provides support for GraalVM Native Image by default.
If you are on Linux, you can easily create a Docker container image that includes the native Linux executable you have built.
For Windows or macOS, the process is little different and is not covered here.
-Typically, the first question is what base image to use?
+Typically, the first question is what base image to use?
GraalVM Native Image supports both static and dynamically linked executables, with dynamic being the default.
Your native executable is dynamically linked against `glibc`, you will need a base image that includes it.
One of the smallest base images you could use is Alpine Linux with `glibc`.
diff --git a/native-image/native-build-tools/gradle-plugin/build.gradle b/native-image/native-build-tools/gradle-plugin/build.gradle
index f1f9143a4..14b3cf007 100644
--- a/native-image/native-build-tools/gradle-plugin/build.gradle
+++ b/native-image/native-build-tools/gradle-plugin/build.gradle
@@ -9,7 +9,7 @@
plugins {
// Apply the application plugin to add support for building a CLI application in Java.
id 'application'
- id 'org.graalvm.buildtools.native' version '0.10.6'
+ id 'org.graalvm.buildtools.native' version '0.11.0'
}
repositories {
diff --git a/native-image/native-build-tools/maven-plugin/pom.xml b/native-image/native-build-tools/maven-plugin/pom.xml
index 47054ccac..bb68516b0 100644
--- a/native-image/native-build-tools/maven-plugin/pom.xml
+++ b/native-image/native-build-tools/maven-plugin/pom.xml
@@ -11,7 +11,7 @@
21
21
- 0.10.6
+ 0.11.0
diff --git a/native-image/optimize-memory/README.md b/native-image/optimize-memory/README.md
index b4205b815..28eb93c04 100644
--- a/native-image/optimize-memory/README.md
+++ b/native-image/optimize-memory/README.md
@@ -1,3 +1,3 @@
# Optimize Memory Footprint of a Native Executable
-You can find the steps to run this demo on [the website](https://www.graalvm.org/jdk24/reference-manual/native-image/guides/optimize-memory-footprint/).
\ No newline at end of file
+You can find the steps to run this demo on [the website](https://www.graalvm.org/jdk25/reference-manual/native-image/guides/optimize-memory-footprint/).
\ No newline at end of file
diff --git a/native-image/preserve-package/README.md b/native-image/preserve-package/README.md
index fa598d1be..401e3eb5c 100644
--- a/native-image/preserve-package/README.md
+++ b/native-image/preserve-package/README.md
@@ -19,6 +19,7 @@ shows how to use `-H:Preserve` to keep specific packages available at runtime.
## Prerequisites
+
- GraalVM 25
- Maven 3.9+
- SDKMAN! (recommended for installing GraalVM)
@@ -222,4 +223,4 @@ As shown:
https://www.graalvm.org/latest/reference-manual/native-image/metadata/AutomaticMetadataCollection/#tracing-agent
- Java Reflection API (JDK 25):
https://docs.oracle.com/en/java/javase/25/docs/api/java.base/java/lang/reflect/package-summary.html
- - Native Image Build Report: https://www.graalvm.org/latest/reference-manual/native-image/overview/build-report/
+- Native Image Build Report: https://www.graalvm.org/latest/reference-manual/native-image/overview/build-report/
diff --git a/native-image/preserve-package/pom.xml b/native-image/preserve-package/pom.xml
index 12fb1bd8d..e8a93ac23 100644
--- a/native-image/preserve-package/pom.xml
+++ b/native-image/preserve-package/pom.xml
@@ -12,7 +12,7 @@
UTF-8
21
- 0.10.6
+ 0.11.0
diff --git a/native-image/specify-class-init/README.md b/native-image/specify-class-init/README.md
index 2780601c3..ed73427ce 100644
--- a/native-image/specify-class-init/README.md
+++ b/native-image/specify-class-init/README.md
@@ -1,3 +1,3 @@
# Specify Class Initialization Explicitly
-You can find the steps to run this demo on [the website](https://www.graalvm.org/jdk23/reference-manual/native-image/guides/specify-class-initialization/).
\ No newline at end of file
+You can find the steps to run this demo on [the website](https://www.graalvm.org/jdk25/reference-manual/native-image/guides/specify-class-initialization/).
\ No newline at end of file