Commit Graph

15139 Commits

Author SHA1 Message Date
Rossen Stoyanchev b6d1fd9d22 Minor refactoring in PathPatternParser
Remove the separator constructor argument (but preserve internal
functionality) now that PathPatternParser is more explicitly purposed
for URL paths and in any case the use of an alternate separator would
also requires a similar input option on the PathContainer parsing side.
2017-08-01 22:52:18 +02:00
Rossen Stoyanchev 1794f1cea4 Polish path pattern parsing javadoc
Emphasize specific purpose for URL path matching.
2017-08-01 22:31:21 +02:00
Rossen Stoyanchev b1440b6816 Remove ParsingPathMatcher
Now that we also have RequestPath and PathContainer with the latter as
the required input, the ParsingPathMatcher adapter can be removed.
2017-08-01 13:35:21 +02:00
Rossen Stoyanchev 4fc0ce1206 Properly detect null value params in params conditions
Issue: SPR-15831
2017-08-01 13:01:09 +02:00
Juergen Hoeller ca0983cd85 Polishing 2017-08-01 12:08:57 +02:00
Juergen Hoeller 697d14a028 Unit tests for transaction annotations on parent interfaces
Issue: SPR-15833
2017-08-01 12:08:21 +02:00
Juergen Hoeller dd2bbcb3ec Leniently handle lambda-defined listeners with ErrorHandler as well
Issue: SPR-15838
2017-08-01 12:06:41 +02:00
Juergen Hoeller 1fbd047003 checkConfigurationClassCandidate explicitly skips factory method definitions
Issue: SPR-14603
2017-08-01 12:05:26 +02:00
Rossen Stoyanchev f813a63fd8 PathContainer parses URL paths only
Collapse non-URL vs URL based path parsing into one essentially
supporting URL paths only.
2017-07-31 22:10:08 +02:00
Rossen Stoyanchev af83d2332a Fix regression in HttpPutFormContentFilter
Re-arrange the checks so that if there is no form parameter, then
immediately and unconditionally delegate to super.getParameterValues().
Or reversely if there is no super.getParameterValues() then return the
form parameter.

So the only remaining case is when combining values present in both.
In that case we'll take both only if a queryString exists.

One extra fix is to not even wrap the request if we did not parse any
form parameters at all which can happen with HttpHiddenMethodFilter.

Issue: SPR-15828, 15835
2017-07-31 17:30:22 +02:00
Juergen Hoeller ce0bce28da Upgrade to JUnit 5.0 RC2
Issue: SPR-15737
2017-07-31 11:11:38 +02:00
Stephane Nicoll 1a9cfefcbb Fix test failure
Issue: SPR-15548
Closes gh-1488
2017-07-31 10:45:18 +02:00
Stephane Nicoll 48f18e9a47 Merge pull request #1488 from eddumelendez:jackson_2.9.0
* pr/1488:
  Upgrade to Jackson 2.9.0
2017-07-31 09:37:56 +02:00
Eddú Meléndez b2345d67db Upgrade to Jackson 2.9.0
Issue: SPR-15548
Closes gh-1488
2017-07-31 09:37:29 +02:00
Rossen Stoyanchev e45733e790 Update overview.adoc 2017-07-28 17:20:19 +02:00
Rossen Stoyanchev d37498c354 Update overview.adoc 2017-07-28 16:37:49 +02:00
Rossen Stoyanchev a48a47bbd0 Merge pull request #1487 from Buzzardo/master
New overview
2017-07-28 16:18:34 +02:00
Jay Bryant 4872084079 New overview
We have written a replacement for the current overview, as the beginning of a larger documentation effort.
2017-07-28 08:38:38 -05:00
Arjen Poutsma 0b3ea405ab Remove BodyInserters.fromServerSentEvent variants
Removed superfluous `fromServerSentEvent` variants from `BodyInserters`,
as their functionality can also be obtained by passing a stream of
strings or POJOs (to be encoded as JSON) to
`fromPublisher(Publisher, Class)}`, and specifying a `text/event-stream`
Content-Type.

Issue: SPR-15826
2017-07-28 12:37:19 +02:00
Rossen Stoyanchev dbe25cf717 Add RequestPath tests for modifying the contextPath 2017-07-28 12:26:34 +02:00
Rossen Stoyanchev 6855a85c41 Move RequestPath to parent server package 2017-07-28 12:26:34 +02:00
Sam Brannen 4630e62c20 Fix formatting 2017-07-28 12:25:05 +02:00
Sam Brannen 859da2f074 Clean up warnings in spring-test 2017-07-28 12:24:53 +02:00
Sebastien Deleuze 6583f9f754 Use ParameterizedTypeReference instead of Class in Kotlin extensions
This commit also removes WebFlux non-extension functions in favor of
regular Kotlin extensions leveraging ParameterizedTypeReference parameter.

Issue: SPR-15818
2017-07-28 00:22:00 +02:00
Arjen Poutsma 1d86c9c3d1 Use Credentials object instead of 2 attributes for Basic Authentication
This commit changes the usage of two separate attributes (username and
password) into one: a single `Credentials` object.
Additionally, the attributes key under which the credentials are stored
is changed to be specific to Basic Authentication, in order to allow for
other sorts of authentication later.

Issue: SPR-15764
2017-07-27 16:09:09 +02:00
Juergen Hoeller 26de6268aa Polishing 2017-07-27 16:06:56 +02:00
Juergen Hoeller fac83b2e7c Consistent logging in Environment and PropertySource implementations
Issue: SPR-15825
2017-07-27 16:02:18 +02:00
Sebastien Deleuze 3cef5a1294 Add RouterFunctions#toWebHandler(RouterFunction<?>) 2017-07-27 15:25:35 +02:00
Arjen Poutsma eb435f5947 Add ParameterizedTypeReference method variants to ServerRequest/ServerResponse
This commit changes adds overloaded `ParameterizedTypeReference `
variants to body-related methods in `ServerRequest` and
`ServerResponse`.
It also adds a single PTR variant to ClientRequest, which was missing
before.

Issue: SPR-15817
2017-07-27 13:38:35 +02:00
Juergen Hoeller c5fc400534 (AnnotationAware)OrderComparator supports null values again
Issue: SPR-15823
2017-07-27 11:39:05 +02:00
Juergen Hoeller 25e6a2da64 StompSubProtocolHandler consistently accesses current user
Issue: SPR-15822
2017-07-27 11:32:32 +02:00
Arjen Poutsma f3975776d4 Use list of HttpMessage[Reader|Writer]s instead of CodecConfigurer
This commit changes all consumers of CodecConfigurer to consume a `List`
of HttpMessageReaders or HttpMessageWriters instead of consuming the
Server- or ClientCodecConfigurer directly.

Issue: SPR-15816
2017-07-26 17:48:36 +02:00
Sebastien Deleuze 1e07468d20 Prevent warning about final private methods in CglibAopProxy
Issue: SPR-15820
2017-07-26 15:57:57 +02:00
Arjen Poutsma d5da823482 Fix race condition for AsynchronousFileChannel
This commit fixes an issue in the DataBufferUtils.write variant that
takes a AsynchronousFileChannel.

Issue: SPR-15798
2017-07-26 14:10:48 +02:00
Juergen Hoeller d904e9ed50 Latest dependency updates (RxJava 2.1.2, Rome 1.7.4, JRuby 9.1.12) 2017-07-25 14:12:57 +02:00
Juergen Hoeller af93503a09 TemplateAwareExpressionParser treats null as non-template ParserContext
Issue: SPR-15810
2017-07-25 14:12:41 +02:00
Rossen Stoyanchev 45e714ec13 Add test case for SPR-15719 2017-07-25 12:29:44 +02:00
Rossen Stoyanchev d20e5fcc59 Polish 2017-07-25 12:29:44 +02:00
Sebastien Deleuze 29c112c010 Avoid requiring `it` parameter in Kotlin bean DSL
By using function literals with receiver, we can avoid requiring
lambda parameters for a shorter and nicer syntax. Based on a
proposal from Joseph Taylor.

Issue: SPR-15815
2017-07-25 11:21:08 +02:00
Rossen Stoyanchev d7a7b08b08 Find the last plus for suffix MediaType
Issue: SPR-15795
2017-07-25 10:45:59 +02:00
Rossen Stoyanchev 7e232f989b Improve check for "Broken pipe" error message
Issue: SPR-15802
2017-07-25 10:30:11 +02:00
Sebastien Deleuze ed6fe2b723 Upgrade to Kotlin 1.1.4-eap-33
Issue: SPR-15814
2017-07-24 17:29:02 +02:00
Rossen Stoyanchev 14ccb38523 Handle nested w/o top-level array in Jackson2JsonTokenizer
Issue: SPR-15803
2017-07-21 13:43:38 +02:00
Rossen Stoyanchev bd0de7086e Jackson2JsonTokenizer unwraps top level array only
When the input stream is a JSON array the tokenizer skips over the
start and end array tokens in order to decode into an array of
top-level objects. However in this mode it also skips over nested
start and end array tokens which prevents proper parsing of JSR-310
dates (represented with an array syntax) as well as any fields that
are collections.

Issue: SPR-15803
2017-07-21 12:41:20 +02:00
Rossen Stoyanchev c3e3df57f8 Polish 2017-07-21 12:08:06 +02:00
Rossen Stoyanchev 3009e29489 Remove contentDispositionFormData with charset method
The method was orginally added under SPR-14547 but the example in it
was probably intended for use with Content-Disposition server response
header (file dowonload) and not for a Content-Disposition header
within the body of a multipart request.

In a Spring application a multipart request is typically serialized
by the FormHttpMessageConverter and hence the Content-Disposition is
not explicitly set by the application.

Issue: SPR-15205
2017-07-20 17:49:59 +02:00
Sebastien Deleuze d8a80fc0db Rename RouterFunction Kotlin DSL files 2017-07-20 16:05:00 +02:00
Sebastien Deleuze 0720f9e978 Fix an eventual IndexOutOfBoundsException in RequestPredicates 2017-07-20 16:05:00 +02:00
Brian Clozel f1abcba4eb Support ipV6 Host addresses in HttpHeaders
This commit parses the "Host" HTTP request header as an
`InetSocketAddress`, while supporting IPv6 addresses like `[::1]`.

This host string contains `:` chars even though it has no port
information.

Issue: SPR-15799
2017-07-20 15:21:46 +02:00
Rossen Stoyanchev bb684ce60b Improve decoding support for multipart filename
StandardMultipartHttpServletRequest now properly decodes RFC-5987
encoded filenames (i.e. filename*) by delegating to ContentDisposition
and also support RFC-2047 syntax through javax.mail MimeUtility.

Issue: SPR-15205
2017-07-20 14:26:20 +02:00