Commit Graph

27490 Commits

Author SHA1 Message Date
Phillip Webb
47fd5f4fac Merge branch '1.4.x' into 1.5.x 2017-02-27 14:00:46 -08:00
Phillip Webb
47b00c086c Polish 2017-02-27 13:56:17 -08:00
Phillip Webb
f6db1cbcb2 Extend Microsoft SQL Server detection
Update Microsoft SQL Server detection logic to retain "SQL SERVER"
support (just in case the server string is driver specific).

See gh-8222
2017-02-27 13:41:34 -08:00
Stephane Nicoll
d1d70b0207 Merge branch '1.5.x' 2017-02-27 19:10:03 +01:00
Stephane Nicoll
0435f122d4 Rework JSR-303 validation exposure with Spring MVC
This commit improves the initial solution by actually overriding the
`mvcValidator` `@Bean`. This gives us more control as whether a custom
validator has been specified or not. We now wrap it regardless of it
being custom or provided by auto-configuration.

Closes gh-8223
2017-02-27 19:09:29 +01:00
Stephane Nicoll
c333ccfe20 Merge branch '1.5.x' 2017-02-27 16:16:21 +01:00
Stephane Nicoll
d8f62c46ad Prevent warning due to BPP dependency
`MethodValidationPostProcessor` requires a `Validator` so we need to flag
it as an infrastructure bean to prevent an additional log that indicates
it won't be post-processed.

We obviously don't want to post-process the `Validator` here so adding the
additional meta-data is a good idea anyway.

Closes gh-8422
2017-02-27 16:16:09 +01:00
Stephane Nicoll
c5595f296c Add support for Mock test with WebFlux
This commit add mock support for WebFlux with an infrastructure similar
to what `WebMvcTest` provides. `@WebFluxTest` can be used to test
controllers with a narrowed classpath that is relevant to WebFlux. Also,
`@SpringBootTest` now starts WebFlux in "mock" mode by default and
`@AutoConfigureWebTestClient` can be used to inject a `WebTestClient`
connected to the `ApplicationContext`.

To make that happen, a `ReactiveWebApplicationContext` interface has been
introduced to mirror what `WebApplicationContext` currently does. Things
are still a bit volatile at this point and that infra may move to Spring
Framework at some point.

Closes gh-8401
2017-02-27 15:05:34 +01:00
Stephane Nicoll
30564eb619 Merge branch '1.5.x' 2017-02-26 23:19:14 +01:00
Stephane Nicoll
f032d2fe03 Polish
Closes gh-8412
2017-02-26 23:18:48 +01:00
Brian Clozel
3a8be10be8 Enable Tomcat, Jetty and Undertow reactive auto-conf
Closes gh-8403
2017-02-24 17:46:04 +01:00
Stephane Nicoll
f1d4d8434b Hide javax.servlet.SessionTrackingMode
The server's session can now be configured in both a servlet and a
reactive environment. The latter has not requirement on the servlet API
and this commit removes the requirement to the `SessionTrackingMode`
enum.

Closes gh-8402
2017-02-24 17:41:39 +01:00
Brian Clozel
f12a634843 Fix typo in spring-webflux dependency 2017-02-24 14:03:16 +01:00
Brian Clozel
d1eafa29da Add missing dependency in docs generation
Reactor Netty and Spring WebFlux were missing.
2017-02-24 13:57:09 +01:00
Stephane Nicoll
12397edbd4 Expose a WebTestClient with @SpringBootTest
This commit exposes a `WebTestClient` automatically in a reactive
integration test that uses an embedded web server. This is similar to
what we do with `TestRestTemplate` for servlet based integration tests.

Closes gh-8399
2017-02-24 13:50:58 +01:00
Brian Clozel
c1e93d8991 Add WebFlux application sample
This commit adds a sample application for the
annotation variant of Spring WebFlux.
2017-02-24 13:03:12 +01:00
Stephane Nicoll
54939e8e3c Start a reactive web application if necessary
This commit makes sure that `@SpringBootTest` with a reactive setup
starts a web application if necessary.

If both a servlet and a reactive environment are available, a servlet
environment is bootstraped. This commit also adds a way to force a
reactive environment by specifying the `spring.main.web-application-type`
property of the test (e.g. `@TestPropertySource`).

Closes gh-8383
2017-02-24 13:03:12 +01:00
Brian Clozel
8317977e1b Add WebFlux auto-configuration
This commit creates auto-configuration classes for both the
annotation and functional variants of the WebFlux framework.

They provide the basic support to get started with those, by
creating the required `HttpHandler` using the provided application
context (for annotation) or `RouterFunction`s (for functional).

They do support `WebFilter` registration and a few advanced
features such as resource handling, `messageReaders|Writers`
and `ViewResolver` auto-registration.

Closes gh-8386
2017-02-24 13:03:11 +01:00
Brian Clozel
656b509f03 Add support for reactive web servers auto-configuration
This commit adds the auto-configuration for creating reactive
`EmbeddedWebServer` instances. This adds support for the
following servers: Reactor Netty, Tomcat, Jetty and Undertow.

Fixes gh-8302
Fixes gh-8117
2017-02-24 13:03:11 +01:00
Brian Clozel
dc98d909ab Support reactive web servers with LocalServerPort
This commit refactors the `EmbeddedWebServerInitializedEvent` hierarchy
to have one specialized event for Servlet based apps and another one for
reactive apps.

Each event implementation has:

* a specific `ApplicationContext` implementation for the app
* a custom `getServerId` implementation that differentiates the
application server from the management server

Closes gh-8348
2017-02-24 13:03:11 +01:00
Brian Clozel
0b162e894b Manage EmbeddedWebServer in ReactiveWebApplicationContext
This commit adds an `EmbeddedWebServer` instance to the
`ReactiveWebApplicationContext` and ties it to the application
lifecycle.

To launch a reactive web application, two elements are required
from the context:

* a `ReactiveWebServerFactory` to create a server instance
* a `HttpHandler` instance to handle HTTP requests

Closes gh-8337
2017-02-24 13:03:11 +01:00
Brian Clozel
21878f8528 Manage Netty in Boot dependencies 2017-02-24 13:03:11 +01:00
Brian Clozel
f331ac133f Add reactive web server infrastructure
This commit adds the infrastructure for creating and customizing
reactive embedded web servers. Common configuration has been refactored
into the new `ConfigurableEmbeddedWebServer` interface.

See gh-8302
2017-02-24 13:03:11 +01:00
Stephane Nicoll
a38d2456c3 Merge branch '1.5.x' 2017-02-24 11:05:27 +01:00
Stephane Nicoll
4aa99b9531 Avoid exposing several javax.validaton.Validator beans
This commit makes sure that the Spring `Validator` used by the MVC
layer doesn't expose a JSR-303 contract, if any.

The default implementation of the `mvcValidator` is
`LocalValidatorFactoryBean`. While this object is exposed as a Spring
`Validator` only, its runtime capabilities expose that contract as well
as the standard `Validator` and `ValidatorFactory` ones.

Concretely, if an auto-configuration is checking if a
`javax.validation.Validator` bean is missing, the condition will match
since we only know about "advertized types": beans haven't been created
yet so we can't inspect their runtime capabilities. Since the condition
match, we will auto-configure a bean. At runtime though, we're no longer
ale to inject a `javax.validation.Validator` by type since two candidates
are available.

This commit introduces `SpringValidatorAdapterWrapper`, a wrapper class
on any `SpringValidatorAdapter` (`LocalValidatorFactoryBean` being one of
the available implementations) that only exposes the Spring contract.

Also, if a `javax.validation.Validator` bean is available, we will use it
for the MVC layer, rather than creating a new one.

Closes gh-8223
2017-02-24 11:01:42 +01:00
Andy Wilkinson
3164330139 Correct HAL Browser location to reflect version of web jar
See gh-8382
2017-02-22 16:53:29 +00:00
Andy Wilkinson
7e6ad316aa Update exclusions to reflect change in Hibernate's JPA API dependency
See gh-8379
2017-02-22 16:33:50 +00:00
Andy Wilkinson
466f8926b5 Add dependency management for Commons Lang3
Closes gh-7896
2017-02-22 16:17:25 +00:00
Andy Wilkinson
145e2d206c Upgrade to Selenium HtmlUnit 2.24
Closes gh-7232
2017-02-22 16:09:37 +00:00
Andy Wilkinson
9cbb857111 Add explicit dependency on Gson
It used to be pulled in transitively by selenium-api but that's no
longer that case.

See gh-8381
2017-02-22 16:07:23 +00:00
Andy Wilkinson
233e6151b9 Upgrade to Webjars Hal Browser 3325375
Closes gh-8382
2017-02-22 15:06:20 +00:00
Andy Wilkinson
89845fb2eb Upgrade to Selenium 3.1.0
Closes gh-8381
2017-02-22 15:06:19 +00:00
Andy Wilkinson
008953adc9 Upgrade to Hibernate Validator 5.4.0.Final
Closes gh-8380
2017-02-22 15:06:18 +00:00
Andy Wilkinson
d0fb8fc46a Upgrade to Hibernate 5.2.8.Final
Closes gh-8379
2017-02-22 15:06:17 +00:00
Andy Wilkinson
ab06600fa9 Upgrade to Rxjava2 2.0.6
Closes gh-8378
2017-02-22 15:06:16 +00:00
Andy Wilkinson
4b7f90a0c6 Upgrade to Rxjava 1.2.6
Closes gh-8377
2017-02-22 15:06:16 +00:00
Andy Wilkinson
7cb5edf590 Upgrade to Reactor Bom Aluminium-SR1
Closes gh-8376
2017-02-22 15:06:15 +00:00
Andy Wilkinson
f52449b5f5 Upgrade to Netty 4.1.8.Final
Closes gh-8375
2017-02-22 15:06:14 +00:00
Andy Wilkinson
5bace9dff6 Merge branch '1.5.x' 2017-02-22 14:56:04 +00:00
Andy Wilkinson
50bc321621 Upgrade to Spring Kafka 1.1.3.RELEASE
Closes gh-8374
2017-02-22 14:54:55 +00:00
Andy Wilkinson
cbffc51b48 Upgrade to Mongodb 3.4.2
Closes gh-8373
2017-02-22 14:54:55 +00:00
Andy Wilkinson
73b7b3d7be Upgrade to Mariadb 1.5.8
Closes gh-8372
2017-02-22 14:54:54 +00:00
Andy Wilkinson
e211602f4a Upgrade to Narayana 5.5.2.Final
Closes gh-8371
2017-02-22 14:54:54 +00:00
Andy Wilkinson
e5c05b3193 Upgrade to Artemis 1.5.3
Closes gh-8370
2017-02-22 14:54:53 +00:00
Andy Wilkinson
789257b76b Upgrade to Undertow 1.4.10.Final
Closes gh-8369
2017-02-22 14:54:52 +00:00
Andy Wilkinson
1f6c52022d Upgrade to Cassandra Driver 3.1.4
Closes gh-8368
2017-02-22 14:54:52 +00:00
Andy Wilkinson
4ff159adbe Merge branch '1.5.x' 2017-02-22 12:19:14 +00:00
Andy Wilkinson
b034a505a5 Polish 0f42c5dd
- Apply standard code formatting
- Add class javadoc to MultipleResourceServerConfigurationTests
- Add missing @Override annotations
- Remove unused ExpectedException field
- Remove use of SpringApplicationBuilder from the tests
- Use @ImportAutoConfiguration to import auto-configuration
- Add assertions to verify that the orders haven't been changed
- Remove unnecessary mocking of EmbeddedServletContainerFactory

See gh-8347
2017-02-22 12:16:05 +00:00
Andy Wilkinson
5e6ff9a855 Merge branch '1.5.x' 2017-02-22 11:45:38 +00:00
Andy Wilkinson
f4eb45ac6d Merge branch '1.4.x' into 1.5.x 2017-02-22 11:43:33 +00:00