Commit Graph

3196 Commits

Author SHA1 Message Date
Scott Frederick 5f4d7f41bc Merge branch '3.2.x'
Closes gh-40799
2024-05-16 17:38:07 -05:00
Scott Frederick cd441130bd Warn when image building workspace directories cannot be deleted
When the `buildWorkspace` location in the
`spring-boot:build-image` Maven goal or `bootBuildImage` Gradle
task is configured to use a local bind source, the location
is passed to the CNB lifecycle without further processing by
Spring Boot. The lifecycle is in control of creating any files
in the specified location. Spring Boot tries to remove the
directories at the specified location after an image is
successfully created, but should not fail the image build
if the lifecycle has created files or directories with
permissions that keep them from being deleted successfully.

Fixes gh-40760
2024-05-16 17:37:44 -05:00
Andy Wilkinson 85acdf5165 Merge branch '3.2.x'
Closes gh-40796
2024-05-16 18:21:02 +01:00
Andy Wilkinson 524424bc98 Merge branch '3.1.x' into 3.2.x
Closes gh-40795
2024-05-16 18:20:52 +01:00
Andy Wilkinson a1d5369a9c Limit configuration cache testing to the latest version of Gradle
Closes gh-40794
2024-05-16 18:20:13 +01:00
Andy Wilkinson 50b197da55 Merge branch '3.2.x'
Closes gh-40793
2024-05-16 18:07:01 +01:00
Andy Wilkinson 493efd6798 Merge branch '3.1.x' into 3.2.x
Closes gh-40792
2024-05-16 18:06:32 +01:00
Andy Wilkinson f35ecfbdca Reduce and update the versions of Maven that we test against
Closes gh-40791
2024-05-16 18:05:24 +01:00
Andy Wilkinson d77fcf30fa Merge branch '3.2.x' 2024-05-16 17:22:36 +01:00
Andy Wilkinson feaccef3a4 Temporarily disable tests for image building with bind caches
See gh-40760
2024-05-16 17:22:02 +01:00
Moritz Halbritter d98987f11e Merge branch '3.2.x'
Closes gh-40701
2024-05-13 11:31:55 +02:00
Moritz Halbritter 364af04377 Merge branch '3.1.x' into 3.2.x
Closes gh-40700
2024-05-13 11:30:42 +02:00
Yanming Zhou 0e450d602d Use CollectionUtils.isEmpty() and StringUtils.hasLength()
See gh-40645
2024-05-13 11:26:56 +02:00
Phillip Webb 348ed47e67 Merge branch '3.2.x' 2024-05-08 18:28:24 -07:00
Phillip Webb 24bfe5087f Fix checkstyle violation
See gh-40549
2024-05-08 18:28:09 -07:00
Phillip Webb 5e4796f0fb Merge branch '3.2.x' 2024-05-08 18:05:31 -07:00
Phillip Webb 8457fc333f Adapt Windows path handling fix to deal with Jetty
Update `NestedLocation` to deal with the fact that Jetty attempts
to fix URLs.

See gh-40549
2024-05-08 18:04:17 -07:00
Phillip Webb ac9d2e7c11 Merge branch '3.2.x'
Closes gh-40643
2024-05-08 15:44:35 -07:00
Phillip Webb 7708ec7592 Fix Windows path handling for nested jars
Update `Path` creation for nested locations to allow both UNC and classic
file references to be used. This commit attempts to align our URL
handling with that of standard file URLs. The `NestedLocation` class
no longer attempts to remove leading all `\` characters and instead
only removes the first `\` when the second char is `:`. This duplicates
the logic found in Java's own internal `WindowsUriSupport` class which
is used when calling `Path.of(url)` with a `file:` URL.

Fixes gh-40549
2024-05-08 15:44:03 -07:00
Moritz Halbritter 9bb981be11 Merge branch '3.2.x'
Closes gh-40625
2024-05-06 10:25:08 +02:00
Moritz Halbritter c47cdda824 Merge branch '3.1.x' into 3.2.x
Closes gh-40624
2024-05-06 09:51:39 +02:00
Moritz Halbritter d18fb9ce65 Upgrade to bcprov-jdk18on 1.78.1
Closes gh-40621
2024-05-06 09:49:32 +02:00
Phillip Webb 3b66eb7bb7 Merge branch '3.2.x'
See gh-40616
2024-05-03 12:31:33 -07:00
Phillip Webb 8a72e55106 Fix UriPathEncoder bug to improve performance
Fix `isAllowed` check and write test to ensure that additional object
instances are not created unnecessarily.

See gh-40615
2024-05-03 12:29:41 -07:00
Phillip Webb 208efae975 Merge branch '3.2.x'
Closes gh-40616
2024-05-02 15:53:38 -07:00
Phillip Webb d0ce4daec1 Use URI encoded values when creating NestedPath URIs
Update `NestedPath.toUri()` so that the URI is constructed using encoded
strings.

Fixes gh-40615
2024-05-02 15:53:01 -07:00
Moritz Halbritter d3e49747b0 Merge branch '3.2.x' 2024-05-02 14:48:37 +02:00
Moritz Halbritter 75dac1435f Merge branch '3.1.x' into 3.2.x 2024-05-02 14:48:04 +02:00
Moritz Halbritter 68a63a7797 Polish 2024-05-02 14:47:53 +02:00
Andy Wilkinson c44e477a77 Merge branch '3.2.x'
Closes gh-40613
2024-05-02 10:49:55 +01:00
Andy Wilkinson 94c9a5c686 Polish 2024-05-02 10:49:31 +01:00
Andy Wilkinson c7ec6080ce Publish a runtime variant that supports Java 22
In order to support Java 22, we must use spring-core 6.1.x.
spring-core 6.1.x is a multi-release jar so, in order to support Java
22, a version of Gradle that supports multi-release jars must be
used.

This commit adds a new variant to spring-boot-gradle-plugin for
modern versions of Gradle. When Gradle's plugin API version is 8.7 or
later, we use spring-core 6.1.x. spring-core 6.0.x is used at all
other times.

Closes gh-40074
2024-05-02 10:45:18 +01:00
Moritz Halbritter 51b8b992aa Merge branch '3.2.x'
Closes gh-40606
2024-05-02 10:51:24 +02:00
Moritz Halbritter 888ae040e4 Merge branch '3.1.x' into 3.2.x
Closes gh-40605
2024-05-02 10:51:10 +02:00
Moritz Halbritter 64b302032c Polish "Change Spring Boot CLI init command docs default build system to gradle"
See gh-40603
2024-05-02 10:49:51 +02:00
coursar 1a786fc788 Change Spring Boot CLI init command docs default build system to gradle
See gh-40603
2024-05-02 10:44:33 +02:00
Phillip Webb 63dedaafe0 Merge branch '3.2.x'
Closes gh-40599
2024-05-01 22:46:53 -07:00
yokotaso 5b4bd61720 Fix possible NullPointerException from getPermission()
Fix regression in `JarUrlConnection` where a NullPointerException could
be thrown internally causing performance issues.

When the SecurityManager is present, the following stack trace is
thrown:

java.lang.NullPointerException: Cannot invoke "java.net.URLConnection.getPermission()" because "this.jarFileConnection" is null
        at org.springframework.boot.loader.net.protocol.jar.JarUrlConnection.getPermission(JarUrlConnection.java:175)
        at java.base/jdk.internal.loader.URLClassPath.check(URLClassPath.java:553)
        at java.base/jdk.internal.loader.URLClassPath$Loader.findResource(URLClassPath.java:612)
        at java.base/jdk.internal.loader.URLClassPath.findResource(URLClassPath.java:296)
        at java.base/java.net.URLClassLoader$2.run(URLClassLoader.java:629)
        at java.base/java.net.URLClassLoader$2.run(URLClassLoader.java:627)
        at java.base/java.security.AccessController.doPrivileged(AccessController.java:399)
        at java.base/java.net.URLClassLoader.findResource(URLClassLoader.java:626)
        at org.springframework.boot.loader.net.protocol.jar.JarUrlClassLoader.findResource(JarUrlClassLoader.java:70)
        at java.base/java.lang.ClassLoader.getResource(ClassLoader.java:1403)
        at java.base/java.net.URLClassLoader.getResourceAsStream(URLClassLoader.java:290)
        at java.base/java.lang.Class.getResourceAsStream(Class.java:2850)

See gh-39856
2024-05-01 22:42:52 -07:00
Phillip Webb ff5c2a2351 Improve javadoc cleanup to remove duplicate spaces
Improve `TypeUtils` so that repeated space chars are removed.

Fixes gh-40593
2024-05-01 22:37:10 -07:00
Scott Frederick c6c02906ef Merge branch '3.2.x'
Closes gh-40577
2024-04-29 16:43:20 -05:00
Scott Frederick 21a0bc7fee Merge branch '3.1.x' into 3.2.x
Closes gh-40576
2024-04-29 16:42:53 -05:00
Moritz Halbritter a12e3d4594 Merge branch '3.2.x'
Closes gh-40530
2024-04-26 11:13:03 +02:00
Moritz Halbritter 5707ca83e9 Merge branch '3.1.x' into 3.2.x
Closes gh-40529
2024-04-26 11:12:46 +02:00
chaewss d51282aff5 Remove unnecessary null check for expectedDeprecationMessages
See gh-40524
2024-04-26 11:12:20 +02:00
Moritz Halbritter 760bc9237d Merge branch '3.2.x' 2024-04-26 09:20:47 +02:00
Moritz Halbritter f13e487724 Close streams in test before deleting file 2024-04-26 09:20:36 +02:00
Phillip Webb abdff95ad0 Merge branch '3.2.x'
Closes gh-40526
2024-04-25 12:54:13 -07:00
Phillip Webb 9e40970280 Support gzip compressed image layers
Update buildpack support to allow gzip compressed image layers to be
used when returned by the Docker engine. This update is restores
buildpack support when using Docker Desktop with the "Use containerd
for pulling and storing images" option enabled.

This commit introduces a new `ExportedImageTar` class to deal with the
intricacies of determining the mimetype of a layer. The class deals with
the parsing of `index.json' and related manifest blobs in order to
obtain layer information. The legacy `manifest.json` format is also
supported should `index.json` be missing.

Tests have been added to ensure that export archives from Docker Engine,
Docker Desktop (with and without containerd), and Podman can be used.

Fixes gh-40100

Co-authored-by: Moritz Halbritter <moritz.halbritter@broadcom.com>
Co-authored-by: Scott Frederick <scott.frederick@broadcom.com>
2024-04-25 11:51:59 -07:00
Moritz Halbritter 126927f462 Merge branch '3.2.x'
Closes gh-40499
2024-04-24 14:04:17 +02:00
Moritz Halbritter b416db4dee Merge branch '3.1.x' into 3.2.x
Closes gh-40498
2024-04-24 14:04:08 +02:00
Moritz Halbritter 2cb19f368e Polish "Remove unnecessary nesting of calls to String.format"
See gh-40494
2024-04-24 13:57:07 +02:00
Hyeon Sung 0cf15fcad0 Remove unnecessary nesting of calls to String.format
See gh-40494
2024-04-24 13:55:04 +02:00
Scott Frederick 2019533b65 Merge branch '3.2.x'
Closes gh-40476
2024-04-22 13:28:09 -05:00
Scott Frederick fc03fded39 Merge branch '3.1.x' into 3.2.x
Closes gh-40475
2024-04-22 13:27:57 -05:00
Scott Frederick cdf207cf74 Stop expecting deprecations in NativeImagePluginActionIntegrationTests
Closes gh-35709
2024-04-22 13:14:37 -05:00
Phillip Webb bce468fb19 Polish 'Generate configuration metadata for records'
Restructure `PropertyDescriptor` type hierarchy and polish code.

See gh-29403
2024-04-22 10:28:00 -07:00
Pavel Anisimov af976caec9 Generate configuration metadata for records
Update `spring-boot-configuration-processor` to support generating
configuration metadata from record parameter javadoc.

See gh-29403
2024-04-22 10:27:47 -07:00
Moritz Halbritter de560a933c Extract all files under META-INF
Closes gh-40456
2024-04-22 13:20:57 +02:00
Andy Wilkinson eb23d3cf59 Merge branch '3.2.x'
Closes gh-40465
2024-04-22 11:18:35 +01:00
Andy Wilkinson deffda47f6 Merge branch '3.1.x' into 3.2.x
Closes gh-40464
2024-04-22 11:18:22 +01:00
Andy Wilkinson ca4d64ed16 Use absolute path when showing classpath where main class was not found
Closes gh-40463
2024-04-22 11:16:37 +01:00
Phillip Webb 6963bd884b Merge branch '3.2.x' 2024-04-18 12:53:26 -07:00
Phillip Webb 38af8cd362 Merge branch '3.1.x' into 3.2.x 2024-04-18 12:52:54 -07:00
Phillip Webb 20db2b54c7 Update copyright year of changed files 2024-04-18 12:52:29 -07:00
Moritz Halbritter 8df899b510 Merge branch '3.1.x' into 3.2.x
Closes gh-40427
2024-04-18 11:59:50 +02:00
Moritz Halbritter 3479304e13 Disable creation time verification on Linux
Closes gh-40423
2024-04-18 11:58:46 +02:00
Moritz Halbritter 00a10fdc52 Move Docker Compose and Testcontainers to separate section
See gh-38361
2024-04-17 14:05:52 +02:00
Phillip Webb dfee56ad9d Merge branch '3.2.x'
Closes gh-40381
2024-04-16 22:17:28 -07:00
Phillip Webb 78e12251e9 Optimize VirtualZipDataBlock
Add some optimizations to `VirtualZipDataBlock` that help when
sequentially reading the block from a JarInputStream.

Closes gh-40125
2024-04-16 22:16:00 -07:00
Phillip Webb 13f41da54f Merge branch '3.2.x'
Closes gh-40379
2024-04-16 15:32:03 -07:00
Phillip Webb 9b0593efe3 Fallback to RandomAccessFile on ClosedByInterruptException
Refine the fix for gh-38611 so that `ClosedByInterruptException` no
longer retries in a loop.

Our previous fix was flawed due to the fact that another interrupt
could occur after we clear the first and whilst we are reading data.
If this happens 10 times in a row, we raise an exception and end up
causing NoClassDefFoundError errors.

Our new approach retains the use of `FileChannel` and a direct buffer
up to the point that a `ClosedByInterruptException` is raised or the
thread is detected as interrupted.  At that point, we temporarily
switch to using a `RandomAccessFile` to access the data. This will
block the thread until the data has been read.

Fixes gh-40096
2024-04-16 14:47:07 -07:00
Phillip Webb 4203e1f2fa Rename FileChannelDataBlock to FileDataBlock
Rename the internal `FileChannelDataBlock` to `FileDataBlock` since we
want to fallback to a `RandomAccessFile` when a thread is interrupted.

See gh-40096
2024-04-16 14:46:56 -07:00
Andy Wilkinson 0ed6864d1d Merge branch '3.2.x'
Closes gh-40324
2024-04-11 16:54:46 +01:00
Andy Wilkinson 45e9412d9b Merge branch '3.1.x' into 3.2.x
Closes gh-40323
2024-04-11 16:54:33 +01:00
Andy Wilkinson baf5a7f130 Make includes configurable via a property
See gh-39837
2024-04-11 16:32:17 +01:00
Andy Wilkinson 2a6293940b Polish "Make excludes configurable via property"
See gh-39837
2024-04-11 16:31:24 +01:00
Matti Tahvonen 58fc8f8c01 Make excludes configurable via property
See gh-39837
2024-04-11 15:43:31 +01:00
Phillip Webb 3ed77ae5f3 Polish 2024-04-04 23:45:21 -07:00
Moritz Halbritter 6abcde3ce8 Prevent deprecation for DBCP2 username and password properties
Closes gh-40076
2024-04-04 15:06:30 +02:00
Scott Frederick 813507b791 Merge branch '3.2.x'
Closes gh-40166
2024-04-03 16:32:13 -05:00
Scott Frederick 1c2a43d1e6 Merge branch '3.1.x' into 3.2.x
Closes gh-40165
2024-04-03 16:30:41 -05:00
Felix 8a42935dad Apply instanceof pattern matching
See gh-40085
2024-04-03 16:30:01 -05:00
Phillip Webb 10260c084b Rename Antora component from spring-boot to boot
Closes gh-40131
2024-03-28 13:21:27 -07:00
Moritz Halbritter 3ab21ce146 Merge branch '3.2.x'
Closes gh-40118
2024-03-27 09:42:59 +01:00
Moritz Halbritter 957facf1cc Merge branch '3.1.x' into 3.2.x
Closes gh-40117
2024-03-27 09:35:44 +01:00
Moritz Halbritter ff66036e90 Remove redundant Regex escapes
Closes gh-40116
2024-03-27 09:34:28 +01:00
Phillip Webb af0353ddd3 Remove anchor-rewrite.properties
Remove `anchor-rewrite.properties` now that we have `rewrite.adoc` to
replace them.

See gh-40062
2024-03-26 11:27:03 -07:00
Phillip Webb dab1afcc77 Fix anchor rewrites in preparation for migration to Antora
Update `anchor-rewrite.properties` to fix a few errors and remove
elements that no longer exist. This commit also fixes a few anchors
in some `.adoc` files.

See gh-40062
2024-03-26 11:18:27 -07:00
Moritz Halbritter 8724807628 Update documentation to reflect CDS work
Closes gh-39834
2024-03-26 11:27:47 +01:00
Moritz Halbritter 2d9b1ad592 Use xref for documentation links
Closes gh-33745
2024-03-26 10:11:47 +01:00
Moritz Halbritter de150daf12 Upgrade Cassandra driver to 4.18.0 and change coordinates
Closes gh-39090
2024-03-26 08:58:22 +01:00
Phillip Webb 6bb6a798ce Set version to `true` in antora.yml to allow docs generation
See gh-33766
2024-03-25 08:52:51 -07:00
Andy Wilkinson 03754cb2d6 Merge branch '3.2.x'
Closes gh-40098
2024-03-25 11:03:30 +00:00
Andy Wilkinson 0ec5eab8af Merge branch '3.1.x' into 3.2.x
Closes gh-40097
2024-03-25 10:42:14 +00:00
Andy Wilkinson aee88115ea Test Gradle plugin against Gradle 8.7
This commit includes some changes to test Gradle scripts to avoid
Gradle 8.7's new deprecation warning about URI conversion.

Closes gh-40093
2024-03-25 10:24:21 +00:00
Moritz Halbritter 4047c00aa5 Implement SBOM actuator endpoint
Closes gh-39799
2024-03-21 18:06:48 -07:00
Andy Wilkinson 93fc2a455b Reinstate Gradle Plugin toolchain's maximum compatible Java version
See gh-33766
2024-03-21 10:06:28 +00:00
Phillip Webb 8ee20c8dae Migrate maven-plugin to Antora
See gh-33766
2024-03-20 15:21:56 -07:00
Phillip Webb 18a2b2e9fb Migrate gradle-pluigin to Antora
See gh-33766
2024-03-20 15:21:54 -07:00
Phillip Webb ecf89c3fe3 Polish asciidoc generated by changelog generator
Refine the generator so that an additional space is included after
section titles.
2024-03-20 15:10:39 -07:00