Commit Graph

652 Commits

Author SHA1 Message Date
Scott Frederick c22e76632c Add Build-Jdk-Spec to jar and war manifest when building with Gradle
This commit adds a `Build-Jdk-Spec` attribute to the manifest in a
jar or war file built with the Spring Boot Gradle plugin. This
aligns the Gradle plugin's behavior with the default Maven plugin
behavior.

This removes the need to set a `BP_JVM_VERSION` environment variable
when invoking Cloud Native Buildpacks, as the Paketo buildpacks will
honor `Build-Jdk-Spec` in a jar or war manifest to determine the
default JVM version.

Fixes gh-32829
2022-10-25 15:48:05 -05:00
Andy Wilkinson eebe23a081 Make all AOT-generated resources available to native-compile
Fixes gh-32841
2022-10-21 16:38:52 +01:00
Stephane Nicoll 4b778ff4c1 Polish Maven documentation to mention native profile 2022-10-18 15:36:38 +02:00
Andy Wilkinson d351086a06 Adapt to breaking changes to AOT processing entry points
See gh-32550
2022-10-10 22:02:25 +01:00
Andy Wilkinson 188cac6540 Protect against null run process customizer
See 0ee277b8c3
See gh-32607
2022-10-06 11:55:41 +01:00
Andy Wilkinson 0ee277b8c3 Ensure that run mojo's child process is killed when Maven is killed
Fixes gh-32607
2022-10-06 10:19:22 +01:00
Stephane Nicoll 44c843145a Add support for specifying application arguments
This commit makes sure that application arguments can be provided when
optimizing an application at build-time. It uses the same mechanism of
the regular run goal, merging the profile property if set.

Closes gh-32579
2022-10-05 16:36:38 +02:00
Stephane Nicoll 39cf17ed81 Add missing integration test for profile management in process-aot 2022-10-05 16:22:44 +02:00
Phillip Webb e0b67889a8 Use Stream.toList instead of Stream.collect when possible
Update code to make use of `Stream.toList()` whenever possible.

Closes gh-28177
2022-10-04 00:29:22 -07:00
Stephane Nicoll e2dd0ef9a4 Adapt AotProcessor to changes in Spring Framework
Closes gh-32560
2022-09-30 16:47:03 +02:00
Andy Wilkinson 51df7813a5 Remove code deprecated in 2.x and add since and forRemoval attributes
Closes gh-32548
Closes gh-32549
2022-09-30 14:39:05 +01:00
Madhura Bhave afce559050 Remove unused dependency from Maven integration test 2022-09-22 14:07:26 -07:00
Phillip Webb 20b91c5ae2 Include 'classesDirectory' in ProcessTestAotMojo classpath
Update `ProcessTestAotMojo` so that the classesDirectory and
the testClassesDirectory are on the classpath when compiling
code.

See gh-32191
2022-09-14 13:50:27 -07:00
Stephane Nicoll 88f2b33cc1 Add AOT-generated classes to classpath of the compiler
See gh-32304
2022-09-13 14:58:16 +02:00
Stephane Nicoll 5e24b5a110 Stop using RuntimeHintsUtils#registerAnnotation 2022-09-06 15:44:15 +02:00
Andy Wilkinson 746ed84120 Polish ProcessTestAotMojo 2022-09-02 12:06:54 +01:00
Phillip Webb 09bd531fe5 Add Maven plugin support for processing test contexts Ahead-of-time
Refactor and update the Spring Boot Maven Plugin so that it can
be used to perform AOT processing of test classes.

Closes gh-32191
2022-08-30 20:41:30 -07:00
Phillip Webb 2f6354f633 Rename 'aot-generate' goal to process-aot'
See gh-31918
2022-08-25 15:02:28 -07:00
Stephane Nicoll c67010ddd1 Make test more robust 2022-08-23 14:45:52 +02:00
Stephane Nicoll 4a00d76b85 Adapt integration tests to proxy changes in Spring Framework 2022-08-13 13:56:09 +02:00
Phillip Webb e08c16dfd6 Polish 2022-07-29 12:10:02 +01:00
Stephane Nicoll 41e8697445 Polish 2022-07-29 10:00:54 +02:00
Stephane Nicoll da324c8b03 Merge branch '2.7.x' 2022-07-28 16:07:26 +02:00
Stephane Nicoll 6786659aae Merge branch '2.6.x' into 2.7.x 2022-07-28 16:07:18 +02:00
Stephane Nicoll 7d860df5f0 Polish 2022-07-28 16:05:16 +02:00
Stephane Nicoll b0bc7cd85b Reuse JavaProcessExecutor
See gh-31682
2022-07-28 16:00:06 +02:00
Stephane Nicoll c3ae6519f4 Reuse SpringApplicationClassFinder
See gh-31682
2022-07-28 16:00:05 +02:00
Stephane Nicoll 472b0b8bcb Remove AbstractApplicationRunMojo intermediate layer
This commit reverts the intermediate layer that was created to
accommodate with the AOT use case.

See gh-31682
2022-07-28 16:00:05 +02:00
Stephane Nicoll 6f8b9288f3 Extract AotGenerateMojo to its own structure
This commit stops AotGenerateMojo from being an extension of the
regular run infrastructure and used the opportunity to extract a
number of utility classes to run a Java process.

As a result, not all features of running an application is supported
and exposed options now are targeted against AOT.

See gh-31682
2022-07-28 16:00:05 +02:00
Phillip Webb 7377d85096 Merge branch '2.7.x'
Closes gh-31866
2022-07-26 12:18:14 +01:00
Phillip Webb a4ef6a7c5c Merge branch '2.6.x' into 2.7.x
Closes gh-31865
2022-07-26 12:13:16 +01:00
Marc Wrobel dbfc6bded4 Fix typos in code and documentation
See gh-31734
2022-07-26 12:08:07 +01:00
Scott Frederick 6f65777035 Merge branch '2.7.x'
Closes gh-31827
2022-07-20 17:31:37 -05:00
Scott Frederick 9da38c8d2d Merge branch '2.6.x' into 2.7.x
Closes gh-31826
2022-07-20 17:29:58 -05:00
Scott Frederick 4e0b3aad9f Clarify how docker image publishing registry is determined
Closes gh-31820
2022-07-20 17:29:40 -05:00
Scott Frederick cf7a163c6d Merge branch '2.7.x' 2022-07-20 16:07:32 -05:00
Scott Frederick f9cf31e59e Fix compile errors
See gh-28844
2022-07-20 16:07:19 -05:00
Scott Frederick 36d6106bb0 Merge branch '2.7.x'
Closes gh-31825
2022-07-20 15:11:30 -05:00
Scott Frederick 09c7ce6dab Merge branch '2.6.x' into 2.7.x
Closes gh-31824
2022-07-20 15:10:43 -05:00
Scott Frederick 9b0cdac58a Simplify support for pushing images to unauthenticated registries
This commit removes the requirement that `docker.publishRegistry`
configuration must be provided when an image is published by the Gradle
or Maven plugin.

Fixes gh-28844
2022-07-20 15:06:05 -05:00
dreis2211 5db04da275 Use pattern matching for instanceof where appropriate
See gh-31475
2022-06-20 17:55:36 +01:00
dreis2211 fb45fc4819 Use Files.writeString() and Files.readString() where possible
See gh-31459
2022-06-20 09:05:09 +02:00
dreis2211 a639685053 Remove obsolete Java compatibility code
See gh-31452
2022-06-19 10:22:23 +02:00
Stephane Nicoll e2c42e4bbf Merge branch '2.7.x'
Closes gh-31262
2022-06-07 09:16:19 +02:00
Stephane Nicoll 8e550933a8 Merge branch '2.6.x' into 2.7.x
Closes gh-31261
2022-06-07 09:16:10 +02:00
Stephane Nicoll bbb5966bca Upgrade integration tests to Apache Maven 3.8.5
Closes gh-31260
2022-06-07 09:15:41 +02:00
Stephane Nicoll 1c94f835c7 Copy AOT-generated classes
Closes gh-31245
2022-06-07 08:59:57 +02:00
Stephane Nicoll 0dbcb5f6d3 Start building against Spring Framework 6.0.0-M5 snapshots
See gh-31241
2022-06-02 16:19:58 +02:00
Andy Wilkinson 36a60d8e2e Merge branch '2.7.x'
Closes gh-31181
2022-05-26 19:49:53 +01:00
Andy Wilkinson 137318a845 Merge branch '2.6.x' into 2.7.x
Closes gh-31180
2022-05-26 19:49:35 +01:00
Damiano Albani 3f91ed037f Fix Custom Layers Configuration section title in Maven plugin docs
See gh-31172
2022-05-26 19:46:11 +01:00
Andy Wilkinson 935d1264e0 Merge branch '2.6.x' into 2.7.x 2022-05-26 18:13:08 +01:00
Andy Wilkinson 14af1bb2dc Polish 2022-05-26 16:54:31 +01:00
Andy Wilkinson 5dfa5adb75 Merge branch '2.7.x'
Closes gh-31178
2022-05-26 15:54:58 +01:00
Andy Wilkinson 455ee0ce22 Merge branch '2.6.x' into 2.7.x
Closes gh-31177
2022-05-26 15:53:38 +01:00
Andy Wilkinson ee45fd2fc8 Remove redundant throws declarations from internal APIs
Closes gh-31176
2022-05-26 15:47:35 +01:00
Phillip Webb 68bd9d6b6d Merge branch '2.7.x' 2022-05-19 18:09:29 -07:00
Phillip Webb 06679a4c46 Merge branch '2.6.x' into 2.7.x
Closes gh-31128
2022-05-19 18:07:17 -07:00
Phillip Webb 9fa33e5645 Merge branch '2.5.x' into 2.6.x
Closes gh-31127
2022-05-19 18:04:54 -07:00
Phillip Webb 05a6447a8d Polish "Resolve errors in layers.xsd"
Validate loaded `layer.xml` files against the XSD and additionally
update `<layers>` sub elements to have a 'minOccurs' of 0.

See gh-31126
2022-05-19 18:01:55 -07:00
Liuzh 0d78323b60 Resolve errors in layers.xsd
Update `layer-*.xsd` files with following fixes:

- Rename <includeProjectDependencies> to <includeModuleDependencies>
- Rename <excludeProjectDependencies> to <excludeModuleDependencies>

See gh-31126
2022-05-19 18:00:25 -07:00
Andy Wilkinson c4beca3e01 Fix Maven-based AOT generation on Windows
Closes gh-30525
2022-05-18 10:54:35 +01:00
Phillip Webb f8a41d34aa Merge branch '2.7.x' 2022-05-17 22:22:08 -07:00
Andy Wilkinson bcc27c5d22 Deleting existing output before running AOT processing
Closes gh-30981
2022-05-17 15:33:45 +01:00
Andy Wilkinson 08768b5821 Join compile classpath using system-dependent separator
See gh-30525
2022-05-16 12:37:30 +01:00
Andy Wilkinson 0ce6e437a9 Align AotGenerateTests with spring.factories changes in Framework 2022-05-11 11:08:26 +01:00
Phillip Webb 8cf63a28b8 Update AOT work to latest Framework code 2022-05-05 15:19:33 -07:00
Andy Wilkinson 541ab69aff Merge branch '2.7.x' 2022-05-03 15:18:20 +01:00
Andy Wilkinson 4cd850cfc0 Merge branch '2.6.x' into 2.7.x
Closes gh-30851
2022-05-03 15:17:13 +01:00
Andy Wilkinson fa327a783d Merge branch '2.5.x' into 2.6.x
Closes gh-30850
2022-05-03 15:14:00 +01:00
Andy Wilkinson 4fd2e0c916 Polish "Fix typos"
See gh-30773
2022-05-03 14:09:53 +01:00
Andy Wilkinson f6d24dc1a8 Fix typos
See gh-30773
2022-05-03 14:09:37 +01:00
Stephane Nicoll e81c6337c6 Add support for invoking AOT to the Maven Plugin
This commit adds an `aot-generate` goal to the Maven Plugin that
triggers AOT generation on the application. The new goal shares a
number of properties with the existing `run` goal and uses the same
algorithm to detect the main class to use.

Closes gh-30525
2022-04-28 13:48:52 +01:00
Phillip Webb 7a6ca8ce25 Merge branch '2.7.x' 2022-04-20 15:30:01 -07:00
Phillip Webb dd5696b59b Update copyright year of changed files 2022-04-20 15:26:30 -07:00
Scott Frederick e32511516e Merge branch '2.7.x' 2022-04-04 16:29:52 -05:00
Scott Frederick ef79a18514 Use provided scope for Maven core dependencies in Maven plugin
Fixes gh-29520
2022-04-04 16:00:15 -05:00
Stephane Nicoll 5f66019706 Remove the ability to run an application in the Maven process
Closes gh-30501
2022-04-01 15:26:21 +02:00
Stephane Nicoll 13c9c1adb5 Merge branch '2.7.x' 2022-04-01 11:58:27 +02:00
Stephane Nicoll 2c5398898b Polish "Deprecate running an application in the Maven JVM"
See gh-30479
2022-04-01 11:57:59 +02:00
Stephane Nicoll c21b4a5280 Merge branch '2.7.x' 2022-04-01 11:35:48 +02:00
Stephane Nicoll 09696c90c7 Deprecate running an application in the Maven JVM
This commit deprecates the "fork" property so that the application
always runs in a dedicated process. This aligns with the behaviour of
the Gradle plugin, and simplifies the lifecycle of certain features that
would not work in a non-forked process.

Closes gh-30479
2022-04-01 11:35:34 +02:00
Scott Frederick 377b13c048 Merge branch '2.7.x' 2022-03-11 16:39:49 -06:00
Scott Frederick de321b00b7 Support podman for building images
Closes gh-30196
2022-03-11 16:39:07 -06:00
Scott Frederick 5e07db7d21 Merge branch '2.7.x' 2022-03-11 15:59:16 -06:00
Scott Frederick 7ad538cd84 Add option to use configured Docker host in builder
This commit adds support for a `docker.bindHostToBuilder` option in
the Maven and Gradle image building goal and task.

Fixes gh-29384
2022-03-11 15:27:22 -06:00
Stephane Nicoll 41fb9cf562 Merge branch '2.7.x' 2022-02-01 11:15:49 +01:00
Stephane Nicoll f812b33cbd Merge branch '2.6.x' into 2.7.x
Closes gh-29613
2022-02-01 11:07:31 +01:00
Stephane Nicoll 136b5959c3 Merge branch '2.5.x' into 2.6.x
Closes gh-29612
2022-02-01 10:59:08 +01:00
Stephane Nicoll 7f17f819a6 Polish "Enforce use of BDDMockito"
See gh-29178
2022-02-01 10:03:18 +01:00
Yanming Zhou b49418aaaf Enforce use of BDDMockito
1. Replace Mockito.verify*() with BDDMockito.then()
2. Replace Mockito.doReturn() with BDDMockito.willReturn()
3. Adjust checkstyle rule

See gh-29178
2022-02-01 09:37:15 +01:00
Andy Wilkinson f2ac7d10ef Merge branch '2.7.x' 2022-01-25 12:19:51 +00:00
Andy Wilkinson 8480abca20 Merge branch '2.6.x' into 2.7.x
Closes gh-29561
2022-01-25 12:19:37 +00:00
Andy Wilkinson fe43d527b5 Merge branch '2.5.x' into 2.6.x
Closes gh-29560
2022-01-25 12:19:16 +00:00
Andy Wilkinson 3ed65f2383 Avoid running Maven plugin ITs for each s-b-dependencies change
Closes gh-28781
2022-01-25 12:11:19 +00:00
Scott Frederick c78b157e95 Merge branch '2.7.x' 2021-12-09 16:42:33 -06:00
Scott Frederick 8f57f0babb Add classpath index support for exploded war archives
Update the Maven and Gradle packaging for war files so that a
`classpath.idx` file is written into the archive that provides the
original order of the classpath, as was previously done for jar files.
The `WarLauncher` class will use this file when running as an exploded
archive to ensure that the classpath order is the same as when running
from the far war.

Fixes gh-19875
2021-12-09 16:41:49 -06:00
Scott Frederick 16f54d2c5c Merge branch '2.7.x' 2021-12-03 11:42:52 -06:00
Scott Frederick 61fb9f83df Merge branch '2.6.x' into 2.7.x
Closes gh-28905
2021-12-03 11:42:28 -06:00
Scott Frederick ab0cc55e20 Merge branch '2.5.x' into 2.6.x
Closes gh-28904
2021-12-03 11:42:03 -06:00