Commit Graph

2705 Commits

Author SHA1 Message Date
Andy Wilkinson 99edda735e Polish 2022-10-25 12:57:58 +01:00
Andy Wilkinson 9e6259cd37 Remove development-only dependencies from native image classpath
Fixes gh-32843
2022-10-24 09:22:13 +01:00
Andy Wilkinson eebe23a081 Make all AOT-generated resources available to native-compile
Fixes gh-32841
2022-10-21 16:38:52 +01:00
Phillip Webb d8c4aec946 Merge branch '2.6.x' into 2.7.x 2022-10-20 17:04:37 -07:00
Phillip Webb 1a14f39f83 Polish 2022-10-20 17:04:29 -07:00
Scott Frederick b78b22b6f6 Allow Gradle task property to be set with String or enum value
See gh-32769
2022-10-20 13:59:54 -05:00
Phillip Webb c53c8c84b8 Fix annotation processor to deal with relocated @ConstructorBinding
Update `ConfigurationMetadataAnnotationProcessor` to use the correct
location for the `@ConstructorBinding` annotation and to deal with
finding it as a meta-annotation.

Closes gh-32660
2022-10-20 10:19:57 -07:00
Andy Wilkinson 26e747d2db Fix package tangle in spring-boot-gradle-plugin
Closes gh-32814
2022-10-20 13:12:12 +01:00
Scott Frederick 8acf9afccb Use String instead of enum for Gradle task Property
See gh-32769
2022-10-19 17:23:23 -05:00
Madhura Bhave ce3c933f77 Adapt to Spring Security changes
Closes gh-32604
2022-10-19 11:46:27 -07:00
Andy Wilkinson 8621be6bba Make consistent use of Property for Gradle task configuration
Closes gh-32769
2022-10-19 19:08:45 +01:00
Phillip Webb 45ce096b6b Replace our TestCompiler with Spring Framework's version
Replace the last use of our `TestCompiler` with Spring Framework's
version.

See gh-31266
2022-10-18 11:39:03 -07:00
Stephane Nicoll 4b778ff4c1 Polish Maven documentation to mention native profile 2022-10-18 15:36:38 +02:00
Andy Wilkinson 2dacddb4d7 Make bootBuildImage produce native image when NBT plugin is applied
Closes gh-32768
2022-10-18 13:12:45 +01:00
Andy Wilkinson 2c756ea874 Use collectReachabilityMetadata task to add metadata to bootJar
Closes gh-32737
2022-10-18 11:25:34 +01:00
Phillip Webb a34b1d3c6e Don't detect private constructors on member classes for binding
Refine constructor binding detection logic so that `private`
constructors on member classes are no longer automatically picked for
constructor binding. This provides users a way of signalling that
they wish to use the constructor directly.

Closes gh-32639
2022-10-18 00:59:46 -07:00
Phillip Webb 754f39e6ef Polish 2022-10-18 00:59:45 -07:00
Phillip Webb c16c6bc3b5 Fix reachability argfile format
Update the argfile to a format that actually works when
passed to the `native-image` command.

See gh-32738
2022-10-17 18:59:50 -07:00
Phillip Webb 8358a0e3f3 Fix reachability-metadata.properties location
Update tools to use the correct `reachability-metadata.properties`
location which should include the version number.

See gh-32738
2022-10-17 14:31:38 -07:00
Andy Wilkinson 3082b0c5bf Add a section on AOT to the Gradle plugin's docs
Closes gh-32750
2022-10-17 18:15:34 +01:00
Andy Wilkinson 3d5c864bc9 Merge branch '2.6.x' into 2.7.x
Closes gh-32758
2022-10-17 17:11:59 +01:00
Andy Wilkinson dade5ec3aa Test against Gradle 6.9.3
Closes gh-32757
2022-10-17 17:11:37 +01:00
Andy Wilkinson ff16f6d6c6 Work around configuration cache problem in NBT Gradle Plugin
See gh-32752
See graalvm/native-build-tools#338
2022-10-17 13:58:07 +01:00
Phillip Webb 071649360b Generate 'META-INF/native-image/argfile' file for buildpack use
Update the Maven and Gradle plugin to generate an `argfile` file
file under `META-INF/native-image` that contains `--exclude-config`
arguments that should be passed when generating a native image.

The contents of the file is generated for each nested jar that has a
`reachability-metadata.properties` file containing 'override=true'.

The `reachability-metadata.properties` file is expected to be generated
by the Graal native build tools plugin.

Closes gh-32738
2022-10-14 15:23:06 -07:00
Phillip Webb 430c6b7e9f Downgrade to SLF4J 1.7 for spring-boot-gradle-plugin tests
The downgrade is required for tests to run in Eclipse.

Closes gh-32626
2022-10-14 11:58:16 -07:00
Scott Frederick 3ea18f07fa Polish "Use NBT plugin version from gradle.properties in image tests"
See gh-32643
2022-10-13 15:05:06 -05:00
Phillip Webb 7e8ed075c0 Merge branch '2.7.x'
Closes gh-32682
2022-10-11 23:21:52 -07:00
Phillip Webb ed01a77a99 Merge branch '2.6.x' into 2.7.x
Closes gh-32681
2022-10-11 23:19:34 -07:00
Phillip Webb e0c79ce598 Support PEM formatted elliptic-curve TLS keys
Update `PrivateKeyParser` to support loading PEM formatted
elliptic-curve keys. We need to do a similar trick to the PKCS1 keys
and convert them to a `PKCS8EncodedKeySpec`.

Fixes gh-32646
2022-10-11 23:18:44 -07:00
Andy Wilkinson 3ca5c7ff5b Create AOT source sets as soon as the Java plugin is applied
Previously, the AOT source sets were not created until both the
Java and Spring Boot plugins had been applied. This could create
ordering problems when the Spring Boot plugin's native image plugin
action tried to access the AOT source sets to configure the
classpaths of the nativeCompile and nativeTest tasks. If the
plugins were applied in a particular order the AOT source sets
would not exist and a failure would occur.

This commit updates the Spring Boot AOT plugin to create the source
sets as soon as the Java plugin has been applied. This ensure that
they're in place when reacting to the native image plugin being
applied.

Closes gh-32661
2022-10-11 19:58:03 +01:00
Andy Wilkinson 808e0be552 Merge branch '2.7.x'
Closes gh-32679
2022-10-11 19:16:08 +01:00
Andy Wilkinson 1b604e30f7 Merge branch '2.6.x' into 2.7.x
Closes gh-32678
2022-10-11 19:15:33 +01:00
Andy Wilkinson 215eb96355 Improve error handling in SpringBootPlugin
Closes gh-32677
2022-10-11 19:15:23 +01: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 0e23fbe30b Use Neo4j 4.4.11 for integration testing
See gh-32620
2022-10-06 19:53:46 +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
Scott Frederick d25a99692f Replace Spring Boot TestCompiler with Spring Framework's version
See gh-31266
2022-09-30 15:58:11 -05: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
dreis2211 65ef8fc51a Use ByteArrayOutputStream.toString where possible
See gh-32534
2022-09-29 15:03:24 +02:00
Andy Wilkinson 17953eeb33 Merge branch '2.7.x'
Closes gh-32544
2022-09-29 11:41:15 +01:00
Andy Wilkinson 3ef633b096 Merge branch '2.6.x' into 2.7.x
Closes gh-32543
2022-09-29 11:39:42 +01:00
Andy Wilkinson 84a25c7dcf Configure Log4j2 classpath overrides consistently
Closes gh-32537
2022-09-29 11:25:21 +01:00
dreis2211 f0b4a65546 Avoid usage of StringBuffer where possible
See gh-32519
2022-09-29 09:29:10 +02:00
Andy Wilkinson 0bfa9cd704 Upgrade to Logback 1.4 and SLF4J 2.0
Closes gh-12649
2022-09-28 21:14:08 +01:00
Andy Wilkinson 0f44e69995 Merge branch '2.7.x'
Closes gh-32500
2022-09-26 13:15:39 +01:00
Andy Wilkinson 5124ae94ae Merge branch '2.6.x' into 2.7.x
Closes gh-32499
2022-09-26 13:15:11 +01:00
Andy Wilkinson cfac7f55a4 Correct annotations on BootBuildImage's file-based inputs
Closes gh-32495
2022-09-26 13:13:16 +01:00
Andy Wilkinson f67db3d9ad Move spring-boot-cli into spring-boot-tools
Closes gh-32492
2022-09-23 16:44:57 +01:00
Andy Wilkinson 4a05230d5d Move spring-boot-properties-migrator into spring-boot-tools
Closes gh-32491
2022-09-23 16:18:30 +01:00
Madhura Bhave afce559050 Remove unused dependency from Maven integration test 2022-09-22 14:07:26 -07:00
Andy Wilkinson 7c7c34cda1 Fix classpath roots of AOT test processing
This was regressed in 6175c4210d so that
each class on the classpath was passed in as a "root". This commit
corrects this so that only the roots are passed to the AOT test
processor.

See gh-32424
2022-09-22 12:30:43 +01:00
Scott Frederick f9c341c75a Revert "Generate the AutoConfiguration.imports file from annotations"
This reverts commit da4de7d67d.
2022-09-21 14:50:15 -05:00
Scott Frederick d62d7ca75d Revert "Generate ManagementContextConfiguration.imports file from annotations"
This reverts commit 6b3b0dd3a6.
2022-09-21 14:50:15 -05:00
Scott Frederick 1f53eb7df9 Revert "Sort the contents of generated imports files"
This reverts commit 95e62b7ff8.
2022-09-21 14:50:15 -05:00
Scott Frederick 910e9c9fcc Revert "Fix windows build"
This reverts commit 9fe24fe692.
2022-09-21 14:50:15 -05:00
Andy Wilkinson 4a80b36160 Configure native image classpath outside of task realisation
Closes gh-32465
2022-09-21 18:14:46 +01:00
Andy Wilkinson 6175c4210d Fix skipping of processAot when there is no main source
See gh-32424
2022-09-21 14:57:54 +01:00
Andy Wilkinson fa81e8ca79 Skip processAot and processTestAot if there is no main or test code
Closes gh-32424
2022-09-20 17:15:19 +01:00
Andy Wilkinson e8aa5680d6 Support file-based reachability metadata repositories
See gh-32408
2022-09-20 14:06:18 +01:00
Andy Wilkinson 8323f24ccc Make classes generated by AOT test processing available to nativeTest
Closes gh-32428
2022-09-20 11:29:18 +01:00
Scott Frederick 1ed4d89466 Copy native reachability metadata to jar file in Gradle plugin
When the Spring Boot Gradle plugin builds a fat jar and the Native
Build Tools Gradle plugin is applied to the build, any configuration
files from the GraalVM reachability metadata repository that match
project dependencies are copied to a `META-INF/native-image`
directory in the fat jar.

Closes gh-32408
2022-09-16 12:26:24 -05:00
Andy Wilkinson 2b503ee334 Add AOT-generated classes as a dependency
Previously, the AOT-generated classes were added directly to the
compile classpath of the AOT compilation task. This didn't work
perfectly in IntelliJ IDEA, leaving the generated classes in the
runtime scope and causing compilation problems where the
AOT-generated source tried to reference those classes.

This commit updates the plugin to add the AOT-generated classes as
a dependency to the AOT source set's implementation configuration.
This makes the classes available during compilation by the source
set's Java compilation task while also makeing IntelliJ IDEA aware
of their presence on the compile classpath.

Closes gh-32395
2022-09-15 14:02:54 +01: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
Andy Wilkinson 867c49337a Add AOT-generated classes to classpath of AOT JavaCompile tasks
See gh-32304
2022-09-13 13:03:24 +01:00
Stephane Nicoll 9fe24fe692 Fix windows build
This commit makes sure that files that are generated in a temporary
directory are closed once the related test completes.
2022-09-10 16:24:29 +02:00
Andy Wilkinson aafceb3868 Merge branch '2.7.x'
Closes gh-32285
2022-09-09 16:47:06 +01:00
Andy Wilkinson f17df7bf30 Merge branch '2.6.x' into 2.7.x
Closes gh-32284
2022-09-09 16:46:43 +01:00
Andy Wilkinson 23c2f73b3f Update tests to allow them to run on Java 19
Closes gh-32280
2022-09-09 16:46:14 +01:00
Andy Wilkinson 144fdaa703 Merge branch '2.6.x' into 2.7.x
Closes gh-32283
2022-09-09 15:14:40 +01:00
Andy Wilkinson 78f4242e46 Build with Gradle 7.5 while still supporting Gradle 6.8+
Closes gh-32281
2022-09-09 15:13:43 +01:00
Phillip Webb 46be4a3f30 Merge branch '2.7.x' 2022-09-08 19:38:18 -07:00
Phillip Webb e88a682220 Merge branch '2.6.x' into 2.7.x 2022-09-08 19:37:52 -07:00
Phillip Webb 85697ac482 Update copyright year of changed files 2022-09-08 19:36:59 -07:00
Stephane Nicoll 5e24b5a110 Stop using RuntimeHintsUtils#registerAnnotation 2022-09-06 15:44:15 +02:00
Andy Wilkinson 3dfe28c9f1 Ensure that a test engine is available to AOT test processing
See gh-32192
2022-09-05 09:41:28 +01:00
Andy Wilkinson cf84ae7ad8 Exclude non-existent test classes dirs from AOT test processing
See gh-32192
2022-09-05 09:41:21 +01:00
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 b42f056ddb.
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 360eb027be.
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
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
Phillip Webb f8412847dc Update copyright year for "Fix typos in code and documentation"
See gh-31734
2022-07-26 12:08:30 +01:00
Marc Wrobel dbfc6bded4 Fix typos in code and documentation
See gh-31734
2022-07-26 12:08:07 +01:00
Phillip Webb b93dbd56e8 Merge branch '2.7.x' 2022-07-26 10:51:17 +01:00
Phillip Webb 3931e82841 Merge branch '2.6.x' into 2.7.x 2022-07-26 10:50:42 +01:00
Phillip Webb 4bcec6e0ee Polish 2022-07-26 10:50:01 +01:00
Andy Wilkinson 6c28156b29 Avoid config-time creation of AOT source set's tasks
Closes gh-31844
2022-07-22 14:14:03 +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
Andy Wilkinson 6da8c88b2b Include library resources on classpath of AOT source generation
Closes gh-31803
2022-07-20 10:07:02 +01:00
Andy Wilkinson 5c057a2730 Auto-configure the new Elasticsearch clients
This commit introduces auto-configuration for the new Elasticsearch
clients that are based upon their new Java client. The new Java
client builds on top of their existing low-level REST client,
replacing the high-level REST client which has been deprecated.
As part of introducing support for the new Elasticsearch client,
the auto-configuration for the templates (both imperative and
reactive) provided by Spring Data has also been updated to use the
new templates that build upon the new Java client.

As part of these changes, support for the high-level REST client and
the old Spring Data Elasticsearch templates has been removed. One
significant change is that the new reactive template is no longer
based on WebClient. As a result, the WebClient-specific configuration
property has been removed.

Closes gh-30647
Closes gh-28597
Closes gh-31755
2022-07-19 15:26:42 +01:00
Stephane Nicoll f52d00d9fa Merge branch '2.7.x'
Closes gh-31779
2022-07-18 11:30:45 +02:00
Stephane Nicoll 92a7af4038 Merge branch '2.6.x' into 2.7.x
Closes gh-31777
2022-07-18 11:30:36 +02:00
Johnny Lim f591c75ad7 Disable incompatible tests on macOS AArch64
This commit also updates related test support classes.

See gh-31539
2022-07-18 11:25:52 +02:00
Andy Wilkinson 9c250cae92 Merge branch '2.6.x' into 2.7.x
Closes gh-31754
2022-07-14 17:28:54 +01:00
Andy Wilkinson 8c4708982b Test our Gradle plugin against 7.5
Closes gh-31753
2022-07-14 17:25:34 +01:00
Andy Wilkinson 7bd9873cd9 Raise the minimum supported version of Gradle to 7.5
Closes gh-31215
2022-07-14 15:56:32 +01:00
Moritz Halbritter 3703b317ce Enable GraalVM reachability metadata repository
Closes gh-31687
2022-07-12 14:25:38 +02:00
Scott Frederick e49597c1ae Merge branch '2.7.x'
Closes gh-31559
2022-06-30 14:58:48 -05:00
Scott Frederick e24c49a09a Merge branch '2.6.x' into 2.7.x
Closes gh-31558
2022-06-30 14:58:28 -05:00
Scott Frederick 17bdc526f6 Avoid adding layers for buildpacks that exist in the builder
This commit adds validation of any buildpacks that are specified for
image building to match them against buildpacks that are bundled in
the builder. If an image buildpack's ID, version, and one layer
hash match the same information stored in a label on the builder
image, that buildpack won't be added and the buildpack bundled in
the builder will be used instead. This reduces the chance of adding to
the total count of layers in a builder image unnecessarily.

Fixes gh-31233
2022-06-30 14:35:34 -05:00
dreis2211 458f989cf3 Use switch expressions where appropriate
See gh-31527
2022-06-24 16:19:28 +01:00
Andy Wilkinson 836b08f49d Merge branch '2.7.x' 2022-06-24 15:03:41 +01:00
Andy Wilkinson dfb8979456 Merge branch '2.6.x' into 2.7.x 2022-06-24 15:03:25 +01:00
Andy Wilkinson c87340e5c1 Remove unnecessary throws 2022-06-24 15:02:58 +01:00
Andy Wilkinson 631b1e0d76 Merge branch '2.7.x'
Closes gh-31526
2022-06-24 13:10:10 +01:00
Andy Wilkinson 1e08f545d0 Merge branch '2.6.x' into 2.7.x
Closes gh-31525
2022-06-24 13:05:06 +01:00
Andy Wilkinson f49b16c645 Upgrade to Spring Java Format 0.0.34
Closes gh-31524
2022-06-24 12:57:52 +01:00
Stephane Nicoll 03b742c655 Merge branch '2.7.x' 2022-06-22 08:17:13 +02:00
Stephane Nicoll e967d0383b Merge branch '2.6.x' into 2.7.x 2022-06-22 08:16:18 +02:00
Stephane Nicoll 79d3e3080f Polish 2022-06-22 08:15:04 +02:00
Phillip Webb e77f137a32 Merge branch '2.7.x'
Closes gh-31485
2022-06-21 19:10:37 -07:00
Phillip Webb 13b2de3bb8 Merge branch '2.6.x' into 2.7.x
Closes gh-31484
2022-06-21 19:10:23 -07:00
Phillip Webb 7fc9debf2a Consider super classes when detecting nested property classes
Update `PropertyDescriptor.isParentTheSame` to consider the candidate
as well as all super classes.

Fixes gh-21626
2022-06-21 19:09:32 -07:00
dreis2211 cc91009b70 Use java.util.HexFormat where appropriate
See gh-31477
2022-06-21 17:02:39 +01: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 b687e1c7ee Use Runtime.version() instead of reflection
See gh-31444
2022-06-19 10:28:59 +02:00
dreis2211 a639685053 Remove obsolete Java compatibility code
See gh-31452
2022-06-19 10:22:23 +02:00
Johnny Lim 5d7d0d8047 Use 3.0.0 for Javadoc since tags
See gh-31448
2022-06-17 16:48:58 +02:00
Phillip Webb 657fa3e64e Merge branch '2.7.x'
Closes gh-31409
2022-06-16 15:36:29 -07:00
Phillip Webb 7c91ebb1b0 Merge branch '2.6.x' into 2.7.x
Closes gh-31408
2022-06-16 15:36:00 -07:00
Phillip Webb ae6311ddda Prevent Logback from accidentally being used in Log4J2LoggingSystemTests
Update `Log4J2LoggingSystemTests` to exclude Logback and include
'log4j-slf4j-impl'. The `ModifiedClassPathClassLoader` has also been
updated so that it no longer automatically excludes `log4j` artifacts,
instead we now use `@ClassPathExclusions` on the relevant tests.

Fixes gh-19365
2022-06-16 15:35:32 -07:00
Andy Wilkinson 4f3180540c Use Framework's MockSpringFactoriesLoader
Closes gh-31406
2022-06-16 15:40:03 +01:00
Andy Wilkinson d370d19e7a Merge branch '2.7.x'
Closes gh-31403
2022-06-16 12:14:52 +01:00
Andy Wilkinson 5e1cd28d3f Merge branch '2.6.x' into 2.7.x
Closes gh-31402
2022-06-16 12:14:28 +01:00
Lars Grefer e8a1a0399a Upgrade to Bouncycastle 1.71
Closes gh-31400
2022-06-16 12:14:06 +01:00
Phillip Webb d84557f1f9 Merge branch '2.7.x'
Closes gh-31396
2022-06-15 10:53:17 -07:00
Phillip Webb bcbcc53a09 Merge branch '2.6.x' into 2.7.x
Closes gh-31395
2022-06-15 10:51:40 -07:00
Phillip Webb b42f056ddb Don't close jar files early
Update `JarFile` and related classes so that `close()` is not longer
called early.

Prior to this commit, we would always immediately close the underlying
jar file to prevent file locking issues with our build. This causes
issues on certain JVMs when they attempt to verify a signed jar.

The file lock issues have now been solved by returning a custom input
stream from `JarUrlConnection` which captures and delegates the close
method.

Fixes gh-29356
2022-06-15 10:51:01 -07:00
Stephane Nicoll d5695c1931 Add resource hints for configuration properties
This commits introduces a RuntimeHintsRegistrar for configuration
properties. By default, it provides the necessary hint to load
application properties and yaml files in default locations.

Closes gh-31311
2022-06-15 10:15:27 +02:00
Stephane Nicoll 99f71941cd Merge branch '2.7.x'
Closes gh-31363
2022-06-13 15:55:21 +02:00
Stephane Nicoll 499f54a335 Merge branch '2.6.x' into 2.7.x
Closes gh-31362
2022-06-13 15:51:45 +02:00
Lars Grefer 8c9557f552 Enable Links for the Javadoc of the Gradle Plugins
See gh-31279
2022-06-13 15:51:08 +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 1ba1eff63a Merge branch '2.7.x' 2022-05-30 19:22:45 +01:00
Andy Wilkinson 430040415b Merge branch '2.6.x' into 2.7.x 2022-05-30 19:22:37 +01:00
Andy Wilkinson 0b6c147a87 Polish 2022-05-30 19:22:30 +01:00
Andy Wilkinson 12465ea6b7 Merge branch '2.7.x'
Closes gh-31214
2022-05-30 18:24:12 +01:00
Andy Wilkinson d1420b6abb Merge branch '2.6.x' into 2.7.x
Closes gh-31213
2022-05-30 18:24:00 +01:00
Andy Wilkinson da8dafe138 Make afterResolve hook used by bootJar and bootWar more robust
Previously, ResolvedDependencies used hasError on
ResolvedConfiguration to check that it was safe to work with all
of the resolved configuration's artifacts and their files. This
check is not sufficient as errors can still occur later on.

This commit updates ResolvedDependencies to use a lenient
configuration, thereby avoiding any problems that may be caused by
errors that occur after the hasError check.

Closes gh-30586
2022-05-30 18:19:47 +01:00
Andy Wilkinson d354c03e63 Merge branch '2.7.x'
Closes gh-31191
2022-05-27 15:58:57 +01:00
Andy Wilkinson 682ac53f32 Ensure that config processor runs with only AutoConfiguration
Fixes gh-31186
2022-05-27 15:58:00 +01: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 4bb5ba2bd0 Merge branch '2.7.x' 2022-05-26 18:26:52 +01:00
Andy Wilkinson 935d1264e0 Merge branch '2.6.x' into 2.7.x 2022-05-26 18:13:08 +01:00
Andy Wilkinson 3d203d0215 Polish 2022-05-26 17:30:39 +01:00
Andy Wilkinson 14af1bb2dc Polish 2022-05-26 16:54:31 +01:00
Andy Wilkinson 26b89bfc80 Remove redundant throws declarations from public APIs
Closes gh-31179
2022-05-26 16:00:47 +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
Andy Wilkinson b3a4982f31 Merge branch '2.6.x' into 2.7.x
Closes gh-31174
2022-05-26 14:01:23 +01:00
Andy Wilkinson cbf42dea14 Update deprecation messages to change removal version from 2.8 to 3.0
Closes gh-30903
2022-05-26 13:59:03 +01:00
Andy Wilkinson 003f747e77 Merge branch '2.7.x'
Closes gh-31170
2022-05-26 13:52:41 +01:00
Andy Wilkinson e617035dba Merge branch '2.6.x' into 2.7.x
Closes gh-31167
2022-05-26 13:45:52 +01:00
Andy Wilkinson 3e7bd582a3 Upgrade to Spring Java Format 0.0.33
Closes gh-31166
2022-05-26 13:22:23 +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
Phillip Webb ea41e89c6c Merge branch '2.5.x' into 2.6.x 2022-05-17 22:21:10 -07:00
Phillip Webb 7d2f1bafc0 Update copyright year of changed files 2022-05-17 22:20:05 -07:00
Phillip Webb 06f8041e4d Merge branch '2.7.x' 2022-05-17 21:50:42 -07:00
Phillip Webb d5d5997be7 Merge branch '2.6.x' into 2.7.x 2022-05-17 21:49:20 -07:00
Phillip Webb 99f5c781a5 Merge branch '2.5.x' into 2.6.x 2022-05-17 21:48:50 -07:00
Phillip Webb 350d27fe50 Polish code to use method references when possible 2022-05-17 21:16:42 -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 6c4fedb4a4 Revert "Logback 1.3 and SLF4J 2.0"
This reverts commit f39a080a0e that was
pushed prematurely.
2022-05-13 16:23:48 +01:00
Andy Wilkinson f39a080a0e Logback 1.3 and SLF4J 2.0 2022-05-13 14:48:20 +01:00
Andy Wilkinson 0ce6e437a9 Align AotGenerateTests with spring.factories changes in Framework 2022-05-11 11:08:26 +01:00
Andy Wilkinson 770cb840c3 Use more flexible SpringFactoriesLoader
Closes gh-30235

Co-authored-by: Madhura Bhave <bhavem@vmware.com>
Co-authored-by: Stephane Nicoll <snicoll@vmware.com>
2022-05-09 14:13:04 +01:00
Andy Wilkinson 293a3c9ec1 Fix arguments passed to AOT processing in Gradle plugin
See gh-30527
2022-05-06 11:18:01 +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
Andy Wilkinson fcf45d5c22 Add support for invoking AOT to the Gradle plugin
Closes gh-30527
2022-04-29 14:32:23 +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
Andy Wilkinson eacd8c04a5 Merge branch '2.7.x' 2022-04-25 15:03:52 +01:00
Andy Wilkinson 56690a7eb9 Merge branch '2.6.x' into 2.7.x
Closes gh-30791
2022-04-25 15:03:32 +01:00
Andy Wilkinson 409ec48e2a Merge branch '2.5.x' into 2.6.x
Closes gh-30790
2022-04-25 15:00:51 +01:00
Andy Wilkinson 193ef9a06d Package META-INF/services/ files beneath BOOT-INF/classes/
Closes gh-30413
2022-04-25 14:32:47 +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
Stephane Nicoll a4cccc98c6 Merge branch '2.7.x' 2022-04-19 09:37:08 +02:00
izeye ed412af138 Polish
See gh-30695
2022-04-19 09:34:28 +02:00
dreis2211 a63e730136 Remove unused private methods
See gh-30655
2022-04-19 08:45:44 +02:00
Andy Wilkinson 7e97073994 Merge branch '2.7.x' 2022-04-14 18:38:26 +01:00
Andy Wilkinson 74494f1d37 Merge branch '2.6.x' into 2.7.x
Closes gh-30671
2022-04-14 18:38:09 +01:00
Andy Wilkinson 1720290234 Merge branch '2.5.x' into 2.6.x
Closes gh-30670
2022-04-14 18:37:55 +01:00
Andy Wilkinson f7d181e65b Handle null additional properties more gracefully
Closes gh-30654
2022-04-14 18:36:15 +01:00
Scott Frederick 9aff0a998f Merge branch '2.7.x' 2022-04-13 16:09:48 -05:00
Scott Frederick f032690d0a Add support for CNB platform API 0.9
Fixes gh-30566
2022-04-13 16:09:32 -05: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 2a2c4be809 Merge branch '2.6.x' into 2.7.x
Closes gh-30510
2022-04-03 09:33:02 +02:00
Stephane Nicoll b2a4ae38e8 Merge branch '2.5.x' into 2.6.x
Closes gh-30509
2022-04-03 09:32:39 +02:00
izeye 40d0e38e76 Test Spring Boot Gradle Plugin against Gradle 7.4.2
See gh-30506
2022-04-03 09:29:50 +02: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
Andy Wilkinson 42ae55895d Simplify resolution of the application's main class name
Closes gh-30467
2022-03-29 15:51:22 +01:00
Andy Wilkinson fbb060e0fe Polish
See 5d8c1d9bd7.
2022-03-29 15:22:01 +01:00
Andy Wilkinson d9c2e7c85a Merge branch '2.7.x' 2022-03-29 15:07:08 +01:00
Andy Wilkinson 4722d9d17e Merge branch '2.6.x' into 2.7.x
Closes gh-30470
2022-03-29 15:06:56 +01:00
Andy Wilkinson 880d33f391 Merge branch '2.5.x' into 2.6.x
Closes gh-30469
2022-03-29 15:06:47 +01:00
Andy Wilkinson 05b7befc7a Fix javadoc of ResolveMainClassName setClasspath(Object)
Closes gh-30468
2022-03-29 15:05:54 +01:00
Andy Wilkinson 5d8c1d9bd7 Merge branch '2.7.x' 2022-03-29 14:30:42 +01:00
Andy Wilkinson 2f3ae02385 Merge branch '2.6.x' into 2.7.x
Closes gh-30466
2022-03-29 14:24:42 +01:00
Andy Wilkinson 8f985474a6 Merge branch '2.5.x' into 2.6.x
Closes gh-30465
2022-03-29 14:24:25 +01:00
Andy Wilkinson d574563616 Document @ConstructorBinding and @DefaultValue with records
Closes gh-30460
2022-03-29 14:14:28 +01:00
Andy Wilkinson 98678ed415 Merge branch '2.7.x' 2022-03-15 17:36:23 +00:00
Andy Wilkinson b4cbcd797e Merge branch '2.6.x' into 2.7.x
Closes gh-30218
2022-03-15 17:36:08 +00:00
Andy Wilkinson c4d2602a3e Merge branch '2.5.x' into 2.6.x
Closes gh-30217
2022-03-15 17:34:53 +00:00
Octavia Togami 264a6888a9 Refactor code to avoid using internal LazyPublishArtifact
See gh-30209
2022-03-15 17:09:15 +00:00
Andy Wilkinson 9bf77b1a06 Merge branch '2.7.x' 2022-03-15 15:31:03 +00:00
Andy Wilkinson 4935c11a07 Merge branch '2.6.x' into 2.7.x
Closes gh-30215
2022-03-15 15:30:40 +00:00
Andy Wilkinson 464fce621d Merge branch '2.5.x' into 2.6.x
Closes gh-30213
2022-03-15 15:30:06 +00:00
Andy Wilkinson f11ddb4bd7 Prevent eager creation of bootWar task
Previously, querying the artifact's extension in
SinglePublishedArtifact would result in eager creation of the task
that creates the artifact. Typically, this is the bootWar task.

Instead of querying the extension, this commit reworks
SinglePublishedArtifact and its callers to call separate methods for
jar and war artifacts so that the extension check is no longer
required.

Tests have been added to ensure that running help does not trigger
any unexpected task creation. The tests' assertions tolerate some
variation in behavior that depend on the version of Gradle and
whether the configuration cache is enabled.

Closes gh-30211
2022-03-15 15:28:59 +00: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
Scott Frederick 040afdeafe Merge branch '2.7.x' 2022-03-11 15:20:38 -06:00
Scott Frederick 93622d18eb Merge branch '2.6.x' into 2.7.x
Closes gh-30195
2022-03-11 15:20:15 -06:00
Scott Frederick 35a9a7fee2 Ignore deprecation warnings in Paketo system tests
Closes gh-30194
2022-03-11 15:19:53 -06:00
Andy Wilkinson 2600bf4719 Merge branch '2.6.x' into 2.7.x
Closes gh-30142
2022-03-09 18:39:45 +00:00
Andy Wilkinson 382c6972ec Merge branch '2.5.x' into 2.6.x
Closes gh-30141
2022-03-09 18:39:32 +00:00
Andy Wilkinson 5264fb3d1e Test our Gradle Plugin against Gradle 7.4.1
Closes gh-30139
2022-03-09 18:09:07 +00:00
Andy Wilkinson e9d2ec507e Merge branch '2.7.x' 2022-03-09 15:17:25 +00:00
Andy Wilkinson d552f49128 Merge branch '2.7.x' 2022-03-09 12:53:15 +00:00
Andy Wilkinson 83de1995c7 Merge branch '2.6.x' into 2.7.x
Closes gh-30130
2022-03-09 12:44:53 +00:00
Andy Wilkinson b0e4cabdd8 Merge branch '2.5.x' into 2.6.x
Closes gh-30123
2022-03-09 12:37:45 +00:00
Andy Wilkinson 20d21d4e58 Set up CI with JDK 18
Closes gh-30104
2022-03-09 12:28:34 +00:00
Madhura Bhave 5960d2dba1 Merge branch '2.7.x' into main 2022-03-07 21:54:10 -08:00
Madhura Bhave 9628507756 Merge branch '2.6.x' into 2.7.x
Closes gh-30094
2022-03-07 21:53:59 -08:00
Madhura Bhave d131003456 Merge branch '2.5.x' into 2.6.x
Closes gh-30093
2022-03-07 21:53:44 -08:00
Madhura Bhave 480ccc6175 Clarify devtools documentation when using with build plugins
Closes gh-17851
2022-03-07 21:52:43 -08:00
Moritz Halbritter 24a68fc595 Merge branch '2.7.x' 2022-03-07 14:12:19 +01:00
Moritz Halbritter d95dc75de9 Merge branch '2.6.x' into 2.7.x 2022-03-07 14:11:22 +01:00
Moritz Halbritter e980a53399 Merge branch '2.5.x' into 2.6.x 2022-03-07 14:11:11 +01:00
Moritz Halbritter f3eb90046f Remove @Repeatable support for @DisabledOnOs
We'll add it back again when we need it, and delay the naming issue.

See gh-30082
2022-03-07 14:10:13 +01:00
Moritz Halbritter 74fe5735d9 Polish 2022-03-07 13:28:41 +01:00
Moritz Halbritter a1b1377733 Merge branch '2.7.x' 2022-03-07 13:23:06 +01:00
Moritz Halbritter 50d766020c Merge branch '2.6.x' into 2.7.x
Closes gh-30084
2022-03-07 13:22:53 +01:00
Moritz Halbritter 564555347f Merge branch '2.5.x' into 2.6.x
Closes gh-30083
2022-03-07 13:22:34 +01:00
Moritz Halbritter be38311c5d Disable incompatible tests on Linux AArch64
- Adds a new @DisableOnOs annotation, which is inspired from JUnit5s
  @DisableOnOs annotation. This new annotation supports the architecture
  and is repeatable

Closes gh-30082
2022-03-07 13:22:17 +01:00
Andy Wilkinson 5ee3fdab77 Polish "Allow @DefaultValue to be used on record components"
See gh-29010
2022-03-04 14:52:20 +00:00
Pavel Anisimov 976ed90cd7 Allow @DefaultValue to be used on record components
See gh-29010
2022-03-04 12:12:08 +00:00
Andy Wilkinson e2d0b348e3 Merge branch '2.7.x' 2022-03-03 20:36:13 +00:00
Andy Wilkinson 4459fb46be Merge branch '2.6.x' into 2.7.x
Closes gh-30058
2022-03-03 20:34:46 +00:00
Andy Wilkinson 2ba8b490a0 Merge branch '2.5.x' into 2.6.x
Closes gh-30057
2022-03-03 20:34:34 +00:00
Andy Wilkinson e7566e968e Use configuration avoidance APIs in Gradle plugin's docs
Closes gh-30056
2022-03-03 20:27:46 +00:00
Andy Wilkinson a5ec85bede Merge branch '2.7.x' 2022-03-02 15:24:23 +00:00
Andy Wilkinson b89c29f29c Merge branch '2.6.x' into 2.7.x
Closes gh-30037
2022-03-02 15:24:10 +00:00
Andy Wilkinson ea729fc1c6 Merge branch '2.5.x' into 2.6.x
Closes gh-30036
2022-03-02 15:21:43 +00:00
Andy Wilkinson 4073cf8334 Only apply special handling of META-INF to jar files
The changes for gh-28562 attempted to align the Gradle plugin's
handling of META-INF with the Maven plugin's behavior. Unfortunately,
they want too far, applying the handling to both jar and war files
when the Maven plugin only applies it to jar files.

This commit reworks the changes so that they only apply to jar files.

Closes gh-30026
2022-03-02 15:19:09 +00:00
Andy Wilkinson 89b2015adf Merge branch '2.7.x' 2022-03-01 17:49:48 +00:00
Andy Wilkinson 07b87668a4 Merge branch '2.6.x' into 2.7.x
Closes gh-30023
2022-03-01 17:49:31 +00:00
Andy Wilkinson 3630952f7b Merge branch '2.5.x' into 2.6.x
Closes gh-30022
2022-03-01 17:49:14 +00:00
Andy Wilkinson a265f150ac Improve parsing of numeric default values
Previously, all integral numbers were parsed as integers. This
caused two problems:

1. Compilation would fail if the default value for a long wasn't a
   valid integer.
2. The default value for a byte or short could be out of range,
   resulting in the generation of invalid metadata and an error
   that could have been caught at compile time not being caught
   until runtime.

This commit updates the parsing of all numeric values to use the
parse method of the target primitive type. For example,
Short.parseShort(String) is now used to parse a short.

Fixes gh-30020
2022-03-01 17:38:19 +00:00
Phillip Webb 5454e2e26a Merge branch '2.7.x' 2022-02-23 23:02:59 -08:00
Phillip Webb 9f00c3acf5 Polish 2022-02-23 21:44:43 -08:00
Phillip Webb adfaa8f778 Merge branch '2.6.x' into 2.7.x 2022-02-23 21:44:37 -08:00
Phillip Webb 1a3841f74e Polish 2022-02-23 21:44:14 -08:00
Scott Frederick df549190b5 Merge branch '2.7.x' 2022-02-23 17:56:55 -06:00
Scott Frederick ee4e7bb923 Merge branch '2.6.x' into 2.7.x
Closes gh-29982
2022-02-23 17:56:34 -06:00
Scott Frederick 59ffe28639 Ignore buildpack deprecation warnings in Paketo system tests
Fixes gh-29885
2022-02-23 17:56:21 -06:00
Moritz Halbritter 54f1058d63 Merge branch '2.7.x' 2022-02-23 16:10:49 +01:00
Moritz Halbritter fd36215d72 Omit empty values for AutoConfigureAfter and AutoConfigureBefore
As @AutoConfiguration is now meta-annotated with @AutoConfigureAfter
and @AutoConfigureBefore, the generated property files have a lot of
superfluous lines in the format <class>.AutoConfigureAfter= and
<class>.AutoConfigureBefore=.

One can now configure in the annotation processor for each property key
if empty values should be omitted. This is currently only activated for
AutoConfigureAfter and AutoConfigureBefore

See gh-29907
2022-02-23 15:39:46 +01:00
Moritz Halbritter 7872f61bfc Add @AutoConfiguration annotation support to the autoconfigure-processor
See gh-29907
2022-02-23 15:39:46 +01:00
Andy Wilkinson 6051a10d4a Merge branch '2.7.x' 2022-02-23 09:01:26 +00:00
Andy Wilkinson 1ae46dee6d Merge branch '2.6.x' into 2.7.x
Closes gh-29967
2022-02-23 08:59:33 +00:00
Andy Wilkinson 4f8a18fa0a Merge branch '2.5.x' into 2.6.x
Closes gh-29966
2022-02-23 08:59:16 +00:00
Andy Wilkinson 9c9e04b8e4 Use mainClass rather than deprecated main in BootRun examples
Closes gh-29965
2022-02-23 08:59:04 +00:00
Phillip Webb ff4b92a3ba Update copyright year of changed files 2022-02-16 20:44:54 -08:00
Phillip Webb f4b849ec95 Merge branch '2.7.x' 2022-02-16 20:27:18 -08:00
Phillip Webb 26512f8ac6 Merge branch '2.6.x' into 2.7.x 2022-02-16 20:24:59 -08:00
Phillip Webb 5b4ec32645 Merge branch '2.5.x' into 2.6.x 2022-02-16 18:56:12 -08:00
Phillip Webb c86b1330cf Update copyright year of changed files 2022-02-16 17:56:19 -08:00
Phillip Webb 9ab1b669d0 Polish 2022-02-16 17:56:07 -08:00
Madhura Bhave bf1ed5f2f8 Update copyright header on changed files 2022-02-16 14:24:22 -08:00
Madhura Bhave 44b88cc88c Allow @ConstructorBinding to be optional
This commit makes @ConstructorBinding optional for a type
that has a single parameterized constructor. An @Autowired annotation
on any of the constructors indicates that the type should not be constructor
bound.

Since @ConstructorBinding is now deduced for a single parameterized constructor,
the annotation is no longer needed at the type level.

Closes gh-23216
2022-02-16 13:47:26 -08:00
Andy Wilkinson d62d5a09a1 Merge branch '2.7.x' 2022-02-16 14:59:55 +00:00
Andy Wilkinson ba73436ea8 Merge branch '2.6.x' into 2.7.x
Closes gh-29881
2022-02-16 14:59:39 +00:00
Andy Wilkinson 86c75b7a5c Merge branch '2.5.x' into 2.6.x
Closes gh-29880
2022-02-16 14:58:58 +00:00
Andy Wilkinson 03352b0a8c Prohibit use of APIs that prevent task configuration avoidance
Closes gh-29809
2022-02-16 14:57:47 +00:00
Andy Wilkinson d7fa2e2e8f Merge branch '2.7.x' 2022-02-16 12:01:47 +00:00
Andy Wilkinson 8e4484acea Merge branch '2.6.x' into 2.7.x
Closes gh-29878
2022-02-16 12:01:31 +00:00
Andy Wilkinson ce4beae12f Merge branch '2.5.x' into 2.6.x
Closes gh-29877
2022-02-16 12:01:15 +00:00
izeye 6bd6f590d3 Fix Javadoc since for ResolveMainClassName#setClasspath(Object)
See gh-29826
2022-02-16 12:00:31 +00:00
Andy Wilkinson 9808e80ab4 Merge branch '2.7.x' 2022-02-15 12:31:38 +00:00
Andy Wilkinson a513dbb797 Merge branch '2.6.x' into 2.7.x
Closes gh-29818
2022-02-15 12:24:38 +00:00
Andy Wilkinson f134358c78 Merge branch '2.5.x' into 2.6.x
Closes gh-29817
2022-02-15 12:24:05 +00:00
Andy Wilkinson c84b35c460 Polish "Avoid using Gradle APIs that trigger eager task creation"
See gh-29762
2022-02-15 08:36:29 +00:00
Lars Grefer 7cd87acd73 Avoid using Gradle APIs that trigger eager task creation
See gh-29762
2022-02-15 08:24:14 +00:00
Andy Wilkinson e52a5490bf Merge branch '2.7.x' 2022-02-14 12:39:26 +00:00
Andy Wilkinson 25e75c60ee Merge branch '2.6.x' into 2.7.x
Closes gh-29806
2022-02-14 12:32:47 +00:00
Andy Wilkinson 85d14cdb2c Merge branch '2.5.x' into 2.6.x
Closes gh-29805
2022-02-14 12:32:32 +00:00
Andy Wilkinson 1fd4a4d86b Remove code related to unsupported versions of Gradle
Closes gh-29681
2022-02-14 12:31:21 +00:00
Scott Frederick 85ea6a1b8f Merge branch '2.7.x' into main 2022-02-11 15:31:33 -06:00
Scott Frederick db6ef0e802 Exclude duplicate properties file when building a jar from jars
See gh-29670 and gh-23955
2022-02-11 15:31:20 -06:00
Andy Wilkinson 68bdef2cd0 Merge branch '2.7.x' 2022-02-11 13:35:03 +00:00
Andy Wilkinson da61545925 Merge branch '2.6.x' into 2.7.x
Closes gh-29749
2022-02-11 13:34:51 +00:00
Andy Wilkinson 646bb05c8d Merge branch '2.5.x' into 2.6.x
Closes gh-29748
2022-02-11 13:34:40 +00:00
Andy Wilkinson c3eee4ad68 Align Gradle's plugin's META-INF repackaging with Maven plugin's
Closes gh-28562
2022-02-11 13:32:52 +00:00
Andy Wilkinson fc23310144 Merge branch '2.6.x' into 2.7.x
Closes gh-29734
2022-02-10 17:13:56 +00:00
Andy Wilkinson d6ebce4ccf Merge branch '2.5.x' into 2.6.x
Closes gh-29733
2022-02-10 17:02:39 +00:00
Andy Wilkinson 6901f6dab2 Test our Gradle plugin against Gradle 7.4
Closes gh-29673
2022-02-10 16:57:13 +00:00
Andy Wilkinson 52ed7f74a0 Merge branch '2.7.x' 2022-02-10 16:01:18 +00:00
Andy Wilkinson 4f724f14d3 Polish "Override available() in RandomAccessDataFile's InputStream"
See gh-29295
2022-02-10 15:25:01 +00:00
Gnaily 49bf620f4b Override available() in RandomAccessDataFile's InputStream
See gh-29295
2022-02-10 15:23:19 +00:00
Andy Wilkinson 067a8dd3ec Raise the minimum supported version of Gradle to 7.4
Closes gh-29674
2022-02-09 15:02:17 +00:00
Moritz Halbritter 7c99fbc785 Merge branch '2.7.x' 2022-02-09 14:10:56 +01:00
Moritz Halbritter 94d095ce1a Merge branch '2.6.x' into 2.7.x
Closes gh-29692
2022-02-09 14:10:41 +01:00
Moritz Halbritter 079ea41d6d Merge branch '2.5.x' into 2.6.x
Closes gh-29691
2022-02-09 14:09:33 +01:00
Moritz Halbritter 262db65a38 Ignore invalid stream types when reading log update events
See gh-29675
2022-02-09 14:03:02 +01:00
Andy Wilkinson 01cc07978b Merge branch '2.7.x' 2022-02-09 11:35:13 +00:00
Andy Wilkinson 665e1f665e Merge branch '2.6.x' into 2.7.x
Closes gh-29688
2022-02-09 11:35:03 +00:00
Andy Wilkinson b46eba16e6 Merge branch '2.5.x' into 2.6.x
Closes gh-29687
2022-02-09 11:34:51 +00:00
Andy Wilkinson 48fe1513fe Test documented build script snippets when they change
Closes gh-29684
2022-02-09 11:33:40 +00:00
Andy Wilkinson 41d49717af Merge branch '2.7.x' 2022-02-09 11:32:54 +00:00
Andy Wilkinson 1e16c2f229 Merge branch '2.6.x' into 2.7.x
Closes gh-29686
2022-02-09 11:32:43 +00:00
Andy Wilkinson c0664efa86 Merge branch '2.5.x' into 2.6.x
Closes gh-29685
2022-02-09 11:32:32 +00:00
Mike Partridge 2e9dcdd96d Replace use of classifier with archiveClassifier
classifier has been deprecated so the docs should be using its
replacement, archiveClassifier, instead.

See gh-29611
2022-02-09 11:31:22 +00:00
Andy Wilkinson 96118c88db Merge branch '2.7.x' 2022-02-08 19:23:53 +00:00