Commit Graph

263 Commits

Author SHA1 Message Date
Andy Wilkinson
0ed6864d1d Merge branch '3.2.x'
Closes gh-40324
2024-04-11 16:54:46 +01: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
Moritz Halbritter
793aca60d2 Implement extract and list-layers command
Adds a new jarmode called 'tools'. This provides two commands,
'extract' and 'list-layers'. list-layers is the same as list from
the layertools.

extract is able to extract the JAR in four different modes:

- CDS compatible extraction with libraries in a lib folder and a runner
.jar
- CDS compatible as above, but with layers
- Launcher based
- Launcher based with layers. This is essentially the same as extract
  from the layertools

The commands in layertools have been deprecated in favor of the commands
in 'tools'.

This also changes the behavior of layers.enabled from the Gradle and
Maven plugin: before this commit, layers.enabled prevents the inclusion
of the layer index file as well as the layertools JAR.
After this commit, layers.enabled only prevents the inclusion of the
layer index file.

layer.includeLayerTools have been deprecated in favor of includeTools,
and the layertools JAR has been renamed to tools.

Closes gh-38276
2024-03-07 13:34:13 +01: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
Phillip Webb
a0a804cfdf Merge branch '3.2.x' 2024-01-22 12:20:41 -08:00
teacmity
c6c7fbc15f Change log messages to use singular or plural instead of "noun(s)"
See gh-37017
2024-01-11 14:35:49 +00:00
Andy Wilkinson
17e9f0cb8e Merge branch '3.2.x'
Closes gh-39093
2024-01-11 11:36:38 +00: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
Andy Wilkinson
5ef7db9a28 Start working on Spring Boot 3.3 2024-01-04 10:56:56 +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