Commit Graph

2612 Commits (5d6a50714259acaa35454ee6d5815dea1e121f3d)

Author SHA1 Message Date
peter-janssen 9a74c862dd Fix documented Java compiler level
See gh-33505
2 years ago
Craig Andrews 703935612f Update instead of replace environment in bootBuildImage documentation
Closes gh-32886
See gh-33424
2 years ago
Scott Frederick 9ed8b25e6b Make AOT goals release option mutually exclusive with source and target
Fixes gh-33382
2 years ago
Moritz Halbritter c6536c54d8 Write native-image argfile only if there are excludes
Refactors duplicate logic in BootZipCopyAction and Packager into
separate classes.

Closes gh-33363

Co-authored-by: Phillip Webb <pwebb@vmware.com>
2 years ago
Andy Wilkinson d88f968d22 Merge branch '2.7.x'
Closes gh-33403
2 years ago
Andy Wilkinson 2da8bc1f3b Reduce Gradle versions used for compatibility testing
Closes gh-33401
2 years ago
Andy Wilkinson abcbac92ef Merge branch '2.6.x' into 2.7.x
Closes gh-33343
2 years ago
Andy Wilkinson ebfbf4a412 Stop testing Gradle plugin against Gradle 7.6 RCs
Closes gh-33342
2 years ago
Stephane Nicoll 75b74637f6 Make sure the 'native' profile can be used in a multi-modules project
This commit updates the 'native' profile so that it provides plugin
management for the plugins involved in building a native image, rather
than forcing their executions.

This commit also update the Maven Plugin reference guide to describe
what the native profile does, and how it can be used in various
scenarios.

Closes gh-33184
2 years ago
Stephane Nicoll a7f57091a6 Add support for building an image without forking the Maven lifecycle
This commit adds a new "build-image-no-fork" goal that behaves exactly
as "build-image", except it does not fork the lifecycle. This is a
common pattern in maven plugins where a goal can be invoked on the
command-line and conveniently make sure that a certain phase has run
prior to its execution.

The new goal is suitable for binding the goal in a phase, typically
package, and rely on it rather than invoking the goal. This makes sure
that the lifecycle is forked, which would run everything again.

Closes gh-26455
2 years ago
Andy Wilkinson b8142d168b Merge branch '2.7.x'
Closes gh-33269
2 years ago
Andy Wilkinson 9879538c02 Merge branch '2.6.x' into 2.7.x
Closes gh-33268
2 years ago
Andy Wilkinson e860efca65 Test Gradle plugin against 7.6-rc-3
Closes gh-33267
2 years ago
Moritz Halbritter 9206b6cda1 Add warning to not disable jar task when building native images
Closes gh-33238
2 years ago
Andy Wilkinson 931cc8a508 Merge branch '2.7.x'
Closes gh-33250
2 years ago
Johnny Lim 6027508cf7 Polish
See gh-33108
2 years ago
Scott Frederick c28c614c47 Set Java source and target when compiling AOT generated sources
When compiling AOT-generated sources in the Maven plugin `process-aot`
and `process-test-aot` goals, the Java compiler should be provided
with the same `--source`, `--target`, and `--release` configuration
values as the Maven compiler plugin uses to compile main sources.

Fixes gh-33112
2 years ago
Scott Frederick 11652bd8e6 Add compilerArguments parameter to process-aot Maven goal
This commit adds a `compilerArguments` parameter to the Maven plugin
`process-aot` and `process-test-aot` goals to allow the user to
configure the command used to compile the AOT-generated sources.

Fixes gh-33012
2 years ago
Andy Wilkinson 112bed886c Merge branch '2.7.x'
Closes gh-33085
2 years ago
Andy Wilkinson b1494d4a39 Merge branch '2.6.x' into 2.7.x
Closes gh-33084
2 years ago
Andy Wilkinson 6423535f67 Delete temp directory after MavenBuild has exected
Closes gh-33083
2 years ago
Andy Wilkinson 843493d915 Merge branch '2.7.x'
Closes gh-33075
2 years ago
Andy Wilkinson 00d22c9fc5 Merge branch '2.6.x' into 2.7.x
Closes gh-33074
2 years ago
Andy Wilkinson eed86c0d0a Test Boot's Gradle plugin against Gradle 7.6-rc-2
Closes gh-33073
2 years ago
Andy Wilkinson 6940e348a7 Try to fix NativeImagePluginActionIntegrationTests on Windows 2 years ago
Andy Wilkinson b67c427259 Upgrade to Servlet 6.0 and related EE 10 specs
Co-authored-by: Phillip Webb <pwebb@vmware.com>

Closes gh-33036
Closes gh-33037
Closes gh-33038
Closes gh-33039
Closes gh-33040
Closes gh-33041
Closes gh-33042
Closes gh-33043
2 years ago
Andy Wilkinson fce6016399 Merge branch '2.7.x'
See gh-33016
2 years ago
Andy Wilkinson 7c0f397129 Merge branch '2.6.x' into 2.7.x
See gh-33015
2 years ago
Andy Wilkinson ac6ad7c0f1 Fix ModifiedClassPathExtension with parameterized tests
Closes gh-33014
2 years ago
Phillip Webb 3bd945766f Merge branch '2.7.x' 2 years ago
Phillip Webb b4283d45c5 Merge branch '2.6.x' into 2.7.x 2 years ago
Phillip Webb d2cceb6b77 Polish 2 years ago
Phillip Webb 262c30ddc1 Improve error message when DirtiesUrlFactoriesExtension fails
See gh-33019
2 years ago
Phillip Webb 34b4ae8e05 Merge branch '2.7.x'
Closes gh-33019
2 years ago
Phillip Webb 2ab1f49442 Merge branch '2.6.x' into 2.7.x
Closes gh-33018
2 years ago
Phillip Webb caf46043c6 Add @DirtiesUrlFactories annotation
Add `@DirtiesUrlFactories` annotation that can be used to reset URL
factories.

Closes gh-33017
2 years ago
Phillip Webb fb3c095e35 Merge branch '2.7.x'
Closes gh-33016
2 years ago
Phillip Webb 948893f36d Merge branch '2.6.x' into 2.7.x
Closes gh-33015
2 years ago
Phillip Webb d4cc8fc3a6 Support modified classpath on methods and parameterized tests
Update `ModifiedClassPathExtension` and related classes so that
annotations can be used directly on test methods, or on classes
passed into parameterized tests.

Closes gh-33014
2 years ago
Andy Wilkinson 443d80ce6e Polish
See gh-32924
2 years ago
Andy Wilkinson fe8644cc59 Fail more elegantly when GraalVM version is too old
Closes gh-32924
2 years ago
Andy Wilkinson 2d5a3eac51 Include AOT-generated classes in native test binary
Closes gh-32940
2 years ago
Scott Frederick 67af4c0a65 Polish documentation 2 years ago
Scott Frederick bb684cc0ad Add support for CNB platform API 0.10
Fixes gh-32949
2 years ago
Andy Wilkinson 9ccc1e8d62 Merge branch '2.7.x'
Closes gh-32988
2 years ago
Andy Wilkinson a3870f8da7 Merge branch '2.6.x' into 2.7.x
Closes gh-32987
2 years ago
Andy Wilkinson beb62be843 Test Boot's Gradle plugin against Gradle 7.6-rc-1
Closes gh-32933
2 years ago
Andy Wilkinson 519250cacf Polish Gradle tasks for AOT processing
Closes gh-32946
2 years ago
Andy Wilkinson b192c29edb Use AOT's outputs to configure source set's inputs
Closes gh-32919
2 years ago
Andy Wilkinson 0103e24bbb Stop configuring AOT-generated classes as output of AOT source set
Closes gh-32940
2 years ago
Andy Wilkinson 2bb9b2640e Separate classpath of AOT tasks from source sets they populate
Closes gh-32930
2 years ago
Johnny Lim 5067aab552 Polish
See gh-32840
2 years ago
Phillip Webb a59b6cb1f3 Polish 2 years ago
Phillip Webb 4be3218cb6 Merge branch '2.7.x' 2 years ago
Phillip Webb c8676a81de Merge branch '2.6.x' into 2.7.x 2 years ago
Phillip Webb d7ac20cd6c Update copyright year of changed files 2 years ago
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
2 years ago
Andy Wilkinson 99edda735e Polish 2 years ago
Andy Wilkinson 9e6259cd37 Remove development-only dependencies from native image classpath
Fixes gh-32843
2 years ago
Andy Wilkinson eebe23a081 Make all AOT-generated resources available to native-compile
Fixes gh-32841
2 years ago
Phillip Webb d8c4aec946 Merge branch '2.6.x' into 2.7.x 2 years ago
Phillip Webb 1a14f39f83 Polish 2 years ago
Scott Frederick b78b22b6f6 Allow Gradle task property to be set with String or enum value
See gh-32769
2 years ago
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
2 years ago
Andy Wilkinson 26e747d2db Fix package tangle in spring-boot-gradle-plugin
Closes gh-32814
2 years ago
Scott Frederick 8acf9afccb Use String instead of enum for Gradle task Property
See gh-32769
2 years ago
Madhura Bhave ce3c933f77 Adapt to Spring Security changes
Closes gh-32604
2 years ago
Andy Wilkinson 8621be6bba Make consistent use of Property for Gradle task configuration
Closes gh-32769
2 years ago
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
2 years ago
Stephane Nicoll 4b778ff4c1 Polish Maven documentation to mention native profile 2 years ago
Andy Wilkinson 2dacddb4d7 Make bootBuildImage produce native image when NBT plugin is applied
Closes gh-32768
2 years ago
Andy Wilkinson 2c756ea874 Use collectReachabilityMetadata task to add metadata to bootJar
Closes gh-32737
2 years ago
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
2 years ago
Phillip Webb 754f39e6ef Polish 2 years ago
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
2 years ago
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
2 years ago
Andy Wilkinson 3082b0c5bf Add a section on AOT to the Gradle plugin's docs
Closes gh-32750
2 years ago
Andy Wilkinson 3d5c864bc9 Merge branch '2.6.x' into 2.7.x
Closes gh-32758
2 years ago
Andy Wilkinson dade5ec3aa Test against Gradle 6.9.3
Closes gh-32757
2 years ago
Andy Wilkinson ff16f6d6c6 Work around configuration cache problem in NBT Gradle Plugin
See gh-32752
See graalvm/native-build-tools#338
2 years ago
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
2 years ago
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
2 years ago
Scott Frederick 3ea18f07fa Polish "Use NBT plugin version from gradle.properties in image tests"
See gh-32643
2 years ago
Phillip Webb 7e8ed075c0 Merge branch '2.7.x'
Closes gh-32682
2 years ago
Phillip Webb ed01a77a99 Merge branch '2.6.x' into 2.7.x
Closes gh-32681
2 years ago
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
2 years ago
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
2 years ago
Andy Wilkinson 808e0be552 Merge branch '2.7.x'
Closes gh-32679
2 years ago
Andy Wilkinson 1b604e30f7 Merge branch '2.6.x' into 2.7.x
Closes gh-32678
2 years ago
Andy Wilkinson 215eb96355 Improve error handling in SpringBootPlugin
Closes gh-32677
2 years ago
Andy Wilkinson d351086a06 Adapt to breaking changes to AOT processing entry points
See gh-32550
2 years ago
Andy Wilkinson 0e23fbe30b Use Neo4j 4.4.11 for integration testing
See gh-32620
2 years ago
Andy Wilkinson 188cac6540 Protect against null run process customizer
See 0ee277b8c3
See gh-32607
2 years ago
Andy Wilkinson 0ee277b8c3 Ensure that run mojo's child process is killed when Maven is killed
Fixes gh-32607
2 years ago
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
2 years ago
Stephane Nicoll 39cf17ed81 Add missing integration test for profile management in process-aot 2 years ago
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
2 years ago
Scott Frederick d25a99692f Replace Spring Boot TestCompiler with Spring Framework's version
See gh-31266
2 years ago
Stephane Nicoll e2dd0ef9a4 Adapt AotProcessor to changes in Spring Framework
Closes gh-32560
2 years ago
Andy Wilkinson 51df7813a5 Remove code deprecated in 2.x and add since and forRemoval attributes
Closes gh-32548
Closes gh-32549
2 years ago
dreis2211 65ef8fc51a Use ByteArrayOutputStream.toString where possible
See gh-32534
2 years ago
Andy Wilkinson 17953eeb33 Merge branch '2.7.x'
Closes gh-32544
2 years ago
Andy Wilkinson 3ef633b096 Merge branch '2.6.x' into 2.7.x
Closes gh-32543
2 years ago
Andy Wilkinson 84a25c7dcf Configure Log4j2 classpath overrides consistently
Closes gh-32537
2 years ago
dreis2211 f0b4a65546 Avoid usage of StringBuffer where possible
See gh-32519
2 years ago
Andy Wilkinson 0bfa9cd704 Upgrade to Logback 1.4 and SLF4J 2.0
Closes gh-12649
2 years ago
Andy Wilkinson 0f44e69995 Merge branch '2.7.x'
Closes gh-32500
2 years ago
Andy Wilkinson 5124ae94ae Merge branch '2.6.x' into 2.7.x
Closes gh-32499
2 years ago
Andy Wilkinson cfac7f55a4 Correct annotations on BootBuildImage's file-based inputs
Closes gh-32495
2 years ago
Andy Wilkinson f67db3d9ad Move spring-boot-cli into spring-boot-tools
Closes gh-32492
2 years ago
Andy Wilkinson 4a05230d5d Move spring-boot-properties-migrator into spring-boot-tools
Closes gh-32491
2 years ago
Madhura Bhave afce559050 Remove unused dependency from Maven integration test 2 years ago
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
2 years ago
Scott Frederick f9c341c75a Revert "Generate the AutoConfiguration.imports file from annotations"
This reverts commit da4de7d67d.
2 years ago
Scott Frederick d62d7ca75d Revert "Generate ManagementContextConfiguration.imports file from annotations"
This reverts commit 6b3b0dd3a6.
2 years ago
Scott Frederick 1f53eb7df9 Revert "Sort the contents of generated imports files"
This reverts commit 95e62b7ff8.
2 years ago
Scott Frederick 910e9c9fcc Revert "Fix windows build"
This reverts commit 9fe24fe692.
2 years ago
Andy Wilkinson 4a80b36160 Configure native image classpath outside of task realisation
Closes gh-32465
2 years ago
Andy Wilkinson 6175c4210d Fix skipping of processAot when there is no main source
See gh-32424
2 years ago
Andy Wilkinson fa81e8ca79 Skip processAot and processTestAot if there is no main or test code
Closes gh-32424
2 years ago
Andy Wilkinson e8aa5680d6 Support file-based reachability metadata repositories
See gh-32408
2 years ago
Andy Wilkinson 8323f24ccc Make classes generated by AOT test processing available to nativeTest
Closes gh-32428
2 years ago
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
2 years ago
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
2 years ago
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
2 years ago
Stephane Nicoll 88f2b33cc1 Add AOT-generated classes to classpath of the compiler
See gh-32304
2 years ago
Andy Wilkinson 867c49337a Add AOT-generated classes to classpath of AOT JavaCompile tasks
See gh-32304
2 years ago
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.
2 years ago
Andy Wilkinson aafceb3868 Merge branch '2.7.x'
Closes gh-32285
2 years ago
Andy Wilkinson f17df7bf30 Merge branch '2.6.x' into 2.7.x
Closes gh-32284
2 years ago
Andy Wilkinson 23c2f73b3f Update tests to allow them to run on Java 19
Closes gh-32280
2 years ago
Andy Wilkinson 144fdaa703 Merge branch '2.6.x' into 2.7.x
Closes gh-32283
2 years ago
Andy Wilkinson 78f4242e46 Build with Gradle 7.5 while still supporting Gradle 6.8+
Closes gh-32281
2 years ago
Phillip Webb 46be4a3f30 Merge branch '2.7.x' 2 years ago
Phillip Webb e88a682220 Merge branch '2.6.x' into 2.7.x 2 years ago
Phillip Webb 85697ac482 Update copyright year of changed files 2 years ago
Stephane Nicoll 5e24b5a110 Stop using RuntimeHintsUtils#registerAnnotation 2 years ago
Andy Wilkinson 3dfe28c9f1 Ensure that a test engine is available to AOT test processing
See gh-32192
2 years ago
Andy Wilkinson cf84ae7ad8 Exclude non-existent test classes dirs from AOT test processing
See gh-32192
2 years ago
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
2 years ago
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
2 years ago
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
2 years ago
Andy Wilkinson fc979397be Polish SpringBootAotPlugin 2 years ago
Andy Wilkinson fd28f6d1d6 Add Gradle plugin support for processing test contexts ahead-of-time
Closes gh-32192
2 years ago
Andy Wilkinson 746ed84120 Polish ProcessTestAotMojo 2 years ago
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
2 years ago
Phillip Webb c0b3d36205 Rename 'generateAotSources' task to processAot'
See gh-31918
2 years ago
Phillip Webb 2f6354f633 Rename 'aot-generate' goal to process-aot'
See gh-31918
2 years ago
Scott Frederick c0cbaa1460 Merge branch '2.7.x' 2 years ago
Scott Frederick 257e236b06 Fix image-building unit tests on Windows
See gh-32000
2 years ago
Stephane Nicoll c67010ddd1 Make test more robust 2 years ago
Scott Frederick 2cdaab59f6 Merge branch '2.7.x'
Closes gh-32122
2 years ago
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
2 years ago
Phillip Webb 07c0a8bced Fix SecurityManager deprecation issues
See gh-32086
2 years ago
Phillip Webb 4ec2e357d9 Merge branch '2.7.x'
See gh-32086
2 years ago
Phillip Webb 60e1cc510c Merge branch '2.6.x' into 2.7.x
See gh-32085
2 years ago
Phillip Webb bd74344025 Revert "Don't close jar files early"
This reverts commit b42f056ddb.
2 years ago
Phillip Webb 674022d401 Revert "Don't close nested jars or wrapper when parent is closed"
This reverts commit 360eb027be.
2 years ago
Stephane Nicoll 2e3c3efd44 Merge branch '2.7.x'
Closes gh-32098
2 years ago
Stephane Nicoll 1c6624db44 Merge branch '2.6.x' into 2.7.x
Closes gh-32097
2 years ago
Stephane Nicoll e94ddfa589 Polish "Explicit error message if source is not an archive"
See gh-31997
2 years ago
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
2 years ago
Phillip Webb ee2bd9e065 Merge branch '2.7.x'
Closes gh-32086
2 years ago
Phillip Webb ef7aac8c14 Merge branch '2.6.x' into 2.7.x
Closes gh-32085
2 years ago
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
2 years ago
Andy Wilkinson a8ae7a1e44 Fix Gradle AOT integration test on Windows
See gh-31970
2 years ago
Stephane Nicoll 4a00d76b85 Adapt integration tests to proxy changes in Spring Framework 2 years ago
Stephane Nicoll 332419e3a7 Remove extra 'build' directory
See gh-32069
2 years ago
Stephane Nicoll e21041ce65 Harmonize location of generated classes processed Ahead-of-time
Closes gh-32069
2 years ago
Andy Wilkinson 9caad3d31b Merge branch '2.6.x' into 2.7.x
Closes gh-32059
2 years ago
Andy Wilkinson c9e69f555e Test our Gradle plugin against Gradle 7.5.1
Closes gh-32058
2 years ago
Andy Wilkinson cb18eb095b Make transitive runtime dependencies available to AOT processing
Closes gh-31970
2 years ago
Johnny Lim 6a4681baf5 Polish
See gh-31948
2 years ago
Andy Wilkinson 8a2cdb9759 Merge branch '2.7.x'
Closes gh-31950
2 years ago
Andy Wilkinson 012fbb3a57 Merge branch '2.6.x' into 2.7.x
Closes gh-31949
2 years ago
Andy Wilkinson c0daede1aa Ensure that jarmode jar added to an app has same SHA as published jar
Closes gh-31862
2 years ago
Phillip Webb 22144987e9 Update copyright year of changed files 2 years ago
Phillip Webb e08c16dfd6 Polish 2 years ago
Stephane Nicoll 41e8697445 Polish 2 years ago
Stephane Nicoll da324c8b03 Merge branch '2.7.x' 2 years ago
Stephane Nicoll 6786659aae Merge branch '2.6.x' into 2.7.x 2 years ago
Stephane Nicoll 7d860df5f0 Polish 2 years ago
Stephane Nicoll b0bc7cd85b Reuse JavaProcessExecutor
See gh-31682
2 years ago
Stephane Nicoll c3ae6519f4 Reuse SpringApplicationClassFinder
See gh-31682
2 years ago
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
2 years ago
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
2 years ago
Phillip Webb 35a65cf82e Merge branch '2.7.x'
Closes gh-31876
2 years ago
Phillip Webb fd076ab9ef Merge branch '2.6.x' into 2.7.x
Closes gh-31875
2 years ago
aoyvx 8c93d2e8a7 Ensure PROTOCOL_HANDLER system property is reset
See gh-31870
2 years ago
Phillip Webb 7377d85096 Merge branch '2.7.x'
Closes gh-31866
2 years ago
Phillip Webb a4ef6a7c5c Merge branch '2.6.x' into 2.7.x
Closes gh-31865
2 years ago
Phillip Webb f8412847dc Update copyright year for "Fix typos in code and documentation"
See gh-31734
2 years ago
Marc Wrobel dbfc6bded4 Fix typos in code and documentation
See gh-31734
2 years ago
Phillip Webb b93dbd56e8 Merge branch '2.7.x' 2 years ago
Phillip Webb 3931e82841 Merge branch '2.6.x' into 2.7.x 2 years ago
Phillip Webb 4bcec6e0ee Polish 2 years ago
Andy Wilkinson 6c28156b29 Avoid config-time creation of AOT source set's tasks
Closes gh-31844
2 years ago
Scott Frederick 6f65777035 Merge branch '2.7.x'
Closes gh-31827
2 years ago
Scott Frederick 9da38c8d2d Merge branch '2.6.x' into 2.7.x
Closes gh-31826
2 years ago
Scott Frederick 4e0b3aad9f Clarify how docker image publishing registry is determined
Closes gh-31820
2 years ago
Scott Frederick cf7a163c6d Merge branch '2.7.x' 2 years ago
Scott Frederick f9cf31e59e Fix compile errors
See gh-28844
2 years ago
Scott Frederick 36d6106bb0 Merge branch '2.7.x'
Closes gh-31825
2 years ago
Scott Frederick 09c7ce6dab Merge branch '2.6.x' into 2.7.x
Closes gh-31824
2 years ago
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
2 years ago
Andy Wilkinson 6da8c88b2b Include library resources on classpath of AOT source generation
Closes gh-31803
2 years ago
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
2 years ago
Stephane Nicoll f52d00d9fa Merge branch '2.7.x'
Closes gh-31779
2 years ago
Stephane Nicoll 92a7af4038 Merge branch '2.6.x' into 2.7.x
Closes gh-31777
2 years ago
Johnny Lim f591c75ad7 Disable incompatible tests on macOS AArch64
This commit also updates related test support classes.

See gh-31539
2 years ago
Andy Wilkinson 9c250cae92 Merge branch '2.6.x' into 2.7.x
Closes gh-31754
2 years ago
Andy Wilkinson 8c4708982b Test our Gradle plugin against 7.5
Closes gh-31753
2 years ago
Andy Wilkinson 7bd9873cd9 Raise the minimum supported version of Gradle to 7.5
Closes gh-31215
2 years ago
Moritz Halbritter 3703b317ce Enable GraalVM reachability metadata repository
Closes gh-31687
2 years ago
Scott Frederick e49597c1ae Merge branch '2.7.x'
Closes gh-31559
2 years ago
Scott Frederick e24c49a09a Merge branch '2.6.x' into 2.7.x
Closes gh-31558
2 years ago
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
2 years ago
dreis2211 458f989cf3 Use switch expressions where appropriate
See gh-31527
2 years ago
Andy Wilkinson 836b08f49d Merge branch '2.7.x' 2 years ago
Andy Wilkinson dfb8979456 Merge branch '2.6.x' into 2.7.x 2 years ago
Andy Wilkinson c87340e5c1 Remove unnecessary throws 2 years ago
Andy Wilkinson 631b1e0d76 Merge branch '2.7.x'
Closes gh-31526
2 years ago
Andy Wilkinson 1e08f545d0 Merge branch '2.6.x' into 2.7.x
Closes gh-31525
2 years ago
Andy Wilkinson f49b16c645 Upgrade to Spring Java Format 0.0.34
Closes gh-31524
2 years ago
Stephane Nicoll 03b742c655 Merge branch '2.7.x' 2 years ago
Stephane Nicoll e967d0383b Merge branch '2.6.x' into 2.7.x 2 years ago
Stephane Nicoll 79d3e3080f Polish 2 years ago
Phillip Webb e77f137a32 Merge branch '2.7.x'
Closes gh-31485
2 years ago
Phillip Webb 13b2de3bb8 Merge branch '2.6.x' into 2.7.x
Closes gh-31484
2 years ago
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
2 years ago
dreis2211 cc91009b70 Use java.util.HexFormat where appropriate
See gh-31477
2 years ago
dreis2211 5db04da275 Use pattern matching for instanceof where appropriate
See gh-31475
2 years ago
dreis2211 fb45fc4819 Use Files.writeString() and Files.readString() where possible
See gh-31459
2 years ago
dreis2211 b687e1c7ee Use Runtime.version() instead of reflection
See gh-31444
2 years ago
dreis2211 a639685053 Remove obsolete Java compatibility code
See gh-31452
2 years ago
Johnny Lim 5d7d0d8047 Use 3.0.0 for Javadoc since tags
See gh-31448
2 years ago
Phillip Webb 657fa3e64e Merge branch '2.7.x'
Closes gh-31409
2 years ago
Phillip Webb 7c91ebb1b0 Merge branch '2.6.x' into 2.7.x
Closes gh-31408
2 years ago
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
2 years ago
Andy Wilkinson 4f3180540c Use Framework's MockSpringFactoriesLoader
Closes gh-31406
2 years ago
Andy Wilkinson d370d19e7a Merge branch '2.7.x'
Closes gh-31403
2 years ago
Andy Wilkinson 5e1cd28d3f Merge branch '2.6.x' into 2.7.x
Closes gh-31402
2 years ago
Lars Grefer e8a1a0399a Upgrade to Bouncycastle 1.71
Closes gh-31400
2 years ago
Phillip Webb d84557f1f9 Merge branch '2.7.x'
Closes gh-31396
2 years ago
Phillip Webb bcbcc53a09 Merge branch '2.6.x' into 2.7.x
Closes gh-31395
2 years ago
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
2 years ago
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
2 years ago
Stephane Nicoll 99f71941cd Merge branch '2.7.x'
Closes gh-31363
2 years ago
Stephane Nicoll 499f54a335 Merge branch '2.6.x' into 2.7.x
Closes gh-31362
2 years ago
Lars Grefer 8c9557f552 Enable Links for the Javadoc of the Gradle Plugins
See gh-31279
2 years ago