Hi Johannes,
welcome to the Aries community and thanks for the pull requests and
issues you already provided.
Long running calls could make a lot of sense but I am not sure if Future
is still the way to go.
It seems people are using Observable now
(http://reactivex.io/documentation/observable.html) to be able to use
rxjava (https://github.com/ReactiveX/RxJava).
So I think it might make sense to directly provide this. I am not
experienced in rxjava but maybe we got some people here who know that
better.
Christian
On 22.07.2016 15:00, Johannes Utzig wrote:
Hi,
as a quick introduction, my name is Johannes Utzig and I work for the
SEEBURGER AG.
We have been involved with aries-rsa since the beginning and maintain a
fork of it on github. We are primarily interested in the fastbin transport
and I usually try to create pull requests for enhancements/fixes we're
doing that might be useful to have upstream.
I am currently working on adding support for long running remote calls
(several minutes/hours) to fastbin.
If possible, I would like to contribute that feature upstream if there is
an interest for it.
The idea is to allow Future and CompletableFuture as return values of
remote methods.
If such a return value is detected, the invocation strategy switches to
async and the client receives an implementation of (Completable)Future that
will be filled as soon as the call result becomes available.
Example Provider:
public CompletableFuture<String> helloAsync() {
return CompletableFuture.supplyAsync(() -> "Hello");
}
Example Consumer:
exampleService.helloAsync().get(5, TimeUnit.MINUTES));
A few questions about that:
-Does someone maybe have a better idea on how to support long running/async
calls?
-would you be interested in that contribution?
-My implementation requires java 8 features like CompletableFuture but rsa
is currently building with 1.7. Would it be OK to move to java 8 as a
target version?
Best regards,
Johannes
--
Christian Schneider
http://www.liquid-reality.de
Open Source Architect
http://www.talend.com