package io.teknek.nibiru.coordinator;
import io.teknek.nibiru.Destination;
import io.teknek.nibiru.client.Client;
import io.teknek.nibiru.transport.BaseMessage;
import io.teknek.nibiru.transport.Response;
import java.util.concurrent.Callable;
public class RemoteMessageCallable extends CompletableCallable implements Callable<Response> {
private final Client client;
private final Destination destination;
private final BaseMessage message;
public RemoteMessageCallable(Client client, BaseMessage message, Destination destination){
this.client = client;
this.message = message;
this.destination = destination;
}
@Override
public Response call() throws Exception {
Response r = null;
try {
r = client.post(message);
complete = true;
} catch (RuntimeException ex){
r = new Response();
r.put("exception", ex.getMessage());
}
return r;
}
public Destination getDestination() {
return destination;
}
public BaseMessage getMessage() {
return message;
}
}