Commit Graph

936 Commits

Author SHA1 Message Date
Andy Wilkinson
753bea64c6 Enable varargs compilation warnings
See gh-21271
2020-06-16 12:50:53 +01:00
Andy Wilkinson
9636350b0b Enable rawtypes compilation warnings
See gh-21271
2020-06-16 12:50:50 +01:00
Andy Wilkinson
056d5f3120 Enable deprecation compilation warnings
See gh-21271
2020-06-16 12:50:47 +01:00
Andy Wilkinson
c64649a6d9 Enable unchecked compilation warnings
See gh-21271
2020-06-16 12:50:44 +01:00
Andy Wilkinson
47874d8c6a Treat warnings as errors when compiling
See gh-21271
2020-06-16 12:50:41 +01:00
Andy Wilkinson
07fb4b065d Merge branch '2.3.x'
Closes gh-21940
2020-06-16 10:10:38 +01:00
Andy Wilkinson
0de466e06e Require dependency on s-b-dependencies to use its constraints
Previously, Spring Boot's modules published Gradle Module Metadata
(GMM) the declared a platform dependency on spring-boot-dependencies.
This provided versions for each module's own dependencies but also had
they unwanted side-effect of pulling in spring-boot-dependencies
constraints which would influence the version of other dependencies
declared in the same configuration. This was undesirable as users
should be able to opt in to this level of dependency management, either
by using the dependency management plugin or by using Gradle's built-in
support via a platform dependency on spring-boot-dependencies.

This commit reworks how Spring Boot's build uses
spring-boot-dependencies and spring-boot-parent to provide its own
dependency management. Configurations that aren't seen by consumers are
configured to extend a dependencyManagement configuration that has an
enforced platform dependency on spring-boot-parent. This enforces
spring-boot-parent's version constraints on Spring Boot's build without
making them visible to consumers. To ensure that the versions that
Spring Boot has been built against are visible to consumers, the
Maven publication that produces pom files and GMM for the published
modules is configured to use the resolved versions from the module's
runtime classpath.

Fixes gh-21911
2020-06-16 08:50:21 +01:00
Andy Wilkinson
c4faeac4d7 Merge branch '2.3.x'
Closes gh-21703
2020-06-04 20:27:18 +01:00
Andy Wilkinson
24138c104c Use highlightjs for syntax highlighting in Asciidoctor's HTML output
Closes gh-21701
2020-06-04 20:25:29 +01:00
Andy Wilkinson
15ec26171c Merge branch '2.3.x'
Closes gh-21699
2020-06-04 16:53:26 +01:00
Andy Wilkinson
c0f748e143 Always apply retry plugin but only retry on CI
Previously, the retry plugin was only applied on CI as we do not want
tests to be retried in local builds. Unfortunately, this arrangement
led to test tasks from CI builds having additional doFirst and doLast
actions and an additional property. These differences meant that the
output from a test task that has run on CI could not be used by a
local build.

This commit changes our configuration of the test retry plugin so
that it is now always applied. To retain the behaviour of only
retrying tests on CI, max retries is configured to 3 on CI and 0 for
local builds.

Closes gh-21698
2020-06-04 16:10:12 +01:00
Andy Wilkinson
399d0f7b95 Merge branch '2.3.x'
Closes gh-21651
2020-06-02 09:42:34 +01:00
Andy Wilkinson
f0bc8ee73c Fix version placeholder replacement in Gradle plugin docs
Closes gh-21640
2020-06-02 08:59:14 +01:00
Phillip Webb
ac9482d463 Merge branch '2.3.x'
Closes gh-21649
2020-06-01 21:21:20 -07:00
Phillip Webb
7104d8d81e Polish 2020-06-01 21:20:45 -07:00
Phillip Webb
fc4efe3bf0 Fix Maven plugin help support
Update `MavenPluginPlugin` to fix HelpMojo support.

Closes gh-21556
2020-06-01 21:20:45 -07:00
Andy Wilkinson
8e8548756e Start work on Spring Boot 2.4 2020-05-28 10:52:18 +01:00
Andy Wilkinson
d3ef6f2382 Prepare 2.3.x branch 2020-05-28 09:56:01 +01:00
Andy Wilkinson
2ff2d52509 Ignore irrelevant changes to StarterMetadata's dependencies
Closes gh-21594
2020-05-27 20:21:08 +01:00
Andy Wilkinson
b50b00d629 Use sorted properties to ensure output is repeatable
Closes gh-21593
2020-05-27 20:14:36 +01:00
Andy Wilkinson
343e4d4318 Use a separate task to extract legal files to be included in jars
Previously, the files were extracted on the fly and written into the
jars. This didn't work well with Gradle's up-to-date checks as the
inputs of the jar task were not well-defined.

This commit moves the extraction of the notice and license files into
a separate task, the outputs of which are then copied into the jar's
META-INF.

Closes gh-21592
2020-05-27 20:08:54 +01:00
Andy Wilkinson
ee758fa670 Use HTTPS for license links
This commit updates the MavenPublishingConventions to use HTTPS to
link to the Apache license. The configuration of NoHTTP has also
been reworked so that it will correctly find usch uses of http://
URLs.

Closes gh-21459
2020-05-15 16:33:11 +01:00
Brian Clozel
42d07a7acd Fix published Maven POMs
Prior to this commit, the published Maven POMs would not pass the Maven
Central mandatory checks.

This commit adds the missing project name and description metadata for
most artifacts. The Spring Boot Gradle plugin artifact was also missing
this information and this is now added in the plugin metadata itself.
This is also updating the project page URL which is now hosted directly
on spring.io.

Fixes gh-21457
2020-05-14 23:59:11 +02:00
Phillip Webb
9a1a2ca613 Merge branch '2.2.x'
Closes gh-21448
2020-05-13 23:28:29 -07:00
Andy Wilkinson
a03426af57 Configure the Asciidoctor revnumber in a central location
See gh-20934
2020-05-13 08:16:59 +01:00
Andy Wilkinson
0bb687717c Auto-configure a lifecycle processor with configurable timeout
Closes gh-21347
2020-05-12 19:59:52 +01:00
Phillip Webb
d52bf83ab2 Polish 2020-04-30 16:40:05 -07:00
Scott Frederick
aa63070fb9 Apply test conventions unconditionally
See gh-21272
2020-04-30 16:32:48 -05:00
Andy Wilkinson
080123ebeb Only enable flaky test support on CI
Closes gh-21272
2020-04-30 20:30:18 +01:00
Brian Clozel
4c9c9ccd91 Upgrade to Spring Doc Resources 0.2.2.RELEASE
Closes gh-21057
2020-04-28 11:41:44 +02:00
dreis2211
5eb5bf0a2d Polish
See gh-21009
2020-04-25 08:54:47 +02:00
Johnny Lim
29717423a3 Remove this keyword on member method invocations
See gh-21007
2020-04-25 08:49:44 +02:00
Andy Wilkinson
564aec93fc Use consistent logic to determine Artifactory repo from version
Fixes gh-21034
2020-04-20 15:08:03 +01:00
dreis2211
1809acc482 Fix links to CLI binaries in non-snapshot builds
See gh-21030
2020-04-20 13:49:09 +01:00
Brian Clozel
7a4fa7ee3e Upgrade to Spring Doc Resources 0.2.1.RELEASE
Closes gh-20958
2020-04-14 14:47:42 +02:00
Andy Wilkinson
ba1d4ab458 Polish "Split ConventionsPlugin into separate, more focussed classes"
See gh-20805
2020-04-09 13:05:05 +01:00
Mike Smithson
65f325cfd8 Split ConventionsPlugin into separate, more focussed classes
See gh-20805
2020-04-09 13:04:34 +01:00
Phillip Webb
5d8d0bb159 Update copyright year of changed files 2020-04-01 11:51:29 -07:00
Andy Wilkinson
9bdf4a75e8 Configure Gradle's Test Retry plugin
Closes gh-20144
2020-03-31 15:59:21 +01:00
Andy Wilkinson
6eb08ad9bb Merge branch '2.2.x'
Closes gh-20744
2020-03-31 13:04:16 +01:00
Andy Wilkinson
c282f01d72 Enhance bomr to handle libraries that use a version property
Closes gh-20478
2020-03-27 10:29:30 +00:00
Brian Clozel
9e67868694 Upgrade to spring-doc-resources 0.2.0.RELEASE 2020-03-21 11:35:05 +01:00
dreis2211
589213daab Improve unused exclusion detection and remove those that are unused
See gh-20472
2020-03-10 20:36:00 +00:00
Andy Wilkinson
f083aefba6 Consider plugins and imported boms when finding possible dependency upgrades
Closes gh-20483
2020-03-10 20:07:22 +00:00
Andy Wilkinson
47a68650c9 Enable generation of Gradle's module metadata
Changes in Gradle 6.2 should address the problems described in
4f75ab5f.

Closes gh-19609
2020-03-10 14:13:10 +00:00
dreis2211
9588188800 Use isEmpty() where possible
See gh-20370
2020-03-03 18:33:26 -05:00
dreis2211
fcaede70a9 Remove unused parameter in AsciidoctorConventions
See gh-20380
2020-03-03 18:31:37 -05:00
Johnny Lim
98738d22f4 Polish tests
See gh-20318
2020-02-28 09:36:19 -05:00
Andy Wilkinson
8f44bd89f4 Polish "Allow Gradle tasks to be executed with a custom Java home"
See gh-20179
2020-02-25 15:53:45 +00:00
dreis2211
e599ed01c9 Allow Gradle tasks to be executed with a custom Java home
See gh-20179
2020-02-25 15:53:45 +00:00
Stephane Nicoll
5c174feb65 Add auto-configuration for R2DBC's ConnectionFactory
This commit adds auto-configuration for R2DBC. If R2DBC is on the
classpath, a `ConnectionFactory` is created similarly to the algorithm
used to create a `DataSource`.

If an url is specified, it is used to determine the R2DBC driver and
database location. If not, an embedded database is started (with only
support of H2 via r2dbc-h2). If none of those succeed, an exception is
thrown that is handled by a dedicated FailureAnalyzer.

To clearly separate reactive from imperative access, a `DataSource` is
not auto-configured if a `ConnectionFactory` is present. This makes sure
that any auto-configuration that relies on the presence of a
`DataSource` backs off.

There is no dedicated database initialization at the moment but it is
possible to configure flyway or liquibase to create a local `DataSource`
for the duration of the migration. Alternatively, if Spring Data R2DBC
is on the classpath, a `ResourceDatabasePopulator` bean can be defined
with the scripts to execute on startup.

See gh-19988

Co-authored-by: Mark Paluch <mpaluch@pivotal.io>
2020-02-25 09:12:28 -05:00
Andy Wilkinson
8128f3090a Polish "Include LICENCE and NOTICE files in shipped jars"
See gh-20058
2020-02-19 10:11:02 +00:00
dreis2211
e34cf8955c Include LICENCE and NOTICE files in shipped jars
See gh-20058
2020-02-19 09:22:59 +00:00
Stephane Nicoll
3ba411e04d Polish "Revisit PluginXmlParserTests"
See gh-20190
2020-02-17 09:36:15 +01:00
Mike Smithson
020ae2c7ba Revisit PluginXmlParserTests
See gh-20190
2020-02-17 09:20:16 +01:00
dreis2211
23bf948101 Upgrade to Asciidoctor Gradle JVM 3.0.0
See gh-19953
2020-02-13 09:42:17 +00:00
Andy Wilkinson
35991d5eab Adopt Gradle Enterprise Conventions Plugin
Closes gh-20033
2020-02-04 11:24:40 +00:00
Stephane Nicoll
e9339becb1 Update copyright year of changed files
See gh-19978
2020-02-03 17:58:11 +01:00
dreis2211
070de944ff Polish buildSrc
See gh-19978
2020-02-03 17:55:55 +01:00
Stephane Nicoll
cf473eeb65 Merge branch '2.2.x'
Closes gh-20017
2020-02-03 10:47:02 +01:00
dreis2211
741a4f4b2b Fix links in Maven Plugin documentation
See gh-19952
2020-01-28 10:50:36 +01:00
Andy Wilkinson
43555c9fa0 Configure formatting tasks to use UTF-8 encoding
Closes gh-19947
2020-01-27 16:41:54 +00:00
dreis2211
65394582f6 Introduce appendix section with version properties
With the introduction of Gradle we lost the list of version properties
that were previously in the spring-boot-dependencies POM and were also
linked inside the documentation. This commit introduces an appendix
section in the docs and links the appropriate places to the new section
to restore discoverability.

See gh-19898
2020-01-27 14:53:32 +01:00
dreis2211
d75de39456 Upgrade to JUnit Jupiter 5.6.0
See gh-19907
2020-01-26 08:39:12 +01:00
Andy Wilkinson
864093c431 Align Bomr with quoting changes in s-b-dependencies build.gradle 2020-01-25 13:19:27 +00:00
Johnny Lim
f670615b40 Fix TestFailuresPlugin.TestFailure.compareTo()
This commit also polishes around it a bit.

See gh-19863
2020-01-23 13:56:36 +00:00
Phillip Webb
e0013454b5 Use parentheses when declaring dependencies
Update all dependencies declarations to use the form `scope(reference)`
rather than `scope reference`.

Prior to this commit we declared dependencies without parentheses unless
we were forced to add them due to an `exclude`.
2020-01-22 16:02:38 -08:00
Phillip Webb
0209cd3e4c Polish quote form used in Gradle scripts
Replace Gradle single quote strings with the double quote form
whenever possible. The change helps to being consistency to the
dependencies section where mostly single quotes were used, but
occasionally double quotes were required due to `${}` references.
2020-01-22 15:49:52 -08:00
Phillip Webb
bfd2ca7fd9 Polish Gradle expression references
Expand all expression `$` references to the full `${...}` form.
2020-01-21 18:33:33 -08:00
Andy Wilkinson
468eca91e9 Apply Java conventions to projects that only apply Java base plugin
Fixes gh-19806
2020-01-19 20:02:13 +00:00
Andy Wilkinson
c5e47c725c Merge branch '2.2.x'
Closes gh-19800
2020-01-17 20:56:24 +00:00
Andy Wilkinson
04d6b21dfb Sort test failures before logging them
See gh-19696
2020-01-17 11:40:16 +00:00
Andy Wilkinson
736963e7db Update ConventionsPlugin's javadoc
See gh-19784
2020-01-17 11:11:47 +00:00
Andy Wilkinson
2ac931cacb Log some information about all test failures when the build completes
Closes gh-19696
2020-01-17 09:22:26 +00:00
Phillip Webb
0bb00c9a43 Compile with Java with the '-parameters' option
Update the `ConventionsPlugin` to apply the `-parameters` compiler
argument.

Closes gh-19784
2020-01-16 23:12:14 -08:00
Andy Wilkinson
714a187d8f Rework dep mgmt again to avoid consumers picking up strict constraints
This paves the way for publishing Gradle module metadata once the
problem caused by snapshot versions and our two-step publication
process has been addressed.

See gh-19609
2020-01-15 12:33:18 +00:00
Andy Wilkinson
df386be4f1 Use a consistent version of spring-javaformat
See gh-19710
2020-01-14 17:48:00 +00:00
Andy Wilkinson
9baf0e8ffb Start using spring-javaformat 0.0.19 snapshots
See gh-19710
2020-01-14 15:43:59 +00:00
Andy Wilkinson
aefe52e4d0 Revert "Rework dep management to avoid consumers picking up strict constraints"
This reverts commit b34a311d02 as,
having disabled the publishing of Gradle's module metadata (4f75ab5),
the changes are no longer needed.

See gh-19609
2020-01-14 12:15:53 +00:00
Andy Wilkinson
4f75ab5f89 Disable generation of Gradle's module metadata
The way in which we deploy the artifacts (publishing to a Maven
repository on the filesystem and then using the Concourse artifactory
resource to upload them) is incompatible with Gradle's module metadata
generation.

The metadata contains an entry, url, that contains the name of the
artifact. This will be something like
spring-boot-gradle-plugin-2.3.0.BUILD-20200114.095038-1.jar. The -1 in
the name is derived from the Maven snapshot build number. It's -1 as
the local repository to which the artifact is published is empty and
has no maven-metadata.xml file. When the artifact is uploaded to
Artifactory there is a maven-metadata.xml file so the build number is
different. As a result, the module metadata points to a file that
doesn't exist. This leads to problems like this when trying to consume
the snapshots:

Could not find spring-boot-gradle-plugin-2.3.0.BUILD-20200114.095038-1-2.3.0.BUILD-SNAPSHOT.jar (org.springframework.boot:spring-boot-gradle-plugin:2.3.0.BUILD-SNAPSHOT:20200114.101952-123)

Gradle has used the maven-metadata.xml file on the server to determine
that 2.3.0.BUILD-SNAPSHOT:20200114.101952-123 is the latest version.
It has downloaded the .module file with this version but it points to
spring-boot-gradle-plugin-2.3.0.BUILD-20200114.095038-1.jar. That file
doesn't exist so the build fails.

See gh-19609
2020-01-14 11:42:41 +00:00
Phillip Webb
862462b791 Update copyright year of changed files 2020-01-13 17:04:19 -08:00
Andy Wilkinson
b34a311d02 Rework dep management to avoid consumers picking up strict constraints
Previously, enforcedPlatform dependencies were using to pull in the
constraints defined in spring-boot-dependencies and
spring-boot-parent and applied them strictly so that the constrained
version had to be used. This worked as intended in Spring Boot's own
build but incorrectly enforced those same strict version requirements
on external consumers of Spring Boot's modules.

This commit reworks how Spring Boot defines its internal dependency
management so that platform dependencies are exposed to external
consumers while enforced platform dependencies are using internally.

See gh-19609
2020-01-13 19:59:56 +00:00
Vedran Pavic
8757f63360 Reuse optional configuration name constant
See gh-19620
2020-01-10 20:47:57 +00:00
Vedran Pavic
57b7dfc730 Simplify Gradle's build settings
See gh-19619
2020-01-10 20:47:33 +00:00
Andy Wilkinson
4b57884535 Remove outdated buildSrc README 2020-01-10 17:24:44 +00:00
Andy Wilkinson
ce99db1902 Port the build to Gradle
Closes gh-19609
Closes gh-19608
2020-01-10 14:15:35 +00:00