From a8331ad879a40e6e066e012cd9c2149a72dee274 Mon Sep 17 00:00:00 2001 From: Moritz Halbritter Date: Tue, 21 Oct 2025 10:51:54 +0200 Subject: [PATCH] Rename CDS section in documentation to AOT cache Closes gh-45201 --- .../modules/ROOT/pages/documentation.adoc | 2 +- .../antora/modules/ROOT/pages/redirect.adoc | 19 ++++-- ...class-data-sharing.adoc => aot-cache.adoc} | 25 ++++---- .../modules/how-to/partials/nav-how-to.adoc | 2 +- .../reference/pages/packaging/aot-cache.adoc | 64 +++++++++++++++++++ .../reference/pages/packaging/aot.adoc | 2 +- .../pages/packaging/class-data-sharing.adoc | 53 --------------- .../container-images/dockerfiles.adoc | 48 ++++++++------ .../reference/pages/packaging/efficient.adoc | 2 +- .../reference/pages/packaging/index.adoc | 2 +- .../modules/reference/partials/dockerfile | 4 +- .../reference/partials/nav-reference.adoc | 2 +- 12 files changed, 126 insertions(+), 99 deletions(-) rename documentation/spring-boot-docs/src/docs/antora/modules/how-to/pages/{class-data-sharing.adoc => aot-cache.adoc} (73%) create mode 100644 documentation/spring-boot-docs/src/docs/antora/modules/reference/pages/packaging/aot-cache.adoc delete mode 100644 documentation/spring-boot-docs/src/docs/antora/modules/reference/pages/packaging/class-data-sharing.adoc diff --git a/documentation/spring-boot-docs/src/docs/antora/modules/ROOT/pages/documentation.adoc b/documentation/spring-boot-docs/src/docs/antora/modules/ROOT/pages/documentation.adoc index f553f9a9313..fd6434464bb 100644 --- a/documentation/spring-boot-docs/src/docs/antora/modules/ROOT/pages/documentation.adoc +++ b/documentation/spring-boot-docs/src/docs/antora/modules/ROOT/pages/documentation.adoc @@ -140,7 +140,7 @@ Spring Boot applications can be optimized for production using technologies desc * *Efficient Deployments:* xref:reference:packaging/efficient.adoc#packaging.efficient.unpacking[Unpacking the Executable JAR] * *GraalVM Native Images:* xref:reference:packaging/native-image/introducing-graalvm-native-images.adoc[Introduction] | xref:reference:packaging/native-image/advanced-topics.adoc[Advanced Topics] | xref:how-to:native-image/developing-your-first-application.adoc[Getting Started] | xref:how-to:native-image/testing-native-applications.adoc[Testing] -* *Class Data Sharing:* xref:reference:packaging/class-data-sharing.adoc[Overview] +* *AOT cache:* xref:reference:packaging/aot-cache.adoc[Overview] * *Checkpoint and Restore* xref:reference:packaging/checkpoint-restore.adoc[Overview] diff --git a/documentation/spring-boot-docs/src/docs/antora/modules/ROOT/pages/redirect.adoc b/documentation/spring-boot-docs/src/docs/antora/modules/ROOT/pages/redirect.adoc index b87b5092c28..dcf392dd8f8 100644 --- a/documentation/spring-boot-docs/src/docs/antora/modules/ROOT/pages/redirect.adoc +++ b/documentation/spring-boot-docs/src/docs/antora/modules/ROOT/pages/redirect.adoc @@ -234,14 +234,14 @@ * xref:appendix:application-properties/index.adoc#appendix.application-properties[#common-application-properties] * xref:appendix:application-properties/index.adoc[#application-properties] * xref:appendix:application-properties/index.adoc[application-properties] -* xref:appendix:auto-configuration-classes/spring-boot-actuator-autoconfigure.adoc#appendix.auto-configuration-classes.spring-boot-actuator-autoconfigure[#appendix.auto-configuration-classes.actuator] -* xref:appendix:auto-configuration-classes/spring-boot-actuator-autoconfigure.adoc#appendix.auto-configuration-classes.spring-boot-actuator-autoconfigure[#auto-configuration-classes.actuator] -* xref:appendix:auto-configuration-classes/spring-boot-autoconfigure.adoc#appendix.auto-configuration-classes.spring-boot-autoconfigure[#appendix.auto-configuration-classes.core] -* xref:appendix:auto-configuration-classes/spring-boot-autoconfigure.adoc#appendix.auto-configuration-classes.spring-boot-autoconfigure[#auto-configuration-classes.core] * xref:appendix:auto-configuration-classes/index.adoc#appendix.auto-configuration-classes[#appendix.auto-configuration-classes] * xref:appendix:auto-configuration-classes/index.adoc#appendix.auto-configuration-classes[#auto-configuration-classes] * xref:appendix:auto-configuration-classes/index.adoc[#auto-configuration-classes] * xref:appendix:auto-configuration-classes/index.adoc[auto-configuration-classes] +* xref:appendix:auto-configuration-classes/spring-boot-actuator-autoconfigure.adoc#appendix.auto-configuration-classes.spring-boot-actuator-autoconfigure[#appendix.auto-configuration-classes.actuator] +* xref:appendix:auto-configuration-classes/spring-boot-actuator-autoconfigure.adoc#appendix.auto-configuration-classes.spring-boot-actuator-autoconfigure[#auto-configuration-classes.actuator] +* xref:appendix:auto-configuration-classes/spring-boot-autoconfigure.adoc#appendix.auto-configuration-classes.spring-boot-autoconfigure[#appendix.auto-configuration-classes.core] +* xref:appendix:auto-configuration-classes/spring-boot-autoconfigure.adoc#appendix.auto-configuration-classes.spring-boot-autoconfigure[#auto-configuration-classes.core] * xref:appendix:dependency-versions/coordinates.adoc#appendix.dependency-versions.coordinates[#appendix.dependency-versions.coordinates] * xref:appendix:dependency-versions/coordinates.adoc#appendix.dependency-versions.coordinates[#dependency-versions.coordinates] * xref:appendix:dependency-versions/index.adoc#appendix.dependency-versions[#appendix.dependency-versions] @@ -369,6 +369,10 @@ * xref:how-to:actuator.adoc#howto.actuator.map-health-indicators-to-metrics[#howto.actuator.map-health-indicators-to-metrics] * xref:how-to:actuator.adoc#howto.actuator[#howto-actuator] * xref:how-to:actuator.adoc#howto.actuator[#howto.actuator] +* xref:how-to:aot-cache.adoc#howto.aot-cache.buildpacks[#howto.class-data-sharing.buildpacks] +* xref:how-to:aot-cache.adoc#howto.aot-cache.dockerfiles[#howto.class-data-sharing.dockerfiles] +* xref:how-to:aot-cache.adoc#howto.aot-cache.training-run-configuration[#howto.class-data-sharing.training-run-configuration] +* xref:how-to:aot-cache.adoc#howto.aot-cache[#howto.class-data-sharing] * xref:how-to:aot.adoc#howto.aot.conditions[#howto.aot.conditions] * xref:how-to:aot.adoc#howto.aot[#howto.aot] * xref:how-to:application.adoc#howto.application.context-hierarchy[#howto-build-an-application-context-hierarchy] @@ -1610,8 +1614,6 @@ * xref:reference:features/ssl.adoc#features.ssl[#features.ssl] * xref:reference:features/task-execution-and-scheduling.adoc#features.task-execution-and-scheduling[#boot-features-task-execution-scheduling] * xref:reference:features/task-execution-and-scheduling.adoc#features.task-execution-and-scheduling[#features.task-execution-and-scheduling] -* xref:reference:io/spring-batch.adoc#io.spring-batch.running-jobs-on-startup[#howto-spring-batch-running-jobs-on-startup] -* xref:reference:io/spring-batch.adoc#io.spring-batch.running-jobs-on-startup[#howto.batch.running-jobs-on-startup] * xref:reference:io/caching.adoc#io.caching.provider.cache2k[#io.caching.provider.cache2k] * xref:reference:io/caching.adoc#io.caching.provider.caffeine[#boot-features-caching-provider-caffeine] * xref:reference:io/caching.adoc#io.caching.provider.caffeine[#features.caching.provider.caffeine] @@ -1693,6 +1695,8 @@ * xref:reference:io/rest-client.adoc#io.rest-client.webclient[#features.webclient] * xref:reference:io/rest-client.adoc#io.rest-client.webclient[#io.rest-client.webclient] * xref:reference:io/rest-client.adoc#io.rest-client[#io.rest-client] +* xref:reference:io/spring-batch.adoc#io.spring-batch.running-jobs-on-startup[#howto-spring-batch-running-jobs-on-startup] +* xref:reference:io/spring-batch.adoc#io.spring-batch.running-jobs-on-startup[#howto.batch.running-jobs-on-startup] * xref:reference:io/validation.adoc#io.validation[#boot-features-validation] * xref:reference:io/validation.adoc#io.validation[#features.validation] * xref:reference:io/validation.adoc#io.validation[#io.validation] @@ -1788,6 +1792,9 @@ * xref:reference:messaging/websockets.adoc#messaging.websockets[#boot-features-websockets] * xref:reference:messaging/websockets.adoc#messaging.websockets[#features.websockets] * xref:reference:messaging/websockets.adoc#messaging.websockets[#messaging.websockets] +* xref:reference:packaging/aot-cache.adoc#packaging.aot-cache.aot-cache[#packaging.class-data-sharing.aot-cache] +* xref:reference:packaging/aot-cache.adoc#packaging.aot-cache.cds[#packaging.class-data-sharing.cds] +* xref:reference:packaging/aot-cache.adoc#packaging.aot-cache[#packaging.class-data-sharing] * xref:reference:packaging/aot.adoc#packaging.aot[#deployment.efficient.aot] * xref:reference:packaging/checkpoint-restore.adoc#packaging.checkpoint-restore[#deployment.efficient.checkpoint-restore] * xref:reference:packaging/container-images/cloud-native-buildpacks.adoc#packaging.container-images.buildpacks[#boot-features-container-images-buildpacks] diff --git a/documentation/spring-boot-docs/src/docs/antora/modules/how-to/pages/class-data-sharing.adoc b/documentation/spring-boot-docs/src/docs/antora/modules/how-to/pages/aot-cache.adoc similarity index 73% rename from documentation/spring-boot-docs/src/docs/antora/modules/how-to/pages/class-data-sharing.adoc rename to documentation/spring-boot-docs/src/docs/antora/modules/how-to/pages/aot-cache.adoc index 69672185c2f..067df8343b1 100644 --- a/documentation/spring-boot-docs/src/docs/antora/modules/how-to/pages/class-data-sharing.adoc +++ b/documentation/spring-boot-docs/src/docs/antora/modules/how-to/pages/aot-cache.adoc @@ -1,13 +1,16 @@ -[[howto.class-data-sharing]] -= Class Data Sharing +[[howto.aot-cache]] += AOT Cache -This section includes information about using Class Data Sharing (CDS) with Spring Boot applications. -For an overview of Spring Boot support for CDS, see xref:reference:packaging/class-data-sharing.adoc[]. +This section includes information about using AOT cache with Spring Boot applications. +For an overview of Spring Boot support for AOT cache, see xref:reference:packaging/aot-cache.adoc[]. -[[howto.class-data-sharing.buildpacks]] -== Packaging an Application Using CDS and Buildpacks +[[howto.aot-cache.buildpacks]] +== Packaging an Application Using AOT Cache and Buildpacks + +NOTE: Buildpacks don't support AOT cache yet. +However, you can leverage CDS (the predecessor of AOT cache) with Buildpacks. Spring Boot's xref:reference:packaging/container-images/cloud-native-buildpacks.adoc[support for Cloud Native Buildpacks] along with the https://paketo.io/docs/reference/java-reference[Paketo Java buildpack] and its https://paketo.io/docs/reference/java-reference/#spring-boot-applications[Spring Boot support] can be used to generate a Docker image containing a CDS-optimized application. @@ -18,15 +21,15 @@ The Paketo Buildpack for Spring Boot https://github.com/paketo-buildpacks/spring -[[howto.class-data-sharing.dockerfiles]] -== Packaging an Application Using CDS and Dockerfiles +[[howto.aot-cache.dockerfiles]] +== Packaging an Application Using AOT Cache and Dockerfiles -If you don't want to use Cloud Native Buildpacks, it is also possible to use CDS with a `Dockerfile`. -For more information about that, please see the xref:reference:packaging/container-images/dockerfiles.adoc#packaging.container-images.dockerfiles.cds[Dockerfiles reference documentation]. +If you don't want to use Cloud Native Buildpacks, it is possible to use AOT cache (or CDS) with a `Dockerfile`. +For more information about that, please see the xref:reference:packaging/container-images/dockerfiles.adoc#packaging.container-images.dockerfiles.aot-cache[Dockerfiles reference documentation]. -[[howto.class-data-sharing.training-run-configuration]] +[[howto.aot-cache.training-run-configuration]] == Preventing Remote Services Interaction During the Training Run When performing the training run, it may be needed to customize the Spring Boot application configuration to prevent connections to remote services that may happen before the Spring lifecycle is started. diff --git a/documentation/spring-boot-docs/src/docs/antora/modules/how-to/partials/nav-how-to.adoc b/documentation/spring-boot-docs/src/docs/antora/modules/how-to/partials/nav-how-to.adoc index f0ace233a80..0c3371c0cf2 100644 --- a/documentation/spring-boot-docs/src/docs/antora/modules/how-to/partials/nav-how-to.adoc +++ b/documentation/spring-boot-docs/src/docs/antora/modules/how-to/partials/nav-how-to.adoc @@ -20,7 +20,7 @@ ** xref:how-to:native-image/index.adoc[] *** xref:how-to:native-image/developing-your-first-application.adoc[] *** xref:how-to:native-image/testing-native-applications.adoc[] -** xref:how-to:class-data-sharing.adoc[] +** xref:how-to:aot-cache.adoc[] ** xref:how-to:deployment/index.adoc[] *** xref:how-to:deployment/traditional-deployment.adoc[] *** xref:how-to:deployment/cloud.adoc[] diff --git a/documentation/spring-boot-docs/src/docs/antora/modules/reference/pages/packaging/aot-cache.adoc b/documentation/spring-boot-docs/src/docs/antora/modules/reference/pages/packaging/aot-cache.adoc new file mode 100644 index 00000000000..3256a54f849 --- /dev/null +++ b/documentation/spring-boot-docs/src/docs/antora/modules/reference/pages/packaging/aot-cache.adoc @@ -0,0 +1,64 @@ +[[packaging.aot-cache]] += AOT Cache + +AOT cache is a https://openjdk.org/jeps/483[JVM feature] that can help reduce the startup time and memory footprint of Java applications. + +If you're using Java < 24, you should read the sections about CDS. +CDS is the predecessor of AOT cache, but works similarly. + +Spring Boot supports both CDS and AOT cache, and it is recommended that you use AOT cache if it is available in the JVM version you are using (Java 24 or later). + +[[packaging.aot-cache.aot-cache]] +== AOT Cache + +NOTE: If you're using Java < 24, AOT cache is not available. +You have to use CDS instead. + +To use the AOT cache feature, you should first perform a training run on your application in extracted form: + +[source,shell] +---- +$ java -Djarmode=tools -jar my-app.jar extract --destination application +$ cd application +$ java -XX:AOTCacheOutput=app.aot -Dspring.context.exit=onRefresh -jar my-app.jar +---- + +This creates an `app.aot` cache file that can be reused as long as the application is not updated and the same Java version is used. + +To use the cache file, you need to add an extra parameter when starting the application: + +[source,shell] +---- +$ java -XX:AOTCache=app.aot -jar my-app.jar +---- + +NOTE: You have to use the cache file with the extracted form of the application, otherwise it has no effect. + + + +[[packaging.aot-cache.cds]] +== CDS + +NOTE: If you're using Java 24 or later, please use AOT cache instead of CDS. + +To use CDS, you should first perform a training run on your application in extracted form: + +[source,shell] +---- +$ java -Djarmode=tools -jar my-app.jar extract --destination application +$ cd application +$ java -XX:ArchiveClassesAtExit=application.jsa -Dspring.context.exit=onRefresh -jar my-app.jar +---- + +This creates an `application.jsa` archive file that can be reused as long as the application is not updated. + +To use the archive file, you need to add an extra parameter when starting the application: + +[source,shell] +---- +$ java -XX:SharedArchiveFile=application.jsa -jar my-app.jar +---- + +NOTE: You have to use the cache file with the extracted form of the application, otherwise it has no effect. + +NOTE: For more details about CDS, refer to the https://docs.oracle.com/en/java/javase/17/vm/class-data-sharing.html[Class Data Sharing documentation of the JDK]. diff --git a/documentation/spring-boot-docs/src/docs/antora/modules/reference/pages/packaging/aot.adoc b/documentation/spring-boot-docs/src/docs/antora/modules/reference/pages/packaging/aot.adoc index a2488c38c5d..3bb68465a86 100644 --- a/documentation/spring-boot-docs/src/docs/antora/modules/reference/pages/packaging/aot.adoc +++ b/documentation/spring-boot-docs/src/docs/antora/modules/reference/pages/packaging/aot.adoc @@ -4,7 +4,7 @@ It's beneficial for the startup time to run your application using the AOT generated initialization code. First, you need to ensure that the jar you are building includes AOT generated code. -NOTE: CDS and AOT can be combined to further improve startup time. +NOTE: AOT cache and Spring's AOT can be combined to further improve startup time. For Maven, this means that you should build with `-Pnative` to activate the `native` profile: diff --git a/documentation/spring-boot-docs/src/docs/antora/modules/reference/pages/packaging/class-data-sharing.adoc b/documentation/spring-boot-docs/src/docs/antora/modules/reference/pages/packaging/class-data-sharing.adoc deleted file mode 100644 index 288a60b5002..00000000000 --- a/documentation/spring-boot-docs/src/docs/antora/modules/reference/pages/packaging/class-data-sharing.adoc +++ /dev/null @@ -1,53 +0,0 @@ -[[packaging.class-data-sharing]] -= Class Data Sharing - -Class Data Sharing (CDS) is a https://docs.oracle.com/en/java/javase/17/vm/class-data-sharing.html[JVM feature] that can help reduce the startup time and memory footprint of Java applications. - -In Java 24, CDS is succeeded by the AOT Cache via https://openjdk.org/jeps/483[JEP 483]. -Spring Boot supports both CDS and AOT cache, and it is recommended that you use the latter if it is available in the JVM version you are using (Java 24+). - -[[packaging.class-data-sharing.cds]] -== CDS - -To use CDS, you should first perform a training run on your application in extracted form: - -[source,shell] ----- -$ java -Djarmode=tools -jar my-app.jar extract --destination application -$ cd application -$ java -XX:ArchiveClassesAtExit=application.jsa -Dspring.context.exit=onRefresh -jar my-app.jar ----- - -This creates an `application.jsa` archive file that can be reused as long as the application is not updated. - -To use the archive file, you need to add an extra parameter when starting the application: - -[source,shell] ----- -$ java -XX:SharedArchiveFile=application.jsa -jar my-app.jar ----- - -NOTE: For more details about CDS, refer to the xref:how-to:class-data-sharing.adoc[CDS how-to guide] and the {url-spring-framework-docs}/integration/cds.html[Spring Framework reference documentation]. - -[[packaging.class-data-sharing.aot-cache]] -== AOT Cache - -To use the AOT cache, you should first perform a training run on your application in extracted form: - -[source,shell] ----- -$ java -Djarmode=tools -jar my-app.jar extract --destination application -$ cd application -$ java -XX:AOTMode=record -XX:AOTConfiguration=app.aotconf -Dspring.context.exit=onRefresh -jar my-app.jar -$ java -XX:AOTMode=create -XX:AOTConfiguration=app.aotconf -XX:AOTCache=app.aot -jar my-app.jar ----- - -This creates an `app.aot` cache file that can be reused as long as the application is not updated. -The intermediate `app.aotconf` file is no longer needed and can be safely deleted. - -To use the cache file, you need to add an extra parameter when starting the application: - -[source,shell] ----- -$ java -XX:AOTCache=app.aot -jar my-app.jar ----- diff --git a/documentation/spring-boot-docs/src/docs/antora/modules/reference/pages/packaging/container-images/dockerfiles.adoc b/documentation/spring-boot-docs/src/docs/antora/modules/reference/pages/packaging/container-images/dockerfiles.adoc index 935998556fc..daee0027a68 100644 --- a/documentation/spring-boot-docs/src/docs/antora/modules/reference/pages/packaging/container-images/dockerfiles.adoc +++ b/documentation/spring-boot-docs/src/docs/antora/modules/reference/pages/packaging/container-images/dockerfiles.adoc @@ -33,7 +33,7 @@ Here is an example of a `Dockerfile` using `jarmode`. include::reference:partial$dockerfile[] # Start the application jar - this is not the uber jar used by the builder # This jar only contains application code and references to the extracted jar files -# This layout is efficient to start up and CDS/AOT cache friendly +# This layout is efficient to start up and AOT cache (and CDS) friendly ENTRYPOINT ["java", "-jar", "application.jar"] ---- @@ -50,43 +50,49 @@ Each of the `COPY` commands relates to the layers extracted by the jarmode. Of course, a `Dockerfile` can be written without using the `jarmode`. You can use some combination of `unzip` and `mv` to move things to the right layer but `jarmode` simplifies that. -Additionally, the layout created by the `jarmode` is CDS and AOT cache friendly out of the box. +Additionally, the layout created by the `jarmode` is AOT cache (and CDS) friendly out of the box. -[[packaging.container-images.dockerfiles.cds]] -== CDS +[[packaging.container-images.dockerfiles.aot-cache]] +== AOT Cache + +NOTE: If you're using Java < 24, AOT cache is not available. +You have to use CDS instead. -If you want to additionally enable xref:reference:packaging/class-data-sharing.adoc#packaging.class-data-sharing.cds[CDS], you can use this `Dockerfile`: +If you want to additionally enable the xref:reference:packaging/aot-cache.adoc#packaging.aot-cache.aot-cache[AOT cache], you can use this `Dockerfile`: [source,dockerfile] ---- include::reference:partial$dockerfile[] -# Execute the CDS training run -RUN java -XX:ArchiveClassesAtExit=application.jsa -Dspring.context.exit=onRefresh -jar application.jar -# Start the application jar with CDS enabled - this is not the uber jar used by the builder +# Execute the AOT cache training run +RUN java -XX:AOTCacheOutput=app.aot -Dspring.context.exit=onRefresh -jar application.jar +# Start the application jar with AOT cache enabled - this is not the uber jar used by the builder # This jar only contains application code and references to the extracted jar files -# This layout is efficient to start up and CDS friendly -ENTRYPOINT ["java", "-XX:SharedArchiveFile=application.jsa", "-jar", "application.jar"] +# This layout is efficient to start up and AOT cache friendly +ENTRYPOINT ["java", "-XX:AOTCache=app.aot", "-jar", "application.jar"] ---- This is mostly the same as the above `Dockerfile`. -As the last steps, it creates the CDS archive by doing a training run and passes the CDS parameter to `java -jar`. +As the last steps, it creates the AOT cache file by doing a training run and passes the AOT cache parameter to `java -jar`. -[[packaging.container-images.dockerfiles.aot-cache]] -== AOT cache -If you want to additionally enable the xref:reference:packaging/class-data-sharing.adoc#packaging.class-data-sharing.aot-cache[AOT cache], you can use this `Dockerfile`: + +[[packaging.container-images.dockerfiles.cds]] +== CDS + +NOTE: If you're using Java 24 or later, please use AOT cache instead of CDS. + +If you want to additionally enable xref:reference:packaging/aot-cache.adoc#packaging.aot-cache.cds[CDS], you can use this `Dockerfile`: [source,dockerfile] ---- include::reference:partial$dockerfile[] -# Execute the AOT cache training run -RUN java -XX:AOTMode=record -XX:AOTConfiguration=app.aotconf -Dspring.context.exit=onRefresh -jar application.jar -RUN java -XX:AOTMode=create -XX:AOTConfiguration=app.aotconf -XX:AOTCache=app.aot -jar application.jar && rm app.aotconf -# Start the application jar with AOT cache enabled - this is not the uber jar used by the builder +# Execute the CDS training run +RUN java -XX:ArchiveClassesAtExit=application.jsa -Dspring.context.exit=onRefresh -jar application.jar +# Start the application jar with CDS enabled - this is not the uber jar used by the builder # This jar only contains application code and references to the extracted jar files -# This layout is efficient to start up and AOT cache friendly -ENTRYPOINT ["java", "-XX:AOTCache=app.aot", "-jar", "application.jar"] +# This layout is efficient to start up and CDS friendly +ENTRYPOINT ["java", "-XX:SharedArchiveFile=application.jsa", "-jar", "application.jar"] ---- This is mostly the same as the above `Dockerfile`. -As the last steps, it creates the AOT cache file by doing a training run and passes the AOT cache parameter to `java -jar`. +As the last steps, it creates the CDS archive by doing a training run and passes the CDS parameter to `java -jar`. diff --git a/documentation/spring-boot-docs/src/docs/antora/modules/reference/pages/packaging/efficient.adoc b/documentation/spring-boot-docs/src/docs/antora/modules/reference/pages/packaging/efficient.adoc index 382601fdd4e..6fb6ade576d 100644 --- a/documentation/spring-boot-docs/src/docs/antora/modules/reference/pages/packaging/efficient.adoc +++ b/documentation/spring-boot-docs/src/docs/antora/modules/reference/pages/packaging/efficient.adoc @@ -12,7 +12,7 @@ Certain PaaS implementations may also choose to extract archives before they run For example, Cloud Foundry operates this way. Spring Boot supports extracting your application to a directory using different layouts. -The default layout is the most efficient, and it is xref:reference:packaging/class-data-sharing.adoc#packaging.class-data-sharing.cds[CDS] and xref:reference:packaging/class-data-sharing.adoc#packaging.class-data-sharing.aot-cache[AOT cache] friendly. +The default layout is the most efficient, and it is xref:reference:packaging/aot-cache.adoc#packaging.aot-cache.aot-cache[AOT cache] (and xref:reference:packaging/aot-cache.adoc#packaging.aot-cache.cds[CDS]) friendly. In this layout, the libraries are extracted to a `lib/` folder, and the application jar contains the application classes and a manifest which references the libraries in the `lib/` folder. diff --git a/documentation/spring-boot-docs/src/docs/antora/modules/reference/pages/packaging/index.adoc b/documentation/spring-boot-docs/src/docs/antora/modules/reference/pages/packaging/index.adoc index 260f87ca0fb..05779e275b0 100644 --- a/documentation/spring-boot-docs/src/docs/antora/modules/reference/pages/packaging/index.adoc +++ b/documentation/spring-boot-docs/src/docs/antora/modules/reference/pages/packaging/index.adoc @@ -1,7 +1,7 @@ [[packaging]] = Packaging Spring Boot Applications -Spring Boot supports several technologies for optimizing applications for deployment, including xref:packaging/native-image/index.adoc[GraalVM native images], xref:packaging/class-data-sharing.adoc[Class Data Sharing], and xref:packaging/checkpoint-restore.adoc[Checkpoint and Restore]. +Spring Boot supports several technologies for optimizing applications for deployment, including xref:packaging/native-image/index.adoc[GraalVM native images], xref:packaging/aot-cache.adoc[AOT cache], and xref:packaging/checkpoint-restore.adoc[Checkpoint and Restore]. Spring Boot applications can be packaged in Docker containers using techniques described in xref:packaging/container-images/index.adoc[]. diff --git a/documentation/spring-boot-docs/src/docs/antora/modules/reference/partials/dockerfile b/documentation/spring-boot-docs/src/docs/antora/modules/reference/partials/dockerfile index 8acc7aa9b69..6c3704fa7ec 100644 --- a/documentation/spring-boot-docs/src/docs/antora/modules/reference/partials/dockerfile +++ b/documentation/spring-boot-docs/src/docs/antora/modules/reference/partials/dockerfile @@ -1,5 +1,5 @@ # Perform the extraction in a separate builder container -FROM bellsoft/liberica-openjre-debian:24-cds AS builder +FROM bellsoft/liberica-openjre-debian:25-cds AS builder WORKDIR /builder # This points to the built jar file in the target folder # Adjust this to 'build/libs/*.jar' if you're using Gradle @@ -10,7 +10,7 @@ COPY ${JAR_FILE} application.jar RUN java -Djarmode=tools -jar application.jar extract --layers --destination extracted # This is the runtime container -FROM bellsoft/liberica-openjre-debian:24-cds +FROM bellsoft/liberica-openjre-debian:25-cds WORKDIR /application # Copy the extracted jar contents from the builder container into the working directory in the runtime container # Every copy step creates a new docker layer diff --git a/documentation/spring-boot-docs/src/docs/antora/modules/reference/partials/nav-reference.adoc b/documentation/spring-boot-docs/src/docs/antora/modules/reference/partials/nav-reference.adoc index 3d195c46adf..fa7ba15090c 100644 --- a/documentation/spring-boot-docs/src/docs/antora/modules/reference/partials/nav-reference.adoc +++ b/documentation/spring-boot-docs/src/docs/antora/modules/reference/partials/nav-reference.adoc @@ -67,7 +67,7 @@ ** xref:reference:packaging/index.adoc[] *** xref:reference:packaging/efficient.adoc[] -*** xref:reference:packaging/class-data-sharing.adoc[] +*** xref:reference:packaging/aot-cache.adoc[] *** xref:reference:packaging/aot.adoc[] *** xref:reference:packaging/native-image/index.adoc[] **** xref:reference:packaging/native-image/introducing-graalvm-native-images.adoc[]