Commit Graph
100 Commits
Author SHA1 Message Date
Phillip Webb 464523ac04 Merge branch '3.1.x'
Closes gh-38048
2023-10-25 12:37:41 -07:00
Phillip Webb 6e65d9380b Add missing @ServiceConnection annotation to reference doc sample
Closes gh-38046
2023-10-25 12:36:59 -07:00
Phillip Webb 0c66db7b18 Refine container initialization and parallel startup logic
Update `TestcontainersLifecycleBeanPostProcessor` to restore early
container initialization logic and refine startup logic. Initial bean
access now again triggers the creation all container beans. In addition
the first access of a `Startable` bean now attempts to find and start
all other `Startable` beans.

Fixes gh-37989
2023-10-25 11:58:22 -07:00
Phillip Webb 4e7c0737d4 Fix PropertiesLauncher classpath detection without 'loader.path' set
Update `PropertiesLauncher` to restore classpath detection logic applied
when no `loader.path` property is set.

Fixes gh-37992
2023-10-24 17:03:18 -07:00
Phillip Webb 7bd9989614 Fix merge conflict errors
See gh-37999
2023-10-23 19:40:44 -07:00
Phillip Webb 2ac69160c7 Revert "Allow PemPrivateKeyParser to parse multiple keys"
This reverts commit 32e6ce210e.

Closes gh-37999
2023-10-23 18:32:12 -07:00
Phillip Webb e1bd24695d Try @AssertFileChannelDataBlocksClosed for Windows fix
This updates commit dad5dc6750 to
see if @AssertFileChannelDataBlocksClosed will take care of
closing files.

See gh-7161
2023-10-20 10:05:43 -07:00
Phillip Webb 3eeb1b2849 Merge branch '3.1.x' 2023-10-19 23:21:42 -07:00
Phillip Webb 9f3afb3636 Merge branch '3.0.x' into 3.1.x 2023-10-19 23:21:20 -07:00
Phillip Webb 7c864804d5 Merge branch '2.7.x' into 3.0.x 2023-10-19 23:21:08 -07:00
Phillip Webb d47f8bf945 Update copyright year of changed files 2023-10-19 23:20:43 -07:00
Phillip Webb 25ce0ef3fc Refine PemContent and PEM parsers 2023-10-19 23:19:45 -07:00
Phillip Webb 41724fc5f1 Merge branch '3.1.x' 2023-10-19 22:06:53 -07:00
Phillip Webb 1dc3ea957b Merge branch '3.0.x' into 3.1.x 2023-10-19 22:06:49 -07:00
Phillip Webb 5ab4e0d153 Merge branch '2.7.x' into 3.0.x 2023-10-19 22:06:42 -07:00
Phillip Webb 548b0ea91f Fix failing exception assertion
See gh-37964
2023-10-19 22:05:59 -07:00
Phillip Webb 32e6ce210e Allow PemPrivateKeyParser to parse multiple keys
Update `PemPrivateKeyParser` so that it can parse multiple keys in a
single PEM file.

Closes gh-37970
2023-10-19 22:01:23 -07:00
Phillip Webb deb79425ee Polish 2023-10-19 21:47:13 -07:00
Phillip Webb d638bbb0ba Merge branch '3.1.x'
Closes gh-37967
2023-10-19 21:25:44 -07:00
Phillip Webb 1d456e09d2 Merge branch '3.0.x' into 3.1.x
Closes gh-37966
2023-10-19 21:12:52 -07:00
Phillip Webb a0b999c8b4 Merge branch '2.7.x' into 3.0.x
Closes gh-37965
2023-10-19 20:55:51 -07:00
Phillip Webb abdad1cabe Constently use assertThatExceptionOf... assertions
Closes gh-37964
2023-10-19 20:17:26 -07:00
Phillip Webb 343046d30c Polish 2023-10-19 10:55:26 +01:00
Phillip Webb fcb75b6a1e Search implemented interfaces on superclass for @ServiceConnection
Refine original fix to also search interfaces on the superclass.

Fixes gh-37671
2023-10-19 10:52:19 +01:00
Phillip Webb b8365e3118 Fix misconfigured Maven test
See gh-37669
2023-10-18 22:58:45 -07:00
Phillip Webb a8ad8ca9f7 Upgrade to Java 21.0.1+12
Closes gh-37945
2023-10-18 21:20:42 -07:00
Phillip Webb a354c236bb Upgrade to Java 17.0.9+11
See gh-37944
2023-10-18 21:20:24 -07:00
Phillip Webb 062b544447 Upgrade to Ubuntu Jammy 20231004
Closes gh-37957
2023-10-18 21:19:51 -07:00
Phillip Webb 5c6c0879fc Merge branch '3.1.x' 2023-10-18 21:19:11 -07:00
Phillip Webb dd821c719f Upgrade to Java 21.0.1+12
Closes gh-37956
2023-10-18 21:18:32 -07:00
Phillip Webb 6a51ef8adc Upgrade to Java 17.0.9+11
See gh-37955
2023-10-18 21:18:04 -07:00
Phillip Webb 55968ef995 Upgrade to Ubuntu Jammy 20231004
Closes gh-37949
2023-10-18 21:17:24 -07:00
Phillip Webb 7d71d60c14 Merge branch '3.0.x' into 3.1.x 2023-10-18 21:17:00 -07:00
Phillip Webb e778355bd7 Upgrade to Java 21.0.1+12
Closes gh-37953
2023-10-18 21:15:45 -07:00
Phillip Webb 53d04973e4 Upgrade to Java 17.0.9+11
See gh-37951
2023-10-18 21:14:54 -07:00
Phillip Webb 812023a84b Upgrade to Ubuntu Jammy 20231004
Closes gh-37952
2023-10-18 21:13:42 -07:00
Phillip Webb bc8a631aaf Merge branch '2.7.x' into 3.0.x 2023-10-18 21:12:13 -07:00
Phillip Webb c7d6fbcb3a Upgrade to Ubuntu Jammy 20231004
See gh-37954
2023-10-18 21:10:00 -07:00
Phillip Webb 39ffa50dc4 Merge branch '3.1.x' 2023-10-18 21:05:26 -07:00
Phillip Webb a28fb1b6f5 Merge branch '3.0.x' into 3.1.x 2023-10-18 21:05:18 -07:00
Phillip Webb b5fbcfdce2 Merge branch '2.7.x' into 3.0.x 2023-10-18 21:04:30 -07:00
Phillip Webb b226ff40f0 Upgrade to Java 21.0.1+12
Closes gh-37948
2023-10-18 21:03:47 -07:00
Phillip Webb d226ba88d9 Upgrade to Java 17.0.9+11
Closes gh-37947
2023-10-18 21:02:55 -07:00
Phillip Webb ad933869ca Upgrade to Java 11.0.21+10
Closes gh-37946
2023-10-18 21:02:15 -07:00
Phillip Webb 62a074a728 Upgrade to Java 8u392+9
See gh-37950
2023-10-18 21:01:09 -07:00
Phillip Webb 9a4e16a2d4 Upgrade to Ubuntu Jammy 20231004 in CI images #37954
Closes gh-37954
2023-10-18 20:56:02 -07:00
Phillip Webb 3ccf29ef49 Refine spring-boot-starter-data-redis-reactive dependencies
Change `spring-boot-starter-data-redis-reactive` to be standalone and
also declare an explicit dependency on reactor.

Closes gh-37943
2023-10-18 20:53:06 -07:00
Phillip Webb 93b562e632 Fix PulsarProperties lookupTimeout
Prefer `null` to `-1` for the default timeout.

See gh-34763
2023-10-18 20:52:12 -07:00
Phillip Webb 3c62defb9d Support java.nio.file Paths and FileSystems with nested jars
Add a `NestedFileSystemProvider` implementation so that the JDK's
`ZipFileSystem` can load content from nested jars and nested
directory entries.

Creating a `ZipFileSystem` may be a relatively expensive operation as
zip structures need to be parsed and in the case of directory entries
a virtual datablock nees to be generated on the fly. As such, we
install the `ZipFileSystem` as late as possible since in a typical
application it may never be needed.

This commit also tweaks Gradle and Maven plugins to ensure that the
service loader file is written to repackaged jars.

Closes gh-7161
2023-10-18 20:46:36 -07:00
Phillip Webb 4b495ca2a9 Change NestedLocation to hold a Path rather than a File
Refactor `NestedLocation` so that it holds a `Path` rather than a
`File`.

See gh-37668
2023-10-18 20:46:35 -07:00
Phillip Webb 33c5e1269a Write signature files to uber jars to for Oracle Java 17 verification
Update Gradle and Maven plugins to write an empty `META-INF/BOOT.SF`
file whenever there is a nested signed jar.

This update allows Oracle Java 17 to correctly verify the nested JARs.
The file is required because `JarVerifier` has code roughly equivalent
to:

	if (!jarManifestNameChecked && SharedSecrets
			.getJavaUtilZipFileAccess().getManifestName(jf, true) == null) {
    	throw new JarException("The JCE Provider " + jarURL.toString() +
    		" is not signed.");
	}

The `SharedSecrets.getJavaUtilZipFileAccess().getManifestName(jf, true)`
call ends up in `ZipFile.getManifestName(onlyIfSignatureRelatedFiles)`
which is a private method that we cannot override in our `NestedJarFile`
subclass. By writing an empty `.SF` file we ensure that the `Manifest`
is always returned because there are always "signature related files".

Fixes gh-28837
2023-10-16 16:19:16 -07:00
Phillip Webb fe752dedef Polish adoc formatting 2023-10-16 15:50:58 -07:00
Phillip Webb 4c3a0f09d7 Support parallel initialization of Testcontainers
Add support for a `spring.testcontainers.startup` property that can
be set to "sequential" or "parallel" to change how containers are
started.

Closes gh-37073
2023-10-14 23:58:25 -07:00
Phillip Webb 1edd1d5078 Protect against NPE when groups property is missing
Closes gh-37888
2023-10-14 23:43:07 -07:00
Phillip Webb efd9aa9b64 Polish 2023-10-14 19:51:42 -07:00
Phillip Webb e01e4f1912 Search implemented interfaces on superclass for @ServiceConnection
Refine original fix to also search interfaces on the superclass.

Fixes gh-37671
2023-10-14 19:43:41 -07:00
Phillip Webb 4ab104f5af Use type safe JdbcClient query
Update `JdbcClientAutoConfigurationTests` to use a type safe query
since Spring Framework now returns `Object` types when no type is
specified (see Spring Framework issue 31403).

See gh-37710
2023-10-10 16:29:37 -07:00
Phillip Webb b3ddec7793 Refactor Jetty SameSiteSupplier cookie support to use a Handler
Update `JettyServletWebServerFactory` so that the `SimeSiteSupplier`
support is handled using a `Handler` rather than a `HttpStream.Wrapper`.

Closes gh-37809
2023-10-10 15:57:32 -07:00
Phillip Webb 927ece3bfc Merge branch '3.1.x' 2023-10-10 12:31:44 -07:00
Phillip Webb 01128465ff Merge branch '3.0.x' into 3.1.x 2023-10-10 12:31:28 -07:00
Phillip Webb 885189a1b4 Merge branch '2.7.x' into 3.0.x 2023-10-10 12:30:11 -07:00
Phillip Webb fec9804dad Don't create .gradle folder early
See gh-37450
2023-10-10 12:08:44 -07:00
Phillip Webb 9518035e13 Fix typos
See gh-37450
2023-10-10 11:56:45 -07:00
Phillip Webb f04d354c29 Attempt to fix download cache on CI
See gh-37450
2023-10-10 11:46:20 -07:00
Phillip Webb 9e4f160c17 Attempt to fix NestedJarFile file lock issues on Windows
Update `DefaultCleanerTracking` and `@AssertFileChannelDataBlocksClosed`
to capture and store the source object if it is a `Cleanable` so that
it can be released later.

Although the real cleaner cannot keep a reference to `obj`, it is safe
for us to do so in tests since we are in control of the object lifecycle
and we don't need it to be garbage collected.

This commit also updates the `UrlJarFile` to call the cleaner so that
it can be tracked.

See gh-37668
2023-10-06 23:44:55 -07:00
Phillip Webb 5da31aca46 Attempt to fix NestedJarFile file lock issues on Windows
Update `NestedJarFile.close()` to call `super.close()` so that the outer
jar file is closed and files can hopefully be deleted on Windows.

See gh-37668
2023-10-06 21:47:55 -07:00
Phillip Webb 6c24ea01f1 Add BouncyCastle nested jar verification test including on Oracle JDK
Update `spring-boot-loader-tests` with a test that checks verified
BouncyCastle jars can be loaded. Currently the Oracle JDK only supports
verification if the jar is unpacked.

See gh-28837
2023-10-05 22:13:31 -07:00
Phillip Webb 79d2208908 Merge branch '3.1.x' 2023-10-05 22:10:34 -07:00
Phillip Webb 1b1c1f1b64 Merge branch '3.0.x' into 3.1.x 2023-10-05 22:10:22 -07:00
Phillip Webb 3c31a6fc3b Merge branch '2.7.x' into 3.0.x 2023-10-05 22:10:14 -07:00
Phillip Webb c37290bc6c Fix Oracle JDK download URL
See gh-37450
2023-10-05 22:09:45 -07:00
Phillip Webb ab69af3cab Merge branch '3.1.x'
Closes gh-37743
2023-10-05 21:32:42 -07:00
Phillip Webb bf9a4add34 Merge branch '3.0.x' into 3.1.x
Closes gh-37742
2023-10-05 21:32:36 -07:00
Phillip Webb 6fba887e63 Remove CI embedmongo cache
Closes gh-37725
2023-10-05 21:31:53 -07:00
Phillip Webb b0b3adb1b7 Merge branch '3.1.x'
Closes gh-37741
2023-10-05 21:30:43 -07:00
Phillip Webb 2a35667295 Merge branch '3.0.x' into 3.1.x
Closes gh-37740
2023-10-05 21:30:10 -07:00
Phillip Webb 30af19acc2 Merge branch '2.7.x' into 3.0.x
Closes gh-37739
2023-10-05 20:54:09 -07:00
Phillip Webb a33ce9d405 Cache JDK downloads for tests that use ImageFromDockerfile
Update `spring-boot-launch-script-tests` and `spring-boot-loader-tests`
so that JDK archives are now downloaded by Gradle and cached across
builds.

Closes gh-37450
2023-10-05 20:49:02 -07:00
Phillip Webb c6096e21a1 Set CI image locale to en_US.UTF-8
Closes gh-37673
2023-10-03 21:39:15 -07:00
Phillip Webb 1f5472387d Fix formatting 2023-10-03 20:41:48 -07:00
Phillip Webb 42f50fa292 Attempt to fix CI failures
Attempt to fix CI failures caused by timezone differences and different
JDK versions.

See gh-37668
2023-10-03 20:29:33 -07:00
Phillip Webb 560527945b Add background preinitializers for Tomcat and JDK ZoneId
Closes gh-37670
2023-10-03 17:28:44 -07:00
Phillip Webb fd9b2b114e Improve Tomcat performance when using nested jars
Add `NestedJarResourceSet` which can be used for nested jar URLs
and unlike the standard Tomcat implementation does not assume that
the JAR is backed by a single file.

Closes gh-37452
2023-10-03 17:27:57 -07:00
Phillip Webb 7ad4a9817d Rewrite nested jar support code and remove Java 8 support
Rewrite nested jar code to better align with the implementations
provided in Java 17. This update makes two fundamental changes to
the previous implementation:

- Resource cleanup is now handled using the `java.lang.ref.Cleaner`

- Jar URLs now use the form `jar:nested:/my.jar/!nested.jar!/entry`

Unlike the previous `jar🫙/my,jar!/nested.jar!/entry` URL format,
the new format is compatible with Java's default Jar URL handler.
Specifically, it now only uses a single `jar:` prefix and it no longer
includes multiple `!/` separators.

In addition to the changes above, many of the ancillary classes have
also been refactored and updated to create cleaner APIs.

Closes gh-37668
2023-10-03 17:27:57 -07:00
Phillip Webb 75ddb9fa47 Fix test failure caused by PropertiesLoader class reference
See gh-37667
2023-10-03 17:27:39 -07:00
Phillip Webb df7dde1467 Add classic loader module and the ability to easily switch implementations
Closes gh-37669
2023-10-03 15:44:32 -07:00
Phillip Webb 55b5610dd9 Add Maven and Gradle option for the loader implementation to use
Add properties to the Maven and Gradle plugins so that users can
switch between the two loader modules.

See gh-37669
2023-10-03 15:40:42 -07:00
Phillip Webb a89057b7c7 Reintroduce spring-boot-loader modules
Restore the `spring-boot-loader` with the previous loader code so
that we can develop it further.

See gh-37669
2023-10-03 15:40:25 -07:00
Phillip Webb aeb6537f57 Rename spring-boot-loader to spring-boot-loader-classic
Rename the `spring-boot-loader` module to `spring-boot-loader-classic`
so that we can introduce an alternative loader implementation.

See gh-37669
2023-10-03 15:40:04 -07:00
Phillip Webb c22548982a Relocate launcher classes
Create alternative launcher classes under the package
`org.springframework.boot.loader.launch` and use them in favor
of the previous location.

This update is designed to improve compatibility with future
changes in the loader.

Closes gh-37667
2023-10-03 14:53:04 -07:00
Phillip Webb 3d6859e80f Use the term "uber jar" in reference documentation and javadoc
Update reference documentation and javadoc to use the term "uber jar"
rather than "fat jar".

Closes gh-37653
2023-10-02 23:01:34 -07:00
Phillip Webb 780f75d5a2 Polish 2023-10-02 23:01:21 -07:00
Phillip Webb e3036dcb99 Merge branch '3.1.x'
Closes gh-37658
2023-10-02 23:00:15 -07:00
Phillip Webb 904bd52260 Merge branch '3.0.x' into 3.1.x
Closes gh-37657
2023-10-02 22:59:57 -07:00
Phillip Webb 7bb60fc7c7 Merge branch '2.7.x' into 3.0.x
Closes gh-37656
2023-10-02 22:59:45 -07:00
Phillip Webb ed4ab667a1 Enable LoaderIntegrationTests on aarch64
Closes gh-37654
2023-10-02 22:42:21 -07:00
Phillip Webb 932355adbf Polish adoc formatting 2023-10-02 21:18:26 -07:00
Phillip Webb 052757c2d8 Polish 2023-09-27 20:58:09 -07:00
Phillip Webb 3591f4d614 Restore test ensuring maxInboundMessageBodySize property matches default
See gh-37603
2023-09-27 18:21:24 -07:00
Phillip Webb f55184a998 Update copyright year of changed files 2023-09-20 17:16:31 -07:00