- 01 9月, 2016 1 次提交
-
-
由 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`.
-
- 31 8月, 2016 3 次提交
-
-
由 Juergen Hoeller 提交于
Issue: SPR-14646
-
由 Juergen Hoeller 提交于
-
由 Rossen Stoyanchev 提交于
This commit updates the instructions on getting started with Spring Web Reactive and also updates constructors and setters to streamline the getting started procedure. Issue: SPR-14640
-
- 30 8月, 2016 1 次提交
-
-
由 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
-
- 29 8月, 2016 1 次提交
-
-
由 Sam Brannen 提交于
-
- 09 8月, 2016 1 次提交
-
-
由 Rossen Stoyanchev 提交于
-
- 28 7月, 2016 3 次提交
-
-
由 Rossen Stoyanchev 提交于
-
由 Rossen Stoyanchev 提交于
-
由 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.
-
- 26 7月, 2016 1 次提交
-
-
由 Juergen Hoeller 提交于
DataSourceUtils moved to main core.io.buffer package. Consistently named Jackson2JsonDecoder/Encoder and Jaxb2XmlDecoder/Encoder. Plenty of related polishing.
-
- 23 7月, 2016 3 次提交
-
-
由 Rossen Stoyanchev 提交于
-
由 Arjen Poutsma 提交于
This commit refactors the StringEncoder to a CharSequenceEncoder, in order to support StringBuilders, Groovy GStrings, etc. Issue: https://github.com/spring-projects/spring-reactive/issues/120
-
由 Rossen Stoyanchev 提交于
Issue: SPR-14159
-
- 21 7月, 2016 1 次提交
-
-
由 Arjen Poutsma 提交于
This commit changes the reactive flushing mechanism to use a newly introduced writeAndFlushWith(Publisher<Publisher<DataBuffer>>) on ReactiveHttpOutputMessage instead of using the FlushingDataBuffer. Issue: https://github.com/spring-projects/spring-reactive/issues/125
-
- 20 7月, 2016 3 次提交
-
-
由 Juergen Hoeller 提交于
Issue: SPR-14479
-
由 Juergen Hoeller 提交于
Consistently use constructor-based instantiation instead of Class.newInstance / BeanUtils.instantiate Issue: SPR-14486
-
由 Juergen Hoeller 提交于
Issue: SPR-14484
-
- 19 7月, 2016 2 次提交
-
-
由 Rossen Stoyanchev 提交于
-
由 Rossen Stoyanchev 提交于
Ensure type-level Javadoc in every class, comply with guidelines for 80 char on Javadoc, and minor polish.
-
- 16 7月, 2016 1 次提交
-
-
由 Rossen Stoyanchev 提交于
-
- 15 7月, 2016 3 次提交
-
-
由 Rossen Stoyanchev 提交于
-
由 Rossen Stoyanchev 提交于
-
由 Rossen Stoyanchev 提交于
-
- 08 7月, 2016 3 次提交
-
-
由 Brian Clozel 提交于
Reactor's `DependencyUtils` has been renamed to `Converters` and all the `from` converter methods have been disambiguated to `fromPublisher`, `toPublisher`.
-
由 Rossen Stoyanchev 提交于
This commit adds support for handling an empty request body with both HttpEntity where the body is not required and with @RequestBody where the body is required depending on the annotation's required flag. If the body is an explicit type (e.g. String, HttpEntity<String>) and the body is required an exception is raised before the method is even invoked or otherwise the body is passed in as null. If the body is declared as an async type (e.g. Mono<String>, HttpEntity<Mono<String>>) and is required, the error will flow through the async type. If not required, the async type will be passed with no values (i.e. empty). A notable exception is rx.Single which can only have one value or one error and cannot be empty. As a result currently the use of rx.Single to represent the request body in any form effectively implies the body is required.
-
由 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>>.
-
- 07 7月, 2016 2 次提交
-
-
由 Rossen Stoyanchev 提交于
-
由 Rossen Stoyanchev 提交于
-
- 04 7月, 2016 3 次提交
-
-
由 Sebastien Deleuze 提交于
-
由 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
-
由 Rossen Stoyanchev 提交于
HandlerAdapter's should always be able to provide a MethodParameter which in turn ensures that HandlerResultHandler's have full type information from method declarations. This commit also introduces ResolvableMethod for use in tests to make it easy to obtain MethodParameter return types. Issue: #128
-
- 02 7月, 2016 6 次提交
-
-
由 Rossen Stoyanchev 提交于
-
由 Rossen Stoyanchev 提交于
This commit ensures stream semantics (Flux vs Mono) are adhered to also on the target side.
-
由 Rossen Stoyanchev 提交于
-
由 Rossen Stoyanchev 提交于
-
由 Sebastien Deleuze 提交于
This commit adds a Decoder#decodeOne() method in order to handle correctly the streaming versus one value deserialization based on the type provided by the user. For example, if a List parameter is provided in a controller method, Jackson will be called once, while if the user provides a Flux or an Observable parameter, Jackson will be called for each element.
-
由 Sebastien Deleuze 提交于
This commit replaces Reactive Streams converters for RxJava1 and CompletableFuture with Reactor specific ones. The results in conversion that preserves stream semantics, i.e. Mono vs Flux. For example this is allowed: Flux -> Observable Mono -> Single Mono -> CompletableFuture This is not allowed: Flux -> Single Mono -> Observable Flux -> CompletableFuture As a result it is now possible to check through the ConversionService if a target type to convert to is a stream of many or of one which is useful for decoding purposes. The commit also adds PublisherToFluxConverter to allow conversion from raw Publisher to Flux. The reverse is not necessary since Flux is a Publisher and it's a no-op conversion.
-
- 01 7月, 2016 1 次提交
-
-
由 Rossen Stoyanchev 提交于
-
- 30 6月, 2016 1 次提交
-
-
由 Sebastien Deleuze 提交于
-