1. 08 7月, 2016 1 次提交
    • R
      Support HttpEntity method arguments · 1e1e2f8b
      Rossen Stoyanchev 提交于
      The RequestBodyArgumentResolver has been refactored to have a shared
      base class and tests with the new HttpEntityMethodArgumentResolver.
      
      An HttpEntity argument is not expected to have an async wrapper because
      the request headers are available immediately. The body however can be
      asynchronous, e.g. HttpEntity<Flux<String>>.
      1e1e2f8b
  2. 07 7月, 2016 2 次提交
  3. 04 7月, 2016 1 次提交
    • R
      Provide rich type information to ConversionService · 8c765814
      Rossen Stoyanchev 提交于
      When using the ConversionService to check and bridge to and from
      reactive types we now generallly provide the full type information
      available from method signatures. However that full type information
      is not always necessary such as when we perform additional checks on
      the generics of the reactive type (e.g. Mono<ResponseEntity>).
      
      This allows us to switch to use DefaultFormattingConversionService
      instead of GenericConversionService while also ensuring that the
      CollectionToObjectConverter doesn't think it can convert List<?> to
      any reactive type.
      
      The ObjectToObjectConverter can also interfere because it is smart
      enough to find the "from(Publisher<?>)" method on Flux and Mono.
      To make up for that on the response side we now check if a type
      is assignable to Publisher first in which case it is a simple cast.
      
      In turn that means we don't need a PublisherToFluxConverter which can
      be problematic in its own right because it can convert from Mono to
      Flux which technically doesn't lose data but switches stream semantics.
      
      Issue: #124, #128
      8c765814
  4. 02 7月, 2016 3 次提交
  5. 11 6月, 2016 2 次提交
  6. 09 6月, 2016 1 次提交
  7. 08 6月, 2016 1 次提交
  8. 07 6月, 2016 1 次提交
  9. 20 4月, 2016 1 次提交
    • A
      Wrapping up zero-copy support · 804f69c8
      Arjen Poutsma 提交于
      This commit wraps up the previous commits:
      
       - It uses HttpMessageConverter in the web.reactive.server package instead of Encoder/Decoder.
       - It introduces tests for the Resource @ResponseBodies.
      804f69c8
  10. 15 4月, 2016 1 次提交
  11. 09 2月, 2016 1 次提交
  12. 28 1月, 2016 1 次提交
    • R
      Refine names in web.server and polish Javadoc · 381855aa
      Rossen Stoyanchev 提交于
      WebServerExchange -> ServerWebExchange
      
      Follows the same convention as in the http package also better allowing
      the possibility for a client equivalent in the future.
      
      WebToHttpHandlerBuilder -> WebHttpHandlerBuilder
      WebToHttpHandlerAdapter -> WebHttpHandlerAdapter
      
      More consistent with Spring conventions.
      381855aa
  13. 27 1月, 2016 1 次提交
  14. 20 1月, 2016 1 次提交
    • S
      demote cyclic dependency under reactor-core reactor package · 198e3164
      Stephane Maldini 提交于
      -> reactor.Mono : reactor.core.publisher.Mono
      -> reactor.Flux : reactor.core.publisher.Flux
      -> reactor.Processors : reactor.core.publisher.Processors
      -> reactor.Timers : reactor.core.timer.Timers
      -> reactor.Subscribers : reactor.core.subscriber.Subscribers
      198e3164
  15. 11 1月, 2016 1 次提交
  16. 09 1月, 2016 1 次提交
    • 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
  17. 08 1月, 2016 1 次提交
  18. 07 1月, 2016 1 次提交
    • S
      Use Reactor 2.5 Flux and Mono Rx light API · 8ef7e2ff
      Sebastien Deleuze 提交于
      Flux and Mono are used both for implementation and exposed at API
      level to express 1 versus N semantic and to provide default Rx
      operators:
      - Flux<T> for multiple values Publisher (issue #48)
      - Mono<T> for single value Publisher (issue #50)
      - Mono<Void> for Publisher with no value (issue #49)
      8ef7e2ff
  19. 03 12月, 2015 1 次提交
  20. 23 11月, 2015 1 次提交
    • R
      Remove top-level org.springfamework.reactive package · 4a3c0bc3
      Rossen Stoyanchev 提交于
      reactive.codec -> core.codec
      reactive.io    -> util
      
      These may very well not be the final locations. For now they simply
      express that there are classes that belong somewhere in core, i.e.
      they are lower level dependencies than web.
      4a3c0bc3
  21. 14 11月, 2015 4 次提交
    • R
      Refactor package structure for web · 81867fa4
      Rossen Stoyanchev 提交于
      The web related code is now under org.springframework.web.reactive.
      This is parallel to org.springframework.web (the top-level package of
      spring-webmvc).
      81867fa4
    • R
      Fix "Content-Type" and "Accept" header processing · 5d4201d5
      Rossen Stoyanchev 提交于
      "Content-Type" is just a single MediaType.
      
      For the response, the MediaType must be fully selected before
      selecting and encoder.
      
      The ResponseBodyResultHandler now includes actual content negotiation
      with a potential 406 response.
      5d4201d5
    • R
      Polish · 2de127ad
      Rossen Stoyanchev 提交于
      2de127ad
    • S
      Refactor codecs · bdc5b38c
      Sebastien Deleuze 提交于
      This commit introduces the following changes:
       - MessageToByteEncoder/Decoder renamed to Encoder/Decoder
       - JsonObjectEncoder/Decoder are now used directly in
         JacksonJsonEncoder/Decoder
       - Codec uses MimeType instead of MediaType since they
         are not specific to HTTP
       - Default MimeType are now managed thanks to
         Encoder/Decoder#getSupportedMimeTypes()
       - AbstractEncoder/Decoder takes care of generic MimeType related behavior
      bdc5b38c
  22. 31 10月, 2015 3 次提交
  23. 30 10月, 2015 1 次提交
  24. 29 10月, 2015 2 次提交
    • A
      Introduce HttpMessage hierarchy · bab3b6fd
      Arjen Poutsma 提交于
      This commit introduces "reactive" sub-interfaces of the HttpMessage
      interface found in the Spring Framework.
      bab3b6fd
    • S
      Add handler method parameter and result converters · adc50bbf
      Sebastien Deleuze 提交于
      This commit introduces the following changes:
       - Publisher -> Observable/Stream/etc. conversion is now managed
          in a dedicated ConversionService instead of directly in
          RequestBodyArgumentResolver and ResponseBodyResultHandler
       - More isolated logic that decides if the stream should be
          serialized as a JSON array or not
       - Publisher<ByteBuffer> are now handled by regular
         ByteBufferEncoder and ByteBufferDecoder
       - Handle Publisher<Void> return value properly
       - Ensure that the headers are properly written even for response
         without body
       - Improve JsonObjectEncoder to autodetect JSON arrays
      adc50bbf
  25. 19 10月, 2015 1 次提交
  26. 07 10月, 2015 1 次提交
    • S
      Progress #24 · 464ff1d9
      Stephane Maldini 提交于
      Replace Streams fail, empty and Stream map with Publishers.error, empty and map.
      Replace Streams calls by Publishers.flatMap, just and Publishers.from
      Precise cancel and size to toReadQueue to simulate Promise
      Update build
      464ff1d9
  27. 25 9月, 2015 1 次提交
  28. 22 9月, 2015 1 次提交
  29. 10 9月, 2015 1 次提交
    • S
      Add Codec support · 881db068
      Sebastien Deleuze 提交于
      This commit adds support for Publisher based codecs that allows to convert
      byte stream to object stream and vice & versa.
      
      Jackson, JAXB2 and String codec implementations are provided.
      881db068