Commit Graph

623 Commits

Author SHA1 Message Date
Moritz Halbritter
3b0fec6d00 Upgrade build to Gradle 8.11
Closes gh-43136
2024-11-13 14:36:08 +01:00
Moritz Halbritter
a3060652f8 Call String.toLowerCase and .toUppercase with explicit locale
Closes gh-42719
2024-10-17 13:20:39 +02:00
Phillip Webb
41ae973d16 Update copyright year of changed files 2024-10-16 13:08:37 -07:00
Phillip Webb
eafe61c4ca Backport upgrade to Gradle 8.10.1
Cherry-pick commits d756bf4e86, 083ac67d13 and 162c929a80 to
upgrade to Gradle 8.10.1.

Closes gh-42433
2024-09-24 12:55:29 -07:00
Andy Wilkinson
1240c59482 Only configure plugin classpath where it's needed
When spring-boot-gradle-plugin is using GradleRunner, it needs to be
configured with a custom plugin classpath to account for the fact
that our Gradle plugin is on the classpath of the system classloader
but some of the other plugins would only be available on a
Gradle-created classloader. This imbalance cause class loading
problems as code in spring-boot-gradle-plugin can't see types at
runtime that are only available on the Gradle-created classloader.

To overcome this, we need to configure the GradleRunner with a custom
plugin classpath that contains both spring-boot-gradle-plugin and all
of the other plugins that are used in its various integration tests.
Previously, this was done in GradleBuild that's used by both
spring-boot-gradle-plugin and spring-boot-image-tests. This caused
a problem as spring-boot-image-tests does not have the
above-described problem and trying to correct it did not work leaving
tests that use spring-boot-gradle-plugin unable to see other plugins
such that the native image plugin.

This commit reworks the customization of the plugin classpath so that
it's only done in spring-boot-gradle-plugin's integration tests.

Closes gh-42338
2024-09-18 14:53:54 +01:00
Andy Wilkinson
7d5a761d51 Update spring-boot-gradle-plugin to use docker-test plugin
See gh-41228
2024-06-26 19:46:25 +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
Andy Wilkinson
dd6f516d66 Test Gradle Plugin against 8.8
Closes gh-40573
2024-06-03 08:29:02 +01:00
Scott Frederick
4e5cd2c2fd Fix default security options for bootBuildImage task
Fixes gh-39830
2024-05-22 07:56:15 -05:00
Scott Frederick
7f2b917851 Merge branch '3.1.x' into 3.2.x
Closes gh-40818
2024-05-17 11:41:23 -05:00
Scott Frederick
70aceb21eb Relocate test CNB builder and buildpack
The test CNB builder and buildpack used in integration tests have moved
from a projects.registry.vmware.com registry to ghcr.io/spring-io. This
commit modifies tests to use the new location.

Closes gh-40800
2024-05-17 10:59:41 -05:00
Scott Frederick
d38c1e06b3 Ignore exceptions when deleting caches in bind cache tests
See gh-40760
2024-05-16 22:19:04 -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
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
feaccef3a4 Temporarily disable tests for image building with bind caches
See gh-40760
2024-05-16 17:22:02 +01: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
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
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
12de6aa46a Merge branch '3.1.x' into 3.2.x 2024-02-21 15:27:27 -08:00
Phillip Webb
2c4909a89a Update copyright year of changed files 2024-02-21 13:58:53 -08:00
Scott Frederick
eb75bb1339 Merge branch '3.1.x' into 3.2.x
Closes gh-39513
2024-02-11 14:32:35 -06:00
Jakob Wanger
7e90b4951b Enforce Gradle version to be at least of version 7.5
See gh-39508

Signed-off-by: Jakob Wanger <jakobwanger@gmail.com>
2024-02-11 14:30:26 -06:00
Andy Wilkinson
899da7891a Merge branch '3.1.x' into 3.2.x
See gh-39340
2024-01-31 17:44:07 +00:00
Andy Wilkinson
dd082c6c21 Revert "Upgrade to Commons Compress 1.25.0"
This reverts commit 1c2a622f7f.

See gh-39148
2024-01-31 17:35:57 +00:00
Andy Wilkinson
8c18d75b12 Merge branch '3.1.x' into 3.2.x
Closes gh-39340
2024-01-30 13:50:13 +00:00
Andy Wilkinson
1c2a622f7f Upgrade to Commons Compress 1.25.0
Closes gh-39148
2024-01-30 13:49:37 +00:00
Andy Wilkinson
16c2ddb02c Merge branch '3.1.x'
Closes gh-38665
2023-12-05 20:31:17 +00:00
Andy Wilkinson
b424254587 Test Gradle plugin against Gradle 8.5
Closes gh-38664
2023-12-05 20:30:54 +00:00
Scott Frederick
d433deb737 Merge branch '3.0.x' into 3.1.x
Closes gh-38485
2023-11-21 17:30:54 -06:00
Scott Frederick
dabcebf8a3 Merge branch '2.7.x' into 3.0.x
Closes gh-38484
2023-11-21 17:30:07 -06:00
Scott Frederick
d1cce0f8ef Upgrade default CNB builders to Paketo Jammy
Closes gh-38477
2023-11-21 17:22:32 -06:00
Andy Wilkinson
08a4a836aa Merge branch '3.1.x'
Closes gh-38233
2023-11-06 14:26:09 +00:00
Andy Wilkinson
b01235e68d Copy attributes from runtimeClasspath to productionRuntimeClasspath
Fixes gh-38209
2023-11-06 11:50:27 +00:00
Andy Wilkinson
173e6543fd Merge branch '3.1.x'
Closes gh-38168
2023-11-01 15:06:20 +00:00
Andy Wilkinson
40ce6182a1 Merge branch '3.0.x' into 3.1.x
Closes gh-38167
2023-11-01 15:03:29 +00:00
Andy Wilkinson
b7f00c1087 Merge branch '2.7.x' into 3.0.x
Closes gh-38166
2023-11-01 15:02:54 +00:00
Andy Wilkinson
0d1a223fee Merge branch '3.1.x'
Closes gh-38032
2023-10-25 14:08:22 +01:00
Andy Wilkinson
649117de35 Merge branch '3.0.x' into 3.1.x
Closes gh-38031
2023-10-25 14:08:10 +01:00
Andy Wilkinson
331bf51332 Merge branch '2.7.x' into 3.0.x
Closes gh-38030
2023-10-25 14:07:57 +01:00
Andy Wilkinson
666f68ea60 Document configuration for building images with Colima
Closes gh-34522
2023-10-25 14:07:43 +01: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
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
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