diff --git a/README.md b/README.md index da4750f54..6634c6621 100644 --- a/README.md +++ b/README.md @@ -371,6 +371,12 @@ This module will setup a very minimal configuration (only `quarkus-resteasy`) an Reactive equivalent of the http/rest-client module. Exclusions: XML test. Reason: https://quarkus.io/blog/resteasy-reactive/#what-jax-rs-features-are-missing +Additionally, it's include endpoints to check usage of HTTP/2 using REST client over the http and https. +HTTP/2 REST client tests check sync and async response by: +- Two endpoint used by client +- Eight endpoints used for validation of client request + + ### `http/rest-client-reactive-vanilla` Verifies Rest Client usage, while no request are going only internally on the server. This module requires to not have any resteasy dependency, for an issue to be reproducible. @@ -505,7 +511,7 @@ The application also uses RESTEasy to expose a RESTful API, Jackson for JSON ser There are actually coverage scenarios `sql-app` directory: - `postgresql`: the PostgreSQL JDBC driver; produces the PostgreSQL-specific build of the application and runs the OpenShift test with PostgreSQL -- `mysql`: same for MysQL +- `mysql`: same for MySQL - `mariadb`: same for MariaDB - `mssql`: same for MSSQL - `oracle`: The same case as the others, but for Oracle, only JVM mode is supported. Native mode is not covered due to a bug in Quarkus, which causes it to fail when used in combination with other JDBC drivers (see `OracleDatabaseIT`). OpenShift scenario is also not supported due to another bug (see `OpenShiftOracleDatabaseIT`). @@ -515,16 +521,18 @@ This might not be recommended for production, but is good enough for test. Container images used in the tests are: - PostgreSQL: - - version 13: `postgres:13.6` - - version 10: `registry.redhat.io/rhscl/postgresql-10-rhel7` (only if `ts.redhat.registry.enabled` is set) + - version 16: `postgres:16.1` + - version 10: `registry.redhat.io/rhel8/postgresql-10` (only if `ts.redhat.registry.enabled` is set) - MySQL: - version 5.7: `mysql:5.7` - version 8.0: `registry.access.redhat.com/rhscl/mysql-80-rhel7` - MariaDB: - - version 10.6: `mariadb:10.6` + - version 10.11: `mariadb:10.11` + - version 10.3: `registry.redhat.io/rhel8/mariadb-103` + - version 10.5: `registry.redhat.io/rhel8/mariadb-105` - MSSQL: `mcr.microsoft.com/mssql/rhel/server` - Oracle - - version 21 XE: `gvenzl/oracle-xe:21-slim-faststart` + - version 23: `gvenzl/oracle-free:23-slim-faststart` ### `sql-db/sql-app-oracle` Functionally identical to `sql-db/sql-app`, but using only `quarkus-jdbc-oracle` driver. This is a workaround for the missing native Oracle coverage in `sql-db/sql-app`. diff --git a/build-time-analytics/src/test/java/io/quarkus/ts/buildtimeanalytics/CliDevModeIT.java b/build-time-analytics/src/test/java/io/quarkus/ts/buildtimeanalytics/CliDevModeIT.java index f5f6ba528..8fd93c3a8 100644 --- a/build-time-analytics/src/test/java/io/quarkus/ts/buildtimeanalytics/CliDevModeIT.java +++ b/build-time-analytics/src/test/java/io/quarkus/ts/buildtimeanalytics/CliDevModeIT.java @@ -21,7 +21,6 @@ import org.awaitility.core.ThrowingRunnable; import org.junit.jupiter.api.BeforeEach; -import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Tag; import org.junit.jupiter.api.Test; @@ -111,7 +110,6 @@ public void timeoutPropertyRecognized() { verifyDevModePropertyRecognized(app, QUARKUS_ANALYTICS_TIMEOUT_PROPERTY); } - @Disabled("https://github.com/quarkusio/quarkus/issues/34825") @Test public void uriPropertyRecognized() { QuarkusCliRestService app = createAppDefault(); diff --git a/build-time-analytics/src/test/java/io/quarkus/ts/buildtimeanalytics/CliProdModeJvmIT.java b/build-time-analytics/src/test/java/io/quarkus/ts/buildtimeanalytics/CliProdModeJvmIT.java index c6b92414d..eb3ba94b1 100644 --- a/build-time-analytics/src/test/java/io/quarkus/ts/buildtimeanalytics/CliProdModeJvmIT.java +++ b/build-time-analytics/src/test/java/io/quarkus/ts/buildtimeanalytics/CliProdModeJvmIT.java @@ -14,7 +14,6 @@ import static io.quarkus.ts.buildtimeanalytics.AnalyticsUtils.QUARKUS_ANALYTICS_URI_BASE_PROPERTY; import org.junit.jupiter.api.BeforeEach; -import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Tag; import org.junit.jupiter.api.Test; @@ -116,7 +115,6 @@ public void timeoutPropertyRecognized() { verifyBuildPropertyRecognized(buildResult, QUARKUS_ANALYTICS_TIMEOUT_PROPERTY); } - @Disabled("https://github.com/quarkusio/quarkus/issues/34825") @Test public void uriPropertyRecognized() { QuarkusCliRestService app = createAppDefault(); diff --git a/config/src/test/java/io/quarkus/ts/configmap/api/server/OpenShiftApiServerConfigMapConfigIT.java b/config/src/test/java/io/quarkus/ts/configmap/api/server/OpenShiftApiServerConfigMapConfigIT.java index 74fcadb5a..17abeddf2 100644 --- a/config/src/test/java/io/quarkus/ts/configmap/api/server/OpenShiftApiServerConfigMapConfigIT.java +++ b/config/src/test/java/io/quarkus/ts/configmap/api/server/OpenShiftApiServerConfigMapConfigIT.java @@ -1,11 +1,8 @@ package io.quarkus.ts.configmap.api.server; -import org.junit.jupiter.api.Disabled; - import io.quarkus.test.bootstrap.RestService; import io.quarkus.test.services.QuarkusApplication; -@Disabled("https://github.com/quarkusio/quarkus/issues/38018") public class OpenShiftApiServerConfigMapConfigIT extends OpenShiftBaseConfigIT { @QuarkusApplication diff --git a/config/src/test/java/io/quarkus/ts/configmap/api/server/OpenShiftApiServerConfigSecretConfigIT.java b/config/src/test/java/io/quarkus/ts/configmap/api/server/OpenShiftApiServerConfigSecretConfigIT.java index 80677391b..38384a758 100644 --- a/config/src/test/java/io/quarkus/ts/configmap/api/server/OpenShiftApiServerConfigSecretConfigIT.java +++ b/config/src/test/java/io/quarkus/ts/configmap/api/server/OpenShiftApiServerConfigSecretConfigIT.java @@ -1,11 +1,8 @@ package io.quarkus.ts.configmap.api.server; -import org.junit.jupiter.api.Disabled; - import io.quarkus.test.bootstrap.RestService; import io.quarkus.test.services.QuarkusApplication; -@Disabled("https://github.com/quarkusio/quarkus/issues/38018") public class OpenShiftApiServerConfigSecretConfigIT extends OpenShiftBaseConfigIT { @QuarkusApplication diff --git a/config/src/test/java/io/quarkus/ts/configmap/api/server/OpenShiftConfigSourcePriorityIT.java b/config/src/test/java/io/quarkus/ts/configmap/api/server/OpenShiftConfigSourcePriorityIT.java index 3b314fd38..21b9ecb15 100644 --- a/config/src/test/java/io/quarkus/ts/configmap/api/server/OpenShiftConfigSourcePriorityIT.java +++ b/config/src/test/java/io/quarkus/ts/configmap/api/server/OpenShiftConfigSourcePriorityIT.java @@ -20,7 +20,6 @@ import jakarta.inject.Inject; import org.apache.http.HttpStatus; -import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; import io.quarkus.test.bootstrap.RestService; @@ -32,7 +31,6 @@ import io.restassured.response.Response; @OpenShiftScenario(deployment = OpenShiftDeploymentStrategy.UsingOpenShiftExtension) -@Disabled("https://github.com/quarkusio/quarkus/issues/38018") public class OpenShiftConfigSourcePriorityIT { private static final String CONFIGMAP_YAML = CONFIGMAP + "-yaml"; diff --git a/config/src/test/java/io/quarkus/ts/configmap/api/server/OpenShiftFailOnMissingConfigIT.java b/config/src/test/java/io/quarkus/ts/configmap/api/server/OpenShiftFailOnMissingConfigIT.java index 0e38318a1..888780c9f 100644 --- a/config/src/test/java/io/quarkus/ts/configmap/api/server/OpenShiftFailOnMissingConfigIT.java +++ b/config/src/test/java/io/quarkus/ts/configmap/api/server/OpenShiftFailOnMissingConfigIT.java @@ -11,7 +11,6 @@ import io.quarkus.test.services.QuarkusApplication; @OpenShiftScenario(deployment = OpenShiftDeploymentStrategy.UsingOpenShiftExtension) -@Disabled("https://github.com/quarkusio/quarkus/issues/38018") public class OpenShiftFailOnMissingConfigIT { @QuarkusApplication @@ -21,6 +20,7 @@ public class OpenShiftFailOnMissingConfigIT { .withProperty("quarkus.kubernetes-config.config-maps", "absent-config-map"); @Test + @Disabled("We can not detect this failure at the moment due to https://github.com/quarkusio/quarkus/issues/38481") public void shouldFailOnStart() { assertThrows(AssertionError.class, () -> app.start(), "Should fail because property 'quarkus.kubernetes-config.fail-on-missing-config' is true and ConfigMap 'absent-config-map' is missing."); diff --git a/config/src/test/java/io/quarkus/ts/configmap/api/server/OpenShiftFileSystemConfigMapConfigIT.java b/config/src/test/java/io/quarkus/ts/configmap/api/server/OpenShiftFileSystemConfigMapConfigIT.java index f1348d031..3b656785e 100644 --- a/config/src/test/java/io/quarkus/ts/configmap/api/server/OpenShiftFileSystemConfigMapConfigIT.java +++ b/config/src/test/java/io/quarkus/ts/configmap/api/server/OpenShiftFileSystemConfigMapConfigIT.java @@ -1,11 +1,8 @@ package io.quarkus.ts.configmap.api.server; -import org.junit.jupiter.api.Disabled; - import io.quarkus.test.bootstrap.RestService; import io.quarkus.test.services.QuarkusApplication; -@Disabled("https://github.com/quarkusio/quarkus/issues/38018") public class OpenShiftFileSystemConfigMapConfigIT extends OpenShiftBaseConfigIT { @QuarkusApplication diff --git a/config/src/test/java/io/quarkus/ts/configmap/api/server/OpenShiftFileSystemConfigSecretConfigIT.java b/config/src/test/java/io/quarkus/ts/configmap/api/server/OpenShiftFileSystemConfigSecretConfigIT.java index 8614b02ae..be6f65c11 100644 --- a/config/src/test/java/io/quarkus/ts/configmap/api/server/OpenShiftFileSystemConfigSecretConfigIT.java +++ b/config/src/test/java/io/quarkus/ts/configmap/api/server/OpenShiftFileSystemConfigSecretConfigIT.java @@ -1,11 +1,8 @@ package io.quarkus.ts.configmap.api.server; -import org.junit.jupiter.api.Disabled; - import io.quarkus.test.bootstrap.RestService; import io.quarkus.test.services.QuarkusApplication; -@Disabled("https://github.com/quarkusio/quarkus/issues/38018") public class OpenShiftFileSystemConfigSecretConfigIT extends OpenShiftBaseConfigIT { @QuarkusApplication diff --git a/funqy/knative-events/src/test/java/io/quarkus/ts/funqy/knativeevents/ServerlessExtensionOpenShiftFunqyKnEventsIT.java b/funqy/knative-events/src/test/java/io/quarkus/ts/funqy/knativeevents/ServerlessExtensionOpenShiftFunqyKnEventsIT.java index 48f604e50..f7e484cb3 100644 --- a/funqy/knative-events/src/test/java/io/quarkus/ts/funqy/knativeevents/ServerlessExtensionOpenShiftFunqyKnEventsIT.java +++ b/funqy/knative-events/src/test/java/io/quarkus/ts/funqy/knativeevents/ServerlessExtensionOpenShiftFunqyKnEventsIT.java @@ -15,13 +15,13 @@ import java.util.Set; import org.junit.jupiter.api.Assertions; -import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Tag; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.condition.DisabledIfSystemProperty; import io.quarkus.test.scenarios.OpenShiftDeploymentStrategy; import io.quarkus.test.scenarios.OpenShiftScenario; +import io.quarkus.test.scenarios.annotations.DisabledOnNative; import io.quarkus.test.services.QuarkusApplication; import io.quarkus.test.services.knative.eventing.FunqyKnativeEventsService; import io.quarkus.test.services.knative.eventing.OpenShiftExtensionFunqyKnativeEventsService; @@ -29,10 +29,10 @@ import io.restassured.common.mapper.TypeRef; @DisabledIfSystemProperty(named = "ts.arm.missing.services.excludes", matches = "true", disabledReason = "https://github.com/quarkus-qe/quarkus-test-suite/issues/1142") +@DisabledOnNative(reason = "https://github.com/quarkusio/quarkus/issues/37142") @Tag("use-quarkus-openshift-extension") @Tag("serverless") @OpenShiftScenario(deployment = OpenShiftDeploymentStrategy.UsingOpenShiftExtension) -@Disabled("https://github.com/quarkusio/quarkus/issues/38018") public class ServerlessExtensionOpenShiftFunqyKnEventsIT { @QuarkusApplication diff --git a/http/http-advanced-reactive/src/main/java/io/quarkus/ts/http/advanced/reactive/HttpClientVersionResource.java b/http/http-advanced-reactive/src/main/java/io/quarkus/ts/http/advanced/reactive/HttpClientVersionResource.java deleted file mode 100644 index 91f64ab4c..000000000 --- a/http/http-advanced-reactive/src/main/java/io/quarkus/ts/http/advanced/reactive/HttpClientVersionResource.java +++ /dev/null @@ -1,20 +0,0 @@ -package io.quarkus.ts.http.advanced.reactive; - -import jakarta.enterprise.context.ApplicationScoped; -import jakarta.ws.rs.core.Response; - -import io.quarkus.vertx.web.Route; -import io.vertx.ext.web.RoutingContext; - -@ApplicationScoped -public class HttpClientVersionResource { - - protected static final String HTTP_VERSION = "x-http-version"; - - @Route(methods = Route.HttpMethod.GET, path = "/httpVersion") - public void clientHttpVersion(RoutingContext rc) { - String httpClientVersion = rc.request().version().name(); - rc.response().headers().add(HTTP_VERSION, httpClientVersion); - rc.response().setStatusCode(Response.Status.OK.getStatusCode()).end(); - } -} diff --git a/http/http-advanced-reactive/src/main/resources/application.properties b/http/http-advanced-reactive/src/main/resources/application.properties index 1578c23de..484471f6c 100644 --- a/http/http-advanced-reactive/src/main/resources/application.properties +++ b/http/http-advanced-reactive/src/main/resources/application.properties @@ -13,16 +13,6 @@ HealthClientService/mp-rest/url=http://localhost:${quarkus.http.port} HealthClientService/mp-rest/scope=jakarta.inject.Singleton # FollowRedirect not supported QUARKUS-781 # HealthClientService/mp-rest/followRedirects=true -HttpVersionClientService/mp-rest/url=https://localhost:${quarkus.http.ssl-port} -HttpVersionClientService/mp-rest/scope=jakarta.inject.Singleton -HttpVersionClientService/mp-rest/hostnameVerifier=io.quarkus.restclient.NoopHostnameVerifier -HttpVersionClientService/mp-rest/trustStore=classpath:/META-INF/resources/server.truststore -HttpVersionClientService/mp-rest/trustStorePassword=password -HttpVersionClientServiceAsync/mp-rest/url=https://localhost:${quarkus.http.ssl-port} -HttpVersionClientServiceAsync/mp-rest/scope=jakarta.inject.Singleton -HttpVersionClientServiceAsync/mp-rest/hostnameVerifier=io.quarkus.restclient.NoopHostnameVerifier -HttpVersionClientServiceAsync/mp-rest/trustStore=classpath:/META-INF/resources/server.truststore -HttpVersionClientServiceAsync/mp-rest/trustStorePassword=password # gRPC quarkus.grpc.clients.hello.host=localhost quarkus.grpc.clients.hello.port=${quarkus.http.port} @@ -43,8 +33,6 @@ quarkus.keycloak.policy-enforcer.paths.swagger-ui.path=/api/swagger-ui/* quarkus.keycloak.policy-enforcer.paths.swagger-ui.enforcement-mode=DISABLED quarkus.keycloak.policy-enforcer.paths.health.path=/api/health/* quarkus.keycloak.policy-enforcer.paths.health.enforcement-mode=DISABLED -quarkus.keycloak.policy-enforcer.paths.version.path=/api/httpVersion/* -quarkus.keycloak.policy-enforcer.paths.version.enforcement-mode=DISABLED # Application endpoints quarkus.keycloak.policy-enforcer.paths.99-bottles-of-beer.path=/api/99-bottles-of-beer/* quarkus.keycloak.policy-enforcer.paths.99-bottles-of-beer.enforcement-mode=DISABLED diff --git a/http/http-advanced-reactive/src/test/java/io/quarkus/ts/http/advanced/reactive/AbstractDevModeIT.java b/http/http-advanced-reactive/src/test/java/io/quarkus/ts/http/advanced/reactive/AbstractDevModeIT.java index d8e6f3fa1..40bed5d67 100644 --- a/http/http-advanced-reactive/src/test/java/io/quarkus/ts/http/advanced/reactive/AbstractDevModeIT.java +++ b/http/http-advanced-reactive/src/test/java/io/quarkus/ts/http/advanced/reactive/AbstractDevModeIT.java @@ -48,12 +48,12 @@ void setUp() { } @Test - @Disabled("https://github.com/quarkusio/quarkus/issues/30511") + @Disabled("Wait for this to be fixed https://github.com/HtmlUnit/htmlunit/issues/232 or rewrite from HtmlUnit") public void uiChange() throws IOException { RestService app = getApp(); URILike uri = getUri(); - HtmlPage before = webClient.getPage(uri.withPath("/q/dev/io.quarkus.quarkus-vertx-http/config").toString()); + HtmlPage before = webClient.getPage(uri.withPath("/q/dev-ui/configuration-form-editor").toString()); QuarkusUIField field = new QuarkusUIField(before.getElementById(PROPERTY)); assertEquals("42", field.getValue(), "Wrong initial value shown in UI!"); assertEquals("42", app.getProperty(PROPERTY, ""), "Properties contain wrong initial value!"); diff --git a/http/http-advanced-reactive/src/test/java/io/quarkus/ts/http/advanced/reactive/BaseHttpAdvancedReactiveIT.java b/http/http-advanced-reactive/src/test/java/io/quarkus/ts/http/advanced/reactive/BaseHttpAdvancedReactiveIT.java index 57a6559d6..052280428 100644 --- a/http/http-advanced-reactive/src/test/java/io/quarkus/ts/http/advanced/reactive/BaseHttpAdvancedReactiveIT.java +++ b/http/http-advanced-reactive/src/test/java/io/quarkus/ts/http/advanced/reactive/BaseHttpAdvancedReactiveIT.java @@ -53,7 +53,6 @@ import org.apache.http.HttpStatus; import org.junit.jupiter.api.Assertions; -import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Tag; import org.junit.jupiter.api.Test; @@ -72,11 +71,7 @@ import io.quarkus.example.StreamingGrpc; import io.quarkus.test.bootstrap.Protocol; import io.quarkus.test.bootstrap.RestService; -import io.quarkus.test.scenarios.annotations.DisabledOnNative; import io.quarkus.test.scenarios.annotations.EnabledOnQuarkusVersion; -import io.quarkus.ts.http.advanced.reactive.clients.HttpVersionClientService; -import io.quarkus.ts.http.advanced.reactive.clients.HttpVersionClientServiceAsync; -import io.quarkus.ts.http.advanced.reactive.clients.RestClientServiceBuilder; import io.restassured.http.Header; import io.restassured.response.ValidatableResponse; import io.smallrye.mutiny.Uni; @@ -96,7 +91,6 @@ public abstract class BaseHttpAdvancedReactiveIT { private static final int RETRY = 3; private static final String PASSWORD = "password"; private static final String KEY_STORE_PATH = "META-INF/resources/server.keystore"; - private static final int ASSERT_TIMEOUT_SECONDS = 10; private static final String UTF_8_CHARSET = ";charset=UTF-8"; private static final String CONTENT = "content"; @@ -235,33 +229,6 @@ public void http2Server() throws InterruptedException, URISyntaxException { assertThat(done.getCount(), equalTo(0L)); } - @Test - @DisplayName("Http/2 Client Sync test") - @Disabled("blocked by: https://issues.redhat.com/browse/QUARKUS-658") - public void http2ClientSync() throws Exception { - HttpVersionClientService versionHttpClient = new RestClientServiceBuilder( - getAppEndpoint()).withHostVerified(true).withPassword(PASSWORD).withKeyStorePath(KEY_STORE_PATH) - .build(HttpVersionClientService.class); - - Response resp = versionHttpClient.getClientHttpVersion(); - assertEquals(SC_OK, resp.getStatus()); - assertEquals(HttpVersion.HTTP_2.name(), resp.getHeaderString(HttpClientVersionResource.HTTP_VERSION)); - } - - @Test - @DisplayName("Http/2 Client Async test") - @Disabled("blocked by: https://issues.redhat.com/browse/QUARKUS-658") - public void http2ClientAsync() throws Exception { - HttpVersionClientServiceAsync clientServiceAsync = new RestClientServiceBuilder( - getAppEndpoint()).withHostVerified(true).withPassword(PASSWORD).withKeyStorePath(KEY_STORE_PATH) - .build(HttpVersionClientServiceAsync.class); - - Response resp = clientServiceAsync.getClientHttpVersion().await().atMost(Duration.ofSeconds(ASSERT_TIMEOUT_SECONDS)); - - assertEquals(SC_OK, resp.getStatus()); - assertEquals(HttpVersion.HTTP_2.name(), resp.getHeaderString(HttpClientVersionResource.HTTP_VERSION)); - } - @Test @DisplayName("Non-application endpoint move to /q/") @EnabledOnQuarkusVersion(version = "1\\..*", reason = "Redirection is no longer supported in 2.x") @@ -450,7 +417,6 @@ public void interceptedTest() { @DisplayName("SSE check for event responses values containing empty data") @Test @Tag("QUARKUS-3701") - @DisabledOnNative(reason = "https://github.com/quarkusio/quarkus/issues/36986") void testSseResponseForEmptyData() { getApp().given() .get(ROOT_PATH + "/sse/client-update") diff --git a/http/http-advanced-reactive/src/test/java/io/quarkus/ts/http/advanced/reactive/clients/HttpVersionClientService.java b/http/http-advanced-reactive/src/test/java/io/quarkus/ts/http/advanced/reactive/clients/HttpVersionClientService.java deleted file mode 100644 index 0e925c7d0..000000000 --- a/http/http-advanced-reactive/src/test/java/io/quarkus/ts/http/advanced/reactive/clients/HttpVersionClientService.java +++ /dev/null @@ -1,15 +0,0 @@ -package io.quarkus.ts.http.advanced.reactive.clients; - -import jakarta.ws.rs.GET; -import jakarta.ws.rs.Path; -import jakarta.ws.rs.core.Response; - -import org.eclipse.microprofile.rest.client.inject.RegisterRestClient; - -@RegisterRestClient -public interface HttpVersionClientService { - - @GET - @Path("/httpVersion") - Response getClientHttpVersion(); -} diff --git a/http/http-advanced-reactive/src/test/java/io/quarkus/ts/http/advanced/reactive/clients/HttpVersionClientServiceAsync.java b/http/http-advanced-reactive/src/test/java/io/quarkus/ts/http/advanced/reactive/clients/HttpVersionClientServiceAsync.java deleted file mode 100644 index 26a62d09d..000000000 --- a/http/http-advanced-reactive/src/test/java/io/quarkus/ts/http/advanced/reactive/clients/HttpVersionClientServiceAsync.java +++ /dev/null @@ -1,17 +0,0 @@ -package io.quarkus.ts.http.advanced.reactive.clients; - -import jakarta.ws.rs.GET; -import jakarta.ws.rs.Path; -import jakarta.ws.rs.core.Response; - -import org.eclipse.microprofile.rest.client.inject.RegisterRestClient; - -import io.smallrye.mutiny.Uni; - -@RegisterRestClient -public interface HttpVersionClientServiceAsync { - - @GET - @Path("/httpVersion") - Uni getClientHttpVersion(); -} diff --git a/http/http-advanced-reactive/src/test/java/io/quarkus/ts/http/advanced/reactive/clients/RestClientServiceBuilder.java b/http/http-advanced-reactive/src/test/java/io/quarkus/ts/http/advanced/reactive/clients/RestClientServiceBuilder.java deleted file mode 100644 index ddadb9db8..000000000 --- a/http/http-advanced-reactive/src/test/java/io/quarkus/ts/http/advanced/reactive/clients/RestClientServiceBuilder.java +++ /dev/null @@ -1,60 +0,0 @@ -package io.quarkus.ts.http.advanced.reactive.clients; - -import java.io.File; -import java.io.FileInputStream; -import java.io.IOException; -import java.net.URI; -import java.security.KeyStore; -import java.security.KeyStoreException; -import java.security.NoSuchAlgorithmException; -import java.security.cert.CertificateException; - -import org.apache.commons.lang3.StringUtils; -import org.eclipse.microprofile.rest.client.RestClientBuilder; - -public class RestClientServiceBuilder { - - protected String uri; - protected String password; - protected boolean hostVerified; - protected String keyStorePath; - - public RestClientServiceBuilder(String uri) { - this.uri = uri; - } - - public RestClientServiceBuilder withPassword(String password) { - this.password = password; - return this; - } - - public RestClientServiceBuilder withHostVerified(Boolean verified) { - this.hostVerified = verified; - return this; - } - - public RestClientServiceBuilder withKeyStorePath(String keyStorePath) { - this.keyStorePath = keyStorePath; - return this; - } - - public T build(Class clazz) throws CertificateException, NoSuchAlgorithmException, KeyStoreException, IOException { - RestClientBuilder builder = RestClientBuilder.newBuilder().baseUri(URI.create(this.uri)); - builder.hostnameVerifier((s, sslSession) -> this.hostVerified); - if (!StringUtils.isEmpty(this.keyStorePath)) { - builder.trustStore(loadKeystore()); - } - - return builder.build(clazz); - } - - protected KeyStore loadKeystore() throws KeyStoreException, CertificateException, NoSuchAlgorithmException, IOException { - KeyStore ks = KeyStore.getInstance(KeyStore.getDefaultType()); - ClassLoader classLoader = getClass().getClassLoader(); - File keyStore = new File(classLoader.getResource(this.keyStorePath).getFile()); - try (FileInputStream fis = new FileInputStream(keyStore)) { - ks.load(fis, this.password.toCharArray()); - } - return ks; - } -} diff --git a/http/http-advanced/src/main/java/io/quarkus/ts/http/advanced/HttpClientVersionResource.java b/http/http-advanced/src/main/java/io/quarkus/ts/http/advanced/HttpClientVersionResource.java deleted file mode 100644 index 5b93b1a74..000000000 --- a/http/http-advanced/src/main/java/io/quarkus/ts/http/advanced/HttpClientVersionResource.java +++ /dev/null @@ -1,20 +0,0 @@ -package io.quarkus.ts.http.advanced; - -import jakarta.enterprise.context.ApplicationScoped; -import jakarta.ws.rs.core.Response; - -import io.quarkus.vertx.web.Route; -import io.vertx.ext.web.RoutingContext; - -@ApplicationScoped -public class HttpClientVersionResource { - - protected static final String HTTP_VERSION = "x-http-version"; - - @Route(methods = Route.HttpMethod.GET, path = "/httpVersion") - public void clientHttpVersion(RoutingContext rc) { - String httpClientVersion = rc.request().version().name(); - rc.response().headers().add(HTTP_VERSION, httpClientVersion); - rc.response().setStatusCode(Response.Status.OK.getStatusCode()).end(); - } -} diff --git a/http/http-advanced/src/main/resources/application.properties b/http/http-advanced/src/main/resources/application.properties index da1dfa3e3..a3dab67ae 100644 --- a/http/http-advanced/src/main/resources/application.properties +++ b/http/http-advanced/src/main/resources/application.properties @@ -13,16 +13,6 @@ HealthClientService/mp-rest/url=http://localhost:${quarkus.http.port} HealthClientService/mp-rest/scope=jakarta.inject.Singleton # FollowRedirect not supported QUARKUS-781 # HealthClientService/mp-rest/followRedirects=true -HttpVersionClientService/mp-rest/url=https://localhost:${quarkus.http.ssl-port} -HttpVersionClientService/mp-rest/scope=jakarta.inject.Singleton -HttpVersionClientService/mp-rest/hostnameVerifier=io.quarkus.restclient.NoopHostnameVerifier -HttpVersionClientService/mp-rest/trustStore=classpath:/META-INF/resources/server.truststore -HttpVersionClientService/mp-rest/trustStorePassword=password -HttpVersionClientServiceAsync/mp-rest/url=https://localhost:${quarkus.http.ssl-port} -HttpVersionClientServiceAsync/mp-rest/scope=jakarta.inject.Singleton -HttpVersionClientServiceAsync/mp-rest/hostnameVerifier=io.quarkus.restclient.NoopHostnameVerifier -HttpVersionClientServiceAsync/mp-rest/trustStore=classpath:/META-INF/resources/server.truststore -HttpVersionClientServiceAsync/mp-rest/trustStorePassword=password # gRPC quarkus.grpc.clients.hello.host=localhost quarkus.grpc.clients.hello.port=${quarkus.http.port} @@ -40,8 +30,6 @@ quarkus.keycloak.policy-enforcer.paths.swagger-ui.path=/api/swagger-ui/* quarkus.keycloak.policy-enforcer.paths.swagger-ui.enforcement-mode=DISABLED quarkus.keycloak.policy-enforcer.paths.health.path=/api/health/* quarkus.keycloak.policy-enforcer.paths.health.enforcement-mode=DISABLED -quarkus.keycloak.policy-enforcer.paths.version.path=/api/httpVersion/* -quarkus.keycloak.policy-enforcer.paths.version.enforcement-mode=DISABLED # Application endpoints quarkus.keycloak.policy-enforcer.paths.hello.path=/api/hello/* quarkus.keycloak.policy-enforcer.paths.hello.enforcement-mode=DISABLED diff --git a/http/http-advanced/src/test/java/io/quarkus/ts/http/advanced/BaseHttpAdvancedIT.java b/http/http-advanced/src/test/java/io/quarkus/ts/http/advanced/BaseHttpAdvancedIT.java index 35382df97..5d72ff038 100644 --- a/http/http-advanced/src/test/java/io/quarkus/ts/http/advanced/BaseHttpAdvancedIT.java +++ b/http/http-advanced/src/test/java/io/quarkus/ts/http/advanced/BaseHttpAdvancedIT.java @@ -25,7 +25,6 @@ import org.apache.http.HttpStatus; import org.junit.jupiter.api.Assertions; -import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Tag; import org.junit.jupiter.api.Test; @@ -41,9 +40,6 @@ import io.quarkus.test.scenarios.OpenShiftScenario; import io.quarkus.test.scenarios.QuarkusScenario; import io.quarkus.test.scenarios.annotations.EnabledOnQuarkusVersion; -import io.quarkus.ts.http.advanced.clients.HttpVersionClientService; -import io.quarkus.ts.http.advanced.clients.HttpVersionClientServiceAsync; -import io.quarkus.ts.http.advanced.clients.RestClientServiceBuilder; import io.smallrye.mutiny.Uni; import io.vertx.core.http.HttpVersion; import io.vertx.core.json.JsonObject; @@ -60,7 +56,6 @@ public abstract class BaseHttpAdvancedIT { private static final int RETRY = 3; private static final String PASSWORD = "password"; private static final String KEY_STORE_PATH = "META-INF/resources/server.keystore"; - private static final int ASSERT_TIMEOUT_SECONDS = 10; private static final String SSE_ERROR_MESSAGE = "java.lang.ClassNotFoundException: Provider for jakarta.ws.rs.sse.SseEventSource.Builder cannot be found"; protected abstract RestService getApp(); @@ -151,33 +146,6 @@ public void http2Server() throws InterruptedException, URISyntaxException { assertThat(done.getCount(), equalTo(0L)); } - @Test - @DisplayName("Http/2 Client Sync test") - @Disabled("blocked by: https://issues.redhat.com/browse/QUARKUS-658") - public void http2ClientSync() throws Exception { - HttpVersionClientService versionHttpClient = new RestClientServiceBuilder( - getAppEndpoint()).withHostVerified(true).withPassword(PASSWORD).withKeyStorePath(KEY_STORE_PATH) - .build(HttpVersionClientService.class); - - Response resp = versionHttpClient.getClientHttpVersion(); - assertEquals(HttpStatus.SC_OK, resp.getStatus()); - assertEquals(HttpVersion.HTTP_2.name(), resp.getHeaderString(HttpClientVersionResource.HTTP_VERSION)); - } - - @Test - @DisplayName("Http/2 Client Async test") - @Disabled("blocked by: https://issues.redhat.com/browse/QUARKUS-658") - public void http2ClientAsync() throws Exception { - HttpVersionClientServiceAsync clientServiceAsync = new RestClientServiceBuilder( - getAppEndpoint()).withHostVerified(true).withPassword(PASSWORD).withKeyStorePath(KEY_STORE_PATH) - .build(HttpVersionClientServiceAsync.class); - - Response resp = clientServiceAsync.getClientHttpVersion().await().atMost(Duration.ofSeconds(ASSERT_TIMEOUT_SECONDS)); - - assertEquals(HttpStatus.SC_OK, resp.getStatus()); - assertEquals(HttpVersion.HTTP_2.name(), resp.getHeaderString(HttpClientVersionResource.HTTP_VERSION)); - } - @Test @DisplayName("Non-application endpoint move to /q/") @EnabledOnQuarkusVersion(version = "1\\..*", reason = "Redirection is no longer supported in 2.x") diff --git a/http/http-advanced/src/test/java/io/quarkus/ts/http/advanced/clients/HttpVersionClientService.java b/http/http-advanced/src/test/java/io/quarkus/ts/http/advanced/clients/HttpVersionClientService.java deleted file mode 100644 index 99eda5179..000000000 --- a/http/http-advanced/src/test/java/io/quarkus/ts/http/advanced/clients/HttpVersionClientService.java +++ /dev/null @@ -1,15 +0,0 @@ -package io.quarkus.ts.http.advanced.clients; - -import jakarta.ws.rs.GET; -import jakarta.ws.rs.Path; -import jakarta.ws.rs.core.Response; - -import org.eclipse.microprofile.rest.client.inject.RegisterRestClient; - -@RegisterRestClient -public interface HttpVersionClientService { - - @GET - @Path("/httpVersion") - Response getClientHttpVersion(); -} diff --git a/http/http-advanced/src/test/java/io/quarkus/ts/http/advanced/clients/HttpVersionClientServiceAsync.java b/http/http-advanced/src/test/java/io/quarkus/ts/http/advanced/clients/HttpVersionClientServiceAsync.java deleted file mode 100644 index 2ace750af..000000000 --- a/http/http-advanced/src/test/java/io/quarkus/ts/http/advanced/clients/HttpVersionClientServiceAsync.java +++ /dev/null @@ -1,17 +0,0 @@ -package io.quarkus.ts.http.advanced.clients; - -import jakarta.ws.rs.GET; -import jakarta.ws.rs.Path; -import jakarta.ws.rs.core.Response; - -import org.eclipse.microprofile.rest.client.inject.RegisterRestClient; - -import io.smallrye.mutiny.Uni; - -@RegisterRestClient -public interface HttpVersionClientServiceAsync { - - @GET - @Path("/httpVersion") - Uni getClientHttpVersion(); -} diff --git a/http/http-advanced/src/test/java/io/quarkus/ts/http/advanced/clients/RestClientServiceBuilder.java b/http/http-advanced/src/test/java/io/quarkus/ts/http/advanced/clients/RestClientServiceBuilder.java deleted file mode 100644 index 5d2034860..000000000 --- a/http/http-advanced/src/test/java/io/quarkus/ts/http/advanced/clients/RestClientServiceBuilder.java +++ /dev/null @@ -1,60 +0,0 @@ -package io.quarkus.ts.http.advanced.clients; - -import java.io.File; -import java.io.FileInputStream; -import java.io.IOException; -import java.net.URI; -import java.security.KeyStore; -import java.security.KeyStoreException; -import java.security.NoSuchAlgorithmException; -import java.security.cert.CertificateException; - -import org.apache.commons.lang3.StringUtils; -import org.eclipse.microprofile.rest.client.RestClientBuilder; - -public class RestClientServiceBuilder { - - protected String uri; - protected String password; - protected boolean hostVerified; - protected String keyStorePath; - - public RestClientServiceBuilder(String uri) { - this.uri = uri; - } - - public RestClientServiceBuilder withPassword(String password) { - this.password = password; - return this; - } - - public RestClientServiceBuilder withHostVerified(Boolean verified) { - this.hostVerified = verified; - return this; - } - - public RestClientServiceBuilder withKeyStorePath(String keyStorePath) { - this.keyStorePath = keyStorePath; - return this; - } - - public T build(Class clazz) throws CertificateException, NoSuchAlgorithmException, KeyStoreException, IOException { - RestClientBuilder builder = RestClientBuilder.newBuilder().baseUri(URI.create(this.uri)); - builder.hostnameVerifier((s, sslSession) -> this.hostVerified); - if (!StringUtils.isEmpty(this.keyStorePath)) { - builder.trustStore(loadKeystore()); - } - - return builder.build(clazz); - } - - protected KeyStore loadKeystore() throws KeyStoreException, CertificateException, NoSuchAlgorithmException, IOException { - KeyStore ks = KeyStore.getInstance(KeyStore.getDefaultType()); - ClassLoader classLoader = getClass().getClassLoader(); - File keyStore = new File(classLoader.getResource(this.keyStorePath).getFile()); - try (FileInputStream fis = new FileInputStream(keyStore)) { - ks.load(fis, this.password.toCharArray()); - } - return ks; - } -} diff --git a/http/http-minimum-reactive/src/test/java/io/quarkus/ts/http/minimum/reactive/OpenShiftUsingExtensionDockerBuildStrategyHttpMinimumReactiveIT.java b/http/http-minimum-reactive/src/test/java/io/quarkus/ts/http/minimum/reactive/OpenShiftUsingExtensionDockerBuildStrategyHttpMinimumReactiveIT.java index 17939623b..09ac48d62 100644 --- a/http/http-minimum-reactive/src/test/java/io/quarkus/ts/http/minimum/reactive/OpenShiftUsingExtensionDockerBuildStrategyHttpMinimumReactiveIT.java +++ b/http/http-minimum-reactive/src/test/java/io/quarkus/ts/http/minimum/reactive/OpenShiftUsingExtensionDockerBuildStrategyHttpMinimumReactiveIT.java @@ -1,12 +1,10 @@ package io.quarkus.ts.http.minimum.reactive; -import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Tag; import io.quarkus.test.scenarios.OpenShiftDeploymentStrategy; import io.quarkus.test.scenarios.OpenShiftScenario; -@Disabled("https://github.com/quarkusio/quarkus/issues/38018") @Tag("use-quarkus-openshift-extension") @OpenShiftScenario(deployment = OpenShiftDeploymentStrategy.UsingOpenShiftExtensionAndDockerBuildStrategy) public class OpenShiftUsingExtensionDockerBuildStrategyHttpMinimumReactiveIT extends HttpMinimumReactiveIT { diff --git a/http/http-minimum-reactive/src/test/java/io/quarkus/ts/http/minimum/reactive/OpenShiftUsingExtensionHttpMinimumReactiveIT.java b/http/http-minimum-reactive/src/test/java/io/quarkus/ts/http/minimum/reactive/OpenShiftUsingExtensionHttpMinimumReactiveIT.java index 99c3ff8e5..9d5c06c7c 100644 --- a/http/http-minimum-reactive/src/test/java/io/quarkus/ts/http/minimum/reactive/OpenShiftUsingExtensionHttpMinimumReactiveIT.java +++ b/http/http-minimum-reactive/src/test/java/io/quarkus/ts/http/minimum/reactive/OpenShiftUsingExtensionHttpMinimumReactiveIT.java @@ -1,12 +1,10 @@ package io.quarkus.ts.http.minimum.reactive; -import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Tag; import io.quarkus.test.scenarios.OpenShiftDeploymentStrategy; import io.quarkus.test.scenarios.OpenShiftScenario; -@Disabled("https://github.com/quarkusio/quarkus/issues/38018") @Tag("use-quarkus-openshift-extension") @OpenShiftScenario(deployment = OpenShiftDeploymentStrategy.UsingOpenShiftExtension) public class OpenShiftUsingExtensionHttpMinimumReactiveIT extends HttpMinimumReactiveIT { diff --git a/http/http-minimum/src/test/java/io/quarkus/ts/http/minimum/OpenShiftUsingExtensionDockerBuildStrategyHttpMinimumIT.java b/http/http-minimum/src/test/java/io/quarkus/ts/http/minimum/OpenShiftUsingExtensionDockerBuildStrategyHttpMinimumIT.java index c69e56aa0..60df2c5f3 100644 --- a/http/http-minimum/src/test/java/io/quarkus/ts/http/minimum/OpenShiftUsingExtensionDockerBuildStrategyHttpMinimumIT.java +++ b/http/http-minimum/src/test/java/io/quarkus/ts/http/minimum/OpenShiftUsingExtensionDockerBuildStrategyHttpMinimumIT.java @@ -1,12 +1,10 @@ package io.quarkus.ts.http.minimum; -import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Tag; import io.quarkus.test.scenarios.OpenShiftDeploymentStrategy; import io.quarkus.test.scenarios.OpenShiftScenario; -@Disabled("https://github.com/quarkusio/quarkus/issues/38018") @Tag("use-quarkus-openshift-extension") @OpenShiftScenario(deployment = OpenShiftDeploymentStrategy.UsingOpenShiftExtensionAndDockerBuildStrategy) public class OpenShiftUsingExtensionDockerBuildStrategyHttpMinimumIT extends HttpMinimumIT { diff --git a/http/http-minimum/src/test/java/io/quarkus/ts/http/minimum/OpenShiftUsingExtensionHttpMinimumIT.java b/http/http-minimum/src/test/java/io/quarkus/ts/http/minimum/OpenShiftUsingExtensionHttpMinimumIT.java index 364d2f625..1e83fc484 100644 --- a/http/http-minimum/src/test/java/io/quarkus/ts/http/minimum/OpenShiftUsingExtensionHttpMinimumIT.java +++ b/http/http-minimum/src/test/java/io/quarkus/ts/http/minimum/OpenShiftUsingExtensionHttpMinimumIT.java @@ -1,12 +1,10 @@ package io.quarkus.ts.http.minimum; -import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Tag; import io.quarkus.test.scenarios.OpenShiftDeploymentStrategy; import io.quarkus.test.scenarios.OpenShiftScenario; -@Disabled("https://github.com/quarkusio/quarkus/issues/38018") @Tag("use-quarkus-openshift-extension") @OpenShiftScenario(deployment = OpenShiftDeploymentStrategy.UsingOpenShiftExtension) public class OpenShiftUsingExtensionHttpMinimumIT extends HttpMinimumIT { diff --git a/http/jakarta-rest-reactive/src/test/java/io/quarkus/ts/http/jakartarest/reactive/OpenShiftCompressionHandlerIT.java b/http/jakarta-rest-reactive/src/test/java/io/quarkus/ts/http/jakartarest/reactive/OpenShiftCompressionHandlerIT.java index e259a49a4..9a655cd0c 100644 --- a/http/jakarta-rest-reactive/src/test/java/io/quarkus/ts/http/jakartarest/reactive/OpenShiftCompressionHandlerIT.java +++ b/http/jakarta-rest-reactive/src/test/java/io/quarkus/ts/http/jakartarest/reactive/OpenShiftCompressionHandlerIT.java @@ -1,13 +1,11 @@ package io.quarkus.ts.http.jakartarest.reactive; -import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Tag; import io.quarkus.test.scenarios.OpenShiftDeploymentStrategy; import io.quarkus.test.scenarios.OpenShiftScenario; import io.quarkus.test.scenarios.annotations.DisabledOnNative; -@Disabled("https://github.com/quarkusio/quarkus/issues/38018") @Tag("use-quarkus-openshift-extension") @OpenShiftScenario(deployment = OpenShiftDeploymentStrategy.UsingOpenShiftExtension) // OCP Native coverage is not required (Test plan QUARKUS-2487), due to a lack of resources and the ROI. diff --git a/http/jakarta-rest-reactive/src/test/java/io/quarkus/ts/http/jakartarest/reactive/OpenShiftHttpCachingIT.java b/http/jakarta-rest-reactive/src/test/java/io/quarkus/ts/http/jakartarest/reactive/OpenShiftHttpCachingIT.java index cecfed0df..c5821109e 100644 --- a/http/jakarta-rest-reactive/src/test/java/io/quarkus/ts/http/jakartarest/reactive/OpenShiftHttpCachingIT.java +++ b/http/jakarta-rest-reactive/src/test/java/io/quarkus/ts/http/jakartarest/reactive/OpenShiftHttpCachingIT.java @@ -1,12 +1,10 @@ package io.quarkus.ts.http.jakartarest.reactive; -import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Tag; import io.quarkus.test.scenarios.OpenShiftDeploymentStrategy; import io.quarkus.test.scenarios.OpenShiftScenario; -@Disabled("https://github.com/quarkusio/quarkus/issues/38018") @Tag("use-quarkus-openshift-extension") @OpenShiftScenario(deployment = OpenShiftDeploymentStrategy.UsingOpenShiftExtension) public class OpenShiftHttpCachingIT extends HttpCachingIT { diff --git a/http/jakarta-rest/src/test/java/io/quarkus/ts/http/jakartarest/RESTEasyJacksonSerializationIT.java b/http/jakarta-rest/src/test/java/io/quarkus/ts/http/jakartarest/RESTEasyJacksonSerializationIT.java index fa90c8603..2ae0ffc0b 100644 --- a/http/jakarta-rest/src/test/java/io/quarkus/ts/http/jakartarest/RESTEasyJacksonSerializationIT.java +++ b/http/jakarta-rest/src/test/java/io/quarkus/ts/http/jakartarest/RESTEasyJacksonSerializationIT.java @@ -3,11 +3,11 @@ import static io.restassured.RestAssured.given; import org.junit.jupiter.api.Assertions; -import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Tag; import org.junit.jupiter.api.Test; import io.quarkus.test.scenarios.QuarkusScenario; +import io.quarkus.test.scenarios.annotations.DisabledOnNative; import io.restassured.response.ResponseBodyExtractionOptions; @Tag("QUARKUS-1554") @@ -33,10 +33,10 @@ public void serializeList() { } @Test - @Disabled("https://github.com/quarkusio/quarkus/issues/22654") + @DisabledOnNative(reason = "https://github.com/quarkusio/quarkus/issues/22654") public void serializeBigList() { String basePath = "/hello/big-serialize-list?expSize="; - // Try couple of variations just to tease out possible edge cases + // Try a couple of variations just to tease out possible edge cases mustBeMoreThanZero(makeQuery(basePath + (LONGEST_EAGER_ALLOC - SECOND_RANDOM_VARIATION)).jsonPath().getInt("size")); mustBeMoreThanZero(makeQuery(basePath + (LONGEST_EAGER_ALLOC + FIRST_RANDOM_VARIATION)).jsonPath().getInt("size")); mustBeMoreThanZero(makeQuery(basePath + (THIRD_RANDOM_VARIATION * LONGEST_EAGER_ALLOC - FIRST_RANDOM_VARIATION)) diff --git a/http/management/src/test/java/io/quarkus/qe/extension/OpenShiftDockerBuildIT.java b/http/management/src/test/java/io/quarkus/qe/extension/OpenShiftDockerBuildIT.java index 42951e6ea..62215b767 100644 --- a/http/management/src/test/java/io/quarkus/qe/extension/OpenShiftDockerBuildIT.java +++ b/http/management/src/test/java/io/quarkus/qe/extension/OpenShiftDockerBuildIT.java @@ -1,15 +1,11 @@ package io.quarkus.qe.extension; -import org.junit.jupiter.api.Disabled; - import io.quarkus.test.scenarios.OpenShiftDeploymentStrategy; import io.quarkus.test.scenarios.OpenShiftScenario; -@Disabled("https://github.com/quarkusio/quarkus/issues/38018") @OpenShiftScenario(deployment = OpenShiftDeploymentStrategy.UsingOpenShiftExtensionAndDockerBuildStrategy) public class OpenShiftDockerBuildIT extends OpenShiftBaseDeploymentIT { @Override - @Disabled("https://github.com/quarkusio/quarkus/issues/34645") public void health() { } } diff --git a/http/management/src/test/java/io/quarkus/qe/extension/OpenShiftExtensionIT.java b/http/management/src/test/java/io/quarkus/qe/extension/OpenShiftExtensionIT.java index 53a0404b1..ddae04bf0 100644 --- a/http/management/src/test/java/io/quarkus/qe/extension/OpenShiftExtensionIT.java +++ b/http/management/src/test/java/io/quarkus/qe/extension/OpenShiftExtensionIT.java @@ -1,15 +1,11 @@ package io.quarkus.qe.extension; -import org.junit.jupiter.api.Disabled; - import io.quarkus.test.scenarios.OpenShiftDeploymentStrategy; import io.quarkus.test.scenarios.OpenShiftScenario; -@Disabled("https://github.com/quarkusio/quarkus/issues/38018") @OpenShiftScenario(deployment = OpenShiftDeploymentStrategy.UsingOpenShiftExtension) public class OpenShiftExtensionIT extends OpenShiftBaseDeploymentIT { @Override - @Disabled("https://github.com/quarkusio/quarkus/issues/34645") public void health() { } } diff --git a/http/rest-client-reactive/src/main/java/io/quarkus/ts/http/restclient/reactive/HttpVersionClient.java b/http/rest-client-reactive/src/main/java/io/quarkus/ts/http/restclient/reactive/HttpVersionClient.java new file mode 100644 index 000000000..db1726713 --- /dev/null +++ b/http/rest-client-reactive/src/main/java/io/quarkus/ts/http/restclient/reactive/HttpVersionClient.java @@ -0,0 +1,23 @@ +package io.quarkus.ts.http.restclient.reactive; + +import jakarta.ws.rs.GET; +import jakarta.ws.rs.Path; +import jakarta.ws.rs.QueryParam; +import jakarta.ws.rs.core.Response; + +import org.eclipse.microprofile.rest.client.inject.RegisterRestClient; + +import io.smallrye.mutiny.Uni; + +@RegisterRestClient +@Path("/http-version") +public interface HttpVersionClient { + + @GET + @Path("synchronous") + Response getClientHttpVersion(@QueryParam("name") String name); + + @GET + @Path("asynchronous") + Uni getClientHttpVersionAsync(@QueryParam("name") String name); +} diff --git a/http/rest-client-reactive/src/main/java/io/quarkus/ts/http/restclient/reactive/HttpVersionClientWithConfigKey.java b/http/rest-client-reactive/src/main/java/io/quarkus/ts/http/restclient/reactive/HttpVersionClientWithConfigKey.java new file mode 100644 index 000000000..5052c273c --- /dev/null +++ b/http/rest-client-reactive/src/main/java/io/quarkus/ts/http/restclient/reactive/HttpVersionClientWithConfigKey.java @@ -0,0 +1,7 @@ +package io.quarkus.ts.http.restclient.reactive; + +import org.eclipse.microprofile.rest.client.inject.RegisterRestClient; + +@RegisterRestClient(configKey = "http-client-with-config-key") +public interface HttpVersionClientWithConfigKey extends HttpVersionClient { +} diff --git a/http/rest-client-reactive/src/main/java/io/quarkus/ts/http/restclient/reactive/HttpsVersionClientWithConfigKey.java b/http/rest-client-reactive/src/main/java/io/quarkus/ts/http/restclient/reactive/HttpsVersionClientWithConfigKey.java new file mode 100644 index 000000000..6a947d26d --- /dev/null +++ b/http/rest-client-reactive/src/main/java/io/quarkus/ts/http/restclient/reactive/HttpsVersionClientWithConfigKey.java @@ -0,0 +1,7 @@ +package io.quarkus.ts.http.restclient.reactive; + +import org.eclipse.microprofile.rest.client.inject.RegisterRestClient; + +@RegisterRestClient(configKey = "https-client-with-config-key") +public interface HttpsVersionClientWithConfigKey extends HttpVersionClient { +} diff --git a/http/rest-client-reactive/src/main/java/io/quarkus/ts/http/restclient/reactive/resources/HttpVersionBaseResource.java b/http/rest-client-reactive/src/main/java/io/quarkus/ts/http/restclient/reactive/resources/HttpVersionBaseResource.java new file mode 100644 index 000000000..8088eabce --- /dev/null +++ b/http/rest-client-reactive/src/main/java/io/quarkus/ts/http/restclient/reactive/resources/HttpVersionBaseResource.java @@ -0,0 +1,29 @@ +package io.quarkus.ts.http.restclient.reactive.resources; + +import jakarta.enterprise.context.ApplicationScoped; +import jakarta.ws.rs.GET; +import jakarta.ws.rs.Path; +import jakarta.ws.rs.QueryParam; +import jakarta.ws.rs.core.Response; + +import io.smallrye.mutiny.Uni; +import io.vertx.ext.web.RoutingContext; + +@ApplicationScoped +@Path("/http-version") +public class HttpVersionBaseResource { + + @GET + @Path("synchronous") + public Response sayHello(@QueryParam("name") String name, RoutingContext context) { + return Response.ok("Hello " + name + " and your using http protocol in version " + context.request().version().name()) + .build(); + } + + @GET + @Path("asynchronous") + public Uni sayHelloAsync(@QueryParam("name") String name, RoutingContext context) { + return Uni.createFrom().item(Response.ok( + "Hello " + name + " and your using http protocol in version " + context.request().version().name()).build()); + } +} diff --git a/http/rest-client-reactive/src/main/java/io/quarkus/ts/http/restclient/reactive/resources/HttpVersionClientResource.java b/http/rest-client-reactive/src/main/java/io/quarkus/ts/http/restclient/reactive/resources/HttpVersionClientResource.java new file mode 100644 index 000000000..dd2b801bd --- /dev/null +++ b/http/rest-client-reactive/src/main/java/io/quarkus/ts/http/restclient/reactive/resources/HttpVersionClientResource.java @@ -0,0 +1,165 @@ +package io.quarkus.ts.http.restclient.reactive.resources; + +import java.net.MalformedURLException; +import java.net.URI; + +import jakarta.inject.Inject; +import jakarta.ws.rs.GET; +import jakarta.ws.rs.Path; +import jakarta.ws.rs.core.Response; + +import org.eclipse.microprofile.config.inject.ConfigProperty; +import org.eclipse.microprofile.rest.client.RestClientBuilder; +import org.eclipse.microprofile.rest.client.inject.RestClient; +import org.jboss.resteasy.reactive.client.impl.ClientResponseImpl; + +import io.quarkus.ts.http.restclient.reactive.HttpVersionClient; +import io.quarkus.ts.http.restclient.reactive.HttpVersionClientWithConfigKey; +import io.quarkus.ts.http.restclient.reactive.HttpsVersionClientWithConfigKey; +import io.smallrye.mutiny.Uni; +import io.vertx.core.http.HttpVersion; + +@Path("/http2") +public class HttpVersionClientResource { + + public static final String WRONG_HTTP_VERSION = "The HTTP version should be HTTP_2 but is "; + public static final String NAME = "Rest Client"; + private static final int TIMEOUT_SECONDS = 10; + private final URI baseUri; + private final URI securedBaseUri; + + @Inject + @RestClient + HttpVersionClientWithConfigKey httpVersionClientWithConfigKey; + + @Inject + @RestClient + HttpsVersionClientWithConfigKey httpsVersionClientWithConfigKey; + + public HttpVersionClientResource(@ConfigProperty(name = "quarkus.http.port") int httpPort, + @ConfigProperty(name = "quarkus.http.ssl-port") int sslHttpPort, + @ConfigProperty(name = "quarkus.http.host") String baseHost) { + this.baseUri = URI.create("http://" + baseHost + ":" + httpPort); + this.securedBaseUri = URI.create("https://" + baseHost + ":" + sslHttpPort); + } + + @GET + @Path("https-synchronous") + public Response httpsSynchronous() throws MalformedURLException { + return createSynchronousResponseForClient(securedBaseUri); + } + + @GET + @Path("http-synchronous") + public Response httpSynchronous() throws MalformedURLException { + return createSynchronousResponseForClient(baseUri); + } + + @GET + @Path("https-asynchronous") + public Uni httpsAsynchronous() throws MalformedURLException { + return createAsynchronousResponseForClient(securedBaseUri); + } + + @GET + @Path("http-asynchronous") + public Uni httpAsynchronous() throws MalformedURLException { + return createAsynchronousResponseForClient(baseUri); + } + + @GET + @Path("https-synchronous-for-client-with-key") + public Response httpsSynchronousForClientWithKey() { + Response response = httpsVersionClientWithConfigKey.getClientHttpVersion(NAME); + return checkHttpVersion(response); + } + + @GET + @Path("http-synchronous-for-client-with-key") + public Response httpSynchronousForClientWithKey() { + Response response = httpVersionClientWithConfigKey.getClientHttpVersion(NAME); + return checkHttpVersion(response); + } + + @GET + @Path("https-asynchronous-for-client-with-key") + public Uni httpsAsynchronousForClientWithKey() { + Uni response = httpsVersionClientWithConfigKey.getClientHttpVersionAsync(NAME); + + return checkHttpVersionAsync(response); + } + + @GET + @Path("http-asynchronous-for-client-with-key") + public Uni httpAsynchronousForClientWithKey() { + Uni response = httpVersionClientWithConfigKey.getClientHttpVersionAsync(NAME); + + return checkHttpVersionAsync(response); + } + + /** + * Create HttpVersionClient and make REST client synchronous request to `httpVersion/synchronous endpoint` + * Response from the client is checked if HTTP/2 was used + * + * @param uri base url for client to use + * @return Response contain original response from endpoint or error message containing actual http version used + */ + private Response createSynchronousResponseForClient(URI uri) throws MalformedURLException { + HttpVersionClient httpVersionClient = RestClientBuilder.newBuilder() + .baseUrl(uri.toURL()) + .build(HttpVersionClient.class); + + Response response = httpVersionClient.getClientHttpVersion(NAME); + return checkHttpVersion(response); + } + + /** + * Create HttpVersionClient and make REST client asynchronous request to `httpVersion/asynchronous endpoint` + * Response from the client is checked if HTTP/2 was used + * + * @param uri base url for client to use + * @return Response contain original response from endpoint or error message containing actual http version used + */ + private Uni createAsynchronousResponseForClient(URI uri) throws MalformedURLException { + HttpVersionClient httpVersionClient = RestClientBuilder.newBuilder() + .baseUrl(uri.toURL()) + .build(HttpVersionClient.class); + + Uni response = httpVersionClient.getClientHttpVersionAsync(NAME); + return checkHttpVersionAsync(response); + } + + /** + * Check response from the REST client if HTTP/2 is used, and it's body contain HTTP/2 version string + * + * @param response response of REST client + * @return Response contains original response from endpoint or error message containing actual http version used + */ + private Response checkHttpVersion(Response response) { + String httpVersion = ((ClientResponseImpl) response).getHttpVersion(); + response.bufferEntity(); + String responseText = response.readEntity(String.class); + if (httpVersion.equals(HttpVersion.HTTP_2.name()) && responseText.contains(HttpVersion.HTTP_2.name())) { + return response; + } + + return Response.ok(WRONG_HTTP_VERSION + httpVersion).build(); + } + + /** + * Check response from the REST client if HTTP/2 is used, and it's body contain HTTP/2 version string + * + * @param response uni response of REST client + * @return Uni contains original response from endpoint or error message containing actual http version used + */ + private Uni checkHttpVersionAsync(Uni response) { + return response.onItem().transformToUni(r -> { + String httpVersion = ((ClientResponseImpl) r).getHttpVersion(); + String responseText = r.readEntity(String.class); + if (httpVersion.equals(HttpVersion.HTTP_2.name()) && responseText.contains(HttpVersion.HTTP_2.name())) { + return response; + } + return Uni.createFrom().item(Response.ok(WRONG_HTTP_VERSION + httpVersion).build()); + }); + } +} diff --git a/http/rest-client-reactive/src/main/resources/application.properties b/http/rest-client-reactive/src/main/resources/application.properties new file mode 100644 index 000000000..4adf05639 --- /dev/null +++ b/http/rest-client-reactive/src/main/resources/application.properties @@ -0,0 +1,3 @@ +quarkus.tls.trust-all=true +quarkus.http.ssl.certificate.key-store-file=META-INF/keystore.jks +quarkus.http.ssl.certificate.key-store-password=password \ No newline at end of file diff --git a/http/rest-client-reactive/src/main/resources/httpVersion.properties b/http/rest-client-reactive/src/main/resources/httpVersion.properties new file mode 100644 index 000000000..a31c4edd1 --- /dev/null +++ b/http/rest-client-reactive/src/main/resources/httpVersion.properties @@ -0,0 +1,2 @@ +quarkus.rest-client.http-client-with-config-key.url=http://${quarkus.http.host}:${quarkus.http.port} +quarkus.rest-client.https-client-with-config-key.url=https://${quarkus.http.host}:${quarkus.http.ssl-port} \ No newline at end of file diff --git a/http/rest-client-reactive/src/test/java/io/quarkus/ts/http/restclient/reactive/HttpVersionAlpnIT.java b/http/rest-client-reactive/src/test/java/io/quarkus/ts/http/restclient/reactive/HttpVersionAlpnIT.java new file mode 100644 index 000000000..38bb99e9f --- /dev/null +++ b/http/rest-client-reactive/src/test/java/io/quarkus/ts/http/restclient/reactive/HttpVersionAlpnIT.java @@ -0,0 +1,59 @@ +package io.quarkus.ts.http.restclient.reactive; + +import static io.quarkus.ts.http.restclient.reactive.resources.HttpVersionClientResource.NAME; +import static org.hamcrest.Matchers.containsString; + +import org.junit.jupiter.api.Test; + +import io.quarkus.test.bootstrap.RestService; +import io.quarkus.test.scenarios.QuarkusScenario; +import io.quarkus.test.services.QuarkusApplication; +import io.vertx.core.http.HttpVersion; + +@QuarkusScenario +public class HttpVersionAlpnIT { + + private static final String SUCCESSFUL_RESPONSE_STRING = "Hello " + NAME + " and your using http protocol in version " + + HttpVersion.HTTP_2.name(); + + @QuarkusApplication(ssl = true) + static RestService app = new RestService() + .withProperties("httpVersion.properties") + .withProperty("quarkus.rest-client.alpn", "true"); + + @Test + public void testSyncResponseWithSingleClientOnGlobalClient() { + app.given() + .get("/http2/https-synchronous") + .then() + .statusCode(200) + .body(containsString(SUCCESSFUL_RESPONSE_STRING)); + } + + @Test + public void testAsyncResponseWithSingleClientOnGlobalClient() { + app.given() + .get("/http2/https-asynchronous") + .then() + .statusCode(200) + .body(containsString(SUCCESSFUL_RESPONSE_STRING)); + } + + @Test + public void testSyncResponseWithSingleClientOnSingleClient() { + app.given() + .get("/http2/https-synchronous-for-client-with-key") + .then() + .statusCode(200) + .body(containsString(SUCCESSFUL_RESPONSE_STRING)); + } + + @Test + public void testAsyncResponseWithSingleClientOnSingleClient() { + app.given() + .get("/http2/https-asynchronous-for-client-with-key") + .then() + .statusCode(200) + .body(containsString(SUCCESSFUL_RESPONSE_STRING)); + } +} diff --git a/http/rest-client-reactive/src/test/java/io/quarkus/ts/http/restclient/reactive/HttpVersionAlpnWithConfigKeyIT.java b/http/rest-client-reactive/src/test/java/io/quarkus/ts/http/restclient/reactive/HttpVersionAlpnWithConfigKeyIT.java new file mode 100644 index 000000000..19f4064bf --- /dev/null +++ b/http/rest-client-reactive/src/test/java/io/quarkus/ts/http/restclient/reactive/HttpVersionAlpnWithConfigKeyIT.java @@ -0,0 +1,61 @@ +package io.quarkus.ts.http.restclient.reactive; + +import static io.quarkus.ts.http.restclient.reactive.resources.HttpVersionClientResource.NAME; +import static io.quarkus.ts.http.restclient.reactive.resources.HttpVersionClientResource.WRONG_HTTP_VERSION; +import static org.hamcrest.Matchers.containsString; + +import org.junit.jupiter.api.Test; + +import io.quarkus.test.bootstrap.RestService; +import io.quarkus.test.scenarios.QuarkusScenario; +import io.quarkus.test.services.QuarkusApplication; +import io.vertx.core.http.HttpVersion; + +@QuarkusScenario +public class HttpVersionAlpnWithConfigKeyIT { + + private static final String SUCCESSFUL_RESPONSE_STRING = "Hello " + NAME + " and your using http protocol in version " + + HttpVersion.HTTP_2.name(); + + @QuarkusApplication(ssl = true) + static RestService app = new RestService() + .withProperties("httpVersion.properties") + .withProperty("quarkus.rest-client.http-client-with-config-key.alpn", "true") + .withProperty("quarkus.rest-client.https-client-with-config-key.alpn", "true"); + + @Test + public void testSyncResponseWithSingleClientOnGlobalClient() { + app.given() + .get("/http2/https-synchronous") + .then() + .statusCode(200) + .body(containsString(WRONG_HTTP_VERSION)); + } + + @Test + public void testAsyncResponseWithSingleClientOnGlobalClient() { + app.given() + .get("/http2/https-asynchronous") + .then() + .statusCode(200) + .body(containsString(WRONG_HTTP_VERSION)); + } + + @Test + public void testSyncResponseWithSingleClientOnSingleClient() { + app.given() + .get("/http2/https-synchronous-for-client-with-key") + .then() + .statusCode(200) + .body(containsString(SUCCESSFUL_RESPONSE_STRING)); + } + + @Test + public void testAsyncResponseWithSingleClientOnSingleClient() { + app.given() + .get("/http2/https-asynchronous-for-client-with-key") + .then() + .statusCode(200) + .body(containsString(SUCCESSFUL_RESPONSE_STRING)); + } +} diff --git a/http/rest-client-reactive/src/test/java/io/quarkus/ts/http/restclient/reactive/HttpVersionIT.java b/http/rest-client-reactive/src/test/java/io/quarkus/ts/http/restclient/reactive/HttpVersionIT.java new file mode 100644 index 000000000..ee70458c6 --- /dev/null +++ b/http/rest-client-reactive/src/test/java/io/quarkus/ts/http/restclient/reactive/HttpVersionIT.java @@ -0,0 +1,95 @@ +package io.quarkus.ts.http.restclient.reactive; + +import static io.quarkus.ts.http.restclient.reactive.resources.HttpVersionClientResource.NAME; +import static org.hamcrest.Matchers.containsString; + +import org.junit.jupiter.api.Test; + +import io.quarkus.test.bootstrap.RestService; +import io.quarkus.test.scenarios.QuarkusScenario; +import io.quarkus.test.services.QuarkusApplication; +import io.vertx.core.http.HttpVersion; + +@QuarkusScenario +public class HttpVersionIT { + + private static final String SUCCESSFUL_RESPONSE_STRING = "Hello " + NAME + " and your using http protocol in version " + + HttpVersion.HTTP_2.name(); + + @QuarkusApplication(ssl = true) + static RestService app = new RestService() + .withProperties("httpVersion.properties") + .withProperty("quarkus.rest-client.http2", "true"); + + @Test + public void testHttpSyncResponseWithSingleClientOnGlobalClient() { + app.given() + .get("/http2/http-synchronous") + .then() + .statusCode(200) + .body(containsString(SUCCESSFUL_RESPONSE_STRING)); + } + + @Test + public void testHttpsSyncResponseWithSingleClientOnGlobalClient() { + app.given() + .get("/http2/https-synchronous") + .then() + .statusCode(200) + .body(containsString(SUCCESSFUL_RESPONSE_STRING)); + } + + @Test + public void testHttpsAsyncResponseWithSingleClientOnGlobalClient() { + app.given() + .get("/http2/http-asynchronous") + .then() + .statusCode(200) + .body(containsString(SUCCESSFUL_RESPONSE_STRING)); + } + + @Test + public void testHttpAsyncResponseWithSingleClientOnGlobalClient() { + app.given() + .get("/http2/https-asynchronous") + .then() + .statusCode(200) + .body(containsString(SUCCESSFUL_RESPONSE_STRING)); + } + + @Test + public void testHttpSyncResponseWithSingleClientOnSingleClient() { + app.given() + .get("/http2/http-synchronous-for-client-with-key") + .then() + .statusCode(200) + .body(containsString(SUCCESSFUL_RESPONSE_STRING)); + } + + @Test + public void testHttpsSyncResponseWithSingleClientOnSingleClient() { + app.given() + .get("/http2/https-synchronous-for-client-with-key") + .then() + .statusCode(200) + .body(containsString(SUCCESSFUL_RESPONSE_STRING)); + } + + @Test + public void testHttpAsyncResponseWithSingleClientOnSingleClient() { + app.given() + .get("/http2/http-asynchronous-for-client-with-key") + .then() + .statusCode(200) + .body(containsString(SUCCESSFUL_RESPONSE_STRING)); + } + + @Test + public void testHttpsAsyncResponseWithSingleClientOnSingleClient() { + app.given() + .get("/http2/https-asynchronous-for-client-with-key") + .then() + .statusCode(200) + .body(containsString(SUCCESSFUL_RESPONSE_STRING)); + } +} diff --git a/http/rest-client-reactive/src/test/java/io/quarkus/ts/http/restclient/reactive/HttpVersionWithConfigKeyIT.java b/http/rest-client-reactive/src/test/java/io/quarkus/ts/http/restclient/reactive/HttpVersionWithConfigKeyIT.java new file mode 100644 index 000000000..e147f290e --- /dev/null +++ b/http/rest-client-reactive/src/test/java/io/quarkus/ts/http/restclient/reactive/HttpVersionWithConfigKeyIT.java @@ -0,0 +1,97 @@ +package io.quarkus.ts.http.restclient.reactive; + +import static io.quarkus.ts.http.restclient.reactive.resources.HttpVersionClientResource.NAME; +import static io.quarkus.ts.http.restclient.reactive.resources.HttpVersionClientResource.WRONG_HTTP_VERSION; +import static org.hamcrest.Matchers.containsString; + +import org.junit.jupiter.api.Test; + +import io.quarkus.test.bootstrap.RestService; +import io.quarkus.test.scenarios.QuarkusScenario; +import io.quarkus.test.services.QuarkusApplication; +import io.vertx.core.http.HttpVersion; + +@QuarkusScenario +public class HttpVersionWithConfigKeyIT { + + private static final String SUCCESSFUL_RESPONSE_STRING = "Hello " + NAME + " and your using http protocol in version " + + HttpVersion.HTTP_2.name(); + + @QuarkusApplication(ssl = true) + static RestService app = new RestService() + .withProperties("httpVersion.properties") + .withProperty("quarkus.rest-client.http-client-with-config-key.http2", "true") + .withProperty("quarkus.rest-client.https-client-with-config-key.http2", "true"); + + @Test + public void testHttpSyncResponseWithSingleClientOnGlobalClient() { + app.given() + .get("/http2/http-synchronous") + .then() + .statusCode(200) + .body(containsString(WRONG_HTTP_VERSION)); + } + + @Test + public void testHttpsSyncResponseWithSingleClientOnGlobalClient() { + app.given() + .get("/http2/https-synchronous") + .then() + .statusCode(200) + .body(containsString(WRONG_HTTP_VERSION)); + } + + @Test + public void testHttpsAsyncResponseWithSingleClientOnGlobalClient() { + app.given() + .get("/http2/http-asynchronous") + .then() + .statusCode(200) + .body(containsString(WRONG_HTTP_VERSION)); + } + + @Test + public void testHttpAsyncResponseWithSingleClientOnGlobalClient() { + app.given() + .get("/http2/https-asynchronous") + .then() + .statusCode(200) + .body(containsString(WRONG_HTTP_VERSION)); + } + + @Test + public void testHttpSyncResponseWithSingleClientOnSingleClient() { + app.given() + .get("/http2/http-synchronous-for-client-with-key") + .then() + .statusCode(200) + .body(containsString(SUCCESSFUL_RESPONSE_STRING)); + } + + @Test + public void testHttpsSyncResponseWithSingleClientOnSingleClient() { + app.given() + .get("/http2/https-synchronous-for-client-with-key") + .then() + .statusCode(200) + .body(containsString(SUCCESSFUL_RESPONSE_STRING)); + } + + @Test + public void testHttpAsyncResponseWithSingleClientOnSingleClient() { + app.given() + .get("/http2/http-asynchronous-for-client-with-key") + .then() + .statusCode(200) + .body(containsString(SUCCESSFUL_RESPONSE_STRING)); + } + + @Test + public void testHttpsAsyncResponseWithSingleClientOnSingleClient() { + app.given() + .get("/http2/https-asynchronous-for-client-with-key") + .then() + .statusCode(200) + .body(containsString(SUCCESSFUL_RESPONSE_STRING)); + } +} diff --git a/http/vertx/src/test/java/io/quarkus/ts/vertx/OpenShiftUsingExtensionDockerBuildStrategyVertxIT.java b/http/vertx/src/test/java/io/quarkus/ts/vertx/OpenShiftUsingExtensionDockerBuildStrategyVertxIT.java index 7ba313f52..798fa7291 100644 --- a/http/vertx/src/test/java/io/quarkus/ts/vertx/OpenShiftUsingExtensionDockerBuildStrategyVertxIT.java +++ b/http/vertx/src/test/java/io/quarkus/ts/vertx/OpenShiftUsingExtensionDockerBuildStrategyVertxIT.java @@ -1,6 +1,5 @@ package io.quarkus.ts.vertx; -import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Tag; import io.quarkus.test.bootstrap.RestService; @@ -9,7 +8,6 @@ import io.quarkus.test.services.QuarkusApplication; import io.restassured.specification.RequestSpecification; -@Disabled("https://github.com/quarkusio/quarkus/issues/38018") @Tag("use-quarkus-openshift-extension") @OpenShiftScenario(deployment = OpenShiftDeploymentStrategy.UsingOpenShiftExtensionAndDockerBuildStrategy) public class OpenShiftUsingExtensionDockerBuildStrategyVertxIT extends AbstractVertxIT { diff --git a/http/vertx/src/test/java/io/quarkus/ts/vertx/OpenShiftUsingExtensionVertxIT.java b/http/vertx/src/test/java/io/quarkus/ts/vertx/OpenShiftUsingExtensionVertxIT.java index 070be70cc..627a99211 100644 --- a/http/vertx/src/test/java/io/quarkus/ts/vertx/OpenShiftUsingExtensionVertxIT.java +++ b/http/vertx/src/test/java/io/quarkus/ts/vertx/OpenShiftUsingExtensionVertxIT.java @@ -1,6 +1,5 @@ package io.quarkus.ts.vertx; -import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Tag; import io.quarkus.test.bootstrap.RestService; @@ -9,7 +8,6 @@ import io.quarkus.test.services.QuarkusApplication; import io.restassured.specification.RequestSpecification; -@Disabled("https://github.com/quarkusio/quarkus/issues/38018") @Tag("use-quarkus-openshift-extension") @OpenShiftScenario(deployment = OpenShiftDeploymentStrategy.UsingOpenShiftExtension) public class OpenShiftUsingExtensionVertxIT extends AbstractVertxIT { diff --git a/http/vertx/src/test/java/io/quarkus/ts/vertx/ServerlessExtensionDockerBuildStrategyOpenShiftVertxIT.java b/http/vertx/src/test/java/io/quarkus/ts/vertx/ServerlessExtensionDockerBuildStrategyOpenShiftVertxIT.java index 418fba403..a707f9f86 100644 --- a/http/vertx/src/test/java/io/quarkus/ts/vertx/ServerlessExtensionDockerBuildStrategyOpenShiftVertxIT.java +++ b/http/vertx/src/test/java/io/quarkus/ts/vertx/ServerlessExtensionDockerBuildStrategyOpenShiftVertxIT.java @@ -1,6 +1,5 @@ package io.quarkus.ts.vertx; -import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Tag; import org.junit.jupiter.api.condition.DisabledIfSystemProperty; @@ -10,7 +9,6 @@ import io.quarkus.test.services.QuarkusApplication; import io.restassured.specification.RequestSpecification; -@Disabled("https://github.com/quarkusio/quarkus/issues/38018") @DisabledIfSystemProperty(named = "ts.arm.missing.services.excludes", matches = "true", disabledReason = "https://github.com/quarkus-qe/quarkus-test-suite/issues/1142") @Tag("use-quarkus-openshift-extension") @Tag("serverless") diff --git a/http/vertx/src/test/java/io/quarkus/ts/vertx/ServerlessExtensionOpenShiftVertxIT.java b/http/vertx/src/test/java/io/quarkus/ts/vertx/ServerlessExtensionOpenShiftVertxIT.java index 2d879ecd7..a7fe7d19d 100644 --- a/http/vertx/src/test/java/io/quarkus/ts/vertx/ServerlessExtensionOpenShiftVertxIT.java +++ b/http/vertx/src/test/java/io/quarkus/ts/vertx/ServerlessExtensionOpenShiftVertxIT.java @@ -1,6 +1,5 @@ package io.quarkus.ts.vertx; -import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Tag; import org.junit.jupiter.api.condition.DisabledIfSystemProperty; @@ -10,7 +9,6 @@ import io.quarkus.test.services.QuarkusApplication; import io.restassured.specification.RequestSpecification; -@Disabled("https://github.com/quarkusio/quarkus/issues/38018") @DisabledIfSystemProperty(named = "ts.arm.missing.services.excludes", matches = "true", disabledReason = "https://github.com/quarkus-qe/quarkus-test-suite/issues/1142") @Tag("use-quarkus-openshift-extension") @Tag("serverless") diff --git a/infinispan-client/src/test/java/io/quarkus/ts/infinispan/client/OperatorOpenShiftInfinispanCountersIT.java b/infinispan-client/src/test/java/io/quarkus/ts/infinispan/client/OperatorOpenShiftInfinispanCountersIT.java index 488c98271..5c7c9f7dc 100644 --- a/infinispan-client/src/test/java/io/quarkus/ts/infinispan/client/OperatorOpenShiftInfinispanCountersIT.java +++ b/infinispan-client/src/test/java/io/quarkus/ts/infinispan/client/OperatorOpenShiftInfinispanCountersIT.java @@ -11,7 +11,6 @@ import org.apache.http.HttpStatus; import org.hamcrest.Matchers; import org.junit.jupiter.api.Assertions; -import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.MethodOrderer; import org.junit.jupiter.api.Order; import org.junit.jupiter.api.Test; @@ -27,7 +26,6 @@ @OpenShiftScenario(deployment = OpenShiftDeploymentStrategy.UsingOpenShiftExtension) @TestMethodOrder(MethodOrderer.OrderAnnotation.class) -@Disabled("https://github.com/quarkusio/quarkus/issues/38018") public class OperatorOpenShiftInfinispanCountersIT extends BaseOpenShiftInfinispanIT { private static final AtomicBoolean CLUSTER_CREATED = new AtomicBoolean(false); diff --git a/infinispan-client/src/test/java/io/quarkus/ts/infinispan/client/OperatorOpenShiftInfinispanObjectsIT.java b/infinispan-client/src/test/java/io/quarkus/ts/infinispan/client/OperatorOpenShiftInfinispanObjectsIT.java index 3503bd4e9..3683eef4f 100644 --- a/infinispan-client/src/test/java/io/quarkus/ts/infinispan/client/OperatorOpenShiftInfinispanObjectsIT.java +++ b/infinispan-client/src/test/java/io/quarkus/ts/infinispan/client/OperatorOpenShiftInfinispanObjectsIT.java @@ -13,7 +13,6 @@ import org.apache.http.HttpStatus; import org.hamcrest.Matcher; import org.junit.jupiter.api.AfterEach; -import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.MethodOrderer; import org.junit.jupiter.api.Order; import org.junit.jupiter.api.Test; @@ -28,7 +27,6 @@ @OpenShiftScenario(deployment = OpenShiftDeploymentStrategy.UsingOpenShiftExtension) @TestMethodOrder(MethodOrderer.OrderAnnotation.class) -@Disabled("https://github.com/quarkusio/quarkus/issues/38018") public class OperatorOpenShiftInfinispanObjectsIT extends BaseOpenShiftInfinispanIT { private static final int CACHE_ENTRY_MAX = 5; @@ -96,7 +94,6 @@ public void testQueryOnSerializedObjects() { @Test @Order(4) - @Disabled("https://issues.redhat.com/browse/ISPN-13292") public void testCacheEvictionByLifespanAndIdleTime() { whenAddCacheItemsWithLifespanAndIdleTime(maxThresholdItemList, CACHE_LIFESPAN_SEC + 20, CACHE_IDLE_TIME_SEC); await().pollDelay(Duration.ofSeconds(15)).atMost(Duration.ofSeconds(20)).untilAsserted(() -> { diff --git a/messaging/kafka-producer/src/test/java/io/quarkus/ts/messaging/kafka/producer/BlockingProducerIT.java b/messaging/kafka-producer/src/test/java/io/quarkus/ts/messaging/kafka/producer/BlockingProducerIT.java index 96e5fb930..20f689a35 100644 --- a/messaging/kafka-producer/src/test/java/io/quarkus/ts/messaging/kafka/producer/BlockingProducerIT.java +++ b/messaging/kafka-producer/src/test/java/io/quarkus/ts/messaging/kafka/producer/BlockingProducerIT.java @@ -25,7 +25,7 @@ public class BlockingProducerIT { static final long NETWORK_DELAY_MS = 300; static final long KAFKA_MAX_BLOCK_TIME_MS = KAFKA_MAX_BLOCK_MS + NETWORK_DELAY_MS; - @KafkaContainer(vendor = KafkaVendor.STRIMZI, version = "0.24.0-kafka-2.7.0") + @KafkaContainer(vendor = KafkaVendor.STRIMZI) static final KafkaService kafka = new KafkaService().withProperty("auto.create.topics.enable", "false"); @QuarkusApplication diff --git a/monitoring/micrometer-prometheus/src/test/java/io/quarkus/ts/micrometer/prometheus/OpenShiftCustomMetricsIT.java b/monitoring/micrometer-prometheus/src/test/java/io/quarkus/ts/micrometer/prometheus/OpenShiftCustomMetricsIT.java index 6fb68fda6..67467c28a 100644 --- a/monitoring/micrometer-prometheus/src/test/java/io/quarkus/ts/micrometer/prometheus/OpenShiftCustomMetricsIT.java +++ b/monitoring/micrometer-prometheus/src/test/java/io/quarkus/ts/micrometer/prometheus/OpenShiftCustomMetricsIT.java @@ -12,7 +12,6 @@ import org.apache.http.HttpStatus; import org.jboss.logging.Logger; import org.junit.jupiter.api.BeforeEach; -import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; import io.quarkus.test.bootstrap.RestService; @@ -28,7 +27,6 @@ * - `prime_number_test_{uniqueId}`: with information about the calculation of the prime number. */ @OpenShiftScenario(deployment = OpenShiftDeploymentStrategy.UsingOpenShiftExtension) -@Disabled("https://github.com/quarkusio/quarkus/issues/34645") public class OpenShiftCustomMetricsIT { private static final Logger LOG = Logger.getLogger(OpenShiftCustomMetricsIT.class); diff --git a/nosql-db/mongodb-reactive/src/test/resources/mongo-openshift-deployment-template.yml b/nosql-db/mongodb-reactive/src/test/resources/mongo-openshift-deployment-template.yml index 88a1e7f0b..7784dfa2d 100644 --- a/nosql-db/mongodb-reactive/src/test/resources/mongo-openshift-deployment-template.yml +++ b/nosql-db/mongodb-reactive/src/test/resources/mongo-openshift-deployment-template.yml @@ -12,20 +12,21 @@ items: port: ${INTERNAL_PORT} targetPort: ${INTERNAL_PORT} selector: - deploymentconfig: "${SERVICE_NAME}" + deployment: "${SERVICE_NAME}" type: "ClusterIP" -- apiVersion: "apps.openshift.io/v1" - kind: "DeploymentConfig" +- apiVersion: "apps/v1" + kind: "Deployment" metadata: name: "${SERVICE_NAME}" spec: replicas: 1 selector: - deploymentconfig: "${SERVICE_NAME}" + matchLabels: + deployment: "${SERVICE_NAME}" template: metadata: labels: - deploymentconfig: "${SERVICE_NAME}" + deployment: "${SERVICE_NAME}" spec: volumes: - name: mongo-db-data-volume @@ -41,6 +42,4 @@ items: protocol: "TCP" volumeMounts: - name: mongo-db-data-volume - mountPath: /data/db - triggers: - - type: "ConfigChange" + mountPath: /data/db \ No newline at end of file diff --git a/nosql-db/mongodb/src/test/resources/mongo-openshift-deployment-template.yml b/nosql-db/mongodb/src/test/resources/mongo-openshift-deployment-template.yml index 88a1e7f0b..7784dfa2d 100644 --- a/nosql-db/mongodb/src/test/resources/mongo-openshift-deployment-template.yml +++ b/nosql-db/mongodb/src/test/resources/mongo-openshift-deployment-template.yml @@ -12,20 +12,21 @@ items: port: ${INTERNAL_PORT} targetPort: ${INTERNAL_PORT} selector: - deploymentconfig: "${SERVICE_NAME}" + deployment: "${SERVICE_NAME}" type: "ClusterIP" -- apiVersion: "apps.openshift.io/v1" - kind: "DeploymentConfig" +- apiVersion: "apps/v1" + kind: "Deployment" metadata: name: "${SERVICE_NAME}" spec: replicas: 1 selector: - deploymentconfig: "${SERVICE_NAME}" + matchLabels: + deployment: "${SERVICE_NAME}" template: metadata: labels: - deploymentconfig: "${SERVICE_NAME}" + deployment: "${SERVICE_NAME}" spec: volumes: - name: mongo-db-data-volume @@ -41,6 +42,4 @@ items: protocol: "TCP" volumeMounts: - name: mongo-db-data-volume - mountPath: /data/db - triggers: - - type: "ConfigChange" + mountPath: /data/db \ No newline at end of file diff --git a/pom.xml b/pom.xml index 846bda787..315b3f776 100644 --- a/pom.xml +++ b/pom.xml @@ -19,7 +19,7 @@ io.quarkus 3.7.2 3.7.2 - 1.4.0.Beta7 + 1.4.2.Beta8 2.5.0 4.5.14 7.5.1 @@ -56,11 +56,13 @@ **/QuarkusCli*IT.java no - docker.io/library/postgres:15 + docker.io/postgres:16.1 registry.access.redhat.com/rhscl/mysql-80-rhel7 - registry.redhat.io/rhbk/keycloak-rhel9:22-6 + registry.redhat.io/rhbk/keycloak-rhel9:22-8 2.35.1 3.4.4 + 2 + 1 @@ -192,7 +194,7 @@ maven-surefire-plugin ${surefire-plugin.version} - 2 + ${reruns} @@ -202,7 +204,7 @@ - 2 + ${reruns} @@ -266,28 +268,29 @@ docker.io/library/nginx:1-alpine registry.access.redhat.com/amq-broker-7/amq-broker-72-openshift:latest - quay.io/artemiscloud/activemq-artemis-broker:1.0.23 - redpandadata/redpanda:v23.2.16 + quay.io/artemiscloud/activemq-artemis-broker:1.0.25 + redpandadata/redpanda:v23.3.4 ${postgresql.latest.image} - docker.io/library/elasticsearch:7.17.12 - docker.io/library/mysql:5.7.42 + docker.io/library/elasticsearch:7.17.17 + docker.io/library/mysql:5.7.44 docker.io/library/mysql:8.0 ${mysql.80.image} - docker.io/library/mariadb:10.10 + docker.io/library/mariadb:10.11 mcr.microsoft.com/mssql/rhel/server:2022-latest docker.io/gvenzl/oracle-free:23-slim-faststart quay.io/quarkusqeteam/db2:11.5.7.0 docker.io/library/mongo:5.0 docker.io/library/redis:7.2 - quay.io/ocpmetal/wiremock + docker.io/wiremock/wiremock:3.3.1 - docker.io/bitnami/consul:1.15.2 + docker.io/bitnami/consul:1.17.2 quay.io/infinispan/server:14.0 Infinispan Server.*started in quay.io/quarkusqeteam/spring-cloud-config-server:3.0 - quay.io/keycloak/keycloak:22.0.5 + quay.io/keycloak/keycloak:23.0.6 1.0.12.2 + ${rhbk.image} @@ -762,14 +765,14 @@ true ${rhbk.image} - registry.redhat.io/rhscl/postgresql-10-rhel7 - registry.redhat.io/rhscl/postgresql-13-rhel7 - registry.redhat.io/rhscl/mariadb-103-rhel7 - registry.redhat.io/rhel8/mariadb-105 - registry.redhat.io/amq7/amq-streams-kafka-33-rhel8 - 2.3.0 + registry.redhat.io/rhel8/postgresql-10 + registry.redhat.io/rhel9/postgresql-15 + registry.redhat.io/rhel8/mariadb-103 + registry.redhat.io/rhel9/mariadb-105 + registry.redhat.io/amq-streams/kafka-35-rhel8 + 2.6.0 - 1 + ${oc.reruns} @@ -817,12 +820,12 @@ registry.redhat.io/rhel8/mysql-80 registry.redhat.io/rhel8/mariadb-103 registry.redhat.io/rhel8/mariadb-105 - registry.redhat.io/amq7/amq-streams-kafka-27-rhel7 - 1.7.0 + registry.redhat.io/amq-streams/kafka-35-rhel8 + 2.6.0 docker.io/library/mongo@sha256:6f851e31a1b317c6fa681b7dad5f94c622f1c3588477f3b769579dc5462ee659 - 1 + ${oc.reruns} @@ -865,17 +868,17 @@ true true - registry.redhat.io/amq7/amq-broker-rhel8:7.10 + registry.redhat.io/amq7/amq-broker-rhel8:7.11 ${rhbk.image} registry.redhat.io/rhel8/postgresql-10 registry.redhat.io/rhel8/mysql-80 registry.redhat.io/rhel8/mariadb-103 registry.redhat.io/rhel8/mariadb-105 - registry.redhat.io/amq7/amq-streams-kafka-33-rhel8 - 2.3.0 + registry.redhat.io/amq-streams/kafka-35-rhel8 + 2.6.0 docker.io/library/mongo:4.4.6 - 1 + ${oc.reruns} diff --git a/security/oidc-client-mutual-tls/src/test/java/io/quarkus/ts/security/oidcclient/mtls/OpenShiftRhSsoOidcMtlsIT.java b/security/oidc-client-mutual-tls/src/test/java/io/quarkus/ts/security/oidcclient/mtls/OpenShiftRhSsoOidcMtlsIT.java index d7d193689..131c2deeb 100644 --- a/security/oidc-client-mutual-tls/src/test/java/io/quarkus/ts/security/oidcclient/mtls/OpenShiftRhSsoOidcMtlsIT.java +++ b/security/oidc-client-mutual-tls/src/test/java/io/quarkus/ts/security/oidcclient/mtls/OpenShiftRhSsoOidcMtlsIT.java @@ -12,18 +12,16 @@ import io.quarkus.test.bootstrap.KeycloakService; import io.quarkus.test.bootstrap.RestService; import io.quarkus.test.scenarios.OpenShiftScenario; -import io.quarkus.test.services.Container; +import io.quarkus.test.services.KeycloakContainer; import io.quarkus.test.services.QuarkusApplication; -@Disabled // TODO mvavrik: fixing this will probably require fixing config map names created for resources +@Disabled("https://github.com/quarkusio/quarkus/issues/38803") //TODO mvavrik: fixing this will probably require fixing config map names created for resources @OpenShiftScenario @DisabledIfSystemProperty(named = "ts.arm.missing.services.excludes", matches = "true", disabledReason = "https://github.com/quarkus-qe/quarkus-test-suite/issues/1145") @EnabledIfSystemProperty(named = "ts.redhat.registry.enabled", matches = "true") public class OpenShiftRhSsoOidcMtlsIT extends KeycloakMtlsAuthN { - protected static final String EXPECTED_LOG = "Http management interface listening"; - - @Container(image = "${rhsso.image}", expectedLog = EXPECTED_LOG, port = KEYCLOAK_PORT) + @KeycloakContainer(command = { "start-dev", "--import-realm" }, image = "${rhbk.image}") static KeycloakService rhsso = newRhSsoInstance("/keycloak-realm.json", REALM_DEFAULT).withRedHatFipsDisabled(); /** diff --git a/security/oidc-client-mutual-tls/src/test/resources/openshift-rh-sso-deployment-template.yml b/security/oidc-client-mutual-tls/src/test/resources/openshift-rh-sso-deployment-template.yml deleted file mode 100644 index 09ba94ec1..000000000 --- a/security/oidc-client-mutual-tls/src/test/resources/openshift-rh-sso-deployment-template.yml +++ /dev/null @@ -1,77 +0,0 @@ ---- -apiVersion: "v1" -kind: "List" -items: -- apiVersion: v1 - kind: Secret - metadata: - name: sso-x509-https-secret - data: - tls.crt: >- - LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUNuakNDQVlZQ0FRRXdEUVlKS29aSWh2Y05BUUVMQlFBd0ZqRVVNQklHQTFVRUF3d0xhMlY1WTJ4dllXc3QKWTJFd0hoY05Nakl3TkRFeE1UQXlNekk1V2hjTk1qTXdOREV4TVRBeU16STVXakFVTVJJd0VBWURWUVFEREFscwpiMk5oYkdodmMzUXdnZ0VpTUEwR0NTcUdTSWIzRFFFQkFRVUFBNElCRHdBd2dnRUtBb0lCQVFERnVQeHpCRmRyCjVFK1JwUll4L0tHVnN1ZVdkY3N0RWQzSTg4NTFRc0ZoNmgvdDdlTXl4RVZhQVRnOFdLNWI5RWhtdnh2eWxyNUoKR014eDR1Y3NVdGRGakd4dVlPU0R3S0Zma0kwVld4b0NEbmd0ZnRpeFV4aFR2eStOZEc2TXMySDlRWnlkUUJ5aAoxL2hZRURwYWZ1MUpYeWwydWVtdENPWnNpU2p2SHlKYVdrajdXMmttT0wvaVozVk9YVjcyMVZMUks0bWtSd2JXCm9vb2gwM0hLN2ROWkhpaGJkMStYU0Njdk5qV1F2Z2phcEw2R2MzNElCa01LaWphcWZZdjNPTHIzdUdLMU1Gd2QKOEk1TWZhbW5JN1JrcFMrQ1hRSlprZWZCZkhnUlhrRGRnYkZBbW1GZnhyTHpjVmczQkVGenhrTjJIZU1ETjZJRgp6U0RrT0VvOThuMHRBZ01CQUFFd0RRWUpLb1pJaHZjTkFRRUxCUUFEZ2dFQkFKaWxib3YzZmdlbU0zRzVKVjg2CmVlOUNaN0c1QVlnbXZNdURaZjBnRkJUakJqeHJoL2s0cVZBaWhQS0lNWnJiR21vSVRnZkY1Qml1cVp2UzJsc2gKNkdrVkhIK09JRWc5endrbnZpS3ppUWEyOSsva3FKNXR1UlVwSEJ4bVM5d2FLOUVsbGZFelRCd1RmcXB3RGoxdQpWV1NtS3RRb21na2p4KzAxRkhqM0xKTUlkWURqUkpyeGZWb1oycktuT21FWkhYbkJ5ZVo1UDl3ZFNvSkxHcTBPCnZYZUVkQVVkeWU3ZGMxQkdCZWtUaGJMWjQwSTgvVWdqelc0S3JGWTNrdm12ais3MFAyYWtMN0hNdWkwb2REM3gKNGVkc0ttcVdVZDlSeUpLWE9aeVZYL3hKVnErR1I3cEN1cFpBTEN2TFpSNFI2aG5QQUpxdExRTGZ0OGJHblRHaApUdFE9Ci0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KCi0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQpNSUlERFRDQ0FmV2dBd0lCQWdJVVB1RW9HS3NNVkFCbFR4RVEyVmdOWk1zZm11Z3dEUVlKS29aSWh2Y05BUUVMCkJRQXdGakVVTUJJR0ExVUVBd3dMYTJWNVkyeHZZV3N0WTJFd0hoY05Nakl3TkRFeE1UQXlNekk1V2hjTk1qTXcKTkRFeE1UQXlNekk1V2pBV01SUXdFZ1lEVlFRRERBdHJaWGxqYkc5aGF5MWpZVENDQVNJd0RRWUpLb1pJaHZjTgpBUUVCQlFBRGdnRVBBRENDQVFvQ2dnRUJBUE8wQWxwZ2NNNnBQU0JaQTduYzlacWNhUXlJaWJmU0ttTHJLZWVnCkVZdTZEM0lKcXJsUU5EOUdlR2ZLZXFWZGJaUy9CazdOaDFDU2p5NjJKZnFVa0UwalV4ODM4WnhsNWJjakRhNmMKZzdHMTRVazZaWHVCdFRIMUt6SjhyU28zMGVYeGNCRjhNUlNlVm05NjBmb2U3ekE5QmwvT1lpbkg4clRnRWtqcgp3c3Bra1Fuc01pbU0zME1OOUFrNnpKSHg5VUdjM1NhYzlPVTI3aDBCWFRnd2V6Vkhmb2pSOWw0OEx4dTFqVFRYCmxoTEx1dUw1VkQ3VGNRU2RuWlRWbTR2SmV6WHRiWGU3ekljTjc5bFZBUms5QmpaZ2kxcGdvVmVxNEJEdjlSWFcKVXk3L1VJcjY5bnFHNTJEa3pyYmJDZXEwNU1qZXJOaVh3Slp2T1NGQWJpVFhEelVDQXdFQUFhTlRNRkV3SFFZRApWUjBPQkJZRUZKZktzSkcyV0VEZjNMd1YybWxFb2QrQ2h2VlJNQjhHQTFVZEl3UVlNQmFBRkpmS3NKRzJXRURmCjNMd1YybWxFb2QrQ2h2VlJNQThHQTFVZEV3RUIvd1FGTUFNQkFmOHdEUVlKS29aSWh2Y05BUUVMQlFBRGdnRUIKQUtKR0VIT2pPaFF0V1BNUlI4Y2hybGRxaE9lbDhtMmZmb0RDZklZVnBvSU14QjQzR1g2OGlsWHpBcWVjVDN0bwpHdE9hbmR0Sk44N0tscFVEMjJwK21pZndEcHBDZTRNTTJHWW1VYmJNNWdEWHhxL2hjM0RQOERSRS8yWVVyN3RDClYyUG5FTklyQTlwcGNia3JPNkp1K0VQQURwK3FNOWtpSXVTbldadmFIMjVHQWdqbmtYQlVvalNwNDIwcEM0VWQKNkdkVERkYy83YzRmeTc3RnVDLzgxZDNYSVk3MkczNExOSmpua1ZqNENhSG9VNTlCaG8yQ25nQ0Y3eExhdWxBLwpCTW1jeGZFSFBHTEx4cU5McnlSRXBLVEh1eXpHbDNKeVRhcDV0cWhVN1B6MG9QNHcyUEUzcVVRaUtiZjlWVXliCk8rdk1QZkVDMkdVZ0V3bGRFOHVzZUxvPQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCg== - tls.key: >- - LS0tLS1CRUdJTiBSU0EgUFJJVkFURSBLRVktLS0tLQpNSUlFcGdJQkFBS0NBUUVBeGJqOGN3UlhhK1JQa2FVV01meWhsYkxubG5YTExSSGR5UFBPZFVMQlllb2Y3ZTNqCk1zUkZXZ0U0UEZpdVcvUklacjhiOHBhK1NSak1jZUxuTEZMWFJZeHNibURrZzhDaFg1Q05GVnNhQWc1NExYN1kKc1ZNWVU3OHZqWFJ1akxOaC9VR2NuVUFjb2RmNFdCQTZXbjd0U1Y4cGRybnByUWptYklrbzd4OGlXbHBJKzF0cApKamkvNG1kMVRsMWU5dFZTMFN1SnBFY0cxcUtLSWROeHl1M1RXUjRvVzNkZmwwZ25Melkxa0w0STJxUytobk4rCkNBWkRDb28ycW4yTDl6aTY5N2hpdFRCY0hmQ09USDJwcHlPMFpLVXZnbDBDV1pIbndYeDRFVjVBM1lHeFFKcGgKWDhheTgzRllOd1JCYzhaRGRoM2pBemVpQmMwZzVEaEtQZko5TFFJREFRQUJBb0lCQVFDMVBuUVRUcmlBUzBIeApCVDZLUmNVcy8xa3czL3VGN2VtNjZscW52TENkKzhxWEJNaU9ZY0ljMWg5aG1mMENoN1BTazM2ZjZqUzF0c2k1CjRMLytMbFh0QitMaGIyb3BwK3VGT1hGS1VUOVBBVXFDa2RNN0FTdThvUFdMR2w2NEZUdE90dFZFaEY5NnNBbVQKV0JUVm5hSVA3dTZJU2JWOWl6b0Y1ZGtqRVF3aGV5TDU4QkN1SjVrdjZVa1plWnQ0OXg5MEk3aGFuUGd3WXJDVgpYNXRJYXEyQU9tNnBJN0Q5S3o3WEZ1anZOM2lGZXNvenM5T0l4YkFzdm40U3pJZzduZHlFUnV5QVZrc1Q5WnZ4CnhOMEp4MnVNYkQ5Q2xjeDhPaklIOGUxdzdkQjdwY01SNVJpQy8zUjdMNG5jS0NhTDNaSXNoT1U0M0x0WHB5QmcKdU9YNEdDb0JBb0dCQU9XL25CUXdKc2Z2bENxditNcEJRd1ZnQXowN0k2MlQyUmdRd0I2ZkttSjNWLzlIRWtyegowN1JxQXZ0QlB0TzdDSE9hUjBXR3R3a1BuWGZtOVJOVHFpRHpaYU5teVlkdW1scm1ieWpVUk96cnozREx6MlY0CmtveEFDTGhpR0hEWWNHVC9PT2xMVmd0SHh0UGtrQXVad3hKSGJtdHlBdEIrci9ORUJvNTJLYUN0QW9HQkFOeFEKbGMxdjEwOUxtWThOZDBuVXNJU1VFTWxjTzczT1FiNUxGSDFjeE41c29VOFNRejY2ZE9NZmxZM0g5NjlyZmFuYgozVTNRUXp3OG9iMzZmUy9rbHNVaDdkeHJLcVovMnB3Szh6UzFqTjNHeXZLMTcxNGVKaW9UNmlHa0JIVjdQTnpkCmpMUHdRTDRnQnJHWWlrZjJWVFNvdzVUcGJkV1dVekRKenpENy9WNkJBb0dCQU5pMkJvbGNhaGhKdWw4Um9nRlYKMGR3dUZxQVpPcXd1TzZiaGxmYk1kL1J0VWtudlJpZ0JHbjZoU0xLcmRwSE5hRWx6Q3l0ZnlTTDQ0YllKMnI0aQpPdVhkOE05UzAyRzJTRTdaOFp4M3JaUTFVblM1S3FZeU56bW41UkhYSmVxN25qa0dMUzZSNjFXMG5LMmVlT2tZClh0TE5JakNqV0ZoR1I3MlZPd0lDSDMzNUFvR0JBTkpiZzEwL1QzYWYrWVAwV0pTL0pyZS81SE5PeEtBTFF3eWUKQlhkWlQ0UU1kc3pYNUNzTnZ6TnBZZE9aUGk1WlZRZ05MVFh5QjNDSmQrbThOVEc0Y2hqUnQ1cUJISjBUY0xrVApYM3BSYXFvSytKWmNEcXh2M3dMSU53SmQ2QUFBWm5HQWZLc0dWOXJ4RzFNUkVkOTZIWXNGSkpHWGZFNjJsTUg5CnZ2M0hiUG1CQW9HQkFJSWRlcDk1cVJFUVhPTzJNYVpDSnYrejFTK21lRnNwOTAyM3UwT2xLK2cyeVpEYWFiSm0KUllVRkNpYUZsajlPZ2tmVkVJL2lRbU8wQ29LdXZ0dzBiN04vSnhXWW1FYTdXdVBuWDRjNnp0aldIdm1maFNiWQpUbkp0N2NLQWowNjhsam5jaVJDTGdpNzNlMnZMc25lYkd2cTg0Y2VpL0Y0a1JMam5aM0pRb0MxbAotLS0tLUVORCBSU0EgUFJJVkFURSBLRVktLS0tLQo= - - type: kubernetes.io/tls -- apiVersion: "v1" - kind: "Service" - metadata: - name: "${SERVICE_NAME}" - spec: - ports: - - name: "http" - port: ${INTERNAL_PORT} - targetPort: ${INTERNAL_PORT} - selector: - deploymentconfig: "${SERVICE_NAME}" - type: "ClusterIP" -- apiVersion: "apps.openshift.io/v1" - kind: "DeploymentConfig" - metadata: - name: "${SERVICE_NAME}" - spec: - replicas: 1 - selector: - deploymentconfig: "${SERVICE_NAME}" - template: - metadata: - labels: - deploymentconfig: "${SERVICE_NAME}" - spec: - containers: - - image: "${IMAGE}" - imagePullPolicy: "IfNotPresent" - name: "${SERVICE_NAME}" - ports: - - containerPort: ${INTERNAL_PORT} - name: "http" - protocol: "TCP" - volumeMounts: - - name: "sso-x509-https-secret" - mountPath: "/etc/x509/https" - volumes: - - name: "sso-x509-https-secret" - secret: - secretName: "sso-x509-https-secret" - defaultMode: 420 - optional: true - triggers: - - type: "ConfigChange" -- kind: Route - apiVersion: route.openshift.io/v1 - metadata: - name: rhsso - labels: - scenarioId: "${SERVICE_NAME}-OpenShiftRhSsoOidcMtlsIT" - annotations: - openshift.io/host.generated: 'true' - spec: - to: - kind: Service - name: rhsso - weight: 100 - port: - targetPort: http - tls: - termination: passthrough - wildcardPolicy: None \ No newline at end of file diff --git a/security/oidc-client-mutual-tls/src/test/resources/test.properties b/security/oidc-client-mutual-tls/src/test/resources/test.properties index 3db54985c..c13475f45 100644 --- a/security/oidc-client-mutual-tls/src/test/resources/test.properties +++ b/security/oidc-client-mutual-tls/src/test/resources/test.properties @@ -1,3 +1,2 @@ ts.keycloak.log.enable=true -ts.app.log.enable=true -ts.keycloak.openshift.template=/openshift-rh-sso-deployment-template.yml \ No newline at end of file +ts.app.log.enable=true \ No newline at end of file diff --git a/service-binding/postgresql-crunchy-classic/src/test/java/io/quarkus/ts/sb/postgresql/OpenShiftPostgreSqlSbIT.java b/service-binding/postgresql-crunchy-classic/src/test/java/io/quarkus/ts/sb/postgresql/OpenShiftPostgreSqlSbIT.java index 4e922b671..156706aeb 100644 --- a/service-binding/postgresql-crunchy-classic/src/test/java/io/quarkus/ts/sb/postgresql/OpenShiftPostgreSqlSbIT.java +++ b/service-binding/postgresql-crunchy-classic/src/test/java/io/quarkus/ts/sb/postgresql/OpenShiftPostgreSqlSbIT.java @@ -11,7 +11,6 @@ import org.junit.jupiter.api.AfterAll; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Assumptions; -import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; import io.quarkus.test.bootstrap.RestService; @@ -22,7 +21,6 @@ import io.quarkus.test.utils.Command; @OpenShiftScenario(deployment = OpenShiftDeploymentStrategy.UsingOpenShiftExtensionAndDockerBuildStrategy) -@Disabled("https://github.com/quarkusio/quarkus/issues/34759") public class OpenShiftPostgreSqlSbIT { @Inject diff --git a/service-binding/postgresql-crunchy-reactive/src/test/java/io/quarkus/ts/sb/reactive/OpenShiftPostgreSqlReactiveSbIT.java b/service-binding/postgresql-crunchy-reactive/src/test/java/io/quarkus/ts/sb/reactive/OpenShiftPostgreSqlReactiveSbIT.java index 8159c8fd5..c70d59a8c 100644 --- a/service-binding/postgresql-crunchy-reactive/src/test/java/io/quarkus/ts/sb/reactive/OpenShiftPostgreSqlReactiveSbIT.java +++ b/service-binding/postgresql-crunchy-reactive/src/test/java/io/quarkus/ts/sb/reactive/OpenShiftPostgreSqlReactiveSbIT.java @@ -12,7 +12,6 @@ import org.junit.jupiter.api.AfterAll; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Assumptions; -import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; import io.quarkus.test.bootstrap.RestService; @@ -23,7 +22,6 @@ import io.quarkus.test.utils.Command; @OpenShiftScenario(deployment = OpenShiftDeploymentStrategy.UsingOpenShiftExtensionAndDockerBuildStrategy) -@Disabled("https://github.com/quarkusio/quarkus/issues/34759") public class OpenShiftPostgreSqlReactiveSbIT { private static final String PG_CLUSTER_YML = "pg-cluster.yml"; diff --git a/service-discovery/stork/src/test/java/io/quarkus/ts/stork/OpenShiftStorkServiceDiscoveryIT.java b/service-discovery/stork/src/test/java/io/quarkus/ts/stork/OpenShiftStorkServiceDiscoveryIT.java index 2f1829b32..73a05a02e 100644 --- a/service-discovery/stork/src/test/java/io/quarkus/ts/stork/OpenShiftStorkServiceDiscoveryIT.java +++ b/service-discovery/stork/src/test/java/io/quarkus/ts/stork/OpenShiftStorkServiceDiscoveryIT.java @@ -15,19 +15,17 @@ import org.junit.jupiter.api.AfterAll; import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; import io.quarkus.test.bootstrap.RestService; import io.quarkus.test.bootstrap.inject.OpenShiftClient; import io.quarkus.test.scenarios.OpenShiftScenario; -import io.quarkus.test.scenarios.annotations.DisabledOnQuarkusSnapshot; -import io.quarkus.test.scenarios.annotations.DisabledOnQuarkusVersion; import io.quarkus.test.services.QuarkusApplication; import io.quarkus.test.utils.FileUtils; @OpenShiftScenario -@DisabledOnQuarkusVersion(version = "2\\..*", reason = "QE OCP user need more privilege in order to be able to create the required ClusterRole") -@DisabledOnQuarkusSnapshot(reason = "QE OCP user need more privilege in order to be able to create the required ClusterRole") +@Disabled("QE OCP user need more privilege in order to be able to create the required ClusterRole") public class OpenShiftStorkServiceDiscoveryIT extends AbstractCommonTestCases { private static final String CLUSTER_ROLE_FILE_NAME = "cluster-role.yaml"; diff --git a/sql-db/hibernate-reactive/src/test/java/io/quarkus/ts/hibernate/reactive/OracleDatabaseIT.java b/sql-db/hibernate-reactive/src/test/java/io/quarkus/ts/hibernate/reactive/OracleDatabaseIT.java index 8fdcf9a43..f2fa0114d 100644 --- a/sql-db/hibernate-reactive/src/test/java/io/quarkus/ts/hibernate/reactive/OracleDatabaseIT.java +++ b/sql-db/hibernate-reactive/src/test/java/io/quarkus/ts/hibernate/reactive/OracleDatabaseIT.java @@ -1,7 +1,5 @@ package io.quarkus.ts.hibernate.reactive; -import org.junit.jupiter.api.Disabled; - import io.quarkus.test.bootstrap.OracleService; import io.quarkus.test.bootstrap.RestService; import io.quarkus.test.scenarios.QuarkusScenario; @@ -9,7 +7,6 @@ import io.quarkus.test.services.QuarkusApplication; @QuarkusScenario -@Disabled("https://github.com/quarkusio/quarkus/issues/38263") public class OracleDatabaseIT extends AbstractDatabaseHibernateReactiveIT { private static final String ORACLE_USER = "quarkus_test"; diff --git a/super-size/many-extensions/src/test/java/io/quarkus/ts/many/extensions/OpenShiftUsingExtensionDockerBuildStrategyManyExtensionsIT.java b/super-size/many-extensions/src/test/java/io/quarkus/ts/many/extensions/OpenShiftUsingExtensionDockerBuildStrategyManyExtensionsIT.java index 07b8e64fd..af56b9bde 100644 --- a/super-size/many-extensions/src/test/java/io/quarkus/ts/many/extensions/OpenShiftUsingExtensionDockerBuildStrategyManyExtensionsIT.java +++ b/super-size/many-extensions/src/test/java/io/quarkus/ts/many/extensions/OpenShiftUsingExtensionDockerBuildStrategyManyExtensionsIT.java @@ -1,12 +1,10 @@ package io.quarkus.ts.many.extensions; -import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Tag; import io.quarkus.test.scenarios.OpenShiftDeploymentStrategy; import io.quarkus.test.scenarios.OpenShiftScenario; -@Disabled("https://github.com/quarkusio/quarkus/issues/37855") @Tag("use-quarkus-openshift-extension") @OpenShiftScenario(deployment = OpenShiftDeploymentStrategy.UsingOpenShiftExtensionAndDockerBuildStrategy) public class OpenShiftUsingExtensionDockerBuildStrategyManyExtensionsIT extends ManyExtensionsIT { diff --git a/super-size/many-extensions/src/test/java/io/quarkus/ts/many/extensions/OpenShiftUsingExtensionManyExtensionsIT.java b/super-size/many-extensions/src/test/java/io/quarkus/ts/many/extensions/OpenShiftUsingExtensionManyExtensionsIT.java index 7ef2c3179..88b516dde 100644 --- a/super-size/many-extensions/src/test/java/io/quarkus/ts/many/extensions/OpenShiftUsingExtensionManyExtensionsIT.java +++ b/super-size/many-extensions/src/test/java/io/quarkus/ts/many/extensions/OpenShiftUsingExtensionManyExtensionsIT.java @@ -1,12 +1,10 @@ package io.quarkus.ts.many.extensions; -import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Tag; import io.quarkus.test.scenarios.OpenShiftDeploymentStrategy; import io.quarkus.test.scenarios.OpenShiftScenario; -@Disabled("https://github.com/quarkusio/quarkus/issues/37855") @Tag("use-quarkus-openshift-extension") @OpenShiftScenario(deployment = OpenShiftDeploymentStrategy.UsingOpenShiftExtension) public class OpenShiftUsingExtensionManyExtensionsIT extends ManyExtensionsIT { diff --git a/super-size/many-extensions/src/test/java/io/quarkus/ts/many/extensions/ServerlessExtensionDockerBuildStrategyOpenShiftManyExtensionsIT.java b/super-size/many-extensions/src/test/java/io/quarkus/ts/many/extensions/ServerlessExtensionDockerBuildStrategyOpenShiftManyExtensionsIT.java index 3afbd01c3..46f2c8822 100644 --- a/super-size/many-extensions/src/test/java/io/quarkus/ts/many/extensions/ServerlessExtensionDockerBuildStrategyOpenShiftManyExtensionsIT.java +++ b/super-size/many-extensions/src/test/java/io/quarkus/ts/many/extensions/ServerlessExtensionDockerBuildStrategyOpenShiftManyExtensionsIT.java @@ -2,7 +2,6 @@ import static io.restassured.RestAssured.given; -import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Tag; import org.junit.jupiter.api.condition.DisabledIfSystemProperty; @@ -10,7 +9,6 @@ import io.quarkus.test.scenarios.OpenShiftScenario; import io.restassured.specification.RequestSpecification; -@Disabled("https://github.com/quarkusio/quarkus/issues/37855") @DisabledIfSystemProperty(named = "ts.arm.missing.services.excludes", matches = "true", disabledReason = "https://github.com/quarkus-qe/quarkus-test-suite/issues/1142") @Tag("use-quarkus-openshift-extension") @Tag("serverless") diff --git a/super-size/many-extensions/src/test/java/io/quarkus/ts/many/extensions/ServerlessExtensionOpenShiftManyExtensionsIT.java b/super-size/many-extensions/src/test/java/io/quarkus/ts/many/extensions/ServerlessExtensionOpenShiftManyExtensionsIT.java index 476d02cd0..31fea3a38 100644 --- a/super-size/many-extensions/src/test/java/io/quarkus/ts/many/extensions/ServerlessExtensionOpenShiftManyExtensionsIT.java +++ b/super-size/many-extensions/src/test/java/io/quarkus/ts/many/extensions/ServerlessExtensionOpenShiftManyExtensionsIT.java @@ -2,7 +2,6 @@ import static io.restassured.RestAssured.given; -import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Tag; import org.junit.jupiter.api.condition.DisabledIfSystemProperty; @@ -10,7 +9,6 @@ import io.quarkus.test.scenarios.OpenShiftScenario; import io.restassured.specification.RequestSpecification; -@Disabled("https://github.com/quarkusio/quarkus/issues/37855") @DisabledIfSystemProperty(named = "ts.arm.missing.services.excludes", matches = "true", disabledReason = "https://github.com/quarkus-qe/quarkus-test-suite/issues/1142") @Tag("use-quarkus-openshift-extension") @Tag("serverless")