2573 Commits

Author SHA1 Message Date
Scott Frederick
95e62b7ff8 Sort the contents of generated imports files
The list of class names generated by annotation processors should be
sorted before being written to `AutoConfiguration.imports` and
`ManagementContextConfiguration.imports` files to make the build more
deterministic.

See gh-31228
2022-09-02 17:26:15 -05:00
Scott Frederick
6b3b0dd3a6 Generate ManagementContextConfiguration.imports file from annotations
This commit adds the
`ManagementContextConfigurationImportsAnnotationProcessor` to
the `spring-boot-autoconfigure-processor` annotation processor
module.

Closes gh-32222
2022-09-02 16:27:59 -05:00
Scott Frederick
da4de7d67d Generate the AutoConfiguration.imports file from annotations
This commit adds the `AutoConfigurationImportsAnnotationProcessor` to
the `spring-boot-autoconfigure-processor` annotation processor
module. When added to a project build, the annotation processor will
generate the
`org.springframework.boot.autoconfigure.AutoConfiguration.imports`
file automatically from `@AutoConfiguration`-annotated classes. It
also applies the annotation processor to the Spring Boot build.

Closes gh-31228
2022-09-02 15:10:22 -05:00
Andy Wilkinson
fc979397be Polish SpringBootAotPlugin 2022-09-02 16:37:15 +01:00
Andy Wilkinson
fd28f6d1d6 Add Gradle plugin support for processing test contexts ahead-of-time
Closes gh-32192
2022-09-02 15:54:46 +01: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
c0b3d36205 Rename 'generateAotSources' task to processAot'
See gh-31918
2022-08-25 15:10:48 -07:00
Phillip Webb
2f6354f633 Rename 'aot-generate' goal to process-aot'
See gh-31918
2022-08-25 15:02:28 -07:00
Scott Frederick
c0cbaa1460 Merge branch '2.7.x' 2022-08-24 13:18:22 -05:00
Scott Frederick
257e236b06 Fix image-building unit tests on Windows
See gh-32000
2022-08-24 13:14:39 -05:00
Stephane Nicoll
c67010ddd1 Make test more robust 2022-08-23 14:45:52 +02:00
Scott Frederick
2cdaab59f6 Merge branch '2.7.x'
Closes gh-32122
2022-08-19 13:57:26 -05:00
Scott Frederick
c16094e04b Disable SELinux label security policy when building images
When using the Gradle `bootBuildImage` task or Maven
`spring-boot:build-image` goal on a Linux distribution with SELinux
enabled, binding the Docker socket in the builder container might
fail. This commit disables the `label` security policy in the builder
container to prevent this type of failure.

Fixes gh-32000
2022-08-19 13:56:34 -05:00
Phillip Webb
07c0a8bced Fix SecurityManager deprecation issues
See gh-32086
2022-08-17 13:22:40 -07:00
Phillip Webb
4ec2e357d9 Merge branch '2.7.x'
See gh-32086
2022-08-17 12:49:52 -07:00
Phillip Webb
60e1cc510c Merge branch '2.6.x' into 2.7.x
See gh-32085
2022-08-17 12:48:21 -07:00
Phillip Webb
bd74344025 Revert "Don't close jar files early"
This reverts commit b42f056ddbfd5041ef80d2d909dd2f5e51ec3ff0.
2022-08-17 11:38:42 -07:00
Phillip Webb
674022d401 Revert "Don't close nested jars or wrapper when parent is closed"
This reverts commit 360eb027befd51012614f5938fb9cdc9f557a577.
2022-08-17 11:37:19 -07:00
Stephane Nicoll
2e3c3efd44 Merge branch '2.7.x'
Closes gh-32098
2022-08-17 08:34:52 +02:00
Stephane Nicoll
1c6624db44 Merge branch '2.6.x' into 2.7.x
Closes gh-32097
2022-08-17 08:34:38 +02:00
Stephane Nicoll
e94ddfa589 Polish "Explicit error message if source is not an archive"
See gh-31997
2022-08-17 08:33:54 +02:00
Nils Hartmann
a0f273a041 Explicit error message if source is not an archive
This commit split the existing assertion to provide an explicit error
message if the source file is not an archive.

See gh-31997
2022-08-17 08:30:03 +02:00
Phillip Webb
ee2bd9e065 Merge branch '2.7.x'
Closes gh-32086
2022-08-15 17:59:28 -07:00
Phillip Webb
ef7aac8c14 Merge branch '2.6.x' into 2.7.x
Closes gh-32085
2022-08-15 17:59:06 -07:00
Phillip Webb
360eb027be Don't close nested jars or wrapper when parent is closed
Update `JarFile` so that the `close()` method no longer closes nested
jars or the wrapper. Prior to this commit it was possible for a parent
jar file to be garbage collected and closed even though references still
existed to the nested jars. When this happened the nested jars would get
closed and any access to entries would result in `JarFile.ensureOpen()`
throwing an `IllegalStateException`. The user would often not see this
exception directly, but rather find `ClassNotFoundException` being
thrown.

Fixes gh-31853
2022-08-15 17:55:25 -07:00
Andy Wilkinson
a8ae7a1e44 Fix Gradle AOT integration test on Windows
See gh-31970
2022-08-15 10:21:42 +01:00
Stephane Nicoll
4a00d76b85 Adapt integration tests to proxy changes in Spring Framework 2022-08-13 13:56:09 +02:00
Stephane Nicoll
332419e3a7 Remove extra 'build' directory
See gh-32069
2022-08-12 17:47:38 +02:00
Stephane Nicoll
e21041ce65 Harmonize location of generated classes processed Ahead-of-time
Closes gh-32069
2022-08-11 17:07:16 +02:00
Andy Wilkinson
9caad3d31b Merge branch '2.6.x' into 2.7.x
Closes gh-32059
2022-08-10 12:28:26 +01:00
Andy Wilkinson
c9e69f555e Test our Gradle plugin against Gradle 7.5.1
Closes gh-32058
2022-08-10 12:27:47 +01:00
Andy Wilkinson
cb18eb095b Make transitive runtime dependencies available to AOT processing
Closes gh-31970
2022-08-03 13:54:50 +01:00
Johnny Lim
6a4681baf5 Polish
See gh-31948
2022-08-02 15:14:23 +02:00
Andy Wilkinson
8a2cdb9759 Merge branch '2.7.x'
Closes gh-31950
2022-08-01 20:51:40 +01:00
Andy Wilkinson
012fbb3a57 Merge branch '2.6.x' into 2.7.x
Closes gh-31949
2022-08-01 20:51:18 +01:00
Andy Wilkinson
c0daede1aa Ensure that jarmode jar added to an app has same SHA as published jar
Closes gh-31862
2022-08-01 20:49:10 +01:00
Phillip Webb
22144987e9 Update copyright year of changed files 2022-07-29 12:10:03 +01: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
35a65cf82e Merge branch '2.7.x'
Closes gh-31876
2022-07-26 17:48:00 +01:00
Phillip Webb
fd076ab9ef Merge branch '2.6.x' into 2.7.x
Closes gh-31875
2022-07-26 17:46:20 +01:00
aoyvx
8c93d2e8a7 Ensure PROTOCOL_HANDLER system property is reset
See gh-31870
2022-07-26 17:20:55 +01:00