Commit Graph

261 Commits

Author SHA1 Message Date
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 feaccef3a4 Temporarily disable tests for image building with bind caches
See gh-40760
2024-05-16 17:22:02 +01:00
Moritz Halbritter c47cdda824 Merge branch '3.1.x' into 3.2.x
Closes gh-40624
2024-05-06 09:51:39 +02:00
Andy Wilkinson 45e9412d9b Merge branch '3.1.x' into 3.2.x
Closes gh-40323
2024-04-11 16:54:33 +01:00
Andy Wilkinson baf5a7f130 Make includes configurable via a property
See gh-39837
2024-04-11 16:32:17 +01:00
Andy Wilkinson 2a6293940b Polish "Make excludes configurable via property"
See gh-39837
2024-04-11 16:31:24 +01:00
Matti Tahvonen 58fc8f8c01 Make excludes configurable via property
See gh-39837
2024-04-11 15:43:31 +01:00
Phillip Webb 12de6aa46a Merge branch '3.1.x' into 3.2.x 2024-02-21 15:27:27 -08: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
Andy Wilkinson 7087897507 Merge branch '3.1.x' into 3.2.x
Closes gh-39091
2024-01-11 10:33:57 +00:00
Andy Wilkinson 45c32854a5 Fix Checkstyle upgrade
Closes gh-38746
2024-01-10 15:37:38 +00:00
Phillip Webb b8365e3118 Fix misconfigured Maven test
See gh-37669
2023-10-18 22:58:45 -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 75ddb9fa47 Fix test failure caused by PropertiesLoader class reference
See gh-37667
2023-10-03 17:27:39 -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 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
Scott Frederick 7de770f6a1 Add support for security options in CNB builder container config
Closes gh-37479
2023-09-20 13:43:36 -05:00
Scott Frederick 4433fcd1f2 Add support for build workspace option when building images
Closes gh-37478
2023-09-20 13:43:35 -05:00
Scott Frederick a9f26e0f95 Conditionally enable image building bind cache tests
Accessing bind mount directories as is done in the tests for building
images with bind mount caches requires Docker configuration when
using Docker Desktop. It works without configuration on Linux with
Docker Engine.

See gh-28387
2023-09-12 17:00:59 -05:00
Scott Frederick c17ecf0f0b Add support for caching to bind mounts when building images
When building an image using the Maven `spring-boot:build-image` goal or
the Gradle `bootBuildImage` task, the build and launch caches can be
configured to use a bind mount as an alternative to using a named
volume.

Closes gh-28387
2023-08-21 15:04:39 -05:00
Phillip Webb 8edec21a6f Update copyright year of changed files 2023-08-13 20:44:44 -07:00
Andy Wilkinson d1449fb97c Make milestone plugin dependencies available to Maven integration tests 2023-08-09 21:20:40 +01:00
Andy Wilkinson 0c7c7ac8a9 Upgrade to Maven 3.9.4
Closes gh-36747
2023-08-04 19:27:42 +01:00
Stephane Nicoll f34dc05452 Rename run goal's directories property to additionalClasspathElements
This clarifies what used to be called "directories" as both a directory
and a jar file can be provided. A directory with `/*` would also load
all the jar files from that directory.

The "directories" property has been deprecated as a result.

Closes gh-35179
2023-08-03 16:22:07 +02:00
Andy Wilkinson 9985c845f2 Adapt to Framework changes missed due to predictive test selection
See gh-36198
2023-07-04 12:39:52 +01:00
Andy Wilkinson 5a9ca67fba Start building against Spring Framework 6.2.0-M2 snapshots
See gh-36198
2023-07-04 10:20:33 +01:00
Andy Wilkinson b394553b30 Merge branch '3.1.x' 2023-06-21 12:11:06 +01:00
Andy Wilkinson 660dbb9afd Fix Maven-built native images with Docker Compose dependency
Previously, we tried to prevent spring-boot-docker-compose from
causing problems with AOT and native images by excluding it from
the AOT processing classpath. This allowed AOT processing to
succeed. We cannot apply the same exclusion to the native image
classpath so spring-boot-docker-compose was still included in the
native image. This results in a failure at runtime due to missing
reflection hints.

This commit reverts that changes that excluded
spring-boot-docker-compose from the AOT processing classpath. This
allows AOT processing to generate reflection hints but reintroduces
the failure caused by the connection details bean definitions using
an instance supplier callback. To overcome this problem we disable
DockerComposeLifecycleManager during AOT processing and in a native
image. This ensures that no attempt is made to call docker compose up
and no connection details beans are defined.

Fixes gh-35676
2023-06-21 11:44:30 +01:00
Andy Wilkinson 818f096890 Merge branch '3.1.x' 2023-06-21 10:46:35 +01:00
Andy Wilkinson 853caf9a59 Do not exclude DevTools from Maven AOT processing classpath
When excluded from the AOT processing classpath, a reflection hint
for DevTools' RestartScopeInitializer that's registered in
spring.factories is not generated. When the native image is compiled
we have no control over its classpath so DevTools is included. This
causes a failure at runtime as RestartScopeInitializer cannot be
loaded due to the missing reflection hint.

Until we have control over the native image classpath, we need to
include DevTools on the AOT processing classpath and then rely on
DevTools disabling itself in a native image which it already does.

Fixes gh-35853
2023-06-21 10:36:38 +01:00
Andy Wilkinson b9c2c289b3 Start working on Spring Boot 3.2
This commit also disables the creation of forward merge issues
when merging into main. Forward merge issues will be re-enabled
once 3.1.1 has been released.
2023-06-08 17:22:21 +01:00
Phillip Webb c2961a1e4a Exclude docker-compose and devtools during AOT processing
Update `ProcessAotMojo` so that `spring-boot-docker-compose` and
`spring-boot-devtools` are not included on the classpath.

Fixes gh-35548
2023-05-18 11:21:13 -07:00
Phillip Webb e3ed87d165 Merge branch '3.0.x' 2023-05-12 13:21:52 -07:00
Andy Wilkinson e43998615c Add a test-run goal to the Maven plugin
Closes gh-35202
2023-05-04 15:06:03 +01:00
Phillip Webb d86e82d026 Merge branch '3.0.x' 2023-05-02 15:42:05 -07:00
Phillip Webb 2c27ec5b7b Merge branch '2.7.x' into 3.0.x 2023-05-02 15:42:00 -07:00
Phillip Webb b3226c55d2 Polish 2023-05-02 15:41:55 -07:00
Moritz Halbritter 9d50d92b9c Merge branch '3.0.x' 2023-05-02 16:36:49 +02:00
Moritz Halbritter 1f4a337ad2 Merge branch '2.7.x' into 3.0.x 2023-05-02 16:17:50 +02:00
Moritz Halbritter 091d6204cb Disable build image integration tests on aarch64 linux and mac
See gh-35229
2023-05-02 15:38:42 +02:00
Phillip Webb 9b6a2a59a1 Set offset when checking date in tests
Update integration tests that check the current date so that the offset
is set for the current time before comparing results.

See gh-34786
2023-04-12 22:13:08 -07:00
Phillip Webb 463701db18 Merge branch '3.0.x' 2023-04-10 16:22:57 -07:00
Phillip Webb d442bfbeff Polish 2023-04-10 16:22:11 -07:00
Scott Frederick 56bc6d2fa0 Allow image application directory to be configurable
An `applicationDirectory` option on the Maven
`spring-boot:build-image` goal and the Gradle `bootBuildImage` task
can be configured to set the location that will be used to upload
application contents to the builder image, and will contain the
application contents in the generated image.

Closes gh-34786
2023-04-07 14:00:00 -05:00
Scott Frederick 5817c8441d Allow image Created date to be configurable
A `createdDate` option on the Maven `spring-boot:build-image` goal
and the Gradle `bootBuildImage` task can be used to set the `Created`
metadata field on a generated OCI image to a specified date or to
the current date.

Closes gh-28798
2023-04-06 15:08:34 -05:00
Phillip Webb 91ce2d6e1e Merge branch '3.0.x'
Closes gh-34473
2023-03-03 11:00:19 -08:00