Skip to content

Commit cf69508

Browse files
committed
Switch to using HttpStatusCode in ResponseData. Fixes gh-1088.
1 parent 9eb3a08 commit cf69508

File tree

3 files changed

+12
-13
lines changed

3 files changed

+12
-13
lines changed

spring-cloud-commons/src/main/java/org/springframework/cloud/client/loadbalancer/ResponseData.java

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323

2424
import org.springframework.core.style.ToStringCreator;
2525
import org.springframework.http.HttpHeaders;
26+
import org.springframework.http.HttpStatusCode;
2627
import org.springframework.http.ResponseCookie;
2728
import org.springframework.http.client.ClientHttpResponse;
2829
import org.springframework.http.server.reactive.ServerHttpResponse;
@@ -39,15 +40,15 @@
3940
*/
4041
public class ResponseData {
4142

42-
private final Integer httpStatus;
43+
private final HttpStatusCode httpStatus;
4344

4445
private final HttpHeaders headers;
4546

4647
private final MultiValueMap<String, ResponseCookie> cookies;
4748

4849
private final RequestData requestData;
4950

50-
public ResponseData(Integer httpStatus, HttpHeaders headers, MultiValueMap<String, ResponseCookie> cookies,
51+
public ResponseData(HttpStatusCode httpStatus, HttpHeaders headers, MultiValueMap<String, ResponseCookie> cookies,
5152
RequestData requestData) {
5253
this.httpStatus = httpStatus;
5354
this.headers = headers;
@@ -56,19 +57,19 @@ public ResponseData(Integer httpStatus, HttpHeaders headers, MultiValueMap<Strin
5657
}
5758

5859
public ResponseData(ClientResponse response, RequestData requestData) {
59-
this(response.rawStatusCode(), response.headers().asHttpHeaders(), response.cookies(), requestData);
60+
this(response.statusCode(), response.headers().asHttpHeaders(), response.cookies(), requestData);
6061
}
6162

6263
public ResponseData(ServerHttpResponse response, RequestData requestData) {
63-
this(response.getRawStatusCode(), response.getHeaders(), response.getCookies(), requestData);
64+
this(response.getStatusCode(), response.getHeaders(), response.getCookies(), requestData);
6465
}
6566

6667
public ResponseData(ClientHttpResponse clientHttpResponse, RequestData requestData) throws IOException {
67-
this(clientHttpResponse.getRawStatusCode(), clientHttpResponse.getHeaders(),
68+
this(clientHttpResponse.getStatusCode(), clientHttpResponse.getHeaders(),
6869
buildCookiesFromHeaders(clientHttpResponse.getHeaders()), requestData);
6970
}
7071

71-
public Integer getHttpStatus() {
72+
public HttpStatusCode getHttpStatus() {
7273
return httpStatus;
7374
}
7475

@@ -120,10 +121,9 @@ public boolean equals(Object o) {
120121
if (this == o) {
121122
return true;
122123
}
123-
if (!(o instanceof ResponseData)) {
124+
if (!(o instanceof ResponseData that)) {
124125
return false;
125126
}
126-
ResponseData that = (ResponseData) o;
127127
return httpStatus == that.httpStatus && Objects.equals(headers, that.headers)
128128
&& Objects.equals(cookies, that.cookies) && Objects.equals(requestData, that.requestData);
129129
}

spring-cloud-loadbalancer/src/main/java/org/springframework/cloud/loadbalancer/stats/LoadBalancerTags.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -44,8 +44,7 @@ static Iterable<Tag> buildSuccessRequestTags(CompletionContext<Object, ServiceIn
4444
ServiceInstance serviceInstance = completionContext.getLoadBalancerResponse().getServer();
4545
Tags tags = Tags.of(buildServiceInstanceTags(serviceInstance));
4646
Object clientResponse = completionContext.getClientResponse();
47-
if (clientResponse instanceof ResponseData) {
48-
ResponseData responseData = (ResponseData) clientResponse;
47+
if (clientResponse instanceof ResponseData responseData) {
4948
RequestData requestData = responseData.getRequestData();
5049
if (requestData != null) {
5150
tags = tags.and(valueOrUnknown("method", requestData.getHttpMethod()),
@@ -67,7 +66,7 @@ static Iterable<Tag> buildSuccessRequestTags(CompletionContext<Object, ServiceIn
6766

6867
// In keeping with the way null HttpStatus is handled in Actuator
6968
private static int statusValue(ResponseData responseData) {
70-
return responseData.getHttpStatus() != null ? responseData.getHttpStatus() : 200;
69+
return responseData.getHttpStatus() != null ? responseData.getHttpStatus().value() : 200;
7170
}
7271

7372
private static String getPath(RequestData requestData) {

spring-cloud-loadbalancer/src/test/java/org/springframework/cloud/loadbalancer/stats/MicrometerStatsLoadBalancerLifecycleTests.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ void shouldRecordSuccessfulTimedRequest() {
6262
Request<Object> lbRequest = new DefaultRequest<>(new RequestDataContext(requestData));
6363
Response<ServiceInstance> lbResponse = new DefaultResponse(
6464
new DefaultServiceInstance("test-1", "test", "test.org", 8080, false, new HashMap<>()));
65-
ResponseData responseData = new ResponseData(HttpStatus.OK.value(), new HttpHeaders(),
65+
ResponseData responseData = new ResponseData(HttpStatus.OK, new HttpHeaders(),
6666
new MultiValueMapAdapter<>(new HashMap<>()), requestData);
6767
statsLifecycle.onStartRequest(lbRequest, lbResponse);
6868
assertThat(meterRegistry.get("loadbalancer.requests.active").gauge().value()).isEqualTo(1);
@@ -121,7 +121,7 @@ void shouldNotRecordUnTimedRequest() {
121121
Request<Object> lbRequest = new DefaultRequest<>(new StatsTestContext());
122122
Response<ServiceInstance> lbResponse = new DefaultResponse(
123123
new DefaultServiceInstance("test-1", "test", "test.org", 8080, false, new HashMap<>()));
124-
ResponseData responseData = new ResponseData(HttpStatus.OK.value(), new HttpHeaders(),
124+
ResponseData responseData = new ResponseData(HttpStatus.OK, new HttpHeaders(),
125125
new MultiValueMapAdapter<>(new HashMap<>()), null);
126126
statsLifecycle.onStartRequest(lbRequest, lbResponse);
127127
assertThat(meterRegistry.get("loadbalancer.requests.active").gauge().value()).isEqualTo(1);

0 commit comments

Comments
 (0)