Files
spring-framework/spring-web-reactive
Brian Clozel 4892436efe Refactor HTTP client contracts
This commit refactors the `ClientHttpRequestFactory` into an
`ClientHttpConnector` abstraction, in order to reflect that
`ClientHttpRequest`s only "exist" once the client is connected
to the origin server.

This is why the HTTP client is now callback-based, containing all
interactions with the request within a
`Function<ClientHttpRequest,Mono<Void>>` that signals when it's done
writing to the request.

The `ClientHttpRequest` contract also adopts `setComplete()`
and promotes that method to the `ReactiveHttpOutputMessage` contract.

This commit also adapts all other APIs to that change and fixes a few
issues, including:

* use `HttpMessageConverter`s instead of `Encoders`/`Decoders`
* better handle type information about request content publishers
* support client cookies in HTTP requests
* temporarily remove the RxNetty client support
2016-07-08 14:20:07 +02:00
..
2016-03-17 10:11:28 -05:00
2016-07-08 14:20:07 +02:00
2015-07-09 13:42:48 +02:00
2015-08-08 03:57:29 -04:00
2015-08-08 03:57:29 -04:00
2015-09-22 12:14:02 +02:00

Spring Reactive is a sandbox for experimenting on the reactive support intended to be part of Spring Framework 5. For more information about this topic, you can have a look to Intro to Reactive programming and Reactive Web Applications talks.

Downloading Artifacts

Spring Reactive JAR dependency is available from Spring snapshot repository:

  • Repository URL: https://repo.spring.io/snapshot/
  • GroupId: org.springframework.reactive
  • ArtifactId: spring-reactive
  • Version: 0.1.0.BUILD-SNAPSHOT

Documentation

See the current Javadoc.

Sample application

Spring Reactive Playground is a sample application based on Spring Reactive and on MongoDB, Couchbase and PostgreSQL Reactive database drivers.

Building from Source

Spring Reactive uses a Gradle-based build system. In the instructions below, ./gradlew is invoked from the root of the source tree and serves as a cross-platform, self-contained bootstrap mechanism for the build.

You can check the current build status on this Bamboo Spring Reactive build.

Prerequisites

Git and JDK 8 update 20 or later

Be sure that your JAVA_HOME environment variable points to the jdk1.8.0 folder extracted from the JDK download.

Install all spring-* jars into your local Maven cache

./gradlew install

Compile and test; build all jars, distribution zips, and docs

./gradlew build

Contributing

Feel free to send us your feedback on the issue tracker; Pull requests are welcome.

License

The Spring Reactive is released under version 2.0 of the Apache License.