- 12 10月, 2018 3 次提交
-
-
由 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 18 次提交
-
-
由 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
-
由 Rossen Stoyanchev 提交于
Collapse the package private AbstractMonoToListenableFutureAdapter into its only sub-class MonoToListenableFutureAdapter. There is no need for such an abstract class that makes it possible to adapt from one source to a different target type. That's already covered by ListenableFutureAdapter. Follow-up refactoring for SPR-17336.
-
由 Rossen Stoyanchev 提交于
Issue: SPR-17336
-
- 09 10月, 2018 1 次提交
-
-
由 Rossen Stoyanchev 提交于
Avoid automatically unwrapping the request in TestDispatcherServlet, if we find the MockAsyncContext. Issue: SPR-17353
-
- 08 10月, 2018 1 次提交
-
-
由 Sebastien Deleuze 提交于
Spring Framework 5.1.0 exposed by mistake context in the Kotlin bean DSL API in order to fix SPR-16269. Now that BeanFactory#getBeanprovider is available, it should be exposed via a provider<Foo>() function in order to provide a more clean API instead. Issue: SPR-17352
-
- 07 10月, 2018 2 次提交
-
-
由 Stephane Nicoll 提交于
* pr/1983: Fix bullet list layout
-
由 Mykola Fadieiev 提交于
Closes gh-1983
-
- 06 10月, 2018 6 次提交
-
-
由 Rossen Stoyanchev 提交于
Explain the need for consistent use of ServerWebExchange for access to the parsed (and cached) form data or multipart data. Issue: SPR-17291
-
由 Rossen Stoyanchev 提交于
-
由 Rossen Stoyanchev 提交于
-
由 Rossen Stoyanchev 提交于
Headings are optimized for how they appear in the left-hand side navitation menu, with context provided by parent headings, and not necessarily for how they read on their own. At 2nd and 3rd level of nesting, which is where most headings are, the wrapping becomes too distracting and the left-hand side navigation sprawling.
-
由 Rossen Stoyanchev 提交于
Issue: SPR-17284
-
由 Rossen Stoyanchev 提交于
Issue: SPR-17345
-