Version 2.0.0 of Eurorates Micronaut Library released
Reactive Streams implementation agnostic
Micronaut® framework 3 no longer exposes a Reactive Streams implementation :
Previous releases of the Micronaut® framework included RxJava2 as a transitive dependency, and RxJava2 was the reactive streams implementation used to implement many features within the Framework. The Micronaut® framework now no longer exposes any reactive streams implementation by default. In addition, all usages of RxJava2 internally have been replaced with Project Reactor.
It makes sense. Micronaut® framework is build agnostic. You can use Gradle or Maven. Micronaut® framework is JVM programming language agnostic. You can code in Java, Groovy or Kotlin. Now, it is reactive streams agnostic. You choose your favourite poison.
Eurorates updated to Micronaut® framework 3
I have released version 2.0.0 of Eurorates, a tiny Micronaut Java library which helps you consume the Euro foreign exchange reference rates. This new mayor release updates to Micronaut® framework 3 and changes the API to be Reactive Streams implementation agnostic. The library does not expose Rx Java 2 or any other reactive streams implementation library as transitive dependency anymore.
The main interface used to be:
public interface EuroRatesApi {
Single<GesmesEnvelope> currentReferenceRates();
Single<GesmesEnvelope> historicalReferenceRates();
Single<GesmesEnvelope> last90DaysReferenceRates();
}
Now, it is:
public interface EuroRatesApi {
@SingleResult
Publisher<GesmesEnvelope> currentReferenceRates();
@SingleResult
Publisher<GesmesEnvelope> historicalReferenceRates();
@SingleResult
Publisher<GesmesEnvelope> last90DaysReferenceRates();
}
The API exposes a org.reactivestreams.Publisher
. Moreover, I annotate the methods with Micronaut annotation @SingleResult
.
Annotation that can be used to describe that an API emits a single result even if the return type is a Publisher.
We encourage library authors to write reactive streams agnostic libraries.
I use this library myself, for example, in Telegram bot: @ForeignExchangeRatesBot.
Tags: #micronaut