Commit Graph

236 Commits (d3c817b7ba01b522b642803152426d2db20a68ad)

Author SHA1 Message Date
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>
5 years ago
Andy Wilkinson 8128f3090a Polish "Include LICENCE and NOTICE files in shipped jars"
See gh-20058
5 years ago
dreis2211 e34cf8955c Include LICENCE and NOTICE files in shipped jars
See gh-20058
5 years ago
Stephane Nicoll 3ba411e04d Polish "Revisit PluginXmlParserTests"
See gh-20190
5 years ago
Mike Smithson 020ae2c7ba Revisit PluginXmlParserTests
See gh-20190
5 years ago
dreis2211 23bf948101 Upgrade to Asciidoctor Gradle JVM 3.0.0
See gh-19953
5 years ago
Andy Wilkinson 35991d5eab Adopt Gradle Enterprise Conventions Plugin
Closes gh-20033
5 years ago
Stephane Nicoll e9339becb1 Update copyright year of changed files
See gh-19978
5 years ago
dreis2211 070de944ff Polish buildSrc
See gh-19978
5 years ago
Stephane Nicoll cf473eeb65 Merge branch '2.2.x'
Closes gh-20017
5 years ago
dreis2211 741a4f4b2b Fix links in Maven Plugin documentation
See gh-19952
5 years ago
Andy Wilkinson 43555c9fa0 Configure formatting tasks to use UTF-8 encoding
Closes gh-19947
5 years ago
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
5 years ago
dreis2211 d75de39456 Upgrade to JUnit Jupiter 5.6.0
See gh-19907
5 years ago
Andy Wilkinson 864093c431 Align Bomr with quoting changes in s-b-dependencies build.gradle 5 years ago
Johnny Lim f670615b40 Fix TestFailuresPlugin.TestFailure.compareTo()
This commit also polishes around it a bit.

See gh-19863
5 years ago
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`.
5 years ago
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.
5 years ago
Phillip Webb bfd2ca7fd9 Polish Gradle expression references
Expand all expression `$` references to the full `${...}` form.
5 years ago
Andy Wilkinson 468eca91e9 Apply Java conventions to projects that only apply Java base plugin
Fixes gh-19806
5 years ago
Andy Wilkinson c5e47c725c Merge branch '2.2.x'
Closes gh-19800
5 years ago
Andy Wilkinson 04d6b21dfb Sort test failures before logging them
See gh-19696
5 years ago
Andy Wilkinson 736963e7db Update ConventionsPlugin's javadoc
See gh-19784
5 years ago
Andy Wilkinson 2ac931cacb Log some information about all test failures when the build completes
Closes gh-19696
5 years ago
Phillip Webb 0bb00c9a43 Compile with Java with the '-parameters' option
Update the `ConventionsPlugin` to apply the `-parameters` compiler
argument.

Closes gh-19784
5 years ago
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
5 years ago
Andy Wilkinson df386be4f1 Use a consistent version of spring-javaformat
See gh-19710
5 years ago
Andy Wilkinson 9baf0e8ffb Start using spring-javaformat 0.0.19 snapshots
See gh-19710
5 years ago
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
5 years ago
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
5 years ago
Phillip Webb 862462b791 Update copyright year of changed files 5 years ago
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
5 years ago
Vedran Pavic 8757f63360 Reuse optional configuration name constant
See gh-19620
5 years ago
Vedran Pavic 57b7dfc730 Simplify Gradle's build settings
See gh-19619
5 years ago
Andy Wilkinson 4b57884535 Remove outdated buildSrc README 5 years ago
Andy Wilkinson ce99db1902 Port the build to Gradle
Closes gh-19609
Closes gh-19608
5 years ago