
driven-adapter.rsocket-requester.rsocket-requester.mustache Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of scaffold-clean-architecture Show documentation
Show all versions of scaffold-clean-architecture Show documentation
Gradle plugin to create a clean application in Java that already works, It follows our best practices!
package {{package}}.rsocket.service;
{{#lombok}}
import lombok.RequiredArgsConstructor;
{{/lombok}}
import org.springframework.stereotype.Service;
import reactor.core.publisher.Flux;
import reactor.core.publisher.Mono;
import org.springframework.messaging.rsocket.RSocketRequester;
@Service
{{#lombok}}
@RequiredArgsConstructor
{{/lombok}}
public class RsocketAdapter // implements Gateway from domain
{
private final RSocketRequester rSocketRequester;
{{^lombok}}
public RsocketAdapter(RSocketRequester rSocketRequester) {
this.rSocketRequester = rSocketRequester;
}
{{/lombok}}
// interaction model Request/Response
public Mono callRouteRequest(Object objRequest/* change for object request */) {
return this.rSocketRequester
.route("route.request.response")
.data(objRequest)
.retrieveMono(Object.class)
.log();
}
// interaction model Fire-and-Forget
public Mono callRouteFireForget(Object objRequest/* change for object request */) {
return this.rSocketRequester
.route("route.fire.forget")
.data(objRequest)
.send()
.log();
}
// interaction model Request/Stream
public Flux callRouteRequestStream() {
return this.rSocketRequester
.route("route.request.stream")
.retrieveFlux(Object.class)
.log();
}
// interaction model Channel
public Flux callRouteChannel(Flux objRequest) {
return this.rSocketRequester
.route("route.channel")
.data(objRequest)
.retrieveFlux(Object.class)
.log();
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy