Commit Graph

71 Commits

Author SHA1 Message Date
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
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 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 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
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
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
Stephane Nicoll 72fc1f0018 Merge branch '2.7.x'
Closes gh-32512
2022-09-27 08:30:44 +02:00
Johnny Lim 975affc497 Enable LoaderIntegrationTests with Java 19
See gh-32501
2022-09-27 08:30:13 +02:00
Andy Wilkinson a896fd0a36 Merge branch '2.7.x' 2022-09-10 09:38:18 +01:00
Andy Wilkinson 9fe9f31af1 Polish 2022-09-10 09:38:03 +01:00
Andy Wilkinson 144abee80a Merge branch '2.7.x' 2022-09-10 09:35:08 +01:00
Andy Wilkinson a262520f08 Disable LoaderIntegrationTests on Java 19 till it GAs
See gh-32280
2022-09-10 09:34:51 +01:00
Stephane Nicoll aa6e52f029 Merge branch '2.7.x' 2022-09-10 10:32:20 +02:00
Stephane Nicoll c3416ac97a Disable LoaderIntegrationTests with Java 19
See gh-32295
2022-09-10 10:31:48 +02:00
Phillip Webb 4ec2e357d9 Merge branch '2.7.x'
See gh-32086
2022-08-17 12:49:52 -07:00
Phillip Webb bd74344025 Revert "Don't close jar files early"
This reverts commit b42f056ddb.
2022-08-17 11:38:42 -07:00
Phillip Webb d84557f1f9 Merge branch '2.7.x'
Closes gh-31396
2022-06-15 10:53:17 -07:00
Phillip Webb b42f056ddb Don't close jar files early
Update `JarFile` and related classes so that `close()` is not longer
called early.

Prior to this commit, we would always immediately close the underlying
jar file to prevent file locking issues with our build. This causes
issues on certain JVMs when they attempt to verify a signed jar.

The file lock issues have now been solved by returning a custom input
stream from `JarUrlConnection` which captures and delegates the close
method.

Fixes gh-29356
2022-06-15 10:51:01 -07:00