diff --git a/spring-boot-project/spring-boot-docs/src/docs/asciidoc/web/servlet.adoc b/spring-boot-project/spring-boot-docs/src/docs/asciidoc/web/servlet.adoc index 8577a3ecd7..007ffa8186 100644 --- a/spring-boot-project/spring-boot-docs/src/docs/asciidoc/web/servlet.adoc +++ b/spring-boot-project/spring-boot-docs/src/docs/asciidoc/web/servlet.adoc @@ -618,6 +618,7 @@ For example, adding the following bean will automatically apply a `SameSite` of include::code:MySameSiteConfiguration[] + [[web.servlet.embedded-container.customizing.encoding]] ===== Character Encoding The character encoding behavior of the embedded servlet container for request and response handling can be configured using the `server.servlet.encoding.*` configuration properties. diff --git a/spring-boot-project/spring-boot-test-autoconfigure/src/main/java/org/springframework/boot/test/autoconfigure/web/reactive/AutoConfigureWebTestClient.java b/spring-boot-project/spring-boot-test-autoconfigure/src/main/java/org/springframework/boot/test/autoconfigure/web/reactive/AutoConfigureWebTestClient.java index 02553bd5f3..c63943a3c0 100644 --- a/spring-boot-project/spring-boot-test-autoconfigure/src/main/java/org/springframework/boot/test/autoconfigure/web/reactive/AutoConfigureWebTestClient.java +++ b/spring-boot-project/spring-boot-test-autoconfigure/src/main/java/org/springframework/boot/test/autoconfigure/web/reactive/AutoConfigureWebTestClient.java @@ -1,5 +1,5 @@ /* - * Copyright 2012-2032 the original author or authors. + * Copyright 2012-2023 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/docs/asciidoc/packaging-oci-image.adoc b/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/docs/asciidoc/packaging-oci-image.adoc index d28429cf12..b91921209e 100644 --- a/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/docs/asciidoc/packaging-oci-image.adoc +++ b/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/docs/asciidoc/packaging-oci-image.adoc @@ -432,9 +432,10 @@ The publish option can be specified on the command line as well, as shown in thi $ gradle bootBuildImage --imageName=docker.example.com/library/my-app:v1 --publishImage ---- + + [[build-image.examples.caches]] === Builder Cache and Workspace Configuration - The CNB builder caches layers that are used when building and launching an image. By default, these caches are stored as named volumes in the Docker daemon with names that are derived from the full name of the target image. If the image name changes frequently, for example when the project version is used as a tag in the image name, then the caches can be invalidated frequently. @@ -470,12 +471,15 @@ include::../gradle/packaging/boot-build-image-bind-caches.gradle[tags=caches] include::../gradle/packaging/boot-build-image-bind-caches.gradle.kts[tags=caches] ---- + + [[build-image.examples.docker]] === Docker Configuration + + [[build-image.examples.docker.minikube]] ==== Docker Configuration for minikube - The plugin can communicate with the https://minikube.sigs.k8s.io/docs/tasks/docker_daemon/[Docker daemon provided by minikube] instead of the default local connection. On Linux and macOS, environment variables can be set using the command `eval $(minikube docker-env)` after minikube has been started. @@ -494,9 +498,10 @@ include::../gradle/packaging/boot-build-image-docker-host.gradle[tags=docker-hos include::../gradle/packaging/boot-build-image-docker-host.gradle.kts[tags=docker-host] ---- + + [[build-image.examples.docker.podman]] ==== Docker Configuration for podman - The plugin can communicate with a https://podman.io/[podman container engine]. The plugin can be configured to use podman local connection by providing connection details similar to those shown in the following example: @@ -515,9 +520,10 @@ include::../gradle/packaging/boot-build-image-docker-host-podman.gradle.kts[tags TIP: With the `podman` CLI installed, the command `podman info --format='{{.Host.RemoteSocket.Path}}'` can be used to get the value for the `docker.host` configuration property shown in this example. + + [[build-image.examples.docker.colima]] ==== Docker Configuration for Colima - The plugin can communicate with the Docker daemon provided by https://github.com/abiosoft/colima[Colima]. The `DOCKER_HOST` environment variable can be set by using the command `export DOCKER_HOST=$(docker context inspect colima -f '{{.Endpoints.docker.Host}}').` @@ -535,9 +541,10 @@ include::../gradle/packaging/boot-build-image-docker-host-colima.gradle[tags=doc include::../gradle/packaging/boot-build-image-docker-host-colima.gradle.kts[tags=docker-host] ---- + + [[build-image.examples.docker.auth]] ==== Docker Configuration for Authentication - If the builder or run image are stored in a private Docker registry that supports user authentication, authentication details can be provided using `docker.builderRegistry` properties as shown in the following example: [source,groovy,indent=0,subs="verbatim,attributes",role="primary"] diff --git a/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/main/java/org/springframework/boot/gradle/plugin/SpringBootAotPlugin.java b/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/main/java/org/springframework/boot/gradle/plugin/SpringBootAotPlugin.java index d81c8255ef..6c9af4b853 100644 --- a/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/main/java/org/springframework/boot/gradle/plugin/SpringBootAotPlugin.java +++ b/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/main/java/org/springframework/boot/gradle/plugin/SpringBootAotPlugin.java @@ -169,6 +169,9 @@ public class SpringBootAotPlugin implements Plugin { .getByName(inputSourceSet.getRuntimeClasspathConfigurationName()); return project.getConfigurations().create(taskName + "Classpath", (classpath) -> { classpath.setCanBeConsumed(false); + if (!classpath.isCanBeResolved()) { + throw new IllegalStateException("Unexpected"); + } classpath.setCanBeResolved(true); classpath.setDescription("Classpath of the " + taskName + " task."); removeDevelopmentOnly(base.getExtendsFrom(), developmentOnlyConfigurationNames) diff --git a/spring-boot-project/spring-boot-tools/spring-boot-maven-plugin/src/docs/asciidoc/packaging-oci-image.adoc b/spring-boot-project/spring-boot-tools/spring-boot-maven-plugin/src/docs/asciidoc/packaging-oci-image.adoc index 21bd86068d..2d5eb284a4 100644 --- a/spring-boot-project/spring-boot-tools/spring-boot-maven-plugin/src/docs/asciidoc/packaging-oci-image.adoc +++ b/spring-boot-project/spring-boot-tools/spring-boot-maven-plugin/src/docs/asciidoc/packaging-oci-image.adoc @@ -413,9 +413,10 @@ and reference the properties in the XML configuration: include::../maven/packaging-oci-image/docker-pom-authentication-command-line.xml[tags=docker] ---- + + [[build-image.examples.caches]] === Builder Cache and Workspace Configuration - The CNB builder caches layers that are used when building and launching an image. By default, these caches are stored as named volumes in the Docker daemon with names that are derived from the full name of the target image. If the image name changes frequently, for example when the project version is used as a tag in the image name, then the caches can be invalidated frequently. @@ -437,12 +438,15 @@ The caches and the build workspace can be configured to use bind mounts instead include::../maven/packaging-oci-image/bind-caches-pom.xml[tags=caches] ---- + + [[build-image.examples.docker]] === Docker Configuration + + [[build-image.examples.docker.minikube]] ==== Docker Configuration for minikube - The plugin can communicate with the https://minikube.sigs.k8s.io/docs/tasks/docker_daemon/[Docker daemon provided by minikube] instead of the default local connection. On Linux and macOS, environment variables can be set using the command `eval $(minikube docker-env)` after minikube has been started. @@ -454,9 +458,10 @@ The plugin can also be configured to use the minikube daemon by providing connec include::../maven/packaging-oci-image/docker-minikube-pom.xml[tags=docker-minikube] ---- + + [[build-image.examples.docker.podman]] ==== Docker Configuration for podman - The plugin can communicate with a https://podman.io/[podman container engine]. The plugin can be configured to use podman local connection by providing connection details similar to those shown in the following example: @@ -468,9 +473,10 @@ include::../maven/packaging-oci-image/docker-podman-pom.xml[tags=docker-podman] TIP: With the `colima` CLI installed, the command `podman info --format='{{.Host.RemoteSocket.Path}}'` can be used to get the value for the `docker.host` configuration property shown in this example. + + [[build-image.examples.docker.colima]] ==== Docker Configuration for Colima - The plugin can communicate with the Docker daemon provided by https://github.com/abiosoft/colima[Colima]. The `DOCKER_HOST` environment variable can be set by using the command `export DOCKER_HOST=$(docker context inspect colima -f '{{.Endpoints.docker.Host}}').` @@ -481,9 +487,10 @@ The plugin can also be configured to use Colima daemon by providing connection d include::../maven/packaging-oci-image/docker-colima-pom.xml[tags=docker-colima] ---- + + [[build-image.examples.docker.auth]] ==== Docker Configuration for Authentication - If the builder or run image are stored in a private Docker registry that supports user authentication, authentication details can be provided using `docker.builderRegistry` parameters as shown in the following example: [source,xml,indent=0,subs="verbatim,attributes",tabsize=4]