Backport support for custom HTTP status in a backwards compatible way. (#1087)
This commit is contained in:
committed by
GitHub
parent
395386414d
commit
c72f6d0795
@@ -96,7 +96,8 @@ public class BlockingLoadBalancerClient implements LoadBalancerClient {
|
||||
.forEach(lifecycle -> lifecycle.onStartRequest(lbRequest, new DefaultResponse(serviceInstance)));
|
||||
try {
|
||||
T response = request.apply(serviceInstance);
|
||||
Object clientResponse = getClientResponse(response);
|
||||
LoadBalancerProperties properties = loadBalancerClientFactory.getProperties(serviceId);
|
||||
Object clientResponse = getClientResponse(response, properties.isUseRawStatusCodeInResponseData());
|
||||
supportedLifecycleProcessors
|
||||
.forEach(lifecycle -> lifecycle.onComplete(new CompletionContext<>(CompletionContext.Status.SUCCESS,
|
||||
lbRequest, defaultResponse, clientResponse)));
|
||||
@@ -115,13 +116,16 @@ public class BlockingLoadBalancerClient implements LoadBalancerClient {
|
||||
return null;
|
||||
}
|
||||
|
||||
private <T> Object getClientResponse(T response) {
|
||||
private <T> Object getClientResponse(T response, boolean useRawStatusCodes) {
|
||||
ClientHttpResponse clientHttpResponse = null;
|
||||
if (response instanceof ClientHttpResponse) {
|
||||
clientHttpResponse = (ClientHttpResponse) response;
|
||||
}
|
||||
if (clientHttpResponse != null) {
|
||||
try {
|
||||
if (useRawStatusCodes) {
|
||||
return new ResponseData(null, clientHttpResponse);
|
||||
}
|
||||
return new ResponseData(clientHttpResponse, null);
|
||||
}
|
||||
catch (IOException ignored) {
|
||||
|
||||
Reference in New Issue
Block a user