Update `DockerApi` so that the URL uses version `v1.50` whenever
possible. Prior to this commit, `v1.24` was often used which breaks
recent Docker installs due to the dropping of API version v1.43 and
below.
If the actual API version running is less than `v1.50`, but greater
than the minimum required for the API call, it will be used instead.
This hopefully means that older versions of Docker will continue to
work as they did previously.
Fixes gh-48050
Prior to this commit, performing a build on a ARM Mac with the default
configuration and then building it again with the image platform set to
`linux/amd64` results in an "Image platform mismatch detected" failure.
This is due to the fact that `docker inspect` returns JSON for the
default platform, regardless of the fact that another architecture
has been pulled.
To solve the issue, the `inspect` API call on Docker 1.49+ can now
accept a platform query parameter which when specified returns platform
specific JSON.
At the time of this commit, the Docker API documentation hasn't been
updated, despite PR https://github.com/moby/moby/pull/49586 being
merged.
In addition to using the correct inspect JSON, we also need to pin
the run image we use to a specific digest. Without doing this,
buildpacks revert back to the default platform image and
"content digest not found" errors are thrown (similar to
https://github.com/buildpacks/docs/issues/818).
See gh-47292
Signed-off-by: hojooo <ghwn5833@gmail.com>
Previously, all destruction was done in the stop method including
closing any Closeables registered with the server. One of these
Closeables managed the lifecycle of the DeploymentManager for the
servlet deployment. Closing it made the servlet context unusable
in `@PreDestroy` methods and upon restart.
This commit moves the closing of the registered Closeables into
destroy(). This allows `@PreDestory` methods to use the
ServletContext. It also allows the server to be stopped and then
restarted without making the ServletContext unusable as it's left
running while the server itself is stopped and not accepting
requests.
Fixes gh-47141
This commit also tests that WebSecurityConfigurer components are
included. They include was already there but the functionality was
untested.
Fixes gh-47255
Replace calls to the recently deprecated `setConnectionTimeout` method
of `HttpComponentsClientHttpRequestFactoryBuilder`.
This commit also introduces a `withConnectionConfigCustomizer` and
allows connection timeouts settings to be used.
Closes gh-48031
Update `OnlyOnceLoggingDenyMeterFilter` to directly implement the
maximum number of allowable tag values. With this change in place
we can remove calls to `MeterFilter.maximumAllowableTags`. This also
allows `MeterRegistryPostProcessor` to have a stronger signal about
the filters that it should also apply to the
`AutoConfiguredCompositeMeterRegistry` since it can now do a standard
`instanceof` check.
Fixes gh-47285
Refine error handling logic so that HTTP 407 (Proxy Authentication
Required) responses from the Docker daemon are treated as plain
text rather than JSON.
See gh-47180
Signed-off-by: Siva Sai Udayagiri <udayagirishivasai@gmail.com>
Previously, the Kotlin API docs included Java APIs. This commit
corrects this by suppressing all Dokkatoo source sets other than
main (main in src/main/kotlin, javaMain is src/main/java).
Dokkatoo is sensitive to the order in which plugins are applied. This
commit adapts to the sensitivity by changing the order in which
the Dokatoo and Kotlin JVM plugins are applied. This prevents the
Dokatoo plugin for overwriting the configuration that's applied by
our Kotlin conventions.
Closes gh-47763