Commit Graph

860 Commits

Author SHA1 Message Date
Stephane Nicoll f34dc05452 Rename run goal's directories property to additionalClasspathElements
This clarifies what used to be called "directories" as both a directory
and a jar file can be provided. A directory with `/*` would also load
all the jar files from that directory.

The "directories" property has been deprecated as a result.

Closes gh-35179
2023-08-03 16:22:07 +02:00
Scott Frederick 6506208d29 Upgrade default CNB builders to Paketo Jammy
Closes gh-36689
2023-08-02 19:06:16 -05:00
Andy Wilkinson 07a7ff473b Merge branch '3.1.x'
Closes gh-36495
2023-07-21 16:47:35 +01:00
Andy Wilkinson 519966e230 Merge branch '3.0.x' into 3.1.x
Closes gh-36494
2023-07-21 16:47:24 +01:00
Andy Wilkinson 84c1c5ccaa Polish "Don't run process-aot or process-test-aot on reactor projects"
See gh-35377
2023-07-21 16:39:50 +01:00
Urs Keller 0308de1672 Don't run process-aot or process-test-aot on reactor projects
See gh-35377
2023-07-21 16:39:24 +01:00
Scott Frederick 4393a2244c Use Docker CLI context to determine daemon host address for image building
Configuration files managed by the Docker CLI are now used to determine
the host address of the Docker daemon used when building images using
buildpacks when a host address is not configured with environment
variables or build tool plugin configuration.

Closes gh-36445
2023-07-18 13:21:01 -06:00
Andy Wilkinson 9985c845f2 Adapt to Framework changes missed due to predictive test selection
See gh-36198
2023-07-04 12:39:52 +01:00
Andy Wilkinson 5a9ca67fba Start building against Spring Framework 6.2.0-M2 snapshots
See gh-36198
2023-07-04 10:20:33 +01:00
Andy Wilkinson b394553b30 Merge branch '3.1.x' 2023-06-21 12:11:06 +01:00
Andy Wilkinson 660dbb9afd Fix Maven-built native images with Docker Compose dependency
Previously, we tried to prevent spring-boot-docker-compose from
causing problems with AOT and native images by excluding it from
the AOT processing classpath. This allowed AOT processing to
succeed. We cannot apply the same exclusion to the native image
classpath so spring-boot-docker-compose was still included in the
native image. This results in a failure at runtime due to missing
reflection hints.

This commit reverts that changes that excluded
spring-boot-docker-compose from the AOT processing classpath. This
allows AOT processing to generate reflection hints but reintroduces
the failure caused by the connection details bean definitions using
an instance supplier callback. To overcome this problem we disable
DockerComposeLifecycleManager during AOT processing and in a native
image. This ensures that no attempt is made to call docker compose up
and no connection details beans are defined.

Fixes gh-35676
2023-06-21 11:44:30 +01:00
Andy Wilkinson 818f096890 Merge branch '3.1.x' 2023-06-21 10:46:35 +01:00
Andy Wilkinson 853caf9a59 Do not exclude DevTools from Maven AOT processing classpath
When excluded from the AOT processing classpath, a reflection hint
for DevTools' RestartScopeInitializer that's registered in
spring.factories is not generated. When the native image is compiled
we have no control over its classpath so DevTools is included. This
causes a failure at runtime as RestartScopeInitializer cannot be
loaded due to the missing reflection hint.

Until we have control over the native image classpath, we need to
include DevTools on the AOT processing classpath and then rely on
DevTools disabling itself in a native image which it already does.

Fixes gh-35853
2023-06-21 10:36:38 +01:00
Andy Wilkinson b9c2c289b3 Start working on Spring Boot 3.2
This commit also disables the creation of forward merge issues
when merging into main. Forward merge issues will be re-enabled
once 3.1.1 has been released.
2023-06-08 17:22:21 +01:00
Stephane Nicoll dcb97594c3 Merge branch '3.0.x'
Closes gh-35618
2023-05-24 13:30:54 +02:00
Stephane Nicoll 44c2090092 Polish "Fix description of build-image[-no-fork] Maven plugin goals"
See gh-35609
2023-05-24 13:28:01 +02:00
Thomas Kåsene e84025b1b8 Fix description of build-image[-no-fork] Maven plugin goals
See gh-35609
2023-05-24 13:24:37 +02:00
Phillip Webb c2961a1e4a Exclude docker-compose and devtools during AOT processing
Update `ProcessAotMojo` so that `spring-boot-docker-compose` and
`spring-boot-devtools` are not included on the classpath.

Fixes gh-35548
2023-05-18 11:21:13 -07:00
Phillip Webb e3ed87d165 Merge branch '3.0.x' 2023-05-12 13:21:52 -07:00
Phillip Webb 92e420a098 Merge branch '2.7.x' into 3.0.x 2023-05-12 13:14:12 -07:00
Phillip Webb 57e45dfb21 Update copyright year of changed files 2023-05-12 13:01:43 -07:00
Moritz Halbritter 05add58976 Merge branch '3.0.x'
Closes gh-35373
2023-05-10 08:23:35 +02:00
Moritz Halbritter 42cc84070b Merge branch '2.7.x' into 3.0.x
Closes gh-35372
2023-05-10 08:23:27 +02:00
Moritz Halbritter 52789cb191 Fix anchors in Maven plugin documentation
Closes gh-35371
2023-05-10 08:21:44 +02:00
Moritz Halbritter a4092fb396 Remove HTML tags from TestRunMojo javadoc
Closes gh-35349
2023-05-09 10:14:55 +02:00
Marc Leroux b61834c92d Replace Mockito argument captors with assertArg
See gh-35015
2023-05-05 11:34:55 +02:00
Andy Wilkinson e43998615c Add a test-run goal to the Maven plugin
Closes gh-35202
2023-05-04 15:06:03 +01:00
Phillip Webb d86e82d026 Merge branch '3.0.x' 2023-05-02 15:42:05 -07:00
Phillip Webb 2c27ec5b7b Merge branch '2.7.x' into 3.0.x 2023-05-02 15:42:00 -07:00
Phillip Webb b3226c55d2 Polish 2023-05-02 15:41:55 -07:00
Moritz Halbritter 9d50d92b9c Merge branch '3.0.x' 2023-05-02 16:36:49 +02:00
Moritz Halbritter 1f4a337ad2 Merge branch '2.7.x' into 3.0.x 2023-05-02 16:17:50 +02:00
Moritz Halbritter 091d6204cb Disable build image integration tests on aarch64 linux and mac
See gh-35229
2023-05-02 15:38:42 +02:00
Mortitz Halbritter 24d1620a93 Add 'excludeDockerCompose' Maven property
Update `AbstractPackagerMojo` so that the docker-compose module
can be filtered from the packaged jar.

Co-authored-by: Phillip Webb <pwebb@vmware.com>
Co-authored-by: "Andy Wilkinson <wilkinsona@vmware.com>
2023-04-17 01:00:16 -07:00
Phillip Webb e9a198a68f Merge branch '3.0.x' 2023-04-12 22:16:35 -07:00
Phillip Webb 9b6a2a59a1 Set offset when checking date in tests
Update integration tests that check the current date so that the offset
is set for the current time before comparing results.

See gh-34786
2023-04-12 22:13:08 -07:00
Phillip Webb 463701db18 Merge branch '3.0.x' 2023-04-10 16:22:57 -07:00
Phillip Webb d442bfbeff Polish 2023-04-10 16:22:11 -07:00
Scott Frederick 56bc6d2fa0 Allow image application directory to be configurable
An `applicationDirectory` option on the Maven
`spring-boot:build-image` goal and the Gradle `bootBuildImage` task
can be configured to set the location that will be used to upload
application contents to the builder image, and will contain the
application contents in the generated image.

Closes gh-34786
2023-04-07 14:00:00 -05:00
Scott Frederick 5817c8441d Allow image Created date to be configurable
A `createdDate` option on the Maven `spring-boot:build-image` goal
and the Gradle `bootBuildImage` task can be used to set the `Created`
metadata field on a generated OCI image to a specified date or to
the current date.

Closes gh-28798
2023-04-06 15:08:34 -05:00
Andy Wilkinson 29193c4b9e Merge branch '3.0.x'
Closes gh-34789
2023-03-28 09:33:55 +01:00
Andy Wilkinson 4b58eefe7b Merge branch '2.7.x' into 3.0.x
Closes gh-34788
2023-03-28 09:33:41 +01:00
Andy Wilkinson 4705e82a6e Note that optional dependencies are included by run and repackage
Closes gh-34636
2023-03-28 09:33:06 +01:00
Scott Frederick 9fa5aa3649 Merge branch '3.0.x'
Closes gh-
2023-03-21 14:56:16 -05:00
Scott Frederick 6a6f4a3928 Merge branch '2.7.x' into 3.0.x
Closes gh-34704
2023-03-21 14:56:02 -05:00
Scott Frederick ad680ed4ea Polish "Add documentation for publishing images with Maven command line"
See gh-34517
2023-03-21 13:30:50 -05:00
Anthony Dahanne 21978da02a Add documentation for publishing images with Maven command line
See gh-34517
2023-03-21 13:30:50 -05:00
Johnny Lim 390629eefd Add Javadoc since to BuildInfoMojo.skip
See gh-34482
2023-03-06 10:05:07 +00:00
Scott Frederick 2602ce48b8 Merge branch '3.0.x'
Closes gh-34476
2023-03-03 16:50:55 -06:00
Scott Frederick 17755e5376 Merge branch '2.7.x' into 3.0.x
Closes gh-34475
2023-03-03 16:49:45 -06:00
Scott Frederick 10d71f5645 Document how to get socket location for podman configuration
Closes gh-34435
2023-03-03 16:47:48 -06:00
Phillip Webb 91ce2d6e1e Merge branch '3.0.x'
Closes gh-34473
2023-03-03 11:00:19 -08:00
Phillip Webb 4370757fb2 Use Java 17 in Maven integration tests
Closes gh-34472
2023-03-03 10:59:00 -08:00
Phillip Webb 2b94484078 Merge branch '3.0.x'
Closes gh-34431
2023-03-01 21:29:13 -08:00
Phillip Webb f5cf821479 Merge branch '2.7.x' into 3.0.x
Closes gh-34430
2023-03-01 21:28:51 -08:00
Phillip Webb 998d59b7ac Ignore system timezone when applying outputTimestamp to entries
Update `JarWriter` so that entry times are set with the default TimeZone
offset removed. The Javadoc for `ZipEntry.setTime` states:

  The file entry is "encoded in standard `MS-DOS date and time format`.
  The default TimeZone is used to convert the epoch time to the MS-DOS
  data and time.

Removing the offset from our UTC time before calling `entry.setTime()`
ensures that we get consistent bytes in the zip file when the output
stream reapplies the offset during write.

Fixes gh-34424
2023-03-01 21:27:08 -08:00
Diego Díez b073ef0310 Add build-info skip support
See gh-34393
2023-03-01 09:19:14 +01:00
Phillip Webb 157091a811 Merge branch '3.0.x' 2023-02-22 18:36:57 -08:00
Phillip Webb 0b15962aca Merge branch '2.7.x' into 3.0.x 2023-02-22 18:36:16 -08:00
Phillip Webb a5902d7a00 Update copyright year of changed files 2023-02-22 18:35:17 -08:00
Phillip Webb b07269a018 Merge branch '3.0.x' 2023-02-21 23:20:07 -08:00
Phillip Webb c4de86c244 Merge branch '2.7.x' into 3.0.x 2023-02-21 23:17:57 -08:00
Phillip Webb df5898a146 Reformat code following spring-javaformat upgrade 2023-02-21 22:53:27 -08:00
Moritz Halbritter e0d8d528b7 Merge branch '3.0.x'
Closes gh-34073
2023-02-06 11:54:58 +01:00
Moritz Halbritter 2e61acb979 Merge branch '2.7.x' into 3.0.x
Closes gh-34072
2023-02-06 11:54:51 +01:00
Enimiste d6032c9d2c Remove inputStream.close() line to conform to the interface
The "ReproducibleResourceTransformer" interface says that "An input
  stream for the resource, the implementation should *not* close this
  stream".

See gh-34063
2023-02-06 11:47:25 +01:00
lars-christian stitz a186055c51 Improve log message when repackaging by specifying the involved files
See gh-33350
2023-01-31 13:16:56 +01:00
Moritz Halbritter 48db5ff35c Merge branch '3.0.x'
Closes gh-34018
2023-01-31 10:51:45 +01:00
Moritz Halbritter 0a080736d8 Merge branch '2.7.x' into 3.0.x
Closes gh-34017
2023-01-31 10:50:30 +01:00
Moritz Halbritter 23f1c896c9 Merge branch '3.0.x'
Closes gh-34015
2023-01-31 10:20:36 +01:00
Johnny Lim bc7fc90550 Replace Base64Utils with JDK's Base64
See gh-33967
2023-01-31 10:20:06 +01:00
Phillip Webb 390892f11b Merge branch '3.0.x'
Closes gh-33998
2023-01-26 21:45:57 -08:00
Krzysztof Krason 6e46423983 Use diamond operators
See gh-33987
2023-01-26 20:35:08 -08:00
Andy Wilkinson 63abaa4cd2 Start working on 3.1.0 2023-01-23 12:04:39 +00:00
Phillip Webb 71efc55bf9 Merge branch '2.7.x' 2023-01-18 16:31:53 -08:00
Phillip Webb 7c508fa324 Update copyright year of changed files 2023-01-18 15:37:58 -08:00
Moritz Halbritter 94f4a4396c Merge branch '2.7.x'
Closes gh-33880
2023-01-18 17:35:52 +01:00
Moritz Halbritter e8d809fe65 Replace 'via' with 'over' or 'through' in the documentation
Closes gh-33878
2023-01-18 16:56:42 +01:00
Moritz Halbritter b1f8024e8a Merge branch '2.7.x'
Closes gh-33845
2023-01-16 16:06:44 +01:00
Moritz Halbritter 9f2ed201b2 Improve error message when start goal can't contact running application
Closes gh-24044
2023-01-16 15:58:03 +01:00
Phillip Webb 29b7c121fb Merge branch '2.7.x'
Closes gh-33739
2023-01-09 19:01:57 -08:00
Phillip Webb a369f936c9 Replace references to Pivotal
Closes gh-33737
2023-01-09 18:09:20 -08:00
Phillip Webb a2ac38e203 Update copyright year of changed files 2023-01-09 15:46:07 -08:00
Krzysztof Krason cf6493f65c Simplify AssertJ assertions and also make them more readable
See gh-33653
2023-01-09 11:10:20 +01:00
Phillip Webb f588793445 Update copyright year of changed files 2022-12-22 01:00:42 -08:00
Phillip Webb 6367a8c62c Merge branch '2.7.x' 2022-12-21 22:54:01 -08:00
Phillip Webb 5ba52d0000 Polish formatting 2022-12-21 22:53:54 -08:00
Phillip Webb 5814543bb1 Merge branch '2.7.x'
Closes gh-33616
2022-12-21 22:49:40 -08:00
Phillip Webb c205ba0694 Polish 'Improve maven plugin tags documentation'
See gh-33609
2022-12-21 22:47:28 -08:00
Shekhar Aggarwal 79557012a7 Improve maven plugin tags documentation
See gh-33609
2022-12-21 22:46:42 -08:00
Moritz Halbritter f36e2ecb7b Use AutoClosables with try-with-resources
Closes gh-33538
2022-12-16 15:43:15 +01:00
Moritz Halbritter 725337f976 Make fields final
Closes gh-33537
2022-12-16 14:28:44 +01:00
peter-janssen 9a74c862dd Fix documented Java compiler level
See gh-33505
2022-12-12 11:34:25 +01:00
Scott Frederick 9ed8b25e6b Make AOT goals release option mutually exclusive with source and target
Fixes gh-33382
2022-11-30 17:18:02 -06:00
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
2022-11-22 12:33:52 +01:00
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
2022-11-22 10:42:26 +01:00
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
2022-11-14 15:05:13 -06:00
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
2022-11-14 15:05:12 -06:00
Andy Wilkinson 112bed886c Merge branch '2.7.x'
Closes gh-33085
2022-11-09 10:37:40 +00:00
Andy Wilkinson b1494d4a39 Merge branch '2.6.x' into 2.7.x
Closes gh-33084
2022-11-09 10:37:06 +00:00
Andy Wilkinson 6423535f67 Delete temp directory after MavenBuild has exected
Closes gh-33083
2022-11-09 10:35:56 +00:00
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
2022-11-07 17:33:38 +00:00
Scott Frederick 67af4c0a65 Polish documentation 2022-11-03 15:45:09 -05:00
Scott Frederick c22e76632c Add Build-Jdk-Spec to jar and war manifest when building with Gradle
This commit adds a `Build-Jdk-Spec` attribute to the manifest in a
jar or war file built with the Spring Boot Gradle plugin. This
aligns the Gradle plugin's behavior with the default Maven plugin
behavior.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Fixes gh-19875
2021-12-09 16:41:49 -06:00
Scott Frederick 16f54d2c5c Merge branch '2.7.x' 2021-12-03 11:42:52 -06:00
Scott Frederick 61fb9f83df Merge branch '2.6.x' into 2.7.x
Closes gh-28905
2021-12-03 11:42:28 -06:00
Scott Frederick ab0cc55e20 Merge branch '2.5.x' into 2.6.x
Closes gh-28904
2021-12-03 11:42:03 -06:00
Scott Frederick 467c092fdc Remove classpath index manifest attribute from repackaged war files
Fixes gh-28895
2021-12-03 11:41:28 -06:00
Andy Wilkinson fe7b13ec46 Upgrade to Spring Framework 6 and Jakarta EE 9
Closes gh-28619
Closes gh-28620
Closes gh-28621
Closes gh-28622
Closes gh-28623
Closes gh-28624
Closes gh-28625
Closes gh-28626
Closes gh-28627
Closes gh-28628
Closes gh-28629
Closes gh-28630
Closes gh-28631
Closes gh-28632
Closes gh-28633
Closes gh-28634
Closes gh-28635
Closes gh-28636
Closes gh-28638
Closes gh-28639
Closes gh-28640
Closes gh-28644
Closes gh-28645
Closes gh-28650
Closes gh-28711
Closes gh-28866
Closes gh-28867
Closes gh-28868
Closes gh-28872

See gh-28641
See gh-28642
See gh-28643
See gh-28646
See gh-28647
See gh-28648
See gh-28649
See gh-28721
See gh-28869
See gh-28871
2021-11-30 20:32:16 +00:00
Andy Wilkinson 900085628a Raise the minimum supported version of Java to 17
Closes gh-28101
2021-11-30 15:37:40 +00:00
Andy Wilkinson e06b0d97f7 Update main branch to start work on 3.0.x 2021-11-30 15:07:24 +00:00
Andy Wilkinson 86a773a8e9 Update main branch to start work on 2.7.x 2021-11-30 11:16:53 +00:00
Stephane Nicoll 98d3e99ac9 Merge branch '2.5.x'
Closes gh-28550
2021-11-08 08:29:56 +01:00
Stephane Nicoll 91f7ff3ba3 Merge branch '2.4.x' into 2.5.x
Closes gh-28549
2021-11-08 08:29:43 +01:00
Stephane Nicoll 188278ae4a Polish "Fix typo"
See gh-28548
2021-11-08 08:29:11 +01:00
Scott Frederick e84c1abb0f Prevent Docker volume name clashes in tests during parallel builds
See gh-28292
2021-10-21 15:07:15 -05:00
Scott Frederick 871468931f Polish "Add option to customize cache volume names when building an image"
See gh-28292
2021-10-19 15:38:12 -05:00
Julian Liebig dc36346285 Add option to customize cache volume names when building an image
This commit adds configuration to the Maven and Gradle plugins to
allow specifying the names of build and launch cache volumes provided
to the CNB builder.

See gh-28292
2021-10-19 15:38:12 -05:00
Phillip Webb f4bd8956af Polish "Allow build info properties to be excluded"
Update the Maven plugin to use an alternative syntax to exclude
the info properties and apply some minor polishing.

See gh-27412
2021-10-13 21:12:45 -07:00
Vedran Pavic ea9faf8690 Allow build info properties to be excluded
Update Maven and Gradle plugins to allow build info properties to be
excluded.

Prior to this commit, the `BuildPropertiesWriter` would fail with an
NPE if the group, artifact, name or version properties were `null`.

This was specifically problematic with the Gradle plugin, since its
DSL allows `null` properties which would either be passed to the writer
or, in the case of `artifact`, converted into a string value of
"unspecified".

See gh-27412
2021-10-13 21:07:09 -07:00
Leo Li 1770f065a5 Polish
See gh-28239
2021-10-13 09:07:33 +02:00
Vincent Ricard 873bca36c4 Replace latin locutions in the documentation
See gh-28141
2021-10-01 07:33:01 +02:00
Scott Frederick 64c49003aa Polish "Add option to create tags for a built image"
See gh-27613
2021-09-28 15:32:27 -05:00
Rafael Ceccone 66f44b0c7f Add option to create tags for a built image
This commit adds configuration to the Maven and Gradle plugins to
allow specifying multiple tag to be created that refer to the built
image.

See gh-27613
2021-09-28 15:32:27 -05:00
Phillip Webb 55a1ec72cc Update copyright year of changed files 2021-09-21 11:25:50 -07:00
Phillip Webb 4c2c4ec16c Merge branch '2.5.x' 2021-09-21 11:25:36 -07:00
Phillip Webb 5ba69634c9 Merge branch '2.4.x' into 2.5.x 2021-09-21 11:17:55 -07:00
Phillip Webb dfd36673f7 Update copyright year of changed files 2021-09-21 11:17:19 -07:00
dreis2211 cf0fcafd13 Polish
See gh-27940
2021-09-21 08:08:29 +02:00
Andy Wilkinson 8362ff9b54 Merge branch '2.5.x'
Closes gh-27886
2021-09-07 17:00:19 +01:00
Andy Wilkinson ba19577646 Merge branch '2.4.x' into 2.5.x
Closes gh-27885
2021-09-07 17:00:09 +01:00
Andy Wilkinson 93ac6455d3 Document that starter parent enables compilation with -parameters
Closes gh-27762
2021-09-07 16:57:56 +01:00
Scott Frederick f386ebe61d Remove tests that rely on an unpredictable order of repackaged libs
See gh-27436
2021-08-20 14:09:23 -05:00
Scott Frederick 40a9c4d90f Sort repackaged libraries in a reproducible Maven build
When a Maven build is configured to ensure reproducibility, any
libraries added to `BOOT-INF/lib` in a jar archive or to `WEB-INF/lib`
in a war archive by the Spring Boot plugin repackaging should be
sorted by name to ensure a stable and predictable order.

Fixes gh-27436
2021-08-20 13:00:39 -05:00
Andy Wilkinson fd2fbcb3c6 Merge branch '2.5.x'
Closes gh-27758
2021-08-18 18:28:34 +01:00
Andy Wilkinson 6d8ba3e8b1 Merge branch '2.4.x' into 2.5.x
Closes gh-27757
2021-08-18 17:56:32 +01:00
Andy Wilkinson ffbd28b60a Polish "Polish access modifiers for test classes"
See gh-27736
2021-08-18 17:52:42 +01:00
izeye 8a425dedfd Polish access modifiers for test classes
See gh-27736
2021-08-18 17:38:40 +01:00
Scott Frederick 2178c281e9 Polish "Add network option for image building"
See gh-27486
2021-08-12 17:08:52 -05:00
Jeroen Meijer 8e6d03b221 Add network option for image building
This commit adds configuration to the Maven and Gradle plugins to
allow specifying the network mode to be provided to the image
building goal and task.

See gh-27486
2021-08-12 17:08:52 -05:00
Scott Frederick dc5bf0368d Merge branch '2.5.x'
Closes gh-27536
2021-07-30 13:51:25 -05:00
Scott Frederick f60d998ea1 Merge branch '2.4.x' into 2.5.x
Closes gh-27535
2021-07-30 13:50:56 -05:00
Scott Frederick 5d793afcb5 Prevent hanging when deleting Docker builder container after exception
An exception being thrown while the Maven plugin is uploading the app
archive bits to an ephemeral builder container would leave the
interaction with the Docker daemon in a state that caused further
interaction with the daemon (such as deleting the ephemeral builder)
to hang indefinitely. This commit cleans up the connection on an
exception to prevent this condition.

Fixes gh-27515
2021-07-30 13:41:40 -05:00
Stephane Nicoll 6f4d8449be Initiate layers-2.6
See gh-27326
2021-07-14 14:48:23 +02:00
Stephane Nicoll b393031dbe Merge branch '2.5.x'
Closes gh-27326
2021-07-14 14:45:52 +02:00
Stephane Nicoll d8f9a20221 Add missing XSD version for layers configuration
Closes gh-27321
2021-07-14 14:32:08 +02:00
Stephane Nicoll dc5acb0019 Remove deprecated code flagged for removal
Closes gh-27303
2021-07-14 11:50:01 +02:00
Phillip Webb 6102f10639 Merge branch '2.5.x' 2021-06-23 21:02:36 -07:00
Phillip Webb 2c518f1dff Merge branch '2.4.x' into 2.5.x 2021-06-23 21:02:05 -07:00
Phillip Webb a76e5c043e Update copyright year of changed files 2021-06-23 21:01:45 -07:00
Phillip Webb 5fc0e1ca81 Merge branch '2.5.x'
Closes gh-27057
2021-06-23 17:23:25 -07:00
Phillip Webb af37f59136 Merge branch '2.4.x' into 2.5.x
Closes gh-27056
2021-06-23 17:13:13 -07:00
Madhura Bhave b790c82732 Apply exclusions to existing war entries
Update `RepackageMojo` and supporting classes so that `exclusions`
on the repackage goal apply to both the contributed libraries and any
existing jar entries already contained in the original war.

Prior to this commit, exclusions would apply to contributed jars (for
example, those in `WEB-INF/lib-provided`) but not jars that were
packaged directly into `WEB-INF/lib` by the war plugin

Fixes gh-15808

Co-authored-by: Phillip Webb <pwebb@vmware.com>
2021-06-23 15:08:31 -07:00
Andy Wilkinson 0ec598c99d Merge branch '2.5.x' 2021-06-14 13:36:37 +01:00
Andy Wilkinson 9e2339b5d0 Merge branch '2.4.x' into 2.5.x 2021-06-14 13:36:29 +01:00
Andy Wilkinson 16bfa669e1 Polish authors separators 2021-06-14 13:35:30 +01:00
Andy Wilkinson bc715c64b1 Merge branch '2.5.x'
Closes gh-26892
2021-06-14 13:33:19 +01:00
Andy Wilkinson 5f26fd9ccb Merge branch '2.4.x' into 2.5.x
Closes gh-26891
2021-06-14 13:28:54 +01:00
Andy Wilkinson f6b7730dac Use Asciidoctor's revision line to provide document's version
Using the revision line means that the revision number is automatically
set. The revision number is then included by the HTML and PDF backends
in the standard location. In the HTML backend that's alongside the
list of authors. In the PDF backend that's on the title page.

Closes gh-26851
2021-06-14 13:24:01 +01:00