Commit Graph

14320 Commits

Author SHA1 Message Date
Arjen Poutsma
0aaa6528dc Remove JAF references
This commit updates the main code base to conform to the dropped JAF
dependency in MediaTypeFactory. Specifically, it

 - Removes JAF detection (JAF_PRESENT constants)
 - Deprecated useJaf properties, with no direct replacement.
 - Updated docs to remove JAF references, in favor of MediaTypeFactory.

Issue: SPR-14908
2017-03-21 09:11:10 -04:00
Arjen Poutsma
f0a43e5d5c Drop JAF dependency from MediaTypeFactory
This commit drops the Java Activation Framework dependency from the
MediaTypeFactory, in favor of parsing our own `mime.types` file, which
was obtained from Apache HTTPD.

Issue: SPR-14908
2017-03-21 09:06:27 -04:00
Rossen Stoyanchev
6f075c9060 Update after changed method in Reactor Core 2017-03-20 21:57:17 -04:00
Sam Brannen
7c84266259 Remove trailing whitespace in spring-test 2017-03-20 20:09:22 +01:00
Rossen Stoyanchev
76fe5f6fce ResourceHttpMessageWriter refactoring
Fold ResourceRegionHttpMessageWriter into ResourceHttpMessageWriter.
The latter was a private helper (not meant to be exposed) and the two
have much in common now sharing a number of private helper methods.

The combined class does not extend AbstractServerHttpMessageConverter
from which it was not using anything.

Internally the combined class now delegates directly to ResourceEncoder
or ResourceRegionEncoder as needed. The former is no longer wrapped
with EncoderHttpMessageWriter which is not required since "resource"
MediaType determination is a bit different.

The consolidation makes it easy to see the entire algorithm in one
place especially for server side rendering (and HTTP ranges). It
also allows for consistent determination of the "resource" MediaType
via MediaTypeFactory for all use cases.
2017-03-20 09:21:35 -04:00
Sam Brannen
d46c307f55 Clean up warnings in spring-webflux module 2017-03-18 16:58:03 +01:00
Sam Brannen
ee379f8fc9 Ensure RouterFunctionsTests class compiles in Eclipse
Due to a type inference bug in Eclipse, an additional “hint” is
required in order for RouterFunctionsTests to compile in Eclipse.
2017-03-18 15:06:30 +01:00
Rossen Stoyanchev
c735ffb39b Fix content type issue in ResourceRegionHttpMessageWriter
ResourceRegionHttpMessageWriter no longer extends from
EncoderHttpMessageWriter freeing it to pass the correct content type
into the encoder.

Considering that the main benefit of EncoderHttpMessageWriter is to
deal with content type fallback cases, there is nothing to be missed.

Furthermore ResourceRegionHttpMessageWriter is a package private class
that is used internally within ResourceHttpMessageWriter and never
exposed externally as a an actual HttpMessageWriter.

Issue: SPR-15358
2017-03-17 17:29:05 -04:00
Rossen Stoyanchev
2979b37ae3 Consistent use of Mediatype in EncoderHttpMessageWriter
EncoderHttpMessageWriter now consistently uses the same MediaType to
set on the response and to pass to the encoder.

Issue: SPR-15357
2017-03-17 16:33:33 -04:00
Rossen Stoyanchev
91a75ed772 Polish EncoderHttpMessageWriter Content-Type handling 2017-03-17 12:46:29 -04:00
Rossen Stoyanchev
ad91b94249 Require Encoder & Decoder in Reader & Writer wrappers
When CodecHttpMessageConverter was split into DecoderHttpMessageReader
and EncoderHttpMessageWriter the null checks were never removed.

This commit makes the Encoder and Decoder instances provided to their
respective wrappers required.
2017-03-17 12:46:22 -04:00
Arjen Poutsma
1940f8cf89 Support ResponseStatusException in ServerResponse
This commit adds support for the ResponseStatusException in the
`ServerResponse.writeTo` method.

Issue: SPR-15344
2017-03-17 12:50:12 +01:00
Rossen Stoyanchev
71852a9241 Trap exception from SockJS HeartbeatTask
Issue: SPR-15307
2017-03-16 18:02:06 -04:00
Sebastien Deleuze
92288630cf Document Reactive APIs support 2017-03-16 21:53:42 +01:00
Rossen Stoyanchev
54192cf513 WebTestClient (server-less) setup accepts WebFilter's
Issue: SPR-15349
2017-03-16 15:38:49 -04:00
Rossen Stoyanchev
a99fe3eda4 Polish HttpHiddenMethodFilter 2017-03-16 15:01:23 -04:00
Rossen Stoyanchev
37592ea07c DefaultWebFilterChain is a top-level, public class
Issue: SPR-15348
2017-03-16 15:01:23 -04:00
Juergen Hoeller
ab7db413c6 DefaultResponseErrorHandler delegate methods declared as protected
Also revises copyToByteArray/String in FileCopyUtils/StreamUtils for lenient null handling.

Issue: SPR-15329
2017-03-16 18:57:13 +01:00
Juergen Hoeller
012c56a1f0 Avoid pattern misdetection in Tomcat "war:" URL separator
Issue: SPR-15332
2017-03-16 18:55:49 +01:00
Rossen Stoyanchev
f6e2c585c8 Refactor tests to use toExchange() shortcuts
Issue: SPR-15350
2017-03-16 11:55:09 -04:00
Rossen Stoyanchev
41c413a748 Add MockServerWebExchange and toExchange shortcuts
Issue: SPR-15350
2017-03-16 11:55:09 -04:00
Arjen Poutsma
45aa1edf87 Fix Undertow zero-copy-support
This commit fixed the exception that occurs when a larger file is
transfered using zero-copy on Undertow.

Issue: SPR-15343
2017-03-16 12:35:51 +01:00
Arjen Poutsma
1dc38660e5 Support ResponseStatusException in WebFlux fn
This commit introduces support for the ResponseStatusException in the
functional web framework.

Issue: SPR-15344
2017-03-16 09:40:48 +01:00
Rossen Stoyanchev
8be0b9ce90 Fix issue in WebTestClient support for exchange mutators
ExchangeMutatorWebFilter now supports multiple mutator registrations
for the same request header id by creating a single composed function.

Issue: SPR-15250
2017-03-15 18:26:54 -04:00
Rossen Stoyanchev
d39da1d06d Polish + minor HttpHandler refactoring
CompositeHttpHandler is public and called ContextPathCompositeHandler.

Also an overhaul of the Javadoc on HttpHandler, WebHttpHandlerAdapter,
and ContextPathCompositeHandler.
2017-03-15 17:05:20 -04:00
Phillip Webb
57d2fcef55 Extract CompositeHttpHandler functionality
Extract CompositeHttpHandler to a package private class and add direct
support via `HttpHandler.of(...)`. This removes the need for the
`HttpHandlerAdapterSupport` class.
2017-03-15 17:05:20 -04:00
Sebastien Deleuze
170057005e Use .nest() instead of .route() in Kotlin Web DSL
The goal is to have better consistency between Java
and Kotlin functional Web API.
2017-03-15 17:21:04 +01:00
Sebastien Deleuze
abc0c6e3e8 Replace RouterFunction.route() by a router() Kotlin helper 2017-03-15 17:17:31 +01:00
Sebastien Deleuze
1a49de3204 Upgrade to Kotlin 1.1.1 2017-03-15 17:04:43 +01:00
Rossen Stoyanchev
164204ca04 Reactive type checks for all argument method resolvers
All method argument resolvers now explicitly check for the presence
of a reactive type wrapper and reject it where not expected.

Issue: SPR-15297
2017-03-14 19:56:31 -04:00
Rossen Stoyanchev
a04fef8450 Rename AbstractHandlerResultHandler to HRHSupport 2017-03-14 19:56:31 -04:00
Juergen Hoeller
79ea77908a Process NULLABLE column as integer instead of boolean
Issue: SPR-15333
2017-03-14 15:19:13 +01:00
Juergen Hoeller
899f235998 Detect Tomcat's "war" protocol as jar URL
Issue: SPR-15332
2017-03-14 15:19:02 +01:00
Juergen Hoeller
4e82bf30c6 TransactionSynchronization declared with default methods
Issue: SPR-14432
2017-03-14 15:18:53 +01:00
Juergen Hoeller
e4741b8e42 SpringExtension.getApplicationContext declared as public
Issue: SPR-15340
2017-03-14 15:18:44 +01:00
Juergen Hoeller
e999da0eb0 Upgrade to TestNG 6.11 (and Netty 4.1.9) 2017-03-14 14:38:41 +01:00
Sebastien Deleuze
c56e4bd581 Upgrade to Tomcat 8.5.12 2017-03-14 10:39:22 +01:00
Rossen Stoyanchev
a7582fcc23 Polish method parameter handling 2017-03-13 15:38:08 -04:00
Rossen Stoyanchev
5ae9afd5a5 Refactor SyncInvocableHandlerMethod
Switch from extension to delegation model, i.e. delegating to
InvocableHandlerMethod, so that only sync invocation is exposed and
only resolvers of type SyncHandlerMethodArgumentResolver are allowed
to be configured in a cleaner fashion.
2017-03-13 15:38:03 -04:00
Rossen Stoyanchev
f490f3ca63 Polish SyncHandlerMethodArgumentResolver hiearchy 2017-03-13 15:37:40 -04:00
Sam Brannen
dda8beeb78 Clean up warnings in spring-test 2017-03-13 17:37:41 +01:00
Sebastien Deleuze
3c26e7f014 Add seeOther shortcut to ServerResponse.BodyBuilder 2017-03-13 11:32:49 +01:00
Rossen Stoyanchev
f84580c32d Per-request exchange mutating for WebTestClient
Issue: SPR-15250
2017-03-10 17:24:27 -05:00
Rossen Stoyanchev
f36e3d4a0d Support for mutating ServerWebExchange in WebTestClient
This commit adds a common base class for server-less setup with the
option to configure a transformation function on the
ServerWebExchange for every request.

The transformation is applied through a WebFilter. As a result the
RouterFunction setup is now invoked behind a DispatcherHandler with
a HandlerMapping + HandlerAdapter.

Issue: SPR-15250
2017-03-10 17:04:11 -05:00
Rossen Stoyanchev
1c9d4deba2 Add methods to prepend WebFilter + WebExceptionHandler 2017-03-10 17:04:11 -05:00
Rossen Stoyanchev
2cd6240dab Polish WebHttpHandlerBuilder 2017-03-10 17:04:11 -05:00
Brian Clozel
b799013567 Update to Reactor Aluminium SNAPSHOT
Currently the BOM versions are:

* reactor-core 3.0.6.BUILD-SNAPSHOT
* reactor-netty 0.6.2.BUILD-SNAPSHOT

This commit fixes as well a few deprecations in reactor-core.
2017-03-10 15:20:40 +01:00
Sebastien Deleuze
c8635de34e Tune Gradle config to avoid Kotlin Runtime library warning 2017-03-10 14:47:05 +01:00
Sebastien Deleuze
9963c4a495 Fix Kotlin warnings 2017-03-10 10:35:30 +01:00
Rossen Stoyanchev
813d3efe61 ExchangeResult refactoring in WebTestClient
The WebTestClient API no longer provides access to a base
ExchangeResult without a decoded response body.

Instead the response has to be decoded first and tests can then
access the EntityExchangeResult and FluxExchangeResult sub-types.
2017-03-09 17:40:56 -05:00