Skip to content

Commit 525c1a6

Browse files
committed
Convert jetty-httpclient Groovy tests to Java
1 parent dc5d76a commit 525c1a6

File tree

7 files changed

+182
-204
lines changed

7 files changed

+182
-204
lines changed

instrumentation/jetty-httpclient/jetty-httpclient-9.2/javaagent/src/test/groovy/io/opentelemetry/javaagent/instrumentation/jetty/httpclient/v9_2/JettyHttpClient9AgentTest.groovy

Lines changed: 0 additions & 24 deletions
This file was deleted.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
/*
2+
* Copyright The OpenTelemetry Authors
3+
* SPDX-License-Identifier: Apache-2.0
4+
*/
5+
6+
package io.opentelemetry.javaagent.instrumentation.jetty.httpclient.v9_2;
7+
8+
import io.opentelemetry.instrumentation.jetty.httpclient.v9_2.AbstractJettyClient9Test;
9+
import io.opentelemetry.instrumentation.testing.junit.InstrumentationExtension;
10+
import io.opentelemetry.instrumentation.testing.junit.http.HttpClientInstrumentationExtension;
11+
import org.eclipse.jetty.client.HttpClient;
12+
import org.eclipse.jetty.util.ssl.SslContextFactory;
13+
import org.junit.jupiter.api.extension.RegisterExtension;
14+
15+
class JettyHttpClient9AgentTest extends AbstractJettyClient9Test {
16+
17+
@RegisterExtension
18+
static final InstrumentationExtension extension = HttpClientInstrumentationExtension.forAgent();
19+
20+
@Override
21+
public HttpClient createStandardClient() {
22+
return new HttpClient();
23+
}
24+
25+
@Override
26+
public HttpClient createHttpsClient(SslContextFactory sslContextFactory) {
27+
return new HttpClient(sslContextFactory);
28+
}
29+
}

instrumentation/jetty-httpclient/jetty-httpclient-9.2/library/src/test/groovy/io/opentelemetry/instrumentation/jetty/httpclient/v9_2/JettyHttpClient9LibraryTest.groovy

Lines changed: 0 additions & 31 deletions
This file was deleted.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
/*
2+
* Copyright The OpenTelemetry Authors
3+
* SPDX-License-Identifier: Apache-2.0
4+
*/
5+
6+
package io.opentelemetry.instrumentation.jetty.httpclient.v9_2;
7+
8+
import io.opentelemetry.instrumentation.testing.junit.InstrumentationExtension;
9+
import io.opentelemetry.instrumentation.testing.junit.http.AbstractHttpClientTest;
10+
import io.opentelemetry.instrumentation.testing.junit.http.HttpClientInstrumentationExtension;
11+
import java.util.Collections;
12+
import org.eclipse.jetty.client.HttpClient;
13+
import org.eclipse.jetty.util.ssl.SslContextFactory;
14+
import org.junit.jupiter.api.extension.RegisterExtension;
15+
16+
class JettyHttpClient9LibraryTest extends AbstractJettyClient9Test {
17+
18+
@RegisterExtension
19+
static final InstrumentationExtension extension = HttpClientInstrumentationExtension.forLibrary();
20+
21+
@Override
22+
protected HttpClient createStandardClient() {
23+
return JettyClientTelemetry.builder(testing.getOpenTelemetry())
24+
.setCapturedRequestHeaders(
25+
Collections.singletonList(AbstractHttpClientTest.TEST_REQUEST_HEADER))
26+
.setCapturedResponseHeaders(
27+
Collections.singletonList(AbstractHttpClientTest.TEST_RESPONSE_HEADER))
28+
.build()
29+
.getHttpClient();
30+
}
31+
32+
@Override
33+
protected HttpClient createHttpsClient(SslContextFactory sslContextFactory) {
34+
return JettyClientTelemetry.builder(testing.getOpenTelemetry())
35+
.setSslContextFactory(sslContextFactory)
36+
.build()
37+
.getHttpClient();
38+
}
39+
}

instrumentation/jetty-httpclient/jetty-httpclient-9.2/testing/build.gradle.kts

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,5 @@ dependencies {
1010

1111
api("org.eclipse.jetty:jetty-client:$jettyVers_base9")
1212

13-
implementation("org.junit.jupiter:junit-jupiter-api")
14-
15-
implementation("org.apache.groovy:groovy")
1613
implementation("io.opentelemetry:opentelemetry-api")
17-
implementation("org.spockframework:spock-core")
1814
}

instrumentation/jetty-httpclient/jetty-httpclient-9.2/testing/src/main/groovy/io/opentelemetry/instrumentation/jetty/httpclient/v9_2/AbstractJettyClient9Test.groovy

Lines changed: 0 additions & 145 deletions
This file was deleted.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,114 @@
1+
/*
2+
* Copyright The OpenTelemetry Authors
3+
* SPDX-License-Identifier: Apache-2.0
4+
*/
5+
6+
package io.opentelemetry.instrumentation.jetty.httpclient.v9_2;
7+
8+
import io.opentelemetry.instrumentation.testing.junit.http.AbstractHttpClientTest;
9+
import io.opentelemetry.instrumentation.testing.junit.http.HttpClientResult;
10+
import io.opentelemetry.instrumentation.testing.junit.http.HttpClientTestOptions;
11+
import java.net.URI;
12+
import java.util.Map;
13+
import java.util.concurrent.ExecutionException;
14+
import java.util.concurrent.TimeUnit;
15+
import java.util.concurrent.TimeoutException;
16+
import org.eclipse.jetty.client.HttpClient;
17+
import org.eclipse.jetty.client.api.Request;
18+
import org.eclipse.jetty.client.api.Response;
19+
import org.eclipse.jetty.util.ssl.SslContextFactory;
20+
import org.junit.jupiter.api.AfterEach;
21+
import org.junit.jupiter.api.BeforeEach;
22+
23+
public abstract class AbstractJettyClient9Test extends AbstractHttpClientTest<Request> {
24+
25+
private static final String USER_AGENT = "Jetty";
26+
27+
private HttpClient client;
28+
private HttpClient httpsClient;
29+
30+
@BeforeEach
31+
public void before() throws Exception {
32+
// Start the main Jetty HttpClient and a https client
33+
client = createStandardClient();
34+
client.setConnectTimeout(5000L);
35+
client.start();
36+
37+
SslContextFactory tlsCtx = new SslContextFactory();
38+
httpsClient = createHttpsClient(tlsCtx);
39+
httpsClient.setFollowRedirects(false);
40+
httpsClient.start();
41+
}
42+
43+
@AfterEach
44+
public void after() throws Exception {
45+
client.stop();
46+
httpsClient.stop();
47+
}
48+
49+
@Override
50+
protected void configure(HttpClientTestOptions.Builder optionsBuilder) {
51+
optionsBuilder.disableTestRedirects().setUserAgent(USER_AGENT);
52+
}
53+
54+
@Override
55+
public Request buildRequest(String method, URI uri, Map<String, String> headers)
56+
throws Exception {
57+
HttpClient theClient = uri.getScheme().equalsIgnoreCase("https") ? httpsClient : client;
58+
Request request =
59+
theClient
60+
.newRequest(uri)
61+
.method(method)
62+
.agent(USER_AGENT)
63+
.timeout(5000L, TimeUnit.MILLISECONDS);
64+
headers.forEach(request::header);
65+
return request;
66+
}
67+
68+
@Override
69+
public int sendRequest(Request httpRequest, String method, URI uri, Map<String, String> headers)
70+
throws ExecutionException, InterruptedException, TimeoutException {
71+
return httpRequest.send().getStatus();
72+
}
73+
74+
@Override
75+
public void sendRequestWithCallback(
76+
Request request,
77+
String method,
78+
URI uri,
79+
Map<String, String> headers,
80+
HttpClientResult httpClientResult)
81+
throws Exception {
82+
JettyClientListener jcl = new JettyClientListener();
83+
request.onRequestFailure(jcl);
84+
request.onResponseFailure(jcl);
85+
headers.forEach(request::header);
86+
request.send(
87+
result -> {
88+
if (jcl.failure != null) {
89+
httpClientResult.complete(jcl.failure);
90+
return;
91+
}
92+
httpClientResult.complete(result.getResponse().getStatus());
93+
});
94+
}
95+
96+
private static class JettyClientListener
97+
implements Request.FailureListener, Response.FailureListener {
98+
private volatile Throwable failure;
99+
100+
@Override
101+
public void onFailure(Request requestF, Throwable failure) {
102+
this.failure = failure;
103+
}
104+
105+
@Override
106+
public void onFailure(Response responseF, Throwable failure) {
107+
this.failure = failure;
108+
}
109+
}
110+
111+
protected abstract HttpClient createStandardClient();
112+
113+
protected abstract HttpClient createHttpsClient(SslContextFactory sslContextFactory);
114+
}

0 commit comments

Comments
 (0)