- 18 7月, 2018 11 次提交
-
-
由 Juergen Hoeller 提交于
(cherry picked from commit 4341838a)
-
由 sdeleuze 提交于
Leverage https://github.com/jetty-project/jetty-reactive-httpclient to add support for Jetty in WebClient via JettyClientHttpConnector. Implemented with buffer copy instead of optimized buffer wrapping because the latter hangs since Callback#succeeded doesn't allow releasing the buffer and requesting more data at different times (required for Mono<DataBuffer> for example). See https://github.com/eclipse/jetty.project/issues/2429. Issue: SPR-15092
-
由 Sebastien Deleuze 提交于
Issue: SPR-17058
-
由 Brian Clozel 提交于
Prior to this commit, resolving an argument for a WebFlux controller that's missing from the request and not required by the handler would throw a NullPointerException in some cases. This involves the conversion of the parameter (a `String` parameter type might not trigger this behavior) and sending a `null` within a reactive stream, which is illegal per the RS spec. We now rely on a `Mono.justOrEmpty()` to handle those specific cases. Issue: SPR-17050
-
由 Juergen Hoeller 提交于
-
由 Juergen Hoeller 提交于
Includes tests for parsing all available locales on the JVM, checking toString/toLanguageTag equality between parsed and original locale. Issue: SPR-7598 Issue: SPR-16651
-
由 Stephane Nicoll 提交于
* pr/1887: Correct method signature in code example
-
由 Andrew McCallum 提交于
Closes gh-1887
-
由 Rossen Stoyanchev 提交于
-
由 Rossen Stoyanchev 提交于
-
由 Juergen Hoeller 提交于
Issue: SPR-16700
-
- 17 7月, 2018 10 次提交
-
-
由 Juergen Hoeller 提交于
-
由 Juergen Hoeller 提交于
Issue: SPR-17045
-
由 Juergen Hoeller 提交于
Like CookieLocaleResolver, LocaleChangeInterceptor parses both locale formats by default now. Since it does not need to render the locale, its languageTagCompliant property is not relevant anymore at all. The parseLocale method in StringUtils validates the locale value now and turns an empty locale into null, compatible with parseLocaleString behavior and in particular aligned with web locale parsing needs. Issue: SPR-16700 Issue: SPR-16651
-
由 Juergen Hoeller 提交于
Includes an extension of SmartValidator for candidate value validation, as well as nullability refinements in Validator and BindingResult. Issue: SPR-16840 Issue: SPR-16841 Issue: SPR-16854
-
由 Rossen Stoyanchev 提交于
Issue: SPR-17039
-
由 Rossen Stoyanchev 提交于
DefaultUriBuilderFactory now uses EncodingMode.TEMPLATE_AND_VALUES by default. However the RestTemplate explicitly sets it to the previous setting EncodingMode.URI_COMPONENTS, so this affects mainly the WebClient and any direct use of DefaultUriBuilderFactory to configure either the RestTemplate or the WebClient. Issue: SPR-17039
-
由 Rossen Stoyanchev 提交于
Issue: SPR-17039
-
由 Rossen Stoyanchev 提交于
-
由 Juergen Hoeller 提交于
Issue: SPR-16877
-
由 Juergen Hoeller 提交于
Issue: SPR-17046
-
- 16 7月, 2018 5 次提交
-
-
由 Rossen Stoyanchev 提交于
The ability to request to encode before `build()`, and more importantly before expanding, allows stricter encoding to be applied to URI vars and consequently to neutralize the effect of characters with reserved meaning in a URI. Issue: SPR-17039
-
由 Juergen Hoeller 提交于
-
由 Juergen Hoeller 提交于
Issue: SPR-17034
-
由 Juergen Hoeller 提交于
Issue: SPR-17024
-
由 Juergen Hoeller 提交于
Issue: SPR-17043
-
- 15 7月, 2018 2 次提交
-
-
由 Stephane Nicoll 提交于
Issue: SPR-17042
-
由 Juergen Hoeller 提交于
Introduces a configure method pattern for Supplier-style configuration and a common SingletonSupplier decorator for method reference suppliers. Also declares jcache.config and jcache.interceptor for non-null conventions. Issue: SPR-17021
-
- 14 7月, 2018 2 次提交
-
-
由 Juergen Hoeller 提交于
Issue: SPR-17034
-
由 Rossen Stoyanchev 提交于
-
- 13 7月, 2018 3 次提交
-
-
由 Rossen Stoyanchev 提交于
This commit removes the session threshold check added recently which is not effective since maxIdleTime is usually much longer than the frequency of checks. The lazy triggering of expiration checks during create or retreive are simple and the most effective This commit also adds a maxSessions limit on the total number of sessions that can be created at any one time, a getSessions method for management purposes, and a removeExpiredSessions public API for manual triggering of expiration checks. Issue: SPR-17020, SPR-16713
-
由 Brian Clozel 提交于
-
由 Brian Clozel 提交于
Prior to this commit, `WebClient` would throw `IllegalArgumentException` when receiving an HTTP response with an unknown HTTP status code. This commit is a follow up of SPR-16748 (supporting non-standard HTTP status codes on the reactive `ClientHttpResponse`), and is mirroring SPR-15978 (supporting non-standard HTTP status codes in `RestTemplate`). With this change, `WebClient` now tolerates unknown status codes in some cases, while not offering that choice as a first class citizen: `HttpStatus` is still the preferred way to deal with HTTP status codes. Here's how `WebClient` will behave when fetching the full response: ``` // Given a remote endpoint returning a "123" HTTP status code Mono<ClientResponse> result = this.webClient.get() .uri("/status/123") .exchange(); // will still throw an IllegalArgumentException HttpStatus status = result.block().statusCode(); // is safe and will return 123 int statusCode = result.block().rawStatusCode(); ``` Resolving directly the response body with `retrieve()` is different. ``` // will send an error signal with a UnknownHttpStatusCodeException Mono<String> result = this.webClient.get() .uri("/status/123") .retrieve() .bodyToMono(String.class); ``` In general, `WebClient` will provide high-level support for well-known HTTP status codes, like error handling with `WebClient.ResponseSpec#onStatus`. For such support with unknown status codes, it is better to rely on lower level constructs such as `ExchangeFilterFunction`. Issue: SPR-16819
-
- 12 7月, 2018 2 次提交
-
-
由 Juergen Hoeller 提交于
-
由 Rossen Stoyanchev 提交于
1. Add session count threshold as am extra pre-condition. 2. Check pre-conditions for expiration checks on every request. Effectively an upper bound on how many sessions can be created before expiration checks are performed. Issue: SPR-17020
-
- 11 7月, 2018 5 次提交
-
-
由 Rossen Stoyanchev 提交于
-
由 Rossen Stoyanchev 提交于
Issue: SPR-16203
-
由 Rossen Stoyanchev 提交于
Issue: SPR-17029
-
由 Rossen Stoyanchev 提交于
-
由 Rossen Stoyanchev 提交于
Issue: SPR-16189
-