diff --git a/tests/integration/restclient/src/main/java/io/helidon/tests/integration/restclient/GreetResourceFilter.java b/tests/integration/restclient/src/main/java/io/helidon/tests/integration/restclient/GreetResourceFilter.java index d7250bf306a..281f650b6c3 100644 --- a/tests/integration/restclient/src/main/java/io/helidon/tests/integration/restclient/GreetResourceFilter.java +++ b/tests/integration/restclient/src/main/java/io/helidon/tests/integration/restclient/GreetResourceFilter.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2022 Oracle and/or its affiliates. + * Copyright (c) 2022, 2023 Oracle and/or its affiliates. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -16,13 +16,13 @@ package io.helidon.tests.integration.restclient; -import jakarta.ws.rs.client.ClientRequestContext; -import jakarta.ws.rs.client.ClientRequestFilter; -import jakarta.ws.rs.core.Context; -import jakarta.ws.rs.core.UriInfo; import java.io.IOException; import java.net.URI; +import io.helidon.common.context.Contexts; +import jakarta.ws.rs.client.ClientRequestContext; +import jakarta.ws.rs.client.ClientRequestFilter; + /** * A client request filter that replaces port 8080 by the ephemeral port allocated for the * webserver in each run. This is necessary since {@link GreetResourceClient} uses an annotation @@ -30,9 +30,6 @@ */ public class GreetResourceFilter implements ClientRequestFilter { - @Context - UriInfo uriInfo; - @Override public void filter(ClientRequestContext requestContext) throws IOException { URI uri = requestContext.getUri(); @@ -41,7 +38,8 @@ public void filter(ClientRequestContext requestContext) throws IOException { } private String extractDynamicPort() { - String uriString = uriInfo.getBaseUri().toString(); + URI uri = Contexts.globalContext().get(getClass(), URI.class).orElseThrow(); + String uriString = uri.toString(); int k = uriString.lastIndexOf(":"); int j = uriString.indexOf("/", k); return uriString.substring(k + 1, j); diff --git a/tests/integration/restclient/src/main/java/io/helidon/tests/integration/restclient/GreetResourceProxy.java b/tests/integration/restclient/src/main/java/io/helidon/tests/integration/restclient/GreetResourceProxy.java index 648e9acd8c3..e0530870069 100644 --- a/tests/integration/restclient/src/main/java/io/helidon/tests/integration/restclient/GreetResourceProxy.java +++ b/tests/integration/restclient/src/main/java/io/helidon/tests/integration/restclient/GreetResourceProxy.java @@ -20,6 +20,7 @@ import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeoutException; +import io.helidon.common.context.Contexts; import jakarta.annotation.PostConstruct; import jakarta.inject.Inject; import jakarta.json.JsonObject; @@ -61,6 +62,10 @@ public void initialize() { builderClient = RestClientBuilder.newBuilder() .baseUri(uriInfo.getBaseUri()) .build(GreetResourceClient.class); + + // Register base URI to update dynamic port in GreetResourceFilter + // given that the request scope is not provided by Jersey with async + Contexts.globalContext().register(GreetResourceFilter.class, uriInfo.getBaseUri()); } /** diff --git a/tests/integration/restclient/src/test/java/io/helidon/tests/integration/restclient/MainTest.java b/tests/integration/restclient/src/test/java/io/helidon/tests/integration/restclient/MainTest.java index 58be84fa187..0c6736c5ea4 100644 --- a/tests/integration/restclient/src/test/java/io/helidon/tests/integration/restclient/MainTest.java +++ b/tests/integration/restclient/src/test/java/io/helidon/tests/integration/restclient/MainTest.java @@ -25,7 +25,6 @@ import org.eclipse.microprofile.metrics.MetricRegistry; import org.eclipse.microprofile.metrics.Tag; import org.eclipse.microprofile.metrics.annotation.RegistryType; -import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; import static org.hamcrest.CoreMatchers.is; @@ -69,7 +68,6 @@ void testHelloWorld() { } @Test - @Disabled void testHelloWorldAsync() { JsonObject jsonObject = target .path("proxy")