diff --git a/instrumentation/vertx/vertx-web-3.0/javaagent/src/latestDepTest/groovy/server/VertxLatestHttpServerTest.groovy b/instrumentation/vertx/vertx-web-3.0/javaagent/src/latestDepTest/groovy/server/VertxLatestHttpServerTest.groovy deleted file mode 100644 index db274a9d8bed..000000000000 --- a/instrumentation/vertx/vertx-web-3.0/javaagent/src/latestDepTest/groovy/server/VertxLatestHttpServerTest.groovy +++ /dev/null @@ -1,17 +0,0 @@ -/* - * Copyright The OpenTelemetry Authors - * SPDX-License-Identifier: Apache-2.0 - */ - -package server - - -import io.vertx.core.AbstractVerticle - -class VertxLatestHttpServerTest extends AbstractVertxHttpServerTest { - - @Override - protected Class verticle() { - return VertxLatestWebServer - } -} diff --git a/instrumentation/vertx/vertx-web-3.0/javaagent/src/latestDepTest/java/io/opentelemetry/javaagent/instrumentation/vertx/VertxLatestHttpServerTest.java b/instrumentation/vertx/vertx-web-3.0/javaagent/src/latestDepTest/java/io/opentelemetry/javaagent/instrumentation/vertx/VertxLatestHttpServerTest.java new file mode 100644 index 000000000000..f13cff89107c --- /dev/null +++ b/instrumentation/vertx/vertx-web-3.0/javaagent/src/latestDepTest/java/io/opentelemetry/javaagent/instrumentation/vertx/VertxLatestHttpServerTest.java @@ -0,0 +1,22 @@ +/* + * Copyright The OpenTelemetry Authors + * SPDX-License-Identifier: Apache-2.0 + */ + +package io.opentelemetry.javaagent.instrumentation.vertx; + +import io.vertx.core.AbstractVerticle; +import io.vertx.core.Vertx; + +class VertxLatestHttpServerTest extends AbstractVertxHttpServerTest { + + @Override + protected Class verticle() { + return VertxLatestWebServer.class; + } + + @Override + protected void stopServer(Vertx server) throws Exception { + server.close(); + } +} diff --git a/instrumentation/vertx/vertx-web-3.0/javaagent/src/latestDepTest/java/server/VertxLatestWebServer.java b/instrumentation/vertx/vertx-web-3.0/javaagent/src/latestDepTest/java/io/opentelemetry/javaagent/instrumentation/vertx/VertxLatestWebServer.java similarity index 93% rename from instrumentation/vertx/vertx-web-3.0/javaagent/src/latestDepTest/java/server/VertxLatestWebServer.java rename to instrumentation/vertx/vertx-web-3.0/javaagent/src/latestDepTest/java/io/opentelemetry/javaagent/instrumentation/vertx/VertxLatestWebServer.java index af850c913aeb..fa268df6cea7 100644 --- a/instrumentation/vertx/vertx-web-3.0/javaagent/src/latestDepTest/java/server/VertxLatestWebServer.java +++ b/instrumentation/vertx/vertx-web-3.0/javaagent/src/latestDepTest/java/io/opentelemetry/javaagent/instrumentation/vertx/VertxLatestWebServer.java @@ -3,7 +3,7 @@ * SPDX-License-Identifier: Apache-2.0 */ -package server; +package io.opentelemetry.javaagent.instrumentation.vertx; import io.vertx.core.Promise; import io.vertx.core.http.HttpServerResponse; diff --git a/instrumentation/vertx/vertx-web-3.0/javaagent/src/version3Test/groovy/server/VertxHttpServerTest.groovy b/instrumentation/vertx/vertx-web-3.0/javaagent/src/version3Test/java/io/opentelemetry/javaagent/instrumentation/vertx/VertxHttpServerTest.java similarity index 63% rename from instrumentation/vertx/vertx-web-3.0/javaagent/src/version3Test/groovy/server/VertxHttpServerTest.groovy rename to instrumentation/vertx/vertx-web-3.0/javaagent/src/version3Test/java/io/opentelemetry/javaagent/instrumentation/vertx/VertxHttpServerTest.java index 722f7b468691..1281d3e1c546 100644 --- a/instrumentation/vertx/vertx-web-3.0/javaagent/src/version3Test/groovy/server/VertxHttpServerTest.groovy +++ b/instrumentation/vertx/vertx-web-3.0/javaagent/src/version3Test/java/io/opentelemetry/javaagent/instrumentation/vertx/VertxHttpServerTest.java @@ -3,14 +3,13 @@ * SPDX-License-Identifier: Apache-2.0 */ -package server +package io.opentelemetry.javaagent.instrumentation.vertx; -import io.vertx.core.AbstractVerticle +import io.vertx.core.AbstractVerticle; class VertxHttpServerTest extends AbstractVertxHttpServerTest { - @Override protected Class verticle() { - return VertxWebServer + return VertxWebServer.class; } } diff --git a/instrumentation/vertx/vertx-web-3.0/javaagent/src/version3Test/java/server/VertxWebServer.java b/instrumentation/vertx/vertx-web-3.0/javaagent/src/version3Test/java/io/opentelemetry/javaagent/instrumentation/vertx/VertxWebServer.java similarity index 93% rename from instrumentation/vertx/vertx-web-3.0/javaagent/src/version3Test/java/server/VertxWebServer.java rename to instrumentation/vertx/vertx-web-3.0/javaagent/src/version3Test/java/io/opentelemetry/javaagent/instrumentation/vertx/VertxWebServer.java index aad9975810b2..860af9122088 100644 --- a/instrumentation/vertx/vertx-web-3.0/javaagent/src/version3Test/java/server/VertxWebServer.java +++ b/instrumentation/vertx/vertx-web-3.0/javaagent/src/version3Test/java/io/opentelemetry/javaagent/instrumentation/vertx/VertxWebServer.java @@ -3,7 +3,7 @@ * SPDX-License-Identifier: Apache-2.0 */ -package server; +package io.opentelemetry.javaagent.instrumentation.vertx; import io.vertx.core.Future; import io.vertx.core.http.HttpServerResponse; diff --git a/instrumentation/vertx/vertx-web-3.0/testing/src/main/groovy/server/AbstractVertxHttpServerTest.groovy b/instrumentation/vertx/vertx-web-3.0/testing/src/main/groovy/server/AbstractVertxHttpServerTest.groovy deleted file mode 100644 index 3aaab72fe8a4..000000000000 --- a/instrumentation/vertx/vertx-web-3.0/testing/src/main/groovy/server/AbstractVertxHttpServerTest.groovy +++ /dev/null @@ -1,83 +0,0 @@ -/* - * Copyright The OpenTelemetry Authors - * SPDX-License-Identifier: Apache-2.0 - */ - -package server - -import io.opentelemetry.instrumentation.api.internal.HttpConstants -import io.opentelemetry.instrumentation.test.AgentTestTrait -import io.opentelemetry.instrumentation.test.base.HttpServerTest -import io.opentelemetry.instrumentation.testing.junit.http.ServerEndpoint -import io.vertx.core.AbstractVerticle -import io.vertx.core.DeploymentOptions -import io.vertx.core.Vertx -import io.vertx.core.VertxOptions -import io.vertx.core.json.JsonObject - -import java.util.concurrent.CompletableFuture -import java.util.concurrent.TimeUnit - -import static io.opentelemetry.instrumentation.testing.junit.http.ServerEndpoint.EXCEPTION - -abstract class AbstractVertxHttpServerTest extends HttpServerTest implements AgentTestTrait { - @Override - Vertx startServer(int port) { - Vertx server = Vertx.vertx(new VertxOptions() - // Useful for debugging: - // .setBlockedThreadCheckInterval(Integer.MAX_VALUE) - ) - CompletableFuture future = new CompletableFuture<>() - server.deployVerticle(verticle().getName(), - new DeploymentOptions() - .setConfig(new JsonObject().put(AbstractVertxWebServer.CONFIG_HTTP_SERVER_PORT, port)) - .setInstances(3)) { res -> - if (!res.succeeded()) { - throw new IllegalStateException("Cannot deploy server Verticle", res.cause()) - } - future.complete(null) - } - - future.get(30, TimeUnit.SECONDS) - return server - } - - protected abstract Class verticle() - - @Override - void stopServer(Vertx server) { - server.close() - } - - @Override - boolean testPathParam() { - return true - } - - @Override - boolean verifyServerSpanEndTime() { - // server spans are ended inside of the controller spans - return false - } - - @Override - String getContextPath() { - "/vertx-app" - } - - @Override - Throwable expectedException() { - new IllegalStateException(EXCEPTION.body) - } - - @Override - String expectedHttpRoute(ServerEndpoint endpoint, String method) { - if (method == HttpConstants._OTHER) { - return getContextPath() + endpoint.path - } - if (endpoint == ServerEndpoint.NOT_FOUND) { - return getContextPath() - } - return super.expectedHttpRoute(endpoint, method) - } -} diff --git a/instrumentation/vertx/vertx-web-3.0/testing/src/main/java/io/opentelemetry/javaagent/instrumentation/vertx/AbstractVertxHttpServerTest.java b/instrumentation/vertx/vertx-web-3.0/testing/src/main/java/io/opentelemetry/javaagent/instrumentation/vertx/AbstractVertxHttpServerTest.java new file mode 100644 index 000000000000..72a20a538950 --- /dev/null +++ b/instrumentation/vertx/vertx-web-3.0/testing/src/main/java/io/opentelemetry/javaagent/instrumentation/vertx/AbstractVertxHttpServerTest.java @@ -0,0 +1,84 @@ +/* + * Copyright The OpenTelemetry Authors + * SPDX-License-Identifier: Apache-2.0 + */ + +package io.opentelemetry.javaagent.instrumentation.vertx; + +import io.opentelemetry.instrumentation.api.internal.HttpConstants; +import io.opentelemetry.instrumentation.testing.junit.InstrumentationExtension; +import io.opentelemetry.instrumentation.testing.junit.http.AbstractHttpServerTest; +import io.opentelemetry.instrumentation.testing.junit.http.HttpServerInstrumentationExtension; +import io.opentelemetry.instrumentation.testing.junit.http.HttpServerTestOptions; +import io.opentelemetry.instrumentation.testing.junit.http.ServerEndpoint; +import io.vertx.core.AbstractVerticle; +import io.vertx.core.DeploymentOptions; +import io.vertx.core.Vertx; +import io.vertx.core.VertxOptions; +import io.vertx.core.json.JsonObject; +import java.util.Objects; +import java.util.concurrent.CompletableFuture; +import java.util.concurrent.ExecutionException; +import java.util.concurrent.TimeUnit; +import java.util.concurrent.TimeoutException; +import org.junit.jupiter.api.extension.RegisterExtension; + +abstract class AbstractVertxHttpServerTest extends AbstractHttpServerTest { + + @RegisterExtension + static final InstrumentationExtension testing = HttpServerInstrumentationExtension.forAgent(); + + @Override + protected void configure(HttpServerTestOptions options) { + super.configure(options); + options.setTestPathParam(true); + // server spans are ended inside of the controller spans + options.setVerifyServerSpanEndTime(false); + options.setContextPath("/vertx-app"); + options.setExpectedHttpRoute( + (endpoint, method) -> { + if (Objects.equals(method, HttpConstants._OTHER)) { + return getContextPath() + endpoint.getPath(); + } + if (Objects.equals(endpoint, ServerEndpoint.NOT_FOUND)) { + return getContextPath(); + } + return super.expectedHttpRoute(endpoint, method); + }); + } + + @Override + protected Vertx setupServer() + throws ExecutionException, InterruptedException, TimeoutException, NoSuchMethodException { + Vertx server = + Vertx.vertx( + new VertxOptions() + // Useful for debugging: + // .setBlockedThreadCheckInterval(Integer.MAX_VALUE) + ); + CompletableFuture future = new CompletableFuture<>(); + + server.deployVerticle( + verticle().getName(), + new DeploymentOptions() + .setConfig( + new JsonObject().put(AbstractVertxWebServer.CONFIG_HTTP_SERVER_PORT, (Object) port)) + .setInstances(3), + res -> { + if (!res.succeeded()) { + throw new IllegalStateException("Cannot deploy server Verticle", res.cause()); + } + future.complete(null); + }); + + future.get(30, TimeUnit.SECONDS); + return server; + } + + @Override + protected void stopServer(Vertx server) throws Exception { + server.close(); + } + + protected abstract Class verticle(); +} diff --git a/instrumentation/vertx/vertx-web-3.0/testing/src/main/java/server/AbstractVertxWebServer.java b/instrumentation/vertx/vertx-web-3.0/testing/src/main/java/io/opentelemetry/javaagent/instrumentation/vertx/AbstractVertxWebServer.java similarity index 98% rename from instrumentation/vertx/vertx-web-3.0/testing/src/main/java/server/AbstractVertxWebServer.java rename to instrumentation/vertx/vertx-web-3.0/testing/src/main/java/io/opentelemetry/javaagent/instrumentation/vertx/AbstractVertxWebServer.java index d312dff8f274..8546e12e2966 100644 --- a/instrumentation/vertx/vertx-web-3.0/testing/src/main/java/server/AbstractVertxWebServer.java +++ b/instrumentation/vertx/vertx-web-3.0/testing/src/main/java/io/opentelemetry/javaagent/instrumentation/vertx/AbstractVertxWebServer.java @@ -3,7 +3,7 @@ * SPDX-License-Identifier: Apache-2.0 */ -package server; +package io.opentelemetry.javaagent.instrumentation.vertx; import static io.opentelemetry.instrumentation.testing.junit.http.AbstractHttpServerTest.controller; import static io.opentelemetry.instrumentation.testing.junit.http.ServerEndpoint.CAPTURE_HEADERS;