Commit Graph

453 Commits

Author SHA1 Message Date
Moritz Halbritter 7b96941fb9 Update Java in SDKman and CI image to 17.0.11-librca
Closes gh-40414
2024-04-19 09:23:06 +02:00
Andy Wilkinson ebf816f056 Make Tomcat and Undertow starters locally available to SNI test apps
See gh-26022
2024-04-18 11:18:07 +01:00
Andy Wilkinson b705a63c8e Make WebFlux starter locally available to SNI test apps
See gh-26022
2024-04-18 11:07:09 +01:00
Scott Frederick 07f82744f1 Merge branch '3.2.x'
Closes gh-40415
2024-04-17 16:40:46 -05:00
Scott Frederick 0724014645 Merge branch '3.1.x' into 3.2.x
Closes gh-40412
2024-04-17 16:40:21 -05:00
Scott Frederick bc5777d0cc Upgrade CI images to ubuntu:jammy-20240405
Closes gh-40410
2024-04-17 16:40:09 -05:00
Andy Wilkinson aefe6e8bc0 Make actuator starter locally available to SNI test apps
See gh-26022
2024-04-16 09:40:16 +01:00
Scott Frederick ad79c373f8 Add SNI support to web server SSL auto-configuration
Properties under `server.ssl.server-name-bundles` and
`management.server.ssl.server-name-bundles` can be used to configure
mappings of host names to SSL bundles to support SNI in embedded web
servers.

Closes gh-26022
2024-03-28 14:12:20 -05:00
Scott Frederick 736f712ba9 Merge branch '3.2.x'
Closes gh-39845
2024-03-13 15:21:24 -05:00
Scott Frederick f324994065 Merge branch '3.1.x' into 3.2.x
Closes gh-39846
2024-03-13 15:20:55 -05:00
Scott Frederick c83f7017c8 Upgrade CI images to ubuntu:jammy-20240227
Closes gh-39844
2024-03-13 15:20:41 -05:00
Andy Wilkinson 2c4fb5baaa Merge branch '3.2.x' 2024-03-04 11:21:45 +00:00
Andy Wilkinson 0f6b3514db Update LoaderIntegrationTests to cover Java 22
See gh-39746
2024-03-04 11:21:19 +00:00
Scott Frederick b4e8b57dac Merge branch '3.2.x'
Closes gh-39656
2024-02-21 17:59:32 -06:00
Scott Frederick 428ddb710b Merge branch '3.1.x' into 3.2.x
Closes gh-39658
2024-02-21 17:59:03 -06:00
Scott Frederick 39304147a7 Upgrade CI images to ubuntu:jammy-20240212
Closes gh-39657
2024-02-21 17:58:39 -06:00
Phillip Webb f8a1dae835 Merge branch '3.2.x' 2024-02-21 15:27:57 -08:00
Phillip Webb 12de6aa46a Merge branch '3.1.x' into 3.2.x 2024-02-21 15:27:27 -08:00
Moritz Halbritter 7f55cae90f Merge branch '3.2.x' 2024-02-12 10:19:46 +01:00
Moritz Halbritter 4387b79831 Merge branch '3.1.x' into 3.2.x 2024-02-12 10:18:46 +01:00
Moritz Halbritter 8ffcfc9b77 Harmonize style of igored exceptions across the codebase 2024-02-12 10:14:20 +01:00
Scott Frederick 3a87a9f29b Merge branch '3.2.x'
Closes gh-39434
2024-02-07 15:44:15 -06:00
Scott Frederick 7b34a44f4d Merge branch '3.1.x' into 3.2.x
Closes gh-39433
2024-02-07 15:43:46 -06:00
Scott Frederick d616568324 Upgrade CI images to ubuntu:jammy-20240125
Closes gh-39426
2024-02-07 15:43:35 -06:00
Phillip Webb 8f1a330dd5 Update copyright header of cleaned up code
See gh-39259
2024-01-23 10:18:50 -08:00
Tobias Lippert def7523398 Inline redundant if statements
See gh-39259
2024-01-23 09:07:35 -08:00
Scott Frederick eafd48df0c Merge branch '3.1.x' into 3.2.x
Closes gh-39221
2024-01-19 17:29:24 -06:00
Scott Frederick 302087176a Upgrade to Java 17.0.10+13
Closes gh-39216
2024-01-19 17:29:12 -06:00
Scott Frederick f173416825 Merge branch '3.1.x' into 3.2.x
Closes gh-39229
2024-01-17 17:35:17 -06:00
Scott Frederick c2ca6bfaf1 Upgrade RedHat UBI to 9.3-1476
Closes gh-39228
2024-01-17 17:34:55 -06:00
Scott Frederick c0a820bc57 Merge branch '3.1.x' into 3.2.x 2024-01-17 17:18:14 -06:00
Scott Frederick 35b45450f8 Upgrade test images to ubuntu:jammy-20240111
See gh-39217
2024-01-17 17:18:01 -06:00
Andy Wilkinson 17819c02b7 Merge branch '3.1.x' into 3.2.x
Closes gh-39139
2024-01-15 19:45:20 +00:00
Andy Wilkinson c8a7a04da4 Retry JDK downloads
Closes gh-39138
2024-01-15 19:45:06 +00:00
Phillip Webb 3222458007 Merge branch '3.1.x'
Closes gh-38893
2023-12-20 18:22:15 -08:00
Phillip Webb 66e9c777af Upgrade Ubuntu version in CI images
Closes gh-38894
2023-12-20 18:20:09 -08:00
Phillip Webb 062b544447 Upgrade to Ubuntu Jammy 20231004
Closes gh-37957
2023-10-18 21:19:51 -07:00
Phillip Webb 55968ef995 Upgrade to Ubuntu Jammy 20231004
Closes gh-37949
2023-10-18 21:17:24 -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 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 927ece3bfc Merge branch '3.1.x' 2023-10-10 12:31:44 -07:00
Phillip Webb 885189a1b4 Merge branch '2.7.x' into 3.0.x 2023-10-10 12:30:11 -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 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 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 b0b3adb1b7 Merge branch '3.1.x'
Closes gh-37741
2023-10-05 21:30:43 -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 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 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
Moritz Halbritter a7373c182a Merge branch '3.1.x'
Closes gh-37523
2023-09-22 08:42:18 +02:00
Moritz Halbritter 58941d85f2 Merge branch '2.7.x' into 3.0.x
Closes gh-37521
2023-09-22 08:41:58 +02:00
Moritz Halbritter f96690348f Use Bellsoft JDK 21 in LoaderIntegrationTests
Closes gh-35900
2023-09-22 08:35:22 +02:00
Andy Wilkinson 3eb89343d0 Merge branch '2.7.x' into 3.0.x 2023-09-13 13:37:31 +01:00
Andy Wilkinson c4368bc934 Run LoaderIntegrationTests on Java 21
See gh-37359
2023-09-13 13:36:04 +01:00
Andy Wilkinson a84e2db285 Merge branch '3.1.x' 2023-09-08 11:47:42 +01:00
Andy Wilkinson b29b35905c Merge branch '2.7.x' into 3.0.x 2023-09-08 11:45:46 +01:00
Andy Wilkinson 2656f02001 Fix launch script integration tests on Intel Macs
Closes gh-36799
2023-09-08 11:45:25 +01:00
Andy Wilkinson ed5d16de84 Upgrade to Jetty 12
Closes gh-36073
2023-09-07 13:59:15 +01:00
Moritz Halbritter e532b3b830 Merge branch '3.1.x'
Closes gh-37141
2023-08-30 14:16:32 +02:00
Moritz Halbritter c749fcb478 Merge branch '2.7.x' into 3.0.x
Closes gh-37139
2023-08-30 14:15:27 +02:00
Moritz Halbritter 0f6342a882 Make JarLaunchScript and SysVinit integration tests ARM64 compatible
Closes gh-36799
2023-08-30 14:01:32 +02:00
Andy Wilkinson bc88a133d3 Merge branch '3.1.x'
Closes gh-36869
2023-08-09 13:44:14 +01:00
Andy Wilkinson 1b7467adc3 Merge branch '2.7.x' into 3.0.x
Closes gh-36867
2023-08-09 13:43:51 +01:00
Andy Wilkinson 1765f4e9cf Ensure that server tests run when test apps have changed
Closes gh-19858
2023-08-09 13:43:24 +01:00
Scott Frederick c600be74ff Merge branch '3.1.x'
Closes gh-36542
2023-07-24 16:06:13 -05:00
Scott Frederick c5d2415834 Merge branch '2.7.x' into 3.0.x
Closes gh-36540
2023-07-24 16:04:28 -05:00
Scott Frederick 90be62bc7a Update Docker images used for launch script tests
Closes gh-24349
2023-07-24 15:46:30 -05:00
Andy Wilkinson 6d8ca7286a Merge branch '3.1.x'
Closes gh-36128
2023-06-30 08:26:26 +01:00
Andy Wilkinson 93f8bd2170 Merge branch '2.7.x' into 3.0.x
Closes gh-36126
2023-06-30 08:25:53 +01:00
Andy Wilkinson 996252f929 Stop using deprecated classifier property
Closes gh-36125
2023-06-30 08:22:14 +01:00
Andy Wilkinson dbb24286ff Separate stopping and destruction so web server can be restarted
Previously, when a Servlet-based WebServer was stopped it would also
stop the ServletContext. This led to problems as Tomcat and Undertow
would then not allow a restart. Jetty would allow a restart but
duplicate servlet registrations would then be attempted.

This commit modifies the WebServer lifecycle to separate stopping
and destruction for both servlet and reactive web servers. This
allows a WebServer's stop() implementation to leave some components
running so that they can be restarted. To completely shut down a
WebServer destroy() must now be called.

Both Tomcat and Jetty WebServers have been updated to stop their
network connections when stop() is called but leave other components
running. This works with both servlet and reactive web servers.

Note that an Undertow-based Servlet web server does not support
stop and restart. Once stopped, a Servlet Deployment cannot be
restarted and it does not appear to be possible to separate the
lifecycle of its network connections and a Servlet deployment.

Reactor Netty and Undertow-based reactive web servers can now also
be stopped and then restarted. Calling stop() stops the whole server
but this does not cause a problem as there's no (application-exposed)
ServletContext involved. There may be room to optimize this in the
future if the need arises.

Closes gh-34955
2023-06-26 20:58:59 +01:00
Moritz Halbritter 23979e6ccf Enable LoaderIntegrationTests on Java 21 2023-06-15 10:13:19 +02:00
Moritz Halbritter 372af21313 Merge branch '2.7.x' into 3.0.x 2023-06-07 10:17:14 +02:00
Moritz Halbritter 140e806357 Enable LoaderIntegrationTests on Java 20
See gh-35758
2023-06-07 10:16:54 +02:00
Moritz Halbritter c2dd20f4ea Merge branch '2.7.x' into 3.0.x 2023-05-03 13:07:00 +02:00
Moritz Halbritter f5eb76074b Disable loader integration tests on aarch64 linux and mac
See gh-35229
2023-05-03 11:32:39 +02:00
Moritz Halbritter f3d0bc7a99 Disable launch script integration tests on aarch64 linux and mac
See gh-35229
2023-05-03 11:32:33 +02:00
Phillip Webb d1f89db9a2 Merge branch '2.7.x' into 3.0.x 2023-03-02 22:10:01 -08:00
Phillip Webb d39c94f437 Refine ConfigurationProcessorIntegrationTests resource detection logic 2023-03-02 21:52:53 -08:00
Phillip Webb c4de86c244 Merge branch '2.7.x' into 3.0.x 2023-02-21 23:17:57 -08:00
Phillip Webb df5898a146 Reformat code following spring-javaformat upgrade 2023-02-21 22:53:27 -08:00
Krzysztof Krason 6e46423983 Use diamond operators
See gh-33987
2023-01-26 20:35:08 -08:00
Andy Wilkinson b67c427259 Upgrade to Servlet 6.0 and related EE 10 specs
Co-authored-by: Phillip Webb <pwebb@vmware.com>

Closes gh-33036
Closes gh-33037
Closes gh-33038
Closes gh-33039
Closes gh-33040
Closes gh-33041
Closes gh-33042
Closes gh-33043
2022-11-07 17:33:38 +00:00
Phillip Webb d7941c6315 Polish 2022-11-05 18:44:57 -07:00
Phillip Webb 4be3218cb6 Merge branch '2.7.x' 2022-10-25 15:48:26 -07:00
Scott Frederick c22e76632c Add Build-Jdk-Spec to jar and war manifest when building with Gradle
This commit adds a `Build-Jdk-Spec` attribute to the manifest in a
jar or war file built with the Spring Boot Gradle plugin. This
aligns the Gradle plugin's behavior with the default Maven plugin
behavior.

This removes the need to set a `BP_JVM_VERSION` environment variable
when invoking Cloud Native Buildpacks, as the Paketo buildpacks will
honor `Build-Jdk-Spec` in a jar or war manifest to determine the
default JVM version.

Fixes gh-32829
2022-10-25 15:48:05 -05:00
Phillip Webb e0b67889a8 Use Stream.toList instead of Stream.collect when possible
Update code to make use of `Stream.toList()` whenever possible.

Closes gh-28177
2022-10-04 00:29:22 -07:00
Brian Clozel a0735eb3fb Migrate remaining usage of httpclient API
This commit migrates our remaining usage of the httpclient 4.x to use
instead httpclient5, now that the 4.x support has been removed in
`RestTemplate`.

Closes gh-32461
2022-09-29 18:55:42 +02:00
Brian Clozel 5fb2a50ad0 Adapt build dependencies to httpclient5
As htttpclient 4.x is not supported anymore by `RestTemplate`, this
commit changes such dependencies to httpclient5 instead. In some cases,
the httpclient 4.x was transitively brought by a non-Spring dependency.

See gh-32461
2022-09-29 18:55:41 +02:00
Stephane Nicoll 72fc1f0018 Merge branch '2.7.x'
Closes gh-32512
2022-09-27 08:30:44 +02:00