- 13 10月, 2018 2 次提交
-
-
由 Rossen Stoyanchev 提交于
Rather than formatting the expected value, and be susceptible to minor formatting differences (e.g. 01 vs 1 for day of month), parse the actual header value leniently with HttpHeaders and compare time values. Issue: SPR-17330
-
由 Rossen Stoyanchev 提交于
-
- 12 10月, 2018 13 次提交
-
-
由 Stephane Nicoll 提交于
* pr/1991: Fix deprecated property in MBeanExporter documentation
-
由 Christian Kulpa 提交于
Closes gh-1991
-
由 Juergen Hoeller 提交于
Issue: SPR-17373
-
由 Juergen Hoeller 提交于
Issue: SPR-17320
-
由 Juergen Hoeller 提交于
-
由 Juergen Hoeller 提交于
Includes jarjar upgrade since jarjar 1.3 fails to properly relocate Objenesis 3.0 classes into org.springframework.objenesis package. Issue: SPR-17372
-
由 Juergen Hoeller 提交于
Issue: SPR-17371
-
由 Juergen Hoeller 提交于
Issue: SPR-17371
-
由 陈灵敏 提交于
Issue: SPR-17364
-
由 Rossen Stoyanchev 提交于
If the content has not been consumed, cause it to be produced, and wait for a certain amount of time before giving up, so the raw content can be made available. This can occur when: 1) In a mock server scenario the Flux representing the client request content is passed directly to the mock server request, but is never consumed because of an error before the body is read. 2) Test obtains FluxExchangeResult (e.g. for streaming) but instead of consuming the Flux, it calls getResponseBodyContent() instead. Issue: SPR-17363
-
由 Rossen Stoyanchev 提交于
Extract a common delegate class to share between the request and the to wiretap a Publisher and record and buffer its data. Preparation for SPR-17363.
-
由 Rossen Stoyanchev 提交于
-
由 Stephane Nicoll 提交于
-
- 11 10月, 2018 9 次提交
-
-
由 Brian Clozel 提交于
This commit adds special processing of some HTTP response headers in Jetty and Tomcat; they both consider some headers like "Content-Length" as specific and require explicit calls on the `HttpServletResponse` itself on top of setting the HTTP response header. Issue: SPR-17250
-
由 Arjen Poutsma 提交于
SPR-17367
-
由 Brian Clozel 提交于
This commit avoids copying HTTP headers when mutating an HTTP request. Instead, we're now unwrapping the `ReadOnlyHttpHeaders` (which is most likely backed by the native request headers). Issue: SPR-17250
-
由 Brian Clozel 提交于
Several benchmarks underlined a few hotspots for CPU and GC pressure in the Spring Framework codebase: 1. `org.springframework.util.MimeType.<init>(String, String, Map)` 2. `org.springframework.util.LinkedCaseInsensitiveMap.convertKey(String)` Both are linked with HTTP request headers parsing and response headers writin during the exchange processing phase. 1) is linked to repeated calls to `HttpHeaders.getContentType` within a single request handling. The media type parsing operation is expensive and the result doesn't change between calls, since the request headers are immutable at that point. This commit improves this by caching the parsed `MediaType` for the `"Content-Type"` request header in the `ReadOnlyHttpHeaders` class. This change is available for both Spring MVC and Spring WebFlux. 2) is linked to insertions/lookups in the `LinkedCaseInsensitiveMap`, which is the data structure behind `HttpHeaders`. Those operations are creating a lot of garbage (including a lot of `String` created by `toLowerCase`). We could choose a more efficient data structure for storing HTTP headers data. As a first step, this commit is focusing on Spring WebFlux and introduces `MultiValueMap` implementations mapped by native HTTP headers for the following servers: Tomcat, Jetty, Netty and Undertow. Such implementations avoid unnecessary copying of the headers and leverages as much as possible optimized operations provided by the native implementations. This change has a few consequences: * `HttpHeaders` can now wrap a `MultiValueMap` directly * The default constructor of `HttpHeaders` is still backed by a `LinkedCaseInsensitiveMap` * The HTTP request headers for the websocket HTTP handshake now need to be cloned, because native headers are likely to be pooled/recycled by the server implementation, hence gone when the initial HTTP exchange is done Issue: SPR-17250
-
由 volkovandr 提交于
-
由 Brian Clozel 提交于
Preparing for Californium-SR1
-
由 Juergen Hoeller 提交于
Includes JSON-P 1.1.3.
-
由 Juergen Hoeller 提交于
Issue: SPR-17358
-
由 Rossen Stoyanchev 提交于
The chain is initialized once and re-used vs creating the "next" chains on every request.
-
- 10 10月, 2018 16 次提交
-
-
由 Stephane Nicoll 提交于
-
由 Stephane Nicoll 提交于
Previously, if a DeferredImportSelector was identified at a later stage as part of processing the collected set of deferred imports, such selector was processed as a regular import selector. Semantically, it makes sense as we already are in the deferred phase at this point and it doesn't make much sense to bother about the extra contract. However, Spring Framework 5 introduced the notion of Group that a deferred import selector can define. When it does, the container has to honour the contract of the Group rather than calling the simpler ImportSelector parent contract. This commit restructures the processing of such case. When a deferred import selector is detected while processing deferred import selectors, a group is created with only that selector and the group API is invoked. Issue: SPR-17351
-
由 Juergen Hoeller 提交于
-
由 Juergen Hoeller 提交于
Includes consistent upfront resolution of factory method annotations. Issue: SPR-8891
-
由 Juergen Hoeller 提交于
Issue: SPR-17356
-
由 Juergen Hoeller 提交于
Issue: SPR-17347
-
由 Juergen Hoeller 提交于
Issue: SPR-17333
-
由 Juergen Hoeller 提交于
Issue: SPR-17332
-
由 Juergen Hoeller 提交于
Issue: SPR-17326
-
由 Juergen Hoeller 提交于
Issue: SPR-17324
-
由 Juergen Hoeller 提交于
Issue: SPR-17323
-
由 Juergen Hoeller 提交于
Issue: SPR-17321
-
由 Juergen Hoeller 提交于
Includes use of Files.getLastModifiedTime for NIO Paths, preservation of NIO-based resolution on createRelative, deprecation of PathResource, and consistent use of getContentLengthLong over getContentLength. Issue: SPR-17320
-
由 Juergen Hoeller 提交于
Issue: SPR-17267
-
由 Rossen Stoyanchev 提交于
Replace all method level comments related to forwaded headers, some current and some outdated, with a single class-level comment. Issue: SPR-17317
-
由 Rossen Stoyanchev 提交于
This was a package private class in spring-messaging since 5.0, and was recently made public in 5.1. This commit promotes it to spring-core where it belongs next to all other ListenableFuture support classes. Follow-up refactoring for SPR-17336
-