Commit Graph

2030 Commits

Author SHA1 Message Date
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
Phillip Webb cfeafee826 Polish 2021-09-21 11:16:46 -07:00
dreis2211 cf0fcafd13 Polish
See gh-27940
2021-09-21 08:08:29 +02:00
Scott Frederick 96238ba8b7 Expose default value for imageName in bootBuildImage task
Fixes gh-28040
2021-09-16 15:51:12 -05:00
Scott Frederick a6d03279ca Merge branch '2.5.x'
Closes gh-27994
2021-09-14 16:45:58 -05:00
Scott Frederick a540da11ad Merge branch '2.4.x' into 2.5.x
Closes gh-27993
2021-09-14 16:45:34 -05:00
Scott Frederick c8ff874e91 Add builderFor label to ephemeral builder image
Adding a label to the ephemeral builder image cloned from the base
builder image eliminates contention between builds that are run
concurrently. Without this label, concurrent builds could result in
a race condition in the Docker daemon if the ephemeral builder image
shared by builds was deleted by both builds at exactly the same time.

Fixes gh-27888
2021-09-14 15:22:23 -05:00
Andy Wilkinson 7c034c33e2 Merge branch '2.5.x'
Closes gh-27967
2021-09-13 10:48:19 +01:00
Andy Wilkinson f530819d68 Merge branch '2.4.x' into 2.5.x
Closes gh-27966
2021-09-13 10:47:47 +01:00
Andy Wilkinson 273600bcdd Retain distinction between compile and runtime deps of optional deps
Previously, the optional configuration was added to the compile and
runtime classpaths of each source set and the the javadoc classpath
as well. This had a few disadvantages, the most notable of which is
that it meant that the configuration was ifrst resolved and then
the outcome of the resolution was added to the compile and runtime
classpaths. As a result, none of the attributes on the compile and
runtime classpaths were considered to influence variant selection.

This commit reworks the optional dependencies plugin so that the
compile and runtime classpaths of each source set are now configured
to extend from the optional configuration. This allows each
classpath configuration's attributes to influence the dependencies
that are selected from the optional configuration during resolution.
For example, when resolving the compile classpath, compile
dependencies (Usage.JAVA_API) will be selected and when resolving the
runtime classpath, runtime dependencies (Usage.JAVA_RUNTIME) will be
selected.

The above-described change means that runtime dependencies of an
optional dependencies will no longer leak into the compile classpath.
As a result of this, our Gradle plugin's test infrastructure has
been updated so that it no longer references runtime dependencies of
the Kotlin Gradle plugin at compile time.

Closes gh-27965
2021-09-13 10:47:14 +01:00
Andy Wilkinson c65013f717 Merge branch '2.5.x'
Closes gh-27901
2021-09-09 10:14:03 +01:00
Andy Wilkinson 37240bda3f Merge branch '2.4.x' into 2.5.x
Closes gh-27900
2021-09-09 10:13:40 +01:00
Andy Wilkinson 47163af9b6 Fix handling of Zip64 jar files larger than 4,294,967,295 bytes
Previously, a Zip64 jar file was identified by the number of entries
in the central directory being 0xFFFF. This value indicates that
there the number of entries is too big for the 2-byte field. However,
a jar may be in Zip64 format due to it exceeding the Zip format's
maximum size rather than its maximum number of entries so this field
cannot be used as a reliable indicator. The Zip specification doesn't
require any of the fields of the end of central directory record to
have a value of 0xFFFF (2-byte fields) or 0xFFFFFFFF (4-byte fields)
when using Zip64 format so we need to take a different approach.

Additionally, a number of places in the code assumed that an entry's
offset would always be available from the central directory file
header directly. This assumption did not hold true when the jar was
a Zip64 archive due to its size as the offset's value would be
0xFFFFFFF indicating that it should be read from the Zip64 extended
information field within the header's extra field instead.

This commit updates the Zip64 detection to look for the Zip64 end of
central directory locator instead. If present, it begins 20 bytes
before the beginning of the end of central directory record. Its
first four bytes are always 0x07064b50. The code that reads the
local header offset has also been updated to refer to the Zip64
extended information field when the offset is too large to fit in
the 4-byte field in the central directory file header. To allow
greater-than-4-byte offsets to be handled, a number of fields,
method parameters, and local variables have had their type changed
from an int to a long.

Fixes gh-27822
2021-09-09 09:17:48 +01: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
Andy Wilkinson 8966b1308b Merge branch '2.5.x'
Closes gh-27733
2021-08-17 16:11:17 +01:00
Andy Wilkinson b4f0f29bff Test our Gradle plugin against Gradle 7.2
Closes gh-27732
2021-08-17 15:58:40 +01:00
Andy Wilkinson 79be0766bc Merge branch '2.5.x'
Closes gh-27731
2021-08-17 15:42:17 +01:00
Andy Wilkinson ea641d3aab Merge branch '2.4.x' into 2.5.x
Closes gh-27730
2021-08-17 15:42:05 +01:00
Andy Wilkinson 29f5570208 Stop s-b-configuration-metadata leaking enforced constraints
Fixes gh-27726
2021-08-17 15:34:29 +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
Andy Wilkinson 1966d1650b Merge branch '2.5.x'
Closes gh-27650
2021-08-12 15:46:24 +01:00
Andy Wilkinson 119fb6948d Test our Gradle plugin against Gradle 7.2-rc-3
Closes gh-27640
2021-08-12 15:26:50 +01:00
Andy Wilkinson c43c22283d Merge branch '2.5.x'
Closes gh-27621
2021-08-10 10:45:31 +01:00
Andy Wilkinson f19fff4c64 Merge branch '2.4.x' into 2.5.x
Closes gh-27620
2021-08-10 10:45:07 +01:00
Andy Wilkinson d4d1ca007e Mention productionRuntimeClasspath in the docs
Closes gh-27558
2021-08-10 10:44:57 +01:00
Andy Wilkinson ee669dbf11 Merge branch '2.5.x'
Closes gh-27594
2021-08-09 11:41:15 +01:00
Andy Wilkinson 7610fe02c5 Test our Gradle plugin against 7.2-rc-2
Closes gh-27593
2021-08-09 09:50:07 +01:00
Stephane Nicoll 9826304e29 Merge branch '2.4.x' into 2.5.x
Closes gh-27557
2021-08-04 09:25:25 +02:00
izeye 9f44cefc56 Use deprecated mainClassName in Gradle test
See gh-27537
2021-08-04 09:23:52 +02: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
Andy Wilkinson 2482607a06 Merge branch '2.5.x'
Closes gh-27526
2021-07-29 17:42:40 +01:00
Andy Wilkinson 533bb24b55 Merge branch '2.4.x' into 2.5.x
Closes gh-27525
2021-07-29 17:42:26 +01:00
Andy Wilkinson ad2d9c0ab1 Customize Cassandra's configuration to reduce container startup time
Closes gh-27524
2021-07-29 17:33:56 +01:00
Andy Wilkinson cdad8e2b7f Merge branch '2.5.x' 2021-07-29 17:28:38 +01:00
Andy Wilkinson 85054723f0 Reinstate GradleProjectBuilder for compatibility with JDK17-ea32
See gh-27521
2021-07-29 17:22:59 +01:00
Andy Wilkinson 23c4674352 Merge branch '2.5.x'
Closes gh-27522
2021-07-29 12:24:54 +01:00
Andy Wilkinson ca5af2d456 Test our Gradle plugin against Gradle 7.2-rc-1
Closes gh-27521
2021-07-29 12:05:14 +01:00
Andy Wilkinson 04dc62904f Merge branch '2.4.x' into 2.5.x
Closes gh-27495
2021-07-26 15:23:17 +01:00
Andy Wilkinson 5d9da7206e Limit use of deprecated mainClassName in Gradle plugin tests
Closes gh-27320
2021-07-26 15:21:44 +01:00
Andy Wilkinson 681df90d33 Generate metadata for records using implicit constructor binding
Closes gh-27216
2021-07-26 09:43:32 +01:00
Andy Wilkinson 37f690323f Polish
Closes gh-27432
2021-07-21 11:55:38 +01:00
Scott Frederick 9f001efa29 Adjust fat jar central directory to account for launch script
An upgrade to Apache Commons Compress allows the build plugins to write
the launch script to the fat jar as a proper preamble, making the file
compatible with more jar and zip tooling.

Fixes gh-22336
2021-07-19 15:02:42 -05:00
Scott Frederick a0b32251eb Split gradle test support into a separate module
See gh-25824
2021-07-16 12:52:39 -05:00
Andy Wilkinson 25234219ce Merge branch '2.5.x'
Closes gh-27365
2021-07-16 11:51:43 +01:00
dreis2211 be38ce3645 Disable Gradle plugin tests that fail on JDK 17
See gh-27328
2021-07-16 11:42:51 +01: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
Stephane Nicoll d67089cdfe Merge branch '2.5.x'
Closes gh-27236
2021-07-10 17:38:44 +02:00
dreis2211 dacfe27350 Fix tests for multi-release JARs on JDK 17
See gh-27229
2021-07-10 17:38:16 +02:00
Scott Frederick 18c7c0af22 Add Paketo image building system tests
A new system test plugin is being made available for running test
suites that should be run less frequently than with every commit, such
as tests that verify Spring Boot compatibility with external
projects. CI pipeline configuration for running system tests is also
provided.

The first system tests verify the behavior of the Spring Boot image
building plugins when building images using Paketo buildpacks.

Closes gh-25824
2021-07-08 17:02:43 -05:00
Andy Wilkinson 5ebe2f4539 Merge branch '2.5.x'
Closes gh-27192
2021-07-08 18:08:39 +01:00
dreis2211 00d3330c9a Avoid illegal reflective access on ZipEntry.xdostime
See gh-27100
2021-07-08 18:05:16 +01:00
Andy Wilkinson 87591d94ee Merge branch '2.5.x'
Closes gh-27188
2021-07-08 10:45:57 +01:00
Andy Wilkinson ff79787def Avoid using deprecated API to get Kotlin Plugin's version
Closes gh-27090
2021-07-08 10:45:09 +01:00
Andy Wilkinson 7c744db0e9 Merge branch '2.5.x'
Closes gh-27180
2021-07-07 17:57:25 +01:00
Andy Wilkinson c21791e671 Test our Gradle plugin against Gradle 7.1.1
Closes gh-27142
2021-07-07 17:57:14 +01:00
Phillip Webb d00db60bab Merge branch '2.5.x' 2021-06-24 14:06:25 -07:00
Phillip Webb dfbd82b838 Fix Kotlin 1.5.20 classpath issues
See gh-27086
2021-06-24 14:05:36 -07:00
Phillip Webb 716e8ab717 Merge branch '2.5.x' 2021-06-24 11:31:33 -07:00
Phillip Webb d44207161f Suppress Kotlin 1.5.20 deprecation warning
See gh-27086
2021-06-24 11:30:58 -07: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 e85b0c7012 Merge branch '2.5.x' 2021-06-23 17:29:41 -07:00
Phillip Webb fd83158fa5 Merge branch '2.4.x' into 2.5.x 2021-06-23 17:28:31 -07:00
Phillip Webb 63ed921554 Restore simple Library constructor
See gh-15808
2021-06-23 17:27:26 -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 752a92960c Merge branch '2.5.x'
Closes gh-27001
2021-06-21 18:20:18 +01:00
Andy Wilkinson 07e7398d10 Include 6.9.x in version requirements message
Fixes gh-26952
2021-06-21 18:20:08 +01:00
Andy Wilkinson 9025529dcf Merge branch '2.5.x'
Closes gh-26998
2021-06-21 14:34:24 +01:00
Andy Wilkinson 8405df10b8 Merge branch '2.4.x' into 2.5.x
Closes gh-26997
2021-06-21 14:34:11 +01:00
Andy Wilkinson e18eb08222 Fix additional metadata locations with config cache
Previously, a project with a dependency on Spring Boot's configuration
processor would fail to build when the configuration cache is enabled
due to it accessing the Project during task execution.

Instead of accessing the project during task execution, this commit
updates the code to retrieve the resource locations from the matching
source set in advance. The locations are then stored in the action
that configures the compile task when needed.

Closes gh-26880
2021-06-21 14:31:04 +01:00
Andy Wilkinson 897a7196c0 Merge branch '2.5.x'
Closes gh-26948
2021-06-17 17:28:07 +01:00
Andy Wilkinson a2772e288a Merge branch '2.4.x' into 2.5.x
Closes gh-26947
2021-06-17 17:27:56 +01:00
Andy Wilkinson cd808d2f18 Only get Kotlin plugin's version once we know we need it
Fixes gh-26946
2021-06-17 17:27:03 +01:00
Andy Wilkinson 043cf88687 Merge branch '2.5.x'
Closes gh-26905
2021-06-14 21:02:19 +01:00
Andy Wilkinson 6a51c272b9 Test our Gradle plugin against Gradle 7.1
Closes gh-26904
2021-06-14 21:01:06 +01: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
Stephane Nicoll b7f126020e Update copyright year of change file
See gh-26422
2021-06-12 18:00:24 +02:00
Marcus Klimstra 10ffaffb7b Improve configuration of Start and Stop goals
See gh-26422
2021-06-12 18:00:24 +02:00
Stephane Nicoll 69c2621a14 Polish "Add support for @Value annotation"
See gh-26337
2021-06-12 17:40:34 +02:00
Mark Jeffrey 14d86034a1 Add support for @Value annotation
This commit adds support for `@Value` from project Lombok for metadata
generation. This is very similar to the existing `@Data` support.

See gh-26337
2021-06-12 17:40:34 +02:00
Stephane Nicoll a1183c4641 Polish "Reproducible build for spring-boot-maven-plugin:build-info"
See gh-26221
2021-06-12 17:11:14 +02:00
Slawomir Jaranowski 2dec6dd552 Reproducible build for spring-boot-maven-plugin:build-info
See gh-26221
2021-06-12 17:11:14 +02:00
Andy Wilkinson de410b7621 Merge branch '2.4.x'
Closes gh-26828
2021-06-09 18:01:32 +01:00
Andy Wilkinson a1c5fcca58 Move common Asciidoctor configuration into our conventions
Closes gh-26620
2021-06-09 18:00:45 +01:00
Andy Wilkinson 03f8a46c80 Test our Gradle plugin against 7.1-rc-2
Closes gh-26825
2021-06-09 09:41:25 +01:00
Phillip Webb f798f26596 Merge branch '2.4.x' 2021-06-08 18:05:50 -07:00
Phillip Webb 4d62e47c5d Merge branch '2.3.x' into 2.4.x 2021-06-08 18:05:12 -07:00
Phillip Webb 9e1c78da99 Update copyright year of changed files 2021-06-08 18:03:46 -07:00
Phillip Webb 703eaa71f4 Remove main class configuration fallback
Remove fallback code since we now require Gradle 6.8 and can depend
on the `getMainClass` method being present.

Closes gh-26794
2021-06-08 18:00:50 -07:00
Phillip Webb d19b2681ab Rework build-image-customization table in docs
Collapse parameter name and user property into a single column to give
a little more room for the description and default value.

Closes gh-25739
2021-06-08 14:46:53 -07:00
Scott Frederick fba5ffc626 Fix FilePermissionsTests on Windows
See gh-26658
2021-06-08 15:58:03 -05:00
Andy Wilkinson 1a0e008a8c Prevent Netty tcNative from loading classes with wrong class loader
In our tests, the JNI code in Netty tcNative can cause some of its
classes to be loaded using a ModifiedClassPathClassLoader. When the
wrong class loader is used, SSL-related tests fail, for example due
to the same Netty tcNative classes being loaded by two different
ClassLoders and no longer being the same. This appears to be
dependent upon the order in which tests are executed and results in
intermittent test failures.

It looks like this should be addressed in Netty tcNative 2.0.40 which
preloads all of its classes. In the meantime, this commit updates
ModifiedClassPathClassLodaer to ignore Netty tcNative classes so that
they're only ever loaded by the system class loader.

Closes gh-26749
2021-06-08 11:20:02 +01:00
Andy Wilkinson 87d35250a5 Test our Gradle plugin against 7.1-rc-1
7.1-rc-1 deprecates JavaExec's main property in favor of mainClass
which was introduced in Gradle 6.4. This commit updates some tests
to use mainClass rather than main that would otherwise have failed
due to deprecation warnings in their output.

Closes gh-26793
2021-06-07 13:35:52 +01:00
Stephane Nicoll aff1366731 Polish "Fix typo in 'Reacting to the Maven plugin' title"
See gh-26751
2021-06-04 09:51:48 +02:00
Abel Salgado Romero 9eea502c3e Fix typo in 'Reacting to the Maven plugin' title
See gh-26751
2021-06-04 09:46:47 +02:00
Stephane Nicoll 75f31f6bc4 Merge branch '2.4.x'
Closes gh-26748
2021-06-03 09:27:01 +02:00
Stephane Nicoll ad99aa2f4a Merge branch '2.3.x' into 2.4.x
Closes gh-26747
2021-06-03 09:26:38 +02:00
dreis2211 f470151535 Remove reference to surefirebooter JAR
See gh-26737
2021-06-03 09:24:56 +02:00
Phillip Webb 02494d63d2 Merge branch '2.4.x'
Closes gh-26744
2021-06-02 17:26:05 -07:00
Phillip Webb 1cda557d03 Merge branch '2.3.x' into 2.4.x
Closes gh-26743
2021-06-02 17:25:51 -07:00
Phillip Webb 1beee5700c Don't close early when SecurityManager present
Update `JarFile` and `JarFileWrapper` classes so that they no longer
close the `JarFile` early if a `SecurityManager` is in use.

Prior to this commit, the closed `JarFile` would cause (an ultimately
swallowed) NPE in `ZipFile` which manifested itself as a
`ClassNotFoundException` when starting the app.

Closes gh-25538
2021-06-02 17:24:05 -07:00
Scott Frederick f560e86f03 Write buildpack directories to builder layer
When a custom buildpack is provided for image building, the contents
of the buildpack directory, tgz file, or image are copied as tar
entries to a new layer in the ephemeral builder image. Prior to this
commit, only file entries from the buildpack source were copied as
builder layer tar entries; intermediate directory entries from the
source were not copied. This results in directories being created in
the builder container using default permissions. This worked on most
Linux-like OSs where the default permissions allow others-read
access. On some OSs like Arch Linux where the default directory
permissions do not allow others-read, this prevented the lifecycle
processes from reading the buildpack files.

This commit explicitly creates all intermediate directory tar entries
in the builder image layer to ensure that the buildpack directories
and files can be read by the lifecycle processes.

Fixes gh-26658
2021-06-02 14:09:53 -05:00
Stephane Nicoll e9ed92a305 Polish 2021-06-02 14:14:04 +02:00
Phillip Webb d3f0f04f05 Merge branch '2.4.x'
Closes gh-26703
2021-05-28 14:53:27 -07:00
Phillip Webb 49d3ecc2b2 Merge branch '2.3.x' into 2.4.x
Closes gh-26702
2021-05-28 14:53:12 -07:00
Phillip Webb 617f7b9587 Improve ImageName/ImageReference parse performance
Update `ImageName` and `ImageReference` to use distinct regex patterns
to parse specific parts of the value. Prior to this commit a single
regex pattern was used which could hang given certain input strings.

Fixes gh-23115
2021-05-28 14:52:27 -07:00
Phillip Webb 5258c26f90 Merge branch '2.4.x' 2021-05-27 13:15:19 -07:00
Phillip Webb 49c30854af Rename PRODUCTION_RUNTIME_CLASSPATH_NAME
Rename the now public constant for consistency with the JavaPlugin.

See gh-26686
2021-05-27 13:14:16 -07:00
Phillip Webb ac0c1b1456 Merge branch '2.4.x'
Closes gh-26687
2021-05-27 12:08:49 -07:00
Phillip Webb 1e0ae9d5e3 Make PRODUCTION_RUNTIME_CLASSPATH_NAME public
Change `SpringBootPlugin.PRODUCTION_RUNTIME_CLASSPATH_NAME` from package
private to public so that it can be accessed in user build scripts.

Fixes gh-26686
2021-05-27 12:07:35 -07:00
Stephane Nicoll cb7c3774a7 Merge branch '2.4.x'
Closes gh-26646
2021-05-24 11:39:57 +02:00
Stephane Nicoll 942691753d Merge branch '2.3.x' into 2.4.x
Closes gh-26645
2021-05-24 11:39:38 +02:00
dreis2211 01ee6190a2 Remove workaround for SUREFIRE-1679
See gh-26632
2021-05-24 11:15:58 +02:00
Phillip Webb ab958d2394 Include io.spring.asciidoctor.backends group
Update `repositories` declaration to include the
'io.spring.asciidoctor.backends' group.

See gh-26293
2021-05-19 22:58:31 -07:00
Phillip Webb f0896c2de6 Rework title anchors for maven docs
Closes gh-26617
2021-05-19 21:19:24 -07:00
Phillip Webb 1702c9fc3d Rework title anchors for gradle docs
Closes gh-26618
2021-05-19 21:19:24 -07:00
Phillip Webb 2dbf39c738 Polish asciidoc formatting 2021-05-19 21:19:24 -07:00
Phillip Webb 8a3f835ffe Set Asciidoctor attribute-missing to warn
Closes gh-26590
2021-05-19 11:53:46 -07:00
Stephane Nicoll 582d7b46fd Merge branch '2.4.x'
Closes gh-26571
2021-05-17 14:36:44 +02:00
Stephane Nicoll ef093bc9c6 Merge branch '2.3.x' into 2.4.x
Closes gh-26570
2021-05-17 14:24:03 +02:00
Stephane Nicoll 306b6f6999 Configure SessionCookieConfig in MockServletWebServer
Closes gh-26479
2021-05-17 14:05:45 +02:00
Stephane Nicoll d3c817b7ba Polish "Remove unnecessary throws declaration in tests"
See gh-26441
2021-05-17 09:36:53 +02:00
weixsun 8a2be288a3 Remove unnecessary throws declaration in tests
See gh-26441
2021-05-17 09:31:51 +02:00
Andy Wilkinson 1db8ca60aa Test our Gradle plugin against Gradle 7.0.2
Closes gh-26464
2021-05-14 13:58:46 +01:00
Andy Wilkinson f92510e39d Merge branch '2.4.x'
Closes gh-26451
2021-05-13 11:44:27 +01:00
Andy Wilkinson 970f933806 Merge branch '2.3.x' into 2.4.x
Closes gh-26450
2021-05-13 11:44:01 +01:00
Andy Wilkinson 2dd94b5554 Polish "Use try-with-resources statement"
See gh-26449
2021-05-13 11:37:10 +01:00
weixsun 5ba9db391f Use try-with-resources statements
See gh-26449
2021-05-13 11:36:14 +01:00
Scott Frederick e9adb1ab88 Handle long file names in buildpack images
Fixes gh-26445
2021-05-12 18:14:56 -05:00
Scott Frederick b62905b91d Merge branch '2.4.x'
Closes gh-25840
2021-05-12 15:48:59 -05:00
Scott Frederick 8ac297d6f3 Merge branch '2.3.x' into 2.4.x
Closes gh-25839
2021-05-12 14:57:40 -05:00
Scott Frederick 32d378a348 Use test harness for image building integration tests
This commit modifies the integration tests for the Maven and Gradle
image building goal and task to use a custom builder as a test harness
to verify that the plugins invoke the builder as expected.

Fixes gh-25838
2021-05-12 14:51:45 -05:00
Andy Wilkinson 07de9e3920 Merge branch '2.4.x' 2021-05-12 17:40:58 +01:00
Andy Wilkinson e29d2e208e Merge branch '2.3.x' into 2.4.x 2021-05-12 17:40:48 +01:00
Andy Wilkinson b3af6d6403 Polish
See gh-25798
2021-05-12 17:40:33 +01:00
dreis2211 ba2a4781d2 Test our Gradle Plugin against Gradle 7.0.1
See gh-26420
2021-05-11 08:25:19 +02:00
Phillip Webb 87d8aedd3c Use spring-pdf backend for PDF generation
Update `asciidoctorPdf` tasks to use the `spring-pdf` backend so that
chomped elements and @fold:on/@fold:off comments are hidden.

Closes gh-26373
2021-05-10 18:04:05 -07:00
Andy Wilkinson dc5f115c04 Document support for Gradle 6.9
Closes gh-26409
2021-05-07 11:29:51 +01:00
Andy Wilkinson b3071dab91 Merge branch '2.4.x'
Closes gh-26412
2021-05-07 11:26:18 +01:00
Andy Wilkinson fe4d20c976 Merge branch '2.3.x' into 2.4.x
Closes gh-26411
2021-05-07 11:25:10 +01:00
Andy Wilkinson 6daf67a88c Upgrade to Gradle 6.9
Closes gh-26408
2021-05-07 11:21:24 +01:00
Stephane Nicoll b4424605af Merge branch '2.4.x'
Closes gh-26406
2021-05-07 09:14:46 +02:00
Stephane Nicoll 559af275a4 Merge branch '2.3.x' into 2.4.x
Closes gh-26405
2021-05-07 09:14:35 +02:00
Sach Nguyen afa77b8253 Fix wrong reference to Cassandra in DockerImageNames#couchbase
See gh-26399
2021-05-07 09:12:43 +02:00
Andy Wilkinson 2976fd9165 Merge branch '2.4.x'
Closes gh-26397
2021-05-06 20:12:41 +01:00
Andy Wilkinson fe696ee22a Merge branch '2.3.x' into 2.4.x
Closes gh-26396
2021-05-06 20:11:59 +01:00
Andy Wilkinson ef9e3bafff Test our Gradle plugin against 6.9-rc-2
Closes gh-26395
2021-05-06 20:10:54 +01:00
Andy Wilkinson aeea15be0f Merge branch '2.4.x'
Closes gh-26365
2021-05-05 09:53:20 +01:00
Andy Wilkinson f7fae8f0f2 Merge branch '2.3.x' into 2.4.x
Closes gh-26364
2021-05-05 09:52:53 +01:00
Andy Wilkinson b3275c5647 Align productionRuntimeClasspath with runtimeClasspath
Fixes gh-25798
2021-05-05 09:52:44 +01:00
Andy Wilkinson b976483852 Merge branch '2.4.x'
Closes gh-26330
2021-04-30 16:56:46 +01:00
Andy Wilkinson c0fe23181c Merge branch '2.3.x' into 2.4.x
Closes gh-26329
2021-04-30 16:55:10 +01:00
Andy Wilkinson 94ca2d1e78 Test the Gradle plugin against Gradle 6.9-rc-1
Closes gh-26267
2021-04-30 16:52:52 +01:00
Scott Frederick bb8188b681 Merge branch '2.4.x'
Closes gh-26313
2021-04-29 16:16:32 -05:00
Scott Frederick 17fa215cf5 Merge branch '2.3.x' into 2.4.x
Closes gh-26312
2021-04-29 15:33:33 -05:00
Scott Frederick c37b9b8a8e Use layout configuration in Maven build-image goal
This commit changes the Maven build-image goal to honor the `layout` and
`layoutFactory` parameters to ensure that the archive content sent to the
builder is the same as is used by the `repackage` goal to build the
archive file.

Fixes gh-26216
2021-04-29 15:03:08 -05:00
Andy Wilkinson fa81b41afc Merge branch '2.4.x'
Closes gh-26301
2021-04-29 11:37:13 +01:00
Andy Wilkinson 94519c33b1 Merge branch '2.3.x' into 2.4.x
Closes gh-26300
2021-04-29 11:36:15 +01:00
Andy Wilkinson ef5fbb0669 Configure bootBuildImage's targetJavaVersion using a provider
Previously, the targetJavaVersion property of bootBuildImage was set
using the project's target compatibility directly. This meant that
property's value would reflect the configured target compatibility at
the time of the task's creation and any subsequent changes to the
target compatibility would be missed.

This commit updates the registration of the bootBuildImage task to set
the value of the targetJavaVersion property using a provider. This
indirection means that the project's target compatibility isn't read
until the value of the targetJavaVersion is read, allowing any changes
to the target compatibility to be picked up even if they're made after
the bootBuildImage task has been created.

Fixes gh-26297
2021-04-29 11:36:03 +01:00
Stephane Nicoll 52994027f4 Fix checkstyle violation 2021-04-28 15:14:33 +02:00
Stephane Nicoll 7465eb0f03 Merge branch '2.4.x' 2021-04-28 15:12:45 +02:00
Stephane Nicoll 85e1cc4d65 Fix checkstyle violation 2021-04-28 15:12:22 +02:00
Stephane Nicoll 09ae65e3b7 Merge branch '2.4.x'
Closes gh-26277
2021-04-28 14:13:11 +02:00
Stephane Nicoll 05b09907e0 Merge branch '2.3.x' into 2.4.x
Closes gh-26275
2021-04-28 14:12:35 +02:00
Stephane Nicoll d610f3c2ff Polish "Fix ordering of metadata entries"
See gh-26230
2021-04-28 14:07:37 +02:00
Dmitry Pavlov 3e34b0a60a Fix ordering of metadata entries
This commit provides a consistent ordering for groups that share the
same configuration property prefix.

See gh-26230
2021-04-28 14:07:37 +02:00
Stephane Nicoll 9e3c3b73ac Merge branch '2.4.x' 2021-04-28 13:58:05 +02:00
Stephane Nicoll d98fe36b88 Merge branch '2.3.x' into 2.4.x 2021-04-28 13:57:45 +02:00
Stephane Nicoll 20da9826cc Disable incrementalBuildTypeRenamed test
This commit disables a test that does not test what it is supposed to
and improve the Metadata assertions to fail early if more than one
matching item by name and type is found in the metadata.

See gh-26271
2021-04-28 13:54:35 +02:00
Andy Wilkinson 6953da2013 Merge branch '2.4.x'
Closes gh-26257
2021-04-27 15:19:04 +01:00
Andy Wilkinson a1138efc5f Merge branch '2.3.x' into 2.4.x
Closes gh-26256
2021-04-27 15:18:23 +01:00
Andy Wilkinson a470c1af3a Align documentation with main default branch name
Closes gh-26255
2021-04-27 15:18:00 +01:00
Slawomir Jaranowski 50118f67fd Test Maven plugin against latest Maven versions
See gh-26200
2021-04-22 14:59:16 +02:00
Andy Wilkinson b9348c6d28 Merge branch '2.4.x'
Closes gh-26169
2021-04-20 11:26:46 +01:00
Andy Wilkinson bc1a462143 Merge branch '2.3.x' into 2.4.x
Closes gh-26168
2021-04-20 11:19:10 +01:00
Andy Wilkinson 82198a99e0 Polish nohttp configuration
Closes gh-26166
2021-04-20 11:15:13 +01:00
Stephane Nicoll 548baf7914 Update copyright year of changed file
See gh-26145
2021-04-19 09:34:56 +02:00
izeye 996472b42d Polish
See gh-26145
2021-04-19 09:34:55 +02:00
Phillip Webb b4c9bb0d5c Merge branch '2.4.x'
Closes gh-26122
2021-04-14 15:05:55 -07:00
Phillip Webb fb3796dae8 Merge branch '2.3.x' into 2.4.x
Closes gh-26121
2021-04-14 15:02:58 -07:00
Phillip Webb fcb2210a87 Include optional shade plugin in published pom
Update `MavenPublishingConventions` to add a new `mavenOptional` feature
that allows us to declare optional dependencies that are also published
in the generated POM.

This change allows us to include the maven-shade-plugin in the
spring-boot-maven-plugin POM which fixes an issue with Eclipse m2e.

Fixes gh-21992
2021-04-14 15:02:42 -07:00
Andy Wilkinson b0cce645dd Use a non-deprecated class to identify kotlin-gradle-plugin-api jar
See gh-26080
2021-04-13 20:29:36 +01:00
Andy Wilkinson 6f2b4aa685 Upgrade to Kotlin 1.5.0-RC
Closes gh-26080
Closes gh-25498
2021-04-13 19:51:03 +01:00
Andy Wilkinson c4750fd0ff Support Gradle 7 and raise minimum supported version to 6.8
Closes gh-26026
2021-04-12 15:20:32 +01:00
dreis2211 db79fe8b2c Test our Gradle Plugin against Gradle 7.0
See gh-25997
2021-04-10 10:48:44 +02:00
Scott Frederick 5bc35e8f44 Extract XML example from Maven plugin adoc file
See gh-25993
2021-04-09 14:22:51 -05:00
Scott Frederick e27d4848dd Merge branch '2.4.x'
Closes gh-25993
2021-04-09 14:12:36 -05:00
Scott Frederick 6a7f1f1c56 Merge branch '2.3.x' into 2.4.x
Closes gh-25992
2021-04-09 14:11:47 -05:00
Scott Frederick e19443093d Document runtime JVM configuration when building an image
Fixes gh-21478
2021-04-09 14:06:24 -05:00
Scott Frederick 86303c017b Merge branch '2.4.x'
Closes gh-25938
2021-04-08 13:03:45 -05:00
Scott Frederick 9108b81bb2 Merge branch '2.3.x' into 2.4.x
Closes gh-25937
2021-04-08 13:03:26 -05:00
Scott Frederick 0ad7f76263 Preserve file permissions in images built by Gradle
This commit copies the file mode along with other attributes when
copying files from the source archive to the build container while
building an image using the Gradle plugin. This preserves file
permissions on any resources included in the source archive.

Fixes gh-25915
2021-04-08 12:56:41 -05:00
Andy Wilkinson 8b5f914ba5 Revert "Merge branch '2.4.x'"
This reverts commit 97b26b4886, reversing
changes made to 6f9b1ed6a3.

See gh-25840
2021-04-07 10:20:23 +01:00
Andy Wilkinson e9ce20dbf4 Revert "Merge branch '2.3.x' into 2.4.x"
This reverts commit 586ce00e06, reversing
changes made to 563b8a8cec.

See gh-25839
2021-04-07 10:19:20 +01:00
Andy Wilkinson b35d1ec6e8 Revert "Use test harness for image building integration tests"
This reverts commit da9d8d6055.

See gh-25838
2021-04-07 09:30:51 +01:00
Phillip Webb 807ea1af0d Update copyright year of changed files 2021-04-06 14:59:52 -07:00
Andy Wilkinson 095ff18854 Test our Gradle plugin against Gradle 7.0-rc-2
Closes gh-25888
2021-04-06 10:30:35 +01:00
Scott Frederick 5595fb2423 Polish "Extract XML examples from Maven plugin adoc files"
See gh-25534
2021-03-31 14:05:11 -05:00
robert-smith-911 4e287594bf Extract XML examples from Maven plugin adoc files
See gh-25534
2021-03-31 14:05:10 -05:00
Scott Frederick 97b26b4886 Merge branch '2.4.x'
Closes gh-25840
2021-03-30 21:00:38 -05:00
Scott Frederick 586ce00e06 Merge branch '2.3.x' into 2.4.x
Closes gh-25839
2021-03-30 17:39:10 -05:00
Scott Frederick da9d8d6055 Use test harness for image building integration tests
This commit modifies the integration tests for the Maven and Gradle
image building goal and task to use a custom builder as a test harness
to verify that the plugins invoke the builder as expected.

Fixes gh-25838
2021-03-30 16:48:28 -05:00
Andy Wilkinson 6f9b1ed6a3 Merge branch '2.4.x'
See gh-25837
2021-03-30 20:52:38 +01:00
Andy Wilkinson 563b8a8cec Merge branch '2.3.x' into 2.4.x
See gh-25836
2021-03-30 20:52:15 +01:00
Andy Wilkinson e94f8bba62 Ensure that upstream jars have been built
See gh-25835
2021-03-30 20:51:33 +01:00
Andy Wilkinson df4b1ffb0d Merge branch '2.4.x'
Closes gh-25837
2021-03-30 20:42:41 +01:00
Andy Wilkinson 38a4f135a9 Merge branch '2.3.x' into 2.4.x
Closes gh-25836
2021-03-30 20:42:29 +01:00
Andy Wilkinson ca9a619259 Defer processing of zipTree source until execution time
Closes gh-25835
2021-03-30 20:41:46 +01:00
Andy Wilkinson 09173b81d6 Merge branch '2.4.x'
Closes gh-25833
2021-03-30 18:18:36 +01:00
Andy Wilkinson 7a846ad41f Merge branch '2.3.x' into 2.4.x
Closes gh-25832
2021-03-30 18:18:10 +01:00
Andy Wilkinson 5a086321c6 Polish "Document Failsafe configuration when not using starter parent"
See gh-25621
2021-03-30 18:16:21 +01:00
robert-smith-911 0d79fd3e01 Document Failsafe configuration when not using starter parent
See gh-25621
2021-03-30 18:02:12 +01:00
Phillip Webb 8c31d29acf Merge branch '2.4.x' 2021-03-30 09:29:59 -07:00
Phillip Webb a28a3ae090 Merge branch '2.3.x' into 2.4.x 2021-03-30 09:25:46 -07:00
Phillip Webb 9c8a97809d Consistent use of @deprecated since
Restore the patch version number for consistency with `@since`
tags.

See gh-25808
2021-03-30 09:20:30 -07:00
Phillip Webb c9451b59f2 Merge branch '2.4.x' 2021-03-29 15:51:23 -07:00
Phillip Webb a0f5169966 Polish 2021-03-29 15:51:13 -07:00
Phillip Webb 44b1751bb4 Merge branch '2.4.x'
Closes gh-25826
2021-03-29 15:48:20 -07:00
Phillip Webb 363f5829d1 Merge branch '2.3.x' into 2.4.x
Closes gh-25825
2021-03-29 15:46:50 -07:00
Phillip Webb 26dd1b9a26 Update deprecations with for removal targets
Update all deprecation tags to include a removal target.

Closes gh-25808
2021-03-29 15:44:58 -07:00
Scott Frederick 269fc68c1d Merge branch '2.4.x'
Closes gh-25811
2021-03-26 16:43:13 -05:00
Scott Frederick 4015d70f00 Merge branch '2.3.x' into 2.4.x
Closes gh-25789
2021-03-26 15:16:01 -05:00
dreis2211 a9a37f0dd5 Increase test coverage on Java 16
See gh-25809
2021-03-26 19:38:54 +00:00
Scott Frederick 3ad5f1013a Fix Maven image building with classifiers
Fixes gh-25736
2021-03-26 11:36:38 -05:00
Andy Wilkinson 340893747b Merge branch '2.4.x'
Closes gh-25799
2021-03-25 15:50:45 +00:00