1. 20 1月, 2016 3 次提交
  2. 15 1月, 2016 4 次提交
  3. 14 1月, 2016 9 次提交
  4. 13 1月, 2016 1 次提交
    • B
      Allow Splitting/aggregation operations in Decoders · cf6ceeed
      Brian Clozel 提交于
      When decoding buffers as plain strings, the StringDecoder returns a
      Publisher that may produce one or more `onNext` events.
      This is perfectly valid, but leads to errors when trying to convert the
      resulting Publisher into a `reactor.Mono` or `rx.Single`.
      
      If the original Publisher emits 2 or more `onNext` signals,
      converting to:
      * `rx.Single` will throw an error saying that the underlying Observable
      "emitted too many elements"
      * `reactor.Mono` may contain only the first emitted element
      
      This commit adds a `AbstractRawByteStreamDecoder` that takes a
      `SubscriberBarrier` to apply splitting/aggregation operations on the
      received elements.
      The `StringDecoder` class now inherits from this abstract class and
      uses one of the provided `SubscriberBarrier` implementations to
      buffer all received elements in a single buffer.
      cf6ceeed
  5. 12 1月, 2016 3 次提交
    • S
      99e51a91
    • S
      Use Mono semantics for JSON object/array serialization · d9b67f5e
      Sebastien Deleuze 提交于
      Before this commit, a handler method returning a stream with a JSON
      content-type was producing a JSON object for single element streams
      or a JSON array for multiple elements streams.
      
      This kind of dynamic change of the output based on the number of
      elements was difficult to handle on client side and not consistent
      with Spring MVC behavior.
      
      With this commit, we achieve a more consistent behavior by using
      the Mono semantics to control this behavior. Mono (and Promise/Single)
      are serialized to JSON object and Flux (and Observable/Stream) are
      serialized to JSON array.
      d9b67f5e
    • R
      Polish cookie support · c3cde84e
      Rossen Stoyanchev 提交于
      HttpCookie is now immutable with factory methods to create a client
      cookie (name-value) vs a server cookie (name-value + attributes)
      including a builder for the latter.
      c3cde84e
  6. 11 1月, 2016 3 次提交
  7. 10 1月, 2016 1 次提交
    • R
      Re-introduce writeHeaders() in ServerHttpResponse · eedc9081
      Rossen Stoyanchev 提交于
      This commit brings back the writeHeaders method on ServerHttpResponse
      that was once added (2a6a4f) and then removed (9c7151).
      
      This version is a little simpler since writeHeaders doesn't explicitly
      flush/send headers which runtimes are expected to do by default.
      Instead the main purpose of writeHeaders now is to ensure changes made
      via HttpHeaders are applied to the underlying runtime response at some
      point and we now do that once at the very end.
      
      This approach provides the most flexibility (vs keeping HttpHeaders in
      sync) because it allows a full and consistent set of mutative
      operations for both headers and cookies (to be added) regardless of the
      API exposed by the underlying runtime.
      eedc9081
  8. 09 1月, 2016 2 次提交
    • R
      Add WebServerExchange · 4f614fa0
      Rossen Stoyanchev 提交于
      This change adds a WebServerExchange and updates all contracts at the
      the same level (i.e. org.springframework.web.server) as well as the
      org.springframework.web.reactive level to use it so that all
      framework-related code will have access to server-side processing
      features such as request attributes (and others to come).
      4f614fa0
    • R
      Separate out web.server from http.server.reactive · 54e4e012
      Rossen Stoyanchev 提交于
      This change separates out lower-level HTTP adapter code from the more
      (framework-specific) HTTP processing into a separate package under
      org.springframework.web.server (not under org.springframework.http).
      54e4e012
  9. 08 1月, 2016 7 次提交
  10. 07 1月, 2016 3 次提交
  11. 01 1月, 2016 3 次提交
  12. 30 12月, 2015 1 次提交
    • R
      Response headers always in sync with native response · 6b05d172
      Rossen Stoyanchev 提交于
      ServerHttpResponse implementations now immediately propagate
      HttpHeaders changes as they so there is no need to call applyHeaders().
      
      The writeHeaders from ServerHttpResponse is also removed. RxNetty and
      Reactor Net both support implicitly completing if the handler
      completes without explicitly writing the headers or the response body.
      6b05d172