Commit Graph

103 Commits

Author SHA1 Message Date
Andy Wilkinson
654016af7f Move Docker-related test support into a separate module
See gh-41228
2024-06-26 19:47:35 +01:00
Andy Wilkinson
edc582800b Update spring-boot-loader-tests to use docker-test plugin
See gh-41228
2024-06-26 19:46:12 +01:00
Andy Wilkinson
491f34d25c Improve container test code
Replace `DockerImageNames` with a enum and relocate it from the
`testcontainers` to `container` package. The enum now also
becomes a common location that we can use to apply container
configuration such as timeouts.

Closes gh-41164

Co-authored-by: Phillip Webb <phil.webb@broadcom.com>
2024-06-19 20:10:03 -07:00
Moritz Halbritter
c47cdda824 Merge branch '3.1.x' into 3.2.x
Closes gh-40624
2024-05-06 09:51:39 +02: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
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
0f6b3514db Update LoaderIntegrationTests to cover Java 22
See gh-39746
2024-03-04 11:21:19 +00: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
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
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
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
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
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
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
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