1. 09 9月, 2016 4 次提交
    • A
      Fix using system default charset in view rendering · 5f941c1d
      Arjen Poutsma 提交于
      Prior to this commit, FreeMarkerView used the system default charset to
      render. This commit switches this by defaulting to UTF-8, if no charset
      is specified in the content type.
      
       - Add contentType parameter to AbstractView.renderInternal, used to
       determine the charset contained therein
       - Adds a defaultCharset property to AbstractView and
       ViewResolverSupport.
      5f941c1d
    • A
      Changed View.render method to take Map<String, ?> · a746c3c5
      Arjen Poutsma 提交于
      Changed View's render method from taking a HandlerResult to taking a
      Map<String, ?>, in order to facilitate scenarios where a HandlerResult
      is not available (i.e. web.reactive.function).
      a746c3c5
    • A
      Added Response.build(Publisher<Void>) · ecf5a9f3
      Arjen Poutsma 提交于
      ecf5a9f3
    • A
      Polishing · f4ae831f
      Arjen Poutsma 提交于
       - Changed Response.sse methods to allow for specific Publisher types to
       be returned in Response.
      f4ae831f
  2. 07 9月, 2016 3 次提交
    • A
      Polishing · f8ac17f2
      Arjen Poutsma 提交于
      Two changes to web.reactive.function:
      
       - Changed Response.stream method to allow for specific Publisher types
       to be returned in Response.
      
       - Router now stores HttpMessageReader|Writer retrieved from
       Configuration in the attributes as supplier, not as stream, to allow
       for multiple reads.
      f8ac17f2
    • A
      Removed attributes() from Request · bebaee97
      Arjen Poutsma 提交于
      Removes attributes() method from Request, as it exposes a mutable map.
      bebaee97
    • B
      Add ResolvedResource in resource handling chain · ccb3c44d
      Brian Clozel 提交于
      Prior to this commit, the resource handling chain and its
      `ResourceResolvers` would use specific `Resource` implementations in
      order to add resource metadata to the HTTP response. For example,
      `VersionedResource` and `EncodedResource` are both adding specific HTTP
      response headers.
      
      This commit aims at making this mechanism more stable and reusable,
      since the previous implementation would fail in case a resolved resource
      would be both a `VersionedResource` wrapping a `EncodedResource` (or the
      other way arount). Only one of the specific implementations would
      contribute its metadata since the code supporting that in
      `ResourceHttpRequestHandler` would only check for `instanceof` tests,
      whereas those implementations are acutally delegating calls to
      the wrapped resource.
      
      Now both `VersionedResource` and `EncodedResource` have been replaced by
      specific implementations of `ResolvedResource`, which directly provides
      those HTTP response headers as part of `getResponseHeaders()`.
      
      This commit applies the same changes for the web reactive
      implementations and its `ResourceWebHandler`.
      
      Issue: SPR-14264
      ccb3c44d
  3. 06 9月, 2016 2 次提交
  4. 03 9月, 2016 1 次提交
    • B
      Fix null body handling in ResponseEntityResultHandler · 01bd8b9e
      Brian Clozel 提交于
      This commit fixes `ResponseEntityResultHandler` so that it only tries to
      call `writeBody` if the `ResponseEntity` is not null. In case the
      response entity body is null, the response is flushed right away and the
      request is signaled as handled.
      
      Issue: SPR-14663
      01bd8b9e
  5. 02 9月, 2016 3 次提交
  6. 01 9月, 2016 3 次提交
    • S
      Polishing · b4641b23
      Sebastien Deleuze 提交于
      b4641b23
    • A
      Introduce new functional web API · f1319f58
      Arjen Poutsma 提交于
      This commit introduces a new, functional web programming model in the
      org.springframework.web.reactive.function package. The key types
      are:
      
       - Request and Response are new Java 8-DSLs for access to the HTTP
         request and response
       - HandlerFunction represents a function to handle a request to a
         response
       - RoutingFunction maps a request to a HandlerFunction
       - FilterFunction filters a routing as defined by a RoutingFunction
       - RequestPredicate is used by Router to create RoutingFunctions
       - RequestPredicates offers common RequestPredicate instances
      f1319f58
    • A
      Refactored SseEvent to ServerSentEvent · 16b525f6
      Arjen Poutsma 提交于
       - Renamed SseEvent to ServerSentEvent to make the name less redundant.
       - ServerSentEvent is now immutable, having a builder to create new instances.
       - Realigned the class properties to more closely match the events
         described in the spec, so that `reconnectTime` becomes `retry`, and
         `name` becomes `event`.
      16b525f6
  7. 31 8月, 2016 3 次提交
  8. 30 8月, 2016 1 次提交
    • B
      Don't wrap resolver exceptions in InvocableHandlerMethod · 960d335c
      Brian Clozel 提交于
      Prior to this commit, exceptions thrown by the
      `HandlerMethodArgumentResolver` would be wrapped into
      `IllegalStateException`s.
      
      This commit makes sure that a DEBUG log is written with the relevant
      information and that the root cause is not wrapped into another
      exception, so that the appropriate `ExceptionHandler` can be used to
      deal with this error.
      
      Issue: SPR-14618
      960d335c
  9. 29 8月, 2016 1 次提交
  10. 09 8月, 2016 1 次提交
  11. 28 7月, 2016 3 次提交
    • R
      Shorten getter for ReactiveAdapterRegistry · 460ed307
      Rossen Stoyanchev 提交于
      460ed307
    • R
      Add support for rx.Completable as return value · 143b5c89
      Rossen Stoyanchev 提交于
      143b5c89
    • R
      Remove SimpleResultHandler · 79bc227c
      Rossen Stoyanchev 提交于
      There is really no need for a result handler dedicated to a void
      return value and it's actually problematic to have it.
      
      Each result handler treats void as necessary. For an @ResponseBody
      method it means an empty body. For view resolution it means no specific
      value was returned and we should procede with selecting a default view
      name. Having a dedicated void result handler can interfere with this
      especially since view resolution needs to be last in order.
      
      At the same time there are cases when no result handling is needed
      and the response is fully handled within the HandlerAdapter. This is
      the case with WebHandler and the SimpleHandlerAdapter. For that case
      we simply return mono.then(aVoid -> Mono.empty()) which effectively
      returns an empty Mono and no result handling follows. The
      HandlerAdapter already says you can return no values at all if the
      response is fully handled.
      79bc227c
  12. 26 7月, 2016 1 次提交
  13. 23 7月, 2016 3 次提交
  14. 21 7月, 2016 1 次提交
  15. 20 7月, 2016 3 次提交
  16. 19 7月, 2016 2 次提交
  17. 16 7月, 2016 1 次提交
  18. 15 7月, 2016 4 次提交