348 Commits

Author SHA1 Message Date
Andy Wilkinson
0d6ea79007 Start building against Spring Framework 5.3.0 snapshots
See gh-21929
2020-06-22 18:02:21 +01:00
Stephane Nicoll
f0f8424191 Merge branch '2.3.x'
Closes gh-22008
2020-06-18 11:31:00 +02:00
dreis2211
855d596c2a Use lazy lambda instead of explicit argument
See gh-21986
2020-06-18 11:29:49 +02:00
Andy Wilkinson
9e08490522 Merge branch 'gh-21271'
Closes gh-21271
2020-06-16 12:52:17 +01:00
Andy Wilkinson
9636350b0b Enable rawtypes compilation warnings
See gh-21271
2020-06-16 12:50:50 +01:00
Andy Wilkinson
47874d8c6a Treat warnings as errors when compiling
See gh-21271
2020-06-16 12:50:41 +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
ce68f1a097 Merge branch '2.2.x' into 2.3.x
Closes gh-21837
2020-06-10 09:56:24 +01:00
Andy Wilkinson
48acaa4bd9 Make AutoConfigureMockMvc use SecurityProperties' filter ordering
Previously, AutoConfigureMockMvc used Spring Security's default filter
ordering, ignoring the value configured by SecurityProperties that is
used at runtime. This resulted in different ordering at runtime and in
tests.

This commit updates the configuration for AutoConfigureMockMvc to
import the Spring Security filter auto-configuration, thereby ensuring
that the ordering configured via SecurityProperties is applied.

Fixes gh-21801
2020-06-10 09:51:05 +01:00
Andy Wilkinson
daeca9f332 Restore Boot 2.2's compile-scoped dependencies
Fixes gh-21507
2020-06-03 12:55:11 +01:00
dreis2211
b498d3903f Upgrade to Testcontainers 1.14.2
See gh-21581
2020-05-27 14:49:09 +02:00
Stephane Nicoll
b9a1a70fcc Merge branch '2.2.x'
Closes gh-21562
2020-05-25 14:59:19 +02:00
Stephane Nicoll
77981ac2ae Polish "Use the container IP address for tests using TestContainer"
See gh-21480
2020-05-25 14:29:24 +02:00
olivier lamy
0c2bf70bb8 Use the container IP address for tests using TestContainer
See gh-21480
2020-05-25 14:03:18 +02:00
Stephane Nicoll
e6376fcd6e Fix web services tests on JDK 11+
Closes gh-17274
2020-05-14 10:55:12 +02:00
Phillip Webb
194c9fac64 Polish 'Add @WebServiceClientTest slice test support'
See gh-17274
2020-05-14 00:21:50 -07:00
Dmytro Nosan
a4104ab096 Add @WebServiceClientTest slice test support
Add `@WebServiceClientTest` and related test auto-configuration to allow
slice testing of Spring Web Service client applications.

See gh-17274
2020-05-14 00:21:50 -07:00
Andy Wilkinson
83e4bb39b6 Add transaction auto-configuration to @DataMongoTest
Closes gh-20182
2020-04-30 15:05:23 +01:00
Stephane Nicoll
12123d41e5 Make sure @DataR2dbcTest invokes database migration if necessary
Closes gh-20739
2020-03-31 13:10:37 +02:00
Andy Wilkinson
56af3534f0 Merge branch '2.2.x'
Closes gh-20740
2020-03-31 11:37:12 +01:00
Andy Wilkinson
ce95fd6825 Polish "Use @DynamicPropertySource for Neo4J and Redis data tests"
See gh-20676
2020-03-31 11:31:05 +01:00
dreis2211
d84422a41c Use @DynamicPropertySource for Neo4J and Redis data tests
See gh-20676
2020-03-31 11:31:05 +01:00
Stephane Nicoll
6817856e7d Add test slice for Spring Data R2DBC
This commit adds a test slice for Spring Data R2DBC. When
`DataR2dbcTest` is added on a test, only Spring Data R2DBC repositories
and the infrastructure that they need is auto-configured.

Contrary to the JDBC counterpart, the `ConnectionFactory` is not swapped
by an embedded database.

See gh-19988

Co-authored-by: Mark Paluch <mpaluch@pivotal.io>
2020-02-25 09:21:47 -05:00
Johnny Lim
8be8a8421d Polish
See gh-20226
2020-02-19 09:34:46 +01:00
dreis2211
aa0360e1ba Fix some deprecation warnings
See gh-20108
2020-02-10 15:28:30 +01:00
Madhura Bhave
0a377647ca Import OAuth2 auto-configurations in web slice tests
Fixes gh-19823
2020-02-03 18:03:52 -08:00
Stephane Nicoll
c4daff7225 Polish "Upgrade to MongoDB Java Driver 4.0 beta1"
See gh-19960
2020-02-03 14:12:46 +01:00
Christoph Strobl
d2d6dbdc00 Upgrade to MongoDB Java Driver 4.0 beta1
See gh-19960
2020-02-03 10:59:30 +01:00
Stephane Nicoll
bae1d8d780 Polish "Use new AssertJ duration assertions"
See gh-19985
2020-01-30 08:20:49 +01:00
dreis2211
fac6f08ca3 Use new AssertJ duration assertions
See gh-19985
2020-01-30 08:14:49 +01: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
Scott Frederick
288889685d Change default BootstrapMode for JPA repositories
Change the default `BootstrapMode` for auto-configured `JpaRepositories`
to `BootstrapMode.DEFERRED` to allow the initialization of
`EntityManagerFactory` to be parallelized for increased startup efficiency.

Prior to this change, the default BootstrapMode for all auto-configured
Spring Data repositories was `BootstrapMode.DEFAULT`.

Closes gh-16230
2020-01-22 10:55:51 -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
Scott Frederick
8f102aee68 Remove deprecated 2.2 code
See gh-19699
2020-01-16 14:44:52 +01: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
aefe52e4d0 Revert "Rework dep management to avoid consumers picking up strict constraints"
This reverts commit b34a311d02fe60ac267493ccc7f2c6b816f3a15c 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
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
Stephane Nicoll
f13ff3b939 Merge branch '2.2.x'
Closes gh-19686
2020-01-13 17:45:06 +01:00
Stephane Nicoll
101fd14286 Merge branch '2.1.x' into 2.2.x
Closes gh-19685
2020-01-13 17:44:45 +01:00
Stephane Nicoll
8b8a4ee65e Polish "Make equality checks defensive to null reference"
See gh-19540
2020-01-13 17:38:38 +01:00
liuhuan
6d8b849361 Make equality checks defensive to null reference
See gh-19540
2020-01-13 17:38:26 +01:00
Andy Wilkinson
ce99db1902 Port the build to Gradle
Closes gh-19609
Closes gh-19608
2020-01-10 14:15:35 +00:00
dreis2211
6ffe47cd06 Remove deprecated usage of WebTestClientBuilderCustomizer
See gh-19536
2020-01-06 12:59:12 +01:00
Andy Wilkinson
e26d5d95a8 Do not enable @ConfigurationPropertiesScan be default
In 2.2.0, @ConfigurationPropertiesScan was enabled by default.
Unfortunately, this had the unexpected side-effect of breaking
conditional enablement of a @ConfigurationProperties class via
@EnableConfigurationProperties if the @ConfigurationProperties class
was in a package covered by scanning.

This commit remove @ConfigurationPropertiesScan from
@SpringBootApplication so that it is no longer enabled by default.
2.1.x users who rely upon such conditional enablement of
@ConfigurationProperties classes can now upgrade to 2.2.x without
having to make any changes. Users who do not have such a need and are
in a position to use configuration properties scanning can now opt-in
by adding @ConfigurationPropertiesScan to their main application class
alongside @SpringBootApplication.

Closes gh-18674
2019-11-04 14:09:33 +00:00
Andy Wilkinson
9ed4207f0c Make TypeExcludeFilters public so they can be composed with user's own
Previously, all of the type exclude filters in
spring-boot-test-autoconfigure were package-private. This prevent a
user who was creating their own test slice from composing their own
TypeExcludeFilter with one of Boot's.

This commit updates all of the TypeExcludeFilters in the
test-autoconfigure module to make them public. The intention is only
to allow them to be composed with other type exclude filters when
referenced in a @TypeExcludeFilters annotation. Therefore, each
filter class is declared final and their constructors remain
package-private.

Closes gh-18746
2019-11-04 12:12:56 +00:00
Stephane Nicoll
2ceffcee14 Start building against Spring Data Moore-SR1 snapshots
See gh-18744
2019-10-29 10:36:35 +01:00
Stephane Nicoll
a315d4229d Start building against Spring Data Lovelace-SR12 snapshots
See gh-18743
2019-10-29 10:31:00 +01:00
dreis2211
8ecdf919f8 Fix Mockito deprecations
See gh-18689
2019-10-23 09:49:33 +02:00