Skip to content

Commit 05f1efd

Browse files
committed
fix ut
1 parent 9448a43 commit 05f1efd

File tree

6 files changed

+15
-82
lines changed

6 files changed

+15
-82
lines changed

instrumentation/jaxrs-client/jaxrs-client-2.0-testing/src/test/java/io/opentelemetry/javaagent/instrumentation/jaxrsclient/CxfClientTest.java

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -44,10 +44,5 @@ protected void configure(HttpClientTestOptions.Builder optionsBuilder) {
4444
optionsBuilder.setTestReadTimeout(false);
4545
optionsBuilder.setTestWithClientParent(!Boolean.getBoolean("testLatestDeps"));
4646
optionsBuilder.setClientSpanErrorMapper((uri, exception) -> clientSpanError(uri, exception));
47-
// CXF JAX-RS client uses HttpURLConnection internally, which does not support pipelining nor
48-
// waiting for a connection in the pool to become available. Therefore a high concurrency test
49-
// would require manually doing requests one after another which is not meaningful for a high
50-
// concurrency test.
51-
optionsBuilder.setSingleConnectionFactory((host, port) -> null);
5247
}
5348
}

instrumentation/jaxrs-client/jaxrs-client-2.0-testing/src/test/java/io/opentelemetry/javaagent/instrumentation/jaxrsclient/JaxMultithreadedClientTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ class JaxMultithreadedClientTest {
2828
@RegisterExtension
2929
static final InstrumentationExtension testing = AgentInstrumentationExtension.create();
3030

31-
public static ServerExtension server =
31+
static ServerExtension server =
3232
new ServerExtension() {
3333
@Override
3434
protected void configure(ServerBuilder sb) {

instrumentation/jaxrs-client/jaxrs-client-2.0-testing/src/test/java/io/opentelemetry/javaagent/instrumentation/jaxrsclient/JaxRsClientTest.java

Lines changed: 12 additions & 62 deletions
Original file line numberDiff line numberDiff line change
@@ -5,28 +5,16 @@
55

66
package io.opentelemetry.javaagent.instrumentation.jaxrsclient;
77

8-
import static io.opentelemetry.api.trace.SpanKind.CLIENT;
9-
import static io.opentelemetry.sdk.testing.assertj.OpenTelemetryAssertions.equalTo;
10-
import static io.opentelemetry.sdk.testing.assertj.OpenTelemetryAssertions.satisfies;
118
import static java.util.Arrays.asList;
12-
import static org.assertj.core.api.Assertions.assertThat;
139

1410
import io.opentelemetry.instrumentation.testing.junit.InstrumentationExtension;
1511
import io.opentelemetry.instrumentation.testing.junit.http.AbstractHttpClientTest;
1612
import io.opentelemetry.instrumentation.testing.junit.http.HttpClientInstrumentationExtension;
1713
import io.opentelemetry.instrumentation.testing.junit.http.HttpClientResult;
1814
import io.opentelemetry.instrumentation.testing.junit.http.HttpClientTestOptions;
19-
import io.opentelemetry.sdk.trace.data.StatusData;
20-
import io.opentelemetry.semconv.ErrorAttributes;
21-
import io.opentelemetry.semconv.HttpAttributes;
22-
import io.opentelemetry.semconv.NetworkAttributes;
23-
import io.opentelemetry.semconv.ServerAttributes;
24-
import io.opentelemetry.semconv.UrlAttributes;
2515
import java.net.URI;
26-
import java.util.Collections;
2716
import java.util.List;
2817
import java.util.Map;
29-
import java.util.stream.Stream;
3018
import javax.ws.rs.ProcessingException;
3119
import javax.ws.rs.client.Client;
3220
import javax.ws.rs.client.ClientBuilder;
@@ -37,9 +25,6 @@
3725
import javax.ws.rs.core.MediaType;
3826
import javax.ws.rs.core.Response;
3927
import org.junit.jupiter.api.extension.RegisterExtension;
40-
import org.junit.jupiter.params.ParameterizedTest;
41-
import org.junit.jupiter.params.provider.Arguments;
42-
import org.junit.jupiter.params.provider.MethodSource;
4328

4429
abstract class JaxRsClientTest extends AbstractHttpClientTest<Invocation.Builder> {
4530

@@ -50,13 +35,15 @@ abstract class JaxRsClientTest extends AbstractHttpClientTest<Invocation.Builder
5035
protected static final int CONNECT_TIMEOUT_MS = 5000;
5136
protected static final int READ_TIMEOUT_MS = 2000;
5237

53-
static Stream<Arguments> preparedPathStream() {
54-
return Stream.of(Arguments.of("/client-error", 400), Arguments.of("/error", 500));
55-
}
56-
5738
@Override
5839
public Invocation.Builder buildRequest(String method, URI uri, Map<String, String> headers) {
59-
return internalBuildRequest(uri, headers);
40+
Client client = builder().build();
41+
WebTarget service = client.target(uri);
42+
Invocation.Builder requestBuilder = service.request(MediaType.TEXT_PLAIN);
43+
for (Map.Entry<String, String> entry : headers.entrySet()) {
44+
requestBuilder.header(entry.getKey(), entry.getValue());
45+
}
46+
return requestBuilder;
6047
}
6148

6249
abstract ClientBuilder builder();
@@ -68,19 +55,10 @@ protected void configure(HttpClientTestOptions.Builder optionsBuilder) {
6855
optionsBuilder.setTestNonStandardHttpMethod(false);
6956
}
7057

71-
private Invocation.Builder internalBuildRequest(URI uri, Map<String, String> headers) {
72-
Client client = builder().build();
73-
WebTarget service = client.target(uri);
74-
Invocation.Builder requestBuilder = service.request(MediaType.TEXT_PLAIN);
75-
for (Map.Entry<String, String> entry : headers.entrySet()) {
76-
requestBuilder.header(entry.getKey(), entry.getValue());
77-
}
78-
return requestBuilder;
79-
}
80-
8158
@Override
8259
public int sendRequest(
83-
Invocation.Builder request, String method, URI uri, Map<String, String> headers) {
60+
Invocation.Builder request, String method, URI uri, Map<String, String> headers)
61+
throws Exception {
8462
try {
8563
Entity<String> body = BODY_METHODS.contains(method) ? Entity.text("") : null;
8664
Response response = request.build(method, body).invoke();
@@ -89,6 +67,9 @@ public int sendRequest(
8967
response.close();
9068
return response.getStatus();
9169
} catch (ProcessingException exception) {
70+
if (exception.getCause() instanceof Exception) {
71+
throw (Exception) exception.getCause();
72+
}
9273
throw exception;
9374
}
9475
}
@@ -124,35 +105,4 @@ public void failed(Throwable throwable) {
124105
}
125106
});
126107
}
127-
128-
@ParameterizedTest
129-
@MethodSource("preparedPathStream")
130-
void testError(String path, int statusCode) throws Throwable {
131-
String method = "GET";
132-
URI uri = resolveAddress(path);
133-
int actualStatusCode =
134-
sendRequest(
135-
buildRequest(method, uri, Collections.emptyMap()), method, uri, Collections.emptyMap());
136-
assertThat(actualStatusCode).isEqualTo(statusCode);
137-
138-
testing.waitAndAssertTraces(
139-
trace ->
140-
trace.hasSpansSatisfyingExactly(
141-
span ->
142-
span.hasName(method)
143-
.hasKind(CLIENT)
144-
.hasStatus(StatusData.error())
145-
.hasAttributesSatisfying(
146-
equalTo(NetworkAttributes.NETWORK_PROTOCOL_VERSION, "1.1"),
147-
equalTo(ServerAttributes.SERVER_ADDRESS, uri.getHost()),
148-
satisfies(ServerAttributes.SERVER_PORT, val -> val.isIn(null, 443)),
149-
satisfies(
150-
NetworkAttributes.NETWORK_PEER_ADDRESS,
151-
val -> val.isIn(null, "127.0.0.1")),
152-
equalTo(UrlAttributes.URL_FULL, uri.getHost()),
153-
equalTo(HttpAttributes.HTTP_REQUEST_METHOD, method),
154-
equalTo(HttpAttributes.HTTP_RESPONSE_STATUS_CODE, statusCode),
155-
equalTo(ErrorAttributes.ERROR_TYPE, "$statusCode")),
156-
span -> span.hasParent(trace.getSpan(0)).hasName(method)));
157-
}
158108
}

instrumentation/jaxrs-client/jaxrs-client-2.0-testing/src/test/java/io/opentelemetry/javaagent/instrumentation/jaxrsclient/JerseyClientTest.java

Lines changed: 0 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@
55

66
package io.opentelemetry.javaagent.instrumentation.jaxrsclient;
77

8-
import io.opentelemetry.instrumentation.testing.junit.http.HttpClientTestOptions;
98
import javax.ws.rs.client.ClientBuilder;
109
import org.glassfish.jersey.client.ClientConfig;
1110
import org.glassfish.jersey.client.ClientProperties;
@@ -20,14 +19,4 @@ public ClientBuilder builder() {
2019
config.property(ClientProperties.READ_TIMEOUT, READ_TIMEOUT_MS);
2120
return new JerseyClientBuilder().withConfig(config);
2221
}
23-
24-
@Override
25-
protected void configure(HttpClientTestOptions.Builder optionsBuilder) {
26-
super.configure(optionsBuilder);
27-
// Jersey JAX-RS client uses HttpURLConnection internally, which does not support pipelining nor
28-
// waiting for a connection in the pool to become available. Therefore a high concurrency test
29-
// would require manually doing requests one after another which is not meaningful for a high
30-
// concurrency test.
31-
optionsBuilder.setSingleConnectionFactory((host, port) -> null);
32-
}
3322
}

instrumentation/jaxrs-client/jaxrs-client-2.0-testing/src/test/java/io/opentelemetry/javaagent/instrumentation/jaxrsclient/ResteasyClientTest.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,6 @@ ClientBuilder builder() {
2222
@Override
2323
protected void configure(HttpClientTestOptions.Builder optionsBuilder) {
2424
super.configure(optionsBuilder);
25-
optionsBuilder.setSingleConnectionFactory(
26-
(host, port) -> new ResteasySingleConnection(host, port));
25+
optionsBuilder.setSingleConnectionFactory(ResteasySingleConnection::new);
2726
}
2827
}

instrumentation/jaxrs-client/jaxrs-client-2.0-testing/src/test/java/io/opentelemetry/javaagent/instrumentation/jaxrsclient/ResteasySingleConnection.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020
import org.jboss.resteasy.client.jaxrs.ResteasyClient;
2121
import org.jboss.resteasy.client.jaxrs.ResteasyClientBuilder;
2222

23-
public class ResteasySingleConnection implements SingleConnection {
23+
class ResteasySingleConnection implements SingleConnection {
2424
private final ResteasyClient client;
2525
private final String host;
2626
private final int port;

0 commit comments

Comments
 (0)