Skip to content

Commit ce60875

Browse files
committed
Convert mock-server to wiremock
mock-server uses older LMAX disruptor which requires Unsafe
1 parent 54cf749 commit ce60875

File tree

3 files changed

+26
-20
lines changed

3 files changed

+26
-20
lines changed

dependencyManagement/build.gradle.kts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,7 @@ val DEPENDENCIES = listOf(
9292
"org.codehaus.mojo:animal-sniffer-annotations:1.24",
9393
"org.jctools:jctools-core:4.0.5",
9494
"org.junit-pioneer:junit-pioneer:1.9.1",
95-
"org.mock-server:mockserver-netty:5.15.0:shaded",
95+
"com.github.tomakehurst:wiremock-jre8:2.35.2",
9696
"org.skyscreamer:jsonassert:1.5.3",
9797
"com.android.tools:desugar_jdk_libs:2.1.5",
9898
)

exporters/otlp/testing-internal/build.gradle.kts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ dependencies {
3434
implementation("com.linecorp.armeria:armeria-junit5")
3535
implementation("io.github.netmikey.logunit:logunit-jul")
3636
implementation("org.assertj:assertj-core")
37-
implementation("org.mock-server:mockserver-netty")
37+
implementation("com.github.tomakehurst:wiremock-jre8")
3838
}
3939

4040
// Skip OWASP dependencyCheck task on test module

exporters/otlp/testing-internal/src/main/java/io/opentelemetry/exporter/otlp/testing/internal/AbstractHttpTelemetryExporterTest.java

Lines changed: 24 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,8 @@
1313
import static org.junit.jupiter.api.Named.named;
1414
import static org.junit.jupiter.params.provider.Arguments.arguments;
1515

16+
import com.github.tomakehurst.wiremock.WireMockServer;
17+
import com.github.tomakehurst.wiremock.client.WireMock;
1618
import com.google.protobuf.InvalidProtocolBufferException;
1719
import com.google.protobuf.Message;
1820
import com.linecorp.armeria.common.HttpRequest;
@@ -101,7 +103,6 @@
101103
import org.junit.jupiter.params.provider.ArgumentsSource;
102104
import org.junit.jupiter.params.provider.ValueSource;
103105
import org.junit.jupiter.params.support.ParameterDeclarations;
104-
import org.mockserver.integration.ClientAndServer;
105106
import org.slf4j.event.Level;
106107
import org.slf4j.event.LoggingEvent;
107108

@@ -648,30 +649,35 @@ void nonRetryableError(int code) {
648649

649650
@Test
650651
void proxy() {
651-
// configure mockserver to proxy to the local OTLP server
652-
InetSocketAddress serverSocketAddress = server.httpSocketAddress();
653-
try (ClientAndServer clientAndServer =
654-
ClientAndServer.startClientAndServer(
655-
serverSocketAddress.getHostName(), serverSocketAddress.getPort());
656-
TelemetryExporter<T> exporter =
657-
exporterBuilder()
658-
// Configure exporter with server endpoint, and proxy options to route through
659-
// mockserver proxy
660-
.setEndpoint(server.httpUri() + path)
661-
.setProxyOptions(
662-
ProxyOptions.create(
663-
InetSocketAddress.createUnresolved("localhost", clientAndServer.getPort())))
664-
.build()) {
652+
// configure wiremock to proxy to the local OTLP server
653+
WireMockServer wireMockServer = new WireMockServer(0);
654+
wireMockServer.start();
655+
656+
// Configure WireMock to proxy all requests to the actual server
657+
wireMockServer.stubFor(
658+
WireMock.any(WireMock.anyUrl())
659+
.willReturn(WireMock.aResponse().proxiedFrom(server.httpUri().toString())));
660+
661+
try (TelemetryExporter<T> exporter =
662+
exporterBuilder()
663+
// Configure exporter with server endpoint, and proxy options to route through
664+
// wiremock proxy
665+
.setEndpoint(server.httpUri() + path)
666+
.setProxyOptions(
667+
ProxyOptions.create(
668+
InetSocketAddress.createUnresolved("localhost", wireMockServer.port())))
669+
.build()) {
665670

666671
List<T> telemetry = Collections.singletonList(generateFakeTelemetry());
667672

668673
assertThat(exporter.export(telemetry).join(10, TimeUnit.SECONDS).isSuccess()).isTrue();
669-
// assert that mock server received request
670-
assertThat(clientAndServer.retrieveRecordedRequests(new org.mockserver.model.HttpRequest()))
671-
.hasSize(1);
674+
// assert that wiremock server received request
675+
wireMockServer.verify(1, WireMock.anyRequestedFor(WireMock.anyUrl()));
672676
// assert that server received telemetry from proxy, and is as expected
673677
List<U> expectedResourceTelemetry = toProto(telemetry);
674678
assertThat(exportedResourceTelemetry).containsExactlyElementsOf(expectedResourceTelemetry);
679+
} finally {
680+
wireMockServer.stop();
675681
}
676682
}
677683

0 commit comments

Comments
 (0)