Commit Graph

1949 Commits

Author SHA1 Message Date
Rossen Stoyanchev
ee861e8001 Fix compiler deprecation-related errors 2017-01-27 17:26:14 -05:00
Rossen Stoyanchev
d057c3d981 Deprecate DefaultUriTemplate handler
Following on the introduction of the UriBuilderFactory and its
DefaultUriBuilderFactory implementation, this commit deprecates
DefaultUriTemplate (and AbstractUriTemplateHandler).

The new DefaultUriBuilderFactory has comparable functionality and is
more flexible but cannot be merged  into the existing hierarchy and
be backwards compatible with regards to protected methods.

Issue: SPR-15124
2017-01-27 16:38:16 -05:00
Rossen Stoyanchev
7b67b5bc2a Introduce UriBuilderFactory and UriBuilder
Issue: SPR-15124
2017-01-27 14:07:55 -05:00
Stephane Nicoll
d550eb152c Polish contribution
Closes gh-1307
2017-01-27 14:17:13 +01:00
Ruben Dijkstra
f1c7e0f5b2 Check for null on the argument instead of the message
See gh-1307
Issue: SPR-15196
2017-01-27 14:15:24 +01:00
Rossen Stoyanchev
4aac7c2ee2 Minor refactoring in Tomcat/Jetty adapters 2017-01-26 07:37:46 -05:00
Rossen Stoyanchev
a2aaa05592 Polish 2017-01-26 07:25:22 -05:00
Violeta Georgieva
383375c35f Use separate reactive HttpHandler for Tomcat/Jetty
Introduce separate adapters TomcatHttpHandlerAdapter/JettyHttpHandlerAdapter
so that each adapter can use the Tomcat/Jetty APIs for reading/writing
with ByteBuffer.
2017-01-26 06:21:44 -05:00
Rossen Stoyanchev
ae034e9afe Polish content disposition 2017-01-25 17:19:30 -05:00
Juergen Hoeller
8038fb9c8b HandlerMethod pre-resolves parameter types at construction time
Issue: SPR-15186
2017-01-25 11:09:43 +01:00
Juergen Hoeller
5e946c2700 Consistent type variable resolution for arrays/collections (in particular at field level)
Dropping GenericCollectionTypeResolver in favor of direct ResolvableType usage.

Issue: SPR-15160
2017-01-24 18:00:17 +01:00
Juergen Hoeller
a0df36ddda HiddenHttpMethodFilter defensively proceeds with original request in case of error dispatch
Issue: SPR-15179
2017-01-23 21:25:21 +01:00
Juergen Hoeller
54e2d63d6f Polishing 2017-01-19 21:21:01 +01:00
Kazuki Shimizu
053ac64101 Add "Problem Details for HTTP APIs" media types
See RFC 7807: Problem Details for HTTP APIs

* application/problem+json
* application/problem+xml

Issue: SPR-15110
2017-01-19 15:14:35 +01:00
Rossen Stoyanchev
bb3b1f2fe2 Additional convenience methods in UriUtils
The generic encode method in UriUtils that encodes any character
outside the reserved character set for a URI is meant for "strict"
encoding of URI variable values. This commit adds a couple more
conveninence methods that accept a Map or array of URI variable
values to encode.

This facilitates the use case where the URI template is assumed to
be encoded while URI variables are encoded strictly to avoid any
possibility for unwanted reserved characters:

Map<String, ?> encodedUriVars = UriUtils.encodeUriVariables(uriVars);
uriComponentsBuilder.build(true).expand(encodedUriVars).toUri();

Issue: SPR-14970
2017-01-18 21:45:33 -05:00
Rossen Stoyanchev
f2e293aadf UriComponents allows "+" in a query param
Issue: SPR-14828
2017-01-18 21:04:37 -05:00
Rossen Stoyanchev
b609f3a546 WebHttpHandlerBuilder supports @Order on beans
Issue: SPR-15074
2017-01-18 20:55:29 -05:00
Arjen Poutsma
7b341ae5e2 Moved UnsupportedMediaTypeException
Moved UnsupportedMediaTypeException next to Body[Inserters|Extractors],
as that is where they are used. This move should have been done as part
of the inserter and extractor move, but was forgotten.
2017-01-18 16:16:26 +01:00
Juergen Hoeller
ee71e7bae1 Polishing 2017-01-18 01:00:02 +01:00
Juergen Hoeller
bea934b5bd Polishing 2017-01-18 00:43:17 +01:00
Juergen Hoeller
d21b6e596f Revised Charset handling and common StringUtils.uriDecode delegate
Issue: SPR-14492
2017-01-18 00:09:06 +01:00
Rossen Stoyanchev
8417831602 Add accessor methods to HttpPutFormContentFilter
Issue: SPR-14503
2017-01-17 17:19:04 -05:00
Juergen Hoeller
99dc96b1a4 Polishing 2017-01-17 20:42:40 +01:00
Juergen Hoeller
ad5386773e ContentCachingRequestWrapper supports content cache limit
Issue: SPR-14829
2017-01-17 20:42:19 +01:00
Rossen Stoyanchev
9819558cba Support encoded query string in reactive requests
In addition to the updates from PR#1297 this commit adds an integration
test and fixes for the resulting failures with RxNetty, Reactor Netty,
and Undertow.

Also replaced use of URLDecoder which is not for decoding URIs with use
of UriUtils for decoding query parameters.

Issue: SPR-15140
2017-01-17 12:46:05 -05:00
Eiichi Sato
613e65f043 Fix URL decoding issue in reactive @RequestParam
%-encoded strings were injected undecoded into @RequestParam variables,
which does not coincide with spring-webmvc behaviour. This commit
fixes AbstractServerHttpRequest.getQueryParams() to correctly return
decoded name-value pairs.

Issue: SPR-15140
2017-01-17 12:46:05 -05:00
Violeta Georgieva
141e04aa0f Fix URI construction in UndertowServerHttpRequest
Ensure there is no "?" at the end of the generated URI when there is
no query available.
2017-01-17 10:19:01 -05:00
Juergen Hoeller
052014783a Remove outdated BeanFactoryLocator documentation references
Issue: SPR-15154
2017-01-17 16:03:17 +01:00
Juergen Hoeller
874b653314 Clarified cookieMaxAge default
Issue: SPR-15155
2017-01-17 15:33:30 +01:00
Juergen Hoeller
ac6aa53031 Drop outdated BeanFactoryLocator / beanRefContext.xml mechanism
Issue: SPR-15154
2017-01-17 13:58:37 +01:00
Juergen Hoeller
c42d44a42c Polishing and documentation fixes 2017-01-17 12:47:04 +01:00
Brian Clozel
0c99346829 Add SNI support in Netty4ClientHttpRequestFactory
This commit changes the `Bootstrap` to create a SSL Handler with
advisory peer information; this enables support for SNI.

Issue: SPR-15101
2017-01-17 11:15:06 +01:00
Juergen Hoeller
95330d0e44 Polishing 2017-01-16 21:49:21 +01:00
Juergen Hoeller
1922f03d24 StandardMultipartHttpServletRequest identifies MaxUploadSizeExceededException through keywords in message
Issue: SPR-9294
2017-01-16 21:45:22 +01:00
Juergen Hoeller
047786acef Revised InvocableHandlerMethod exception messages (controller vs endpoint vs handler)
Introduces dedicated MethodArgumentResolutionException for spring-messaging invocations.

Issue: SPR-15139
2017-01-16 21:14:46 +01:00
Rossen Stoyanchev
ba3cc535f1 Refactor reactive mock request and response support
MockServerHttpRequest and MockServerHttpResponse now extend the same
abstract base classes that server-specific implementations do and
therefore approximate their behavior more closely.

As an immediate consequence MockServerHttpRequest is read-only after
it is created. Instead it now exposes static builder methods similar
to those found in RequestEntity. This enforces more strictness as well
as recycling of requests in tests and provides nicer builder methods.

To simplify tests DefaultServerWebExchange now offers a constructor
with just a request and response, and automatically creating a
DefaultWebSessionManager.

The spring-test module now also contains client-side reactive mock
request and response implementations. The mock client request extends
the same AbstractClientHttpRequest as client-specific implementations
do. There is no abstract base class for client responses.

Issue: SPR-14590
2017-01-13 15:23:06 -05:00
Juergen Hoeller
743ce2cda6 Polishing 2017-01-12 23:30:38 +01:00
Juergen Hoeller
e19dff179e Polishing 2017-01-12 21:18:01 +01:00
Juergen Hoeller
0403fe340d Merge pull request #1287 from markhobson/SPR-15109
Introduce mime/media types for application/rss+xml
2017-01-12 20:24:27 +01:00
Sebastien Deleuze
aa43472f2e Fix error handling in Jackson2JsonDecoder
Issue: SPR-15112
2017-01-09 14:51:16 +01:00
Mark Hobson
2ce2f7d9a5 Introduce mime/media types for application/rss+xml
Issue: SPR-15109
2017-01-07 17:13:32 +00:00
Sam Brannen
9ed66bf2eb Clean up warnings across code base 2017-01-07 01:54:38 +01:00
Brian Clozel
afd93a0b52 Disable streaming when reading to Resources in RestTemplate
Prior to this commit, the `ResourceHttpMessageConverter` would support
converting from an `HttpInputMessage` to a `InputStreamResource`. This
is valid when reading resources on the server side, but it's not
compatible with the way `RestTemplate` works.

The API exposed by `RestOperations` imply that the HTTP server response
should be fully consumed and properly closed by the time the `exchange`
method returns. In other words, this HTTP client does not support
streaming the HTTP response.

This commit allows the `ResourceHttpMessageConverter` to be configured
to disable read streaming when used in `RestTemplate`.

Issue: SPR-14882
2017-01-05 14:48:35 +01:00
Rob Winch
df98d304fd Fix ForwardedHeaderFilter with non-empty contextPath
Issue: SPR-15088
2017-01-03 14:51:31 -06:00
Brian Clozel
1ab0916bed Fix default content-type for ResourceRegion HTTP responses
Prior to this commit, the `ResourceRegionHttpMessageConverter` would
rely on the default implementation of `getDefaultContentType` to guess
the default Content-Type of the resource region to be written to the
HTTP response. That implementation fetches the first media type
provided in the HTTP request "Accept" header.

This behavior is not correct when converting resources and this commits
aligns this converter with the `ResourceHttpMessageConverter` which uses
JAF to guess the correct Content-Type of the given resource, or just
returns "application/octet-stream" as a default value.

Issue: SPR-15041
2017-01-02 22:04:20 +01:00
Juergen Hoeller
048098119e PATCH does not work with the standard JDK HTTP library
Issue: SPR-15052
2016-12-27 13:32:43 +01:00
Sebastien Deleuze
fbf88d19da Allow to specify hints with the functional web API
The most common use case is specifying JSON views.

ServerResponse.BodyBuilder#hint(String, Object) allows to
specify response body serialization hints.

ServerRequest#body(BodyExtractor, Map) allows to specify
request body extraction hints.

Issue: SPR-15030
2016-12-23 17:58:34 +01:00
Sebastien Deleuze
69b69442bc Add ServerSentEventHttpMessageReader
This HTTP message reader parse incoming Server-Sent
Events and turn them into Flux<String>, Flux<Pojo>
or Flux<ServerSentEvent>.

Issue: SPR-14539
2016-12-21 17:07:41 +01:00
Sebastien Deleuze
183b326f6d Add ServerSentEvent#toString() 2016-12-21 16:46:43 +01:00
Sebastien Deleuze
a8d8273dc1 Fix a typo in ServerSentEventHttpMessageWriter Javadoc 2016-12-21 16:46:42 +01:00