Commit Graph

1739 Commits (dd63f98fcf8bb62fc6072331c78bde1f14a98efe)

Author SHA1 Message Date
trungPa 2993e68715 Prevent extracting zip entries outside of destination path
See gh-25505
4 years ago
Stephane Nicoll 76d0a7f8ba Merge branch '2.4.x'
Closes gh-25506
4 years ago
dreis2211 89a44f3da4 Fix some assertions
See gh-25499
4 years ago
Andy Wilkinson 961a34a5ee Merge branch '2.4.x'
Closes gh-25497
4 years ago
Andy Wilkinson 1ce6e796fe Polish "Allow the project to be built with Java 16"
See gh-25171
4 years ago
dreis2211 1ccd8dae8a Allow the project to be built with Java 16
See gh-25171
4 years ago
Stephane Nicoll e58353a32d Merge branch '2.4.x'
Closes gh-25484
4 years ago
Stephane Nicoll e5d8b6029b Merge branch '2.3.x' into 2.4.x
Closes gh-25483
4 years ago
Stephane Nicoll 8e67ae7113 Fix fallback fork value for spring-boot:stop
This commit harmonizes the fallback value that spring-boot:stop goal
should use if no information is available in the current context.

Closes gh-25472
4 years ago
Scott Frederick 434db48969 Merge branch '2.4.x'
Closes gh-25469
4 years ago
Scott Frederick afb60d6161 Add tests for Gradle examples used in plugin docs
Fixes gh-25468
4 years ago
Stephane Nicoll a80f1af811 Merge branch '2.4.x'
Closes gh-25463
4 years ago
Stephane Nicoll ed1c68f567 Update copyright year of changed file
See gh-25454
4 years ago
jnizet cbab2396e2 Fix property name in gradle plugin documentation
See gh-25454
4 years ago
Andy Wilkinson b36caec413 Merge branch '2.4.x'
Closes gh-25438
4 years ago
Andy Wilkinson d48551ff12 Merge branch '2.3.x' into 2.4.x
Closes gh-25437
4 years ago
Stefan Wolf 86ca32e694 Enable stricter validation for Gradle plugin
See gh-25409
4 years ago
Andy Wilkinson 84984fb148 Merge branch '2.4.x'
Closes gh-25431
4 years ago
Andy Wilkinson ecf8437d4a Merge branch '2.3.x' into 2.4.x
Closes gh-25430
4 years ago
dreis2211 101d88a840 Update Testcontainers image versions
See gh-25412
4 years ago
Scott Frederick 4be04b0ea2 Support image building with Maven and war packaging
This commit updates the Maven image building goal to support building
images from executable and non-executable war files.

Fixes gh-23823
4 years ago
Scott Frederick a80c4ad38d Support image building with Gradle and war packaging
This commit updates the Gradle image building task to support building
images from executable and non-executable war files.

Fixes gh-23825
4 years ago
Andy Wilkinson 9836b060d4 Test the Gradle plugin against 7.0-milestone-2
Closes gh-25404
4 years ago
Scott Frederick 76e42ff96f Correct grouping of custom buildpacks
This commit corrects the order.toml file that is generated and added
to the builder when building an image using custom buildpacks with the
Maven or Gradle plugin in order to support buildpacks that depend on
detection as a group.

Fixes gh-25378
4 years ago
Scott Frederick 89555a8745 Add bindings option for image building
This commit adds configuration to the Maven and Gradle plugins to
allow a list of volume mount bindings to be provided to the image
building goal and task. This enables service bindings to be mounted
in the builder image that are recognized by buildpacks to support
custom certificates, build tool configuration, APM integration, and
other buildpack features.

Fixes gh-23518
4 years ago
Stephane Nicoll 817a4c5397 Merge branch '2.4.x'
Closes gh-25386
4 years ago
Stephane Nicoll 7c5a5c6663 Merge branch '2.3.x' into 2.4.x
Closes gh-25385
4 years ago
Stephane Nicoll 77daae1480 Update copyright year of changed file
See gh-25382
4 years ago
Mustafa Ulu abc90db32f Fix wording error in build-info goal description
See gh-25382
4 years ago
Andy Wilkinson a14bf7a3b8 Deprecate support for Gradle's maven plugin
Closes gh-25267
4 years ago
Phillip Webb 4ad149e1e7 Protect against bad paths and URLs
See gh-21722
4 years ago
Scott Frederick 88e9f1d28c Fix Maven buildpacks example in docs
See gh-21722
4 years ago
Scott Frederick e3e229cc3d Remove unused import
See gh-21722
4 years ago
Scott Frederick f54f784f80 Add buildpack option for image building
This commit adds configuration to the Maven and Gradle plugins to
allow a list of buildpacks to be provided to the image building
goal and task.

Fixes gh-21722
4 years ago
Andy Wilkinson 5618646fc7 Merge branch '2.4.x'
Closes gh-25308
4 years ago
Andy Wilkinson b86351d0cf Merge branch '2.3.x' into 2.4.x
Closes gh-25307
4 years ago
Andy Wilkinson a2adb877ee Polish "Encourage use of maven-publish plugin in Gradle docs"
See gh-25299
4 years ago
Robert Smith c0a5245a3e Encourage use of maven-publish plugin in Gradle docs
See gh-25299
4 years ago
Andy Wilkinson 514aede91e Merge branch '2.4.x'
Closes gh-25168
4 years ago
Andy Wilkinson 45e6c12cb6 Consider transitives when identifying project dependencies
Previously, when building a layered jar, the Gradle plugin only
considered a configuration's direct dependencies when identifying
project dependencies. This resulted in transitive project dependencies
being missed when deciding which dependencies belong in the
application layer.

This commit updates ResolvedDependencies to consider all projects
from the root project when collecting the IDs of local projects. This
ensures that any project dependency, no matter where it appears in the
dependency graph, is successfully identified.

Fixes gh-25163
4 years ago
Stephane Nicoll c120f789d5 Merge branch '2.4.x'
Closes gh-25141
4 years ago
Stephane Nicoll 9218965104 Merge branch '2.3.x' into 2.4.x
Closes gh-25140
4 years ago
dreis2211 4937547b8a Fix build deprecation warnings about duplicate jar entries
See gh-25116
4 years ago
Andy Wilkinson d30251092b Test the Gradle Plugin against 7.0-milestone-1
Closes gh-25103
4 years ago
Andy Wilkinson db781a0d84 Merge branch '2.4.x'
See gh-25077
4 years ago
Andy Wilkinson 788a42d694 Merge branch '2.3.x' into 2.4.x
See gh-25076
4 years ago
Andy Wilkinson 67479b6380 Add junit-platform-launcher dependency by convention
Closes gh-25074
4 years ago
Phillip Webb d9f3e89395 Merge branch '2.4.x' 4 years ago
Phillip Webb 230b4ab2eb Merge branch '2.3.x' into 2.4.x 4 years ago
Phillip Webb 630d216430 Update copyright year of changed files 4 years ago
Phillip Webb d8b849e00d Fix test that fails when building against SNAPSHOT
Update `WarIntegrationTests` do deal with a SNAPSHOT Spring Framwork
dependency.

See gh-23936
4 years ago
Phillip Webb 1eef2e1b46 Merge branch '2.4.x' 4 years ago
Phillip Webb 331c7b756b Merge branch '2.3.x' into 2.4.x 4 years ago
Phillip Webb c404a50a2e Allow test to use snapshot/milestone repo
Update `spring-boot-maven-plugin` `settings.xml` so that milestone and
snapshot dependencies can be resolved.

See gh-23936
4 years ago
Phillip Webb cff09df3fe Merge branch '2.4.x' 4 years ago
Phillip Webb 003f2f9521 Merge branch '2.3.x' into 2.4.x 4 years ago
Phillip Webb faaa5e4186 Fix BOM attached sourceSet
See gh-23936
4 years ago
Phillip Webb 59b8fb5b49 Merge branch '2.4.x'
Closes gh-25079
4 years ago
Phillip Webb db52bf3d7a Merge branch '2.3.x' into 2.4.x
Closes gh-25078
4 years ago
Phillip Webb 40c1748e3c Remove hardcoded versions from MavenBuild
Use the dependencies BOM to ensure versions used in the `MavenBuild`
test class are always aligned.

Closes gh-23936
4 years ago
Phillip Webb d8b6960997 Merge branch '2.4.x'
Closes gh-25077
4 years ago
Phillip Webb 257608a3a3 Merge branch '2.3.x' into 2.4.x
Closes gh-25076
4 years ago
Phillip Webb 939b5dfc26 Add junit-platform-launcher dependency
Update `build.gradle` files to ensure that `junit-platform-launcher` is
a `testRuntimeOnly` dependency. This ensures that tests can be run from
Eclipse.

Closes gh-25074
4 years ago
Madhura Bhave c73e3cc2dc Update documentation for layered wars
Closes gh-22821
Closes gh-22195
4 years ago
Madhura Bhave 1245e5eec9 Add support for creating layered war files with Gradle
See gh-22195
4 years ago
Phillip Webb c76a0f7a81 Merge branch '2.4.x'
Closes gh-25043
4 years ago
Phillip Webb ca9b612e27 Merge branch '2.3.x' into 2.4.x
Closes gh-25042
4 years ago
jongmin92 23ecb86089 Document missing code to run Gradle bootRun task
See gh-25012
4 years ago
Madhura Bhave 82ac7eef91 Update tests following code changes
See gh-22821
4 years ago
Madhura Bhave 9a32f67802 Fix formatting 4 years ago
Madhura Bhave 152698f2b2 Add support for creating layered war files with Maven
See gh-22821
4 years ago
Phillip Webb c9a2c4e326 Merge branch '2.4.x' 4 years ago
Phillip Webb d06407ec0a Update copyright year of changed files 4 years ago
Phillip Webb b1f27b7604 Merge branch '2.4.x'
Closes gh-24995
4 years ago
Phillip Webb 522f68cb40 Merge branch '2.3.x' into 2.4.x
Closes gh-24994
4 years ago
Phillip Webb 464b302655 Set withTestKitDir per Gradle version
Attempt to fix cache locking issues by setting a unique `withTestKitDir`
directory for each tested Gradle version.

Closes gh-24993
4 years ago
Andy Wilkinson f3fd55dac6 Merge branch '2.4.x'
Closes gh-24976
4 years ago
Andy Wilkinson 9c8645dec2 Merge branch '2.3.x' into 2.4.x
Closes gh-24975
4 years ago
Andy Wilkinson 46d908f632 Upgrade to Gradle 6.8.1
Closes gh-24737
4 years ago
Stephane Nicoll 2c2c160579 Remove deprecated code
See gh-24806
4 years ago
Phillip Webb 635c087694 Merge branch '2.4.x' 4 years ago
Phillip Webb 6c2ff56fba Fix tests to also work in IDE 4 years ago
Scott Frederick 9925c4ccd2 Merge branch '2.4.x'
Closes gh-24794
4 years ago
Scott Frederick a9e711e503 Enforce builder and run images in the same registry
Previously, when an authenticated Docker builder registry was
configured in the Maven or Gradle plugin and the builder and run
images specified different registries, the authentication credentials
would be sent to both registries. This could cause confusion if both
registries don't recognize the same credentials. This commit enforces
that both images are in the same registry when authentication
is configured.

Fixes gh-24552
4 years ago
Phillip Webb 4cc1467aba Merge branch '2.4.x' 4 years ago
Phillip Webb a6a7c06e55 Merge branch '2.3.x' into 2.4.x 4 years ago
Phillip Webb 9da0bd8523 Update copyright year of changed files 4 years ago
Andy Wilkinson 8281f404d1 Merge branch '2.4.x'
Closes gh-24769
4 years ago
Andy Wilkinson c3dfb9bd29 Merge branch '2.3.x' into 2.4.x
Closes gh-24768
4 years ago
Andy Wilkinson 997505005b Handle files larger than Integer.MAX_VALUE bytes in bootJar and bootWar
Fixes gh-24618
4 years ago
Andy Wilkinson f34eb86a21 Merge branch '2.4.x'
Closes gh-24739
4 years ago
Andy Wilkinson 5ae9fbedcd Merge branch '2.3.x' into 2.4.x
Closes gh-24738
4 years ago
Andy Wilkinson 7625a979db Configure bootRun to use project's Java toolchain by default
Previously, unlike the application plugin's run task, our bootRun task
ignored the project's Java toolchain. This meant that the application
was run on a JVM with the same Java version as the one being used by
Gradle itself. This could result in a failure if the application
required a more modern JVM.

This commit updates the plugin to configure the bootRun task's
JavaLauncher convention to be one derived from the project's Java
toolchain. Toolchain support was introduced in Gradle 6.7 so this is
only done when using Gradle 6.7 and later.

Fixes gh-24517
4 years ago
Andy Wilkinson f07e470765 Merge branch '2.4.x'
Closes gh-24736
4 years ago
Andy Wilkinson 3c3aa9e486 Merge branch '2.3.x' into 2.4.x
Closes gh-24735
4 years ago
Andy Wilkinson 064de4e073 Check configured JavaLauncher when determining version of the JVM
Previously, bootRun assumed that the Java version of the JVM that would
run the application would be the same as the Java version of the JVM
that is running the build. This assumption does not hold true when
Gradle's toolchain support is used to configure tasks that fork a new
JVM to use a version other than that being used by Gradle itself.

This commit updates the BootRun task to query the JavaLauncher property
when determining the version of Java on which the application will be
run. Toolchain support and the JavaLauncher property are new in Gradle
6.7. To support earlier versions of Gradle, NoSuchMethodError is caught
we continue as if no JavaLauncher has been configured and use the local
JVM's Java version.

Fixes gh-24512
4 years ago
Andy Wilkinson 45f298bc7a Merge branch '2.4.x'
Closes gh-24711
4 years ago
Andy Wilkinson 9e389c8376 Merge branch '2.3.x' into 2.4.x
Closes gh-24710
4 years ago
Andy Wilkinson 5ad4d627fd Fix classpath index so entries match those expected by the launcher
This reverts commit ad164269e9 and adds
some additional tests.

Fixes gh-24192
4 years ago
Scott Frederick c82165694d Merge branch '2.4.x'
Closes gh-24690
4 years ago
Scott Frederick 210438ee5b Merge branch '2.3.x' into 2.4.x
Closes gh-24689
4 years ago
Scott Frederick a302238e21 Remove layout parameters from build-image Maven goal
This commit removes the `layout` and `layoutFactory` parameters
from the `build-image` goal in the Maven plugin while retaining
them for the `repackage` goal. The `build-image` goal currently
only supports jar archives, so allowing other layout types to be
configured for the goal could cause confusion.

Fixes gh-24105
4 years ago
Stephane Nicoll ca1ad1488d Merge branch '2.4.x' 4 years ago
Stephane Nicoll c19f7e696e Polish
See gh-24597
4 years ago
Stephane Nicoll b070c39ac3 Merge branch '2.4.x'
Closes gh-24598
4 years ago
Stephane Nicoll 4cdfd6f13d Polish "Handle missing manifest files in JarTypeFilter"
See gh-24597
4 years ago
Rob Edwards 86eecb01b3 Handle missing manifest files in JarTypeFilter
This commit makes sure that a jar file without a manifest is handled
properly (i.e. included in the repackaged archive).

See gh-24597
4 years ago
Stephane Nicoll a6c6655c82 Polish "Upgrade to Jackson 2.12.0"
Guard breaking change to PropertyNamingStrategies so that we tolerate
older Jackson versions.

See gh-24415
4 years ago
Valery Yatsynovich 1f63b82c5b Upgrade to Jackson 2.12.0
See gh-24415
4 years ago
Marten Deinum 5121ca5d17 Reduce the overhead of char[] creation
See gh-24204
4 years ago
Stephane Nicoll c063c3434d Merge branch '2.4.x'
Closes gh-24581
4 years ago
Stephane Nicoll 09fa16c58c Merge branch '2.3.x' into 2.4.x 4 years ago
Stephane Nicoll 306b964ce3 Fix multi-release JAR test on JDK 16
See gh-24453
4 years ago
Phillip Webb 82791b4eda Improve performance of Tomcat 'jar:war:file' URLs
Update jar `Handler` fallback logic to directly support Tomcat
'jar:war:file' URLs. This commit allows contents to be accessed without
the JDK needing to extracted the nested jar to the temporary folder.

Closes gh-24553
4 years ago
Phillip Webb 0730949325 Merge branch '2.3.x' into 2.4.x
Closes gh-24554
4 years ago
Phillip Webb c4e41305d5 Prevent Tomcat URL "reflective access" warnings
Update the jar `Handler` class to support a non-reflective fallback
mechanism when possible. The updated code attempts to capture a regular
jar URL before our handler is installed. It can then use that URL as
context when creating the a fallback URL. The JDK jar `Handler` will
be copied from the context URL to the fallback URL.

Without this commit, resolving new Tomcat URLs of the form
`jar:war:file:...` would result in an ugly "Illegal reflective access"
warning.

Fixes gh-18631
4 years ago
Scott Frederick 4e603d9239 Merge branch '2.3.x' into 2.4.x
Closes gh-24538
4 years ago
Scott Frederick e4d124dc45 Improve error message with Maven build-image and war packaging
Fixes gh-24522
4 years ago
Scott Frederick dfcabe1665 Merge branch '2.3.x' into 2.4.x
Fixes gh-24521 in 2.4.2
4 years ago
Scott Frederick 0e5df2296e Fail with Gradle bootBuildImage and war packaging
Prior to this commit, running the bootBuildImage Gradle task on a
project configured for war packaging would result in a jar file being
built and used in the image instead of the war file. With this commit
an error will be thrown from the plugin in this case.

Fixes gh-24521
4 years ago
Andy Wilkinson 5fdb2ae2fd Protect PluginApplicationActions against absent plugin classes
Closes gh-24526
4 years ago
Phillip Webb 4fba7d0c60 Merge branch '2.3.x' into 2.4.x 4 years ago
Phillip Webb 29300530c6 Polish 4 years ago
Phillip Webb 72d36e0c07 Update copyright year of changed files 4 years ago
Phillip Webb cd5ff6e4af Merge branch '2.3.x'
Closes gh-24404
4 years ago
Phillip Webb 11f285bde5 Merge branch '2.2.x' into 2.3.x
Closes gh-24403
4 years ago
Phillip Webb 30c27274e2 Merge branch '2.3.x'
Closes gh-24339
4 years ago
Phillip Webb 5f351a6983 Merge branch '2.2.x' into 2.3.x
Closes gh-24338
4 years ago
Phillip Webb 837fc83527 Fix checkstyle header violations
See gh-24337
4 years ago
Scott Frederick da2276e7d4 Use stable builder and run images in integration tests
Fixes gh-24183
4 years ago
Scott Frederick 59e0f7317e Avoid image pulls in integration tests
This commit sets the pull policy to `IF_NOT_PRESENT` where possible
in integration tests for the Maven and Gradle plugins to reduce
the number of times the default Paketo builder and run images are
pulled from Docker Hub.

Fixes gh-24113
4 years ago
Andy Wilkinson 21d97524d8 Merge branch '2.3.x'
Closes gh-24112
4 years ago
Andy Wilkinson e6ab20b029 Merge branch '2.2.x' into 2.3.x
Closes gh-24111
4 years ago
Andy Wilkinson 31042bfc49 Test inclusion of system scope dependencies in repackaged war
Closes gh-22503
4 years ago
Stephane Nicoll b6fc0913cf Merge branch '2.3.x'
Closes gh-24104
4 years ago
Stephane Nicoll 515b18e142 Merge branch '2.3.x'
Closes gh-24108
4 years ago
Stephane Nicoll 9e901b6e07 Upgrade to Testcontainers 1.15.0
Closes gh-24103
4 years ago
Stephane Nicoll 23ad2b4156 Rationalize Testcontainers image versions
This commit rationalizes the Docker image names used in integration
tests.

Closes gh-24107
4 years ago
Stephane Nicoll 45f1133e1e Merge branch '2.3.x' 4 years ago
Stephane Nicoll 339c8d0a26 Revert "Upgrade to Testcontainers 1.15.0" 4 years ago
Stephane Nicoll 5123eb0c74 Fix deprecation in Testcontainers 1.15.0
See gh-24103
4 years ago
Stephane Nicoll 7fb21fbff3 Merge branch '2.3.x'
Closes gh-24104
4 years ago
Stephane Nicoll c1a1b5fe71 Upgrade to Testcontainers 1.15.0
Closes gh-24103
4 years ago
Stephane Nicoll 33d83ebc94 Merge branch '2.3.x' 4 years ago
Stephane Nicoll 6aca0275ad Polish 4 years ago
Andy Wilkinson 409e3ccecf Ignore resolution of copied configuration
When a Configuration is copied, any before and after resolve actions
that are registered with its ResolvableDependencies are also copied
over. This means that, when a copied configuration is resolved the
resolution actions may be called on a ResolvableDependencies instances
that isn't the one to which they were added.

Previously, the above-described Gradle behaviour would result in
BootJar accessed the ResolvedConfiguration of a Configuration that may
not have yet been resolved. At best this would trigger Configuration
resolution and at worst it would fail. A failure could occur if the
configuration had been copied so that it could be made resolvable.
The afterResolve action would then try to access the
ResolvedConfiguration of the original Configuration. This would trigger
a resolution attempt that fails due to the original configuration being
marked as unresolvable.

This commit updates the afterResolve action in BootJar to check that
the ResolvableDependencies with which it is called matches the
ResolvableDependencies with which it was original registered. Only
when the two match, and therefore the configuration has actually been
resolved, does processing proceed.

Fixes gh-24072
4 years ago
Stephane Nicoll 946be4eab6 Merge branch '2.3.x'
Closes gh-24059
4 years ago
Stephane Nicoll 4a8646bd09 Merge branch '2.2.x' into 2.3.x
Closes gh-24058
4 years ago
Stephane Nicoll 59ea7c11f6 Use most specific getter when generating metadata
This commit makes sure to use the most specific getter if more than
one candidate exists.

Closes gh-24002
4 years ago
Andy Wilkinson bbad377ecc Merge branch '2.3.x'
Closes gh-24017
4 years ago
Andy Wilkinson f3d4b3e5ac Allow entries to be streamed from JarURLConnections' jar file
Fixes gh-23821
4 years ago
izeye 9c35cd41ad Polish
See gh-23986
4 years ago
Scott Frederick f080bb6c25 Fix test that depended on snapshot version
A test case would fail to accurately capture the contents
of the layers.idx file unless the test project contained
at least one non-project snapshot dependency, which was only
true when the Spring Boot version was a snapshot.

See gh-23463
4 years ago
Phillip Webb a41ff4dfab Merge branch '2.3.x' 4 years ago
Phillip Webb b0c2687aa9 Update copyright year of changed files 4 years ago
Andy Wilkinson 5642dc6d13 Merge branch '2.3.x'
Closes gh-23970
4 years ago
Andy Wilkinson 70d9602b3f Merge branch '2.2.x' into 2.3.x
Closes gh-23969
4 years ago
Andy Wilkinson e7eb7739dc Use overriding rather than overridden getter methods in config prop AP
Fixes gh-23966
4 years ago
Phillip Webb 74e06e8e6a Refine MetadataCollector logic
Update `MetadataCollector` merge logic so that previous items are no
longer added if the current round contains a property of the same name.

Fixes gh-23916
4 years ago
Phillip Webb 23e5fd798c Merge branch '2.3.x'
Closes gh-23960
4 years ago
Phillip Webb b86dcbec72 Merge branch '2.2.x' into 2.3.x
Closes gh-23959
4 years ago
Phillip Webb cf09451ffb Retain inner-class data on incremental compile
Ensure that metadata sourced from inner-types is not deleted when
performing an incremental compile. Prior to this commit, the source
type was searched using the `Outer$Inner` format. This is not supported
`Elements.getTypeElement` so we now convert the names to `Outer.Inner`.

Closes gh-10886
4 years ago
Scott Frederick 04a40a4c68 Provide content-length header to Docker API calls
Docker daemon authorization plugins reject POST or PUT requests that have a
content type `application/json` header but no content length header. This
commit ensures that a content length header is provided in these cases.

This is a cherry-pick of the changes in d5b2836ec9
which were lost in a forward-merge.

Fixes gh-23957
4 years ago
Phillip Webb b39d1910bc Fix test failure caused by MavenBuild upgrades
See gh-23937
4 years ago
Scott Frederick d5b2836ec9 Provide content-length header to Docker API calls
Docker daemon authorization plugins reject POST or PUT requests that have a
content type `application/json` header but no content length header. This
commit ensures that a content length header is provided in these cases.

Fixes gh-22840
4 years ago
Phillip Webb d43760ba5a Merge branch '2.3.x'
Closes gh-23938
4 years ago
Phillip Webb d79c23ef89 Upgrade MavenBuild versions
Align versions with those in the main build.

Closes gh-23937
4 years ago
Sebastian Nohn b3c4d5fe5c Upgrade to Log4j 2.13.3 in Maven tests
See gh-23935
4 years ago
Stephane Nicoll 472c563451 Merge branch '2.3.x'
Closes gh-23931
4 years ago
Stephane Nicoll 0424689aee Merge branch '2.2.x' into 2.3.x
Closes gh-23930
4 years ago
Stephane Nicoll 93e36a97ab Remove version elements from Maven plugin documentation
This commit removes `<version>` from the Maven Plugin documentation
where it makes sense so that versions aren't hardcoded unnecessarily.

Rather, a plugin or dependency management should be in place so those
are not needed.

Closes gh-23909
4 years ago
Stephane Nicoll a3818d690e Fix custom layout example so that tokens are replaced 4 years ago
Stephane Nicoll 59bcbd4885 Polish "Allow overriding image.cleanCache from the command-line"
See gh-32719
4 years ago
Kedar Joshi c2a483a78f Allow overriding image.cleanCache from the command-line
See gh-32719
4 years ago
Andy Wilkinson c85cc33ca9 Fix main class resolution failure when loaded from config cache
See gh-22922
4 years ago
Andy Wilkinson 7cbcd42eba Adapt test to cope with increased Instant precision on Java 11
See gh-22922
4 years ago
Andy Wilkinson 4a4fec6310 Avoid calling getProject() during BootBuildImage's execution
See gh-22922
4 years ago
Andy Wilkinson c409d50c14 Document support for Gradle's configuration cache
See gh-22922
4 years ago
Andy Wilkinson 806464edd1 Update BootBuildImage to support Gradle's configuration cache
See gh-22922
4 years ago
Andy Wilkinson b1c4af4081 Update bootJar and bootWar to use new main class resolution mechanism
See gh-22922
4 years ago
Andy Wilkinson c078a48064 Update BootRun to support Gradle's configuration cache
See gh-22922
4 years ago
Andy Wilkinson d1f543fc1d Update BuildInfo to support Gradle's configuration cache
See gh-22922
4 years ago
Andy Wilkinson 83cfd3b2e6 Update BootWar to support Gradle's configuration cache
See gh-22922
4 years ago
Andy Wilkinson 081ef2d905 Update BootJar to support Gradle's configuration cache
See gh-22922
4 years ago
Andy Wilkinson c828521912 Allow tests to provide properties that modify the build.gradle script
See gh-22922
4 years ago
Andy Wilkinson d136324b99 Add support for testing the Gradle plugin with --configuration-cache
See gh-22922
4 years ago
Phillip Webb da753300a1 Merge branch '2.3.x'
Closes gh-23819
4 years ago
Phillip Webb f84323fe3e Prevent duplicate jar entries from being written
Update the `AbstractJarWriter` so that it can directly build the layer
index as entries are written. Prior to this commit, a layer tracking
was handled by a decorator class which was broken because it didn't
override enough methods. Since `AbstractJarWriter` has quite a complex
API, it seems sensible to have it handle the layer index directly,
removing the need for a decorator entirely.

Fixes gh-23801
4 years ago
Andy Wilkinson 2d8528d5bd Adapt to deprecation of StringUtils.isEmpty(Object)
See gh-23774
4 years ago
Andy Wilkinson 3bfe1b00b5 Put module deps in app layer and make customization easier
Previously, when building a layered jar with Maven, dependencies
on modules in the same build were treated the same as any other
dependency, being included in the dependencies or snapshot dependencies
layer based on their version.

This commit updates the default layering when using Maven to include
dependencies on modules in the same build in the application layer by
default. The XML schema has also been updated to allow the layer to be
customized using new <includeModuleDependencies/> and
<excludeModuleDependencies/> elements rather than relying on including
and excluding them via a group:artifact:version pattern.

Closes gh-23463
4 years ago
Andy Wilkinson 0aa0cba3f7 Fix content filters when excludeProjectDependencies() is used
Fixes gh-23763
4 years ago
olivier.antoine ded2a8006a Expose BootBuildImage's cleanCache property as a command-line option
See gh-23753
4 years ago
Scott Frederick 38984985d4 Add support for CNB platform API 0.4
This commit adds support for platform API 0.4 when invoking a CNB
builder in the Maven and Gradle plugins. If the builder advertises
that it supports platform API 0.4 then that version will be
requested when invoking lifecycle phases. Otherwise the plugins
will fall back to requesting platform API 0.3.

Requesting platform API 0.4 when invoking builder lifecycle phases
has the primary benefit of making it easier to pass command-line
arguments to the default process in the generated image.

Fixes gh-23692
4 years ago
Scott Frederick 38b1954ab1 Polish Maven plugin javadoc
This commit polishes the javadoc for Maven plugin classes now that
the plugin reference docs link to the javadoc. Visibility of some
MOJO parameter class getters and setters were also changed for
consistency.

See gh-21555
4 years ago
Andy Wilkinson 0f069ee9c6 Merge branch '2.3.x'
Closes gh-23756
4 years ago
Andy Wilkinson 633027b1cd Upgrade to Gradle 6.7
Closes gh-23754
4 years ago
Andy Wilkinson 6898a97102 Merge branch '2.3.x'
Closes gh-23732
4 years ago
Andy Wilkinson 11b5e86ffd Deprecate BootJar#getConfigurations
Fixes gh-23527
4 years ago
Scott Frederick d44ecf5086 Merge branch '2.3.x'
Closes gh-23731
4 years ago
Scott Frederick 9c672deb2d Add javadoc links in Maven plugin parameter docs
This commit modifies the documentation generated for the
Maven plugin to include links to javadoc when Spring
Boot types are mentioned. Some javadoc was also polished
to improve the generated docs.

Fixes gh-21555
4 years ago
Stephane Nicoll 2916bb4c10 Merge branch '2.3.x'
Closes gh-23718
4 years ago
Stephane Nicoll 6beb0c939f Document how to override plugin configuration on the command line
Closes gh-21536
4 years ago
Stephane Nicoll b210d0680a Polish 4 years ago
Andy Wilkinson 84f96033c5 Put project deps in app layer and make customization easier
Previously, when building a layered jar with Gradle, project
dependencies were treated the same as any other dependency, being
included in the dependencies or snapshot dependencies layer based
on their version.

This commit updates the default layering when using Gradle to include
project dependencies in the application layer by default. The DSL has
also been updated to allow their layer to be customized using new
includeProjectDependencies() and excludeProjectDependencies() methods
rather than relying on including and excluding them via a
group:artifact:version pattern.

Closes gh-23431
4 years ago
Scott Frederick 5b1b03c56c Set platform API version when invoking image builder
The CNB specifications allow builders to support multiple platform
API versions. The supported versions are published in the builder
image metadata as an array of version numbers, while a single
supported version number was published in earlier builder metadata.

These changes read the supported versions from the builder metadata
and fall back to the single version if the array is not present.
A CNB_PLATFORM_API environment variable is set on each lifecycle
phase invocation to request a specific version as recommended in
the CNB platform spec.

Fixes gh-23682
4 years ago
Johnny Lim 4a26e11268 Polish
See gh-23634

Closes gh-23634
4 years ago
Scott Frederick 0e7ab88491 Polish "Update default builder image"
See gh-23628
4 years ago
Emily Casey 461dc23c0c Update default builder image
This commit updates the default builder image used by the Maven
and Gradle plugins image-building goal and task to use the latest
Paketo builder image. The builder image is pulled from Docker Hub
instead of Google Container Registry by default.

See gh-23628
4 years ago
dreis2211 36812bf199 Fix XML tag in image publishing example
See gh-23632
4 years ago
Scott Frederick f2721abf31 Merge branch '2.3.x'
Closes gh-23626
4 years ago
Scott Frederick de685bdca4 Document buildpack configuration of JVM options
Fixes gh-21582
4 years ago
Scott Frederick a099cd9420 Merge branch '2.3.x'
Closes gh-23623
4 years ago
Scott Frederick 49b0707f1a Clarify image builder configuration documentation
This commit qualifies examples of configuring the CNB builder to clarify
that the examples apply to use of the default Paketo builder, and adds links
to the official Paketo docs for more details.

Fixes gh-19967
4 years ago
Andy Wilkinson 70ed7784a6 Use Property<String>s for main class configuration in the Gradle plugin
Closes gh-23608
4 years ago
Scott Frederick 91acd957b2 Disable docker registry integration tests
A docker registry running in testcontainers behaves
differently in CI vs running locally. Disabling the tests for
now while working on getting them running reliably in CI.

See gh-21001
4 years ago
Scott Frederick 09b627d232 Add support for publishing docker images to a registry
This commit adds options to the Maven and Gradle plugins to publish
to a Docker registry the image generated by the image-building goal
and task.

The Docker registry auth configuration added in an earlier commit
was modified to accept separate auth configs for the builder/run
image and the generated image, since it is likely these images will
be stored in separate registries or repositories with distinct
auth required for each.

Fixes gh-21001
4 years ago
Stephane Nicoll 1296b4dfe6 Revert "Support constructor binding on 3rd party classes"
This commit reverts the support of constructor binding on 3rd party
classes using @ImportConfigurationPropertiesBean

See gh-23172

Closes gh-23593
4 years ago
Andy Wilkinson c82581171d Trigger configuration properties annotation processsor on `@Endpoint`
We generate metadata for `@Endpoint` annotated types so the annotation
processor need to indicate that it supports the endpoint annotation.

See gh-23580
4 years ago
Andy Wilkinson b7d020d3c2 Merge branch '2.3.x' 4 years ago
Andy Wilkinson 543763462c Update tests to look for snippets in correct location
See gh-23598
4 years ago
Andy Wilkinson 1924aad07c Limit supported annotations to `@ConfigurationProperties` and `@Configuration`
Previously, the configuration property annotation processor declared
that it supported all annotation types. This hurt performance and
prevented incremental builds with Gradle when compiling source code
containing source-retention annotations.

This commit updates its supported annotation types to be only
`@ConfigurationProperties` and `@Configuration`. The latter is declared
to allow binding third-party classes returned from a `@Bean` method.

Fixes gh-23580
4 years ago
Andy Wilkinson f44889b992 Merge branch '2.3.x'
See gh-23599
4 years ago
Andy Wilkinson 7eb92cc71a More Gradle snippets to correct location
See gh-23598
4 years ago
Andy Wilkinson 94884f201c Merge branch '2.3.x'
Closes gh-23599
4 years ago
Andy Wilkinson 2d3291fb83 Merge branch '2.2.x' into 2.3.x
Closes gh-23598
4 years ago
Andy Wilkinson 7ac14203ab Expand Gradle plugin's docs on setting bootRun's system properties
Closes gh-23578
4 years ago
Stephane Nicoll 5feaf2bc1a Polish "Polish empty string checks"
See gh-23550
4 years ago
Santhoshkumar. P 5cb07e292d Polish empty string checks
See gh-23550
4 years ago
Stephane Nicoll 9ff946bafa Remove unnecessary stubbing 4 years ago
Andy Wilkinson f4ce77fcae Merge branch '2.3.x'
Closes gh-23541
4 years ago
Andy Wilkinson e58a92b3d0 Introduce a dedicated @GradleCompatibility annotation
Rather than using the extension directly, introduced a dedicated
annotation will enable customization of the compatibility tests that
are run via attributes on the annotation. For example, it will allow
certain test classes to run their tests with Gradle's configuration
cache enabled while others disable it.

Closes gh-23532
4 years ago
Andy Wilkinson bd4934b0fd Fix matching of SNAPSHOT artifacts when customizing layers
Previously the artifact's version was used. In an artifact's version,
SNAPSHOT is replaced with the timestamped version number of a specific
snapshot. As a result, it no longer matches the *:*:*SNAPSHOT pattern.

This commit replaces switches to using the artifact's base version.
This preserves the SNAPSHOT in the version number. For non-snapshot
artifacts, the version and base version are identical.

Fixes gh-23533
4 years ago
Andy Wilkinson f5df6e463a Reduce configuration resolution when building a layered jar
Previously, BootJar would resolves all of a project's configurations
when building a layered jar. This was unnecessarily broad as it was
likely to include configurations that had contributed nothing to the
jar's classpath.

This commit replaces the configuration resolution with an afterResolve
action that populates the ResolvedDependencies in response to a
configuration being resolved. This allows the resolved dependencies to
be populated from all of the configurations that were resolved as part
of determining the jars classpath and no more.

Closes gh-23528
4 years ago
Lukas Cardot e95bcfac34 Configure the bootBuildInfo task lazily
Prior to this commit, the bootBuildInfo was configured eagerly.
Configuring it lazily prevent this task from being configured when not
explicitly needed. Also, the 'classes' and 'bootJar' tasks are now
lazily configured, as the bootBuildInfo task was causing them to be
configured eagerly.

See gh-23435
4 years ago
Andy Wilkinson 558c2b4591 Merge branch '2.3.x'
Closes gh-23501
4 years ago
Andy Wilkinson 9bd040cb0f Merge branch '2.2.x' into 2.3.x
Closes gh-23500
4 years ago
Andy Wilkinson e74f777971 Remove use of spring-core's Assert from PropertiesLauncher
Fixes gh-23474
4 years ago
Andy Wilkinson b662f1e06e Remove UnresolvedDependenciesAnalyzer from the Gradle plugin
Closes gh-23479
4 years ago
Stephane Nicoll 37ded9f6d3 Merge branch '2.2.x' into 2.3.x
Closes gh-23446
4 years ago
dreis2211 fba1fb23e4 Fix multi-release JAR test on JDK 15
Backport of 54f93e9

See gh-23445
4 years ago
Phillip Webb 3fca8c6b4e Merge branch '2.2.x' into 2.3.x
Closes gh-23441
4 years ago
Phillip Webb 4945806d84 Make `StringSequence.isEmpty()` public
Make `StringSequence.isEmpty()` public for compatibility with JDK 15.

Closes gh-23440
4 years ago
Andy Wilkinson 9ecc548672 Merge branch '2.3.x'
Closes gh-23427
4 years ago
Andy Wilkinson 8667e9ded8 Merge branch '2.2.x' into 2.3.x
Closes gh-23426
4 years ago
Andy Wilkinson 581190d7a0 Test the Gradle plugin against 6.7-rc-1
Closes gh-23425
4 years ago
Andy Wilkinson 0f2ddd6480 Merge branch '2.3.x'
Closes gh-23423
4 years ago
Andy Wilkinson d06af28cd8 Merge branch '2.2.x' into 2.3.x
Closes gh-23422
4 years ago
Andy Wilkinson 360e29af48 Polish "Add note about Kotlin main class name"
See gh-23418
4 years ago
Sebastiaan Fernandez 0bde5fda9b Add note about Kotlin main class name
See gh-23418
4 years ago
Scott Frederick 54288678d1 Configure Docker host in build plugins
This commit adds the ability to configure the Maven and Gradle
plugins to use a remote Docker daemon using build file
configuration, as an alternative to setting environment variables
to specify remote host connection details.

Fixes gh-23400
4 years ago