1. 13 11月, 2018 1 次提交
  2. 12 11月, 2018 3 次提交
  3. 10 11月, 2018 1 次提交
  4. 09 11月, 2018 2 次提交
  5. 03 11月, 2018 1 次提交
  6. 02 11月, 2018 1 次提交
  7. 31 10月, 2018 3 次提交
    • R
      Fix since tag · 9da9bb96
      Rossen Stoyanchev 提交于
      9da9bb96
    • R
      Increase sharing among InvocableHandlerMethod variants · 3f42e161
      Rossen Stoyanchev 提交于
      In particular between reactive and non-reactive web variants, but
      also preparing for a messaing reactive variant.
      3f42e161
    • R
      Consistent InvocableHandlerMethod implementations · 7c36549e
      Rossen Stoyanchev 提交于
      This commit makes the 3 existing InvocableHandlerMethod types more
      consistent and comparable with each other.
      
      1. Use of consistent method names and method order.
      
      2. Consistent error formatting.
      
      3. Explicit for loops for resolving argument values in webflux variant
      because that makes it more readable, creates less garabage, and it's
      the only way to bring consistency since the other two variants cannot
      throw exceptions inside Optional lambdas (vs webflux variant which can
      wrap it in a Mono).
      
      4. Use package private HandlerMethodArgumentComposite in webflux
      variant in order to pick up the resolver argument caching that the
      other two variants have.
      
      5. Polish tests.
      
      6. Add missing tests for messaging variant.
      7c36549e
  8. 26 10月, 2018 3 次提交
    • B
      Configure ResourceUrlProvider in WebFlux · fc957e95
      Brian Clozel 提交于
      Prior to this commit, no `ResourceUrlProvider` was configured
      in WebFlux (no bean was contributed by the WebFlux infrastructure).
      Also, several `ResourceTransformer` instances that extend the
      `ResourceTransformerSupport` base class need a `ResourceUrlProvider`
      to resolve absolute URLs when rewriting resource URLs. At this point,
      no `ResourceUrlProvider` was configured and they could only resolve
      relative URLs.
      
      This commit contributes a new `ResourceUrlProvider` to the WebFlux
      configuration; this bean can be reused by the WebFlux infrastructure and
      application code.
      
      This also automatically configure this shared `ResourceUrlProvider`
      instance on the resource chain where needed.
      
      Issue: SPR-17433
      fc957e95
    • J
      Polishing · 3fee8cb6
      Juergen Hoeller 提交于
      3fee8cb6
    • V
      Remove unnecessary null check · 8df3fd3f
      Vikash Tiwari 提交于
      8df3fd3f
  9. 25 10月, 2018 1 次提交
    • B
      Fix absolute paths when transforming resources · 2146e137
      Brian Clozel 提交于
      Prior to this commit, `ResourceTransformerSupport.toAbsolutePath`
      would call `StringUtils.applyRelativePath` in all cases. But this
      implementation is prepending the given path even if the relative path
      starts with `"/"`.
      
      This commit skips the entire operation if the given path is absolute,
      i.e. it starts with `"/"`.
      
      Issue: SPR-17432
      2146e137
  10. 23 10月, 2018 1 次提交
  11. 20 10月, 2018 1 次提交
    • R
      Server adapters release buffers on error/cancel · 862dd239
      Rossen Stoyanchev 提交于
      Review and update Servlet and Undertow adapters to release any data
      buffers they be holding on to at the time of error or cancellation.
      
      Also remove onDiscard hooks from Reactor and Undertow request body.
      For Reactor we expect it to be handled. For Undertow there isn't
      any Reactor Core upstream for the callback to be useful.
      
      Issue: SPR-17410
      862dd239
  12. 18 10月, 2018 1 次提交
    • A
      Store PathPattern instead of String in attributes · d303c8a2
      Arjen Poutsma 提交于
      This commit changes the attributes stored under
      RouterFunctions.MATCHING_PATTERN_ATTRIBUTE and
      HandlerMapping.BEST_MATCHING_PATTERN_ATTRIBUTE from a String to a
      PathPattern, similar to what annotated controllers set.
      
      Issue: SPR-17395
      d303c8a2
  13. 11 10月, 2018 2 次提交
    • A
      Set BEST_MATCHING_HANDLER_ATTRIBUTE in WebFlux.fn · 8de5c05a
      Arjen Poutsma 提交于
      SPR-17367
      8de5c05a
    • B
      Optimize HTTP headers management · ce7278aa
      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
      ce7278aa
  14. 10 10月, 2018 2 次提交
  15. 05 10月, 2018 1 次提交
  16. 04 10月, 2018 2 次提交
  17. 03 10月, 2018 1 次提交
    • S
      Leverage ObjectProvider instead of autowired containers · 3ff57314
      Sebastien Deleuze 提交于
      In order to be able to leverage WebFlux configuration in a functional
      way, WebHttpHandlerBuilder and RouterFunctionMapping should leverage
      new ObjectProvider capabilities to get a sorted list of beans by type
      instead of using autowired containers.
      
      Issue: SPR-17327
      3ff57314
  18. 02 10月, 2018 1 次提交
    • R
      Use WebsocketOutbound#sendClose · 1320fed7
      Rossen Stoyanchev 提交于
      Switch to using the sendClose method available since Reactor Netty 0.8
      vs explicitly sending a CloseWebSocketFrame.
      
      Related to SPR-17306, but does not address the root cause.
      1320fed7
  19. 20 9月, 2018 2 次提交
  20. 18 9月, 2018 1 次提交
  21. 17 9月, 2018 2 次提交
  22. 15 9月, 2018 1 次提交
    • R
      Add LogFormatUtils · db8e9eaf
      Rossen Stoyanchev 提交于
      1. Helper method to eliminate duplication in formatting (de-)serialized
         values for logging introduced with prior commit #e62298.
      
      2. Helper method for TRACE vs DEBUG logging with different details.
      
      Issue: SPR-17254
      db8e9eaf
  23. 23 8月, 2018 2 次提交
  24. 19 8月, 2018 1 次提交
  25. 17 8月, 2018 2 次提交
  26. 15 8月, 2018 1 次提交