Skip to content

Commit 4bfbd3b

Browse files
committed
Fix
1 parent e4fed98 commit 4bfbd3b

File tree

4 files changed

+21
-61
lines changed

4 files changed

+21
-61
lines changed

src/main/java/io/apitally/spring/ApitallyFilter.java

Lines changed: 15 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -88,8 +88,7 @@ protected void doFilterInternal(@NonNull HttpServletRequest request, @NonNull Ht
8888

8989
try {
9090
// Register consumer and get consumer identifier
91-
final Consumer consumer = ConsumerRegistry
92-
.consumerFromObject(request.getAttribute("apitallyConsumer"));
91+
final Consumer consumer = ConsumerRegistry.consumerFromObject(request.getAttribute("apitallyConsumer"));
9392
client.consumerRegistry.addOrUpdateConsumer(consumer);
9493
final String consumerIdentifier = consumer != null ? consumer.getIdentifier() : "";
9594

@@ -99,14 +98,11 @@ protected void doFilterInternal(@NonNull HttpServletRequest request, @NonNull Ht
9998
: cachingRequest != null ? requestBody.length : -1;
10099
final long responseContentLength = getResponseContentLength(response);
101100
final long responseSize = responseContentLength >= 0 ? responseContentLength
102-
: (cachingResponse != null ? responseBody.length
103-
: countingResponse != null
104-
? countingResponse.getByteCount()
105-
: -1);
106-
client.requestCounter
107-
.addRequest(consumerIdentifier, request.getMethod(), path, response.getStatus(),
108-
responseTimeInMillis,
109-
requestSize, responseSize);
101+
: cachingResponse != null ? responseBody.length
102+
: countingResponse != null ? countingResponse.getByteCount() : -1;
103+
client.requestCounter.addRequest(
104+
consumerIdentifier, request.getMethod(), path, response.getStatus(), responseTimeInMillis,
105+
requestSize, responseSize);
110106

111107
// Log request
112108
if (client.requestLogger.isEnabled()) {
@@ -120,8 +116,7 @@ protected void doFilterInternal(@NonNull HttpServletRequest request, @NonNull Ht
120116
.toArray(Header[]::new);
121117

122118
client.requestLogger.logRequest(
123-
new Request(startTime / 1000.0, consumerIdentifier, request.getMethod(),
124-
path,
119+
new Request(startTime / 1000.0, consumerIdentifier, request.getMethod(), path,
125120
request.getRequestURL().toString(), requestHeaders, requestSize, requestBody),
126121
new Response(response.getStatus(), responseTimeInMillis / 1000.0, responseHeaders,
127122
responseSize, responseBody));
@@ -132,16 +127,17 @@ protected void doFilterInternal(@NonNull HttpServletRequest request, @NonNull Ht
132127
Object capturedException = request.getAttribute("apitallyCapturedException");
133128
if (capturedException instanceof ConstraintViolationException e) {
134129
for (ConstraintViolation<?> violation : e.getConstraintViolations()) {
135-
client.validationErrorCounter.addValidationError(consumerIdentifier, request.getMethod(),
136-
path, violation.getPropertyPath().toString(), violation.getMessage(),
130+
client.validationErrorCounter.addValidationError(
131+
consumerIdentifier, request.getMethod(), path,
132+
violation.getPropertyPath().toString(), violation.getMessage(),
137133
violation.getConstraintDescriptor().getAnnotation().annotationType()
138134
.getSimpleName());
139135
}
140136
} else if (capturedException instanceof MethodArgumentNotValidException e) {
141137
for (FieldError error : e.getBindingResult().getFieldErrors()) {
142-
client.validationErrorCounter.addValidationError(consumerIdentifier, request.getMethod(),
143-
path, error.getObjectName() + "." + error.getField(),
144-
error.getDefaultMessage(),
138+
client.validationErrorCounter.addValidationError(
139+
consumerIdentifier, request.getMethod(), path,
140+
error.getObjectName() + "." + error.getField(), error.getDefaultMessage(),
145141
error.getCode());
146142
}
147143
}
@@ -154,8 +150,8 @@ protected void doFilterInternal(@NonNull HttpServletRequest request, @NonNull Ht
154150
exception = (Exception) capturedException;
155151
}
156152
if (exception != null) {
157-
client.serverErrorCounter.addServerError(consumerIdentifier, request.getMethod(), path,
158-
exception);
153+
client.serverErrorCounter.addServerError(
154+
consumerIdentifier, request.getMethod(), path, exception);
159155
}
160156
}
161157
} catch (Exception e) {

src/test/java/io/apitally/common/ApitallyClientTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,7 @@ void testSync() {
7777
clientSpy.setStartupData(paths, versions, "java:test");
7878
clientSpy.startSync();
7979

80-
delay(200);
80+
delay(100);
8181

8282
ArgumentCaptor<HttpRequest> requestCaptor = ArgumentCaptor.forClass(HttpRequest.class);
8383
verify(clientSpy, times(3)).sendHubRequest(requestCaptor.capture());

src/test/java/io/apitally/spring/ApitallyFilterTest.java

Lines changed: 5 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -97,21 +97,19 @@ void testRequestCounter() {
9797
response = restTemplate.getForEntity("/items/2", String.class);
9898
assertTrue(response.getStatusCode().is2xxSuccessful());
9999

100-
response = restTemplate.getForEntity("/stream", String.class);
101-
assertTrue(response.getStatusCode().is2xxSuccessful());
102-
103100
response = restTemplate.getForEntity("/throw", String.class);
104101
assertTrue(response.getStatusCode().is5xxServerError());
105102

106-
delay(200);
103+
delay(100);
107104

108105
List<Requests> requests = apitallyClient.requestCounter.getAndResetRequests();
109-
assertEquals(5, requests.size(), "5 requests counted");
106+
assertEquals(4, requests.size(), "5 requests counted");
110107
assertTrue(requests.stream()
111108
.anyMatch(r -> r.getMethod().equals("GET")
112109
&& r.getPath().equals("/items")
113110
&& r.getStatusCode() == 200
114-
&& r.getRequestCount() == 1),
111+
&& r.getRequestCount() == 1
112+
&& r.getResponseSizeSum() > 0),
115113
"GET /items request counted correctly");
116114
assertTrue(requests.stream().anyMatch(
117115
r -> r.getMethod().equals("GET")
@@ -125,26 +123,6 @@ void testRequestCounter() {
125123
&& r.getStatusCode() == 400
126124
&& r.getRequestCount() == 1),
127125
"GET /items/0 request counted correctly");
128-
assertTrue(requests.stream().anyMatch(
129-
r -> r.getMethod().equals("GET")
130-
&& r.getPath().equals("/stream")
131-
&& r.getStatusCode() == 200
132-
&& r.getRequestCount() == 1),
133-
"GET /stream request counted");
134-
assertTrue(requests.stream().anyMatch(
135-
r -> r.getMethod().equals("GET")
136-
&& r.getPath().equals("/stream")
137-
&& r.getStatusCode() == 200
138-
&& r.getRequestCount() == 1
139-
&& r.getResponseSizeSum() > 0),
140-
"GET /stream request counted correctly with response size > 0");
141-
assertTrue(requests.stream().anyMatch(
142-
r -> r.getMethod().equals("GET")
143-
&& r.getPath().equals("/stream")
144-
&& r.getStatusCode() == 200
145-
&& r.getRequestCount() == 1
146-
&& r.getResponseSizeSum() == 14),
147-
"GET /stream request counted correctly with response size = 14");
148126
assertTrue(requests.stream().anyMatch(
149127
r -> r.getMethod().equals("GET")
150128
&& r.getPath().equals("/throw")
@@ -242,7 +220,7 @@ void testConsumerRegistry() {
242220
@Test
243221
void testGetPaths() {
244222
List<Path> paths = ApitallyUtils.getPaths(requestMappingHandlerMapping);
245-
assertEquals(7, paths.size());
223+
assertEquals(6, paths.size());
246224
assertTrue(paths.stream().anyMatch(p -> p.getMethod().equals("GET") && p.getPath().equals("/items")));
247225
assertTrue(paths.stream().anyMatch(p -> p.getMethod().equals("GET") && p.getPath().equals("/items/{id}")));
248226
assertTrue(paths.stream().anyMatch(p -> p.getMethod().equals("POST") && p.getPath().equals("/items")));

src/test/java/io/apitally/spring/app/TestController.java

Lines changed: 0 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@
1717
import org.springframework.web.bind.annotation.RequestParam;
1818
import org.springframework.web.bind.annotation.ResponseStatus;
1919
import org.springframework.web.bind.annotation.RestController;
20-
import org.springframework.web.servlet.mvc.method.annotation.StreamingResponseBody;
2120

2221
import io.apitally.spring.ApitallyConsumer;
2322
import jakarta.servlet.http.HttpServletRequest;
@@ -61,19 +60,6 @@ public void updateItem(@Valid @RequestBody TestItem newItem, @PathVariable @Min(
6160
public void deleteItem(@PathVariable @Min(1) Integer id) {
6261
}
6362

64-
@GetMapping("/stream")
65-
public ResponseEntity<StreamingResponseBody> getItemsStream(HttpServletRequest request) {
66-
return ResponseEntity
67-
.ok()
68-
.header("Transfer-Encoding", "chunked")
69-
.header("Content-Type", "text/plain")
70-
.body(out -> {
71-
out.write(("Item 1" + "\n").getBytes());
72-
out.write(("Item 2" + "\n").getBytes());
73-
out.flush();
74-
});
75-
}
76-
7763
@GetMapping(value = "/throw", produces = "application/json; charset=utf-8")
7864
public String getError() {
7965
throw new TestException("test");

0 commit comments

Comments
 (0)