use of org.apache.servicecomb.provider.springmvc.reference.CseClientHttpResponse in project incubator-servicecomb-java-chassis by apache.
the class CseHttpMessageConverter method read.
@Override
public Object read(Class<? extends Object> clazz, HttpInputMessage inputMessage) throws IOException, HttpMessageNotReadableException {
MessageBodyClientHttpResponseWrapper respWrapper = (MessageBodyClientHttpResponseWrapper) inputMessage;
CseClientHttpResponse resp = (CseClientHttpResponse) ReflectionUtils.getField(RESPONSE_FIELD, respWrapper);
return resp.getResult();
}
use of org.apache.servicecomb.provider.springmvc.reference.CseClientHttpResponse in project java-chassis by ServiceComb.
the class CseAsyncClientHttpRequest method doAsyncInvoke.
protected CompletableFuture<ClientHttpResponse> doAsyncInvoke(Invocation invocation) {
CompletableFuture<ClientHttpResponse> completableFuture = new CompletableFuture<>();
InvokerUtils.reactiveInvoke(invocation, (Response response) -> {
if (response.isSucceed()) {
completableFuture.complete(new CseClientHttpResponse(response));
} else {
completableFuture.completeExceptionally(response.getResult());
}
});
return completableFuture;
}
use of org.apache.servicecomb.provider.springmvc.reference.CseClientHttpResponse in project incubator-servicecomb-java-chassis by apache.
the class CseAsyncClientHttpRequest method doAsyncInvoke.
protected CompletableFuture<ClientHttpResponse> doAsyncInvoke(Invocation invocation) {
CompletableFuture<ClientHttpResponse> completableFuture = new CompletableFuture<>();
InvokerUtils.reactiveInvoke(invocation, (Response response) -> {
if (response.isSucceed()) {
completableFuture.complete(new CseClientHttpResponse(response));
} else {
completableFuture.completeExceptionally(response.getResult());
}
});
return completableFuture;
}
use of org.apache.servicecomb.provider.springmvc.reference.CseClientHttpResponse in project java-chassis by ServiceComb.
the class CseAsyncClientHttpRequestTest method testFail.
@Test
public void testFail() {
Throwable error = new Error("failed");
Response response = Response.createConsumerFail(error);
CseAsyncClientHttpRequest client = new CseAsyncClientHttpRequest(URI.create("cse://defaultMicroservice/" + CseAsyncClientHttpRequestTest.CseAsyncClientHttpRequestTestSchema.class.getSimpleName() + "/testbytes"), HttpMethod.POST) {
@Override
protected CompletableFuture<ClientHttpResponse> doAsyncInvoke(Invocation invocation) {
CompletableFuture<ClientHttpResponse> completableFuture = new CompletableFuture<>();
completableFuture.complete(new CseClientHttpResponse(response));
return completableFuture;
}
};
ListenableFuture<ClientHttpResponse> future = client.executeAsync();
future.addCallback(new ListenableFutureCallback<ClientHttpResponse>() {
@Override
public void onFailure(Throwable ex) {
Assert.assertSame(error, ex);
}
@Override
public void onSuccess(ClientHttpResponse result) {
}
});
}
use of org.apache.servicecomb.provider.springmvc.reference.CseClientHttpResponse in project java-chassis by ServiceComb.
the class CseAsyncClientHttpRequestTest method testNormal.
@Test
public void testNormal() {
Holder<Invocation> holder = new Holder<>();
CseAsyncClientHttpRequest client = new CseAsyncClientHttpRequest(URI.create("cse://defaultMicroservice/" + CseAsyncClientHttpRequestTest.CseAsyncClientHttpRequestTestSchema.class.getSimpleName() + "/testbytes"), HttpMethod.POST) {
@Override
protected CompletableFuture<ClientHttpResponse> doAsyncInvoke(Invocation invocation) {
CompletableFuture<ClientHttpResponse> completableFuture = new CompletableFuture<>();
holder.value = invocation;
completableFuture.complete(new CseClientHttpResponse(Response.ok("result")));
return completableFuture;
}
};
byte[] body = "abc".getBytes();
client.setRequestBody(body);
client.executeAsync();
Assert.assertArrayEquals(body, (byte[]) holder.value.getInvocationArguments().get("input"));
}
Aggregations