diff --git a/README.md b/README.md
index 71776e0ce..00b979a46 100644
--- a/README.md
+++ b/README.md
@@ -625,6 +625,11 @@ Variants:
- Using `OIDC Client Filter` extension to automatically acquire the access token from Keycloak when calling to the RestClient.
- Using `OIDC Token Propagation` extension to propagate the tokens from the source REST call to the target RestClient.
+### `security/keycloak-oidc-client-reactive`
+
+Verifies special cases of using reactive OIDC client:
+- Proper handling of `Authorization` request header by `OidcClientRequestReactiveFilter`: the filter should always add a single`Authorization` header, not duplicate it in multiple request attempts.
+
### `securty/oidc-client-mutual-tls`
Verifies OIDC client can be authenticated as part of the `Mutual TLS` (`mTLS`) authentication process
diff --git a/http/graphql-telemetry/src/main/java/io/quarkus/ts/http/graphql/Person.java b/http/graphql-telemetry/src/main/java/io/quarkus/ts/http/graphql/telemetry/Person.java
similarity index 88%
rename from http/graphql-telemetry/src/main/java/io/quarkus/ts/http/graphql/Person.java
rename to http/graphql-telemetry/src/main/java/io/quarkus/ts/http/graphql/telemetry/Person.java
index cbf104a94..cc4e7b16e 100644
--- a/http/graphql-telemetry/src/main/java/io/quarkus/ts/http/graphql/Person.java
+++ b/http/graphql-telemetry/src/main/java/io/quarkus/ts/http/graphql/telemetry/Person.java
@@ -1,4 +1,4 @@
-package io.quarkus.ts.http.graphql;
+package io.quarkus.ts.http.graphql.telemetry;
public class Person {
private final String name;
diff --git a/http/graphql-telemetry/src/main/java/io/quarkus/ts/http/graphql/PersonsEndpoint.java b/http/graphql-telemetry/src/main/java/io/quarkus/ts/http/graphql/telemetry/PersonsEndpoint.java
similarity index 96%
rename from http/graphql-telemetry/src/main/java/io/quarkus/ts/http/graphql/PersonsEndpoint.java
rename to http/graphql-telemetry/src/main/java/io/quarkus/ts/http/graphql/telemetry/PersonsEndpoint.java
index 6b25e9cc7..ad7143153 100644
--- a/http/graphql-telemetry/src/main/java/io/quarkus/ts/http/graphql/PersonsEndpoint.java
+++ b/http/graphql-telemetry/src/main/java/io/quarkus/ts/http/graphql/telemetry/PersonsEndpoint.java
@@ -1,4 +1,4 @@
-package io.quarkus.ts.http.graphql;
+package io.quarkus.ts.http.graphql.telemetry;
import java.util.NoSuchElementException;
diff --git a/http/graphql-telemetry/src/test/java/io/quarkus/ts/http/graphql/TelemetryIT.java b/http/graphql-telemetry/src/test/java/io/quarkus/ts/http/graphql/telemetry/GraphQLTelemetryIT.java
similarity index 88%
rename from http/graphql-telemetry/src/test/java/io/quarkus/ts/http/graphql/TelemetryIT.java
rename to http/graphql-telemetry/src/test/java/io/quarkus/ts/http/graphql/telemetry/GraphQLTelemetryIT.java
index 4dd718f5f..2260ac605 100644
--- a/http/graphql-telemetry/src/test/java/io/quarkus/ts/http/graphql/TelemetryIT.java
+++ b/http/graphql-telemetry/src/test/java/io/quarkus/ts/http/graphql/telemetry/GraphQLTelemetryIT.java
@@ -1,7 +1,7 @@
-package io.quarkus.ts.http.graphql;
+package io.quarkus.ts.http.graphql.telemetry;
-import static io.quarkus.ts.http.graphql.Utils.createQuery;
-import static io.quarkus.ts.http.graphql.Utils.sendQuery;
+import static io.quarkus.ts.http.graphql.telemetry.Utils.createQuery;
+import static io.quarkus.ts.http.graphql.telemetry.Utils.sendQuery;
import static io.restassured.RestAssured.given;
import static org.awaitility.Awaitility.await;
@@ -20,7 +20,7 @@
import io.restassured.response.Response;
@QuarkusScenario
-public class TelemetryIT {
+public class GraphQLTelemetryIT {
private static final int GRPC_COLLECTOR_PORT = 14250;
@JaegerContainer(restPort = GRPC_COLLECTOR_PORT)
@@ -41,7 +41,7 @@ void verifyTelemetry() {
await().atMost(1, TimeUnit.MINUTES).pollInterval(Duration.ofSeconds(10)).untilAsserted(() -> {
String operation = "graphql";
Response traces = given().when()
- .queryParam("operation", operation)
+ .queryParam("operationName", operation)
.queryParam("lookback", "1h")
.queryParam("limit", 10)
.queryParam("service", "graphql-telemetry")
diff --git a/http/graphql-telemetry/src/test/java/io/quarkus/ts/http/graphql/telemetry/OpenShiftGraphQLTelemetryIT.java b/http/graphql-telemetry/src/test/java/io/quarkus/ts/http/graphql/telemetry/OpenShiftGraphQLTelemetryIT.java
new file mode 100644
index 000000000..8257a3db0
--- /dev/null
+++ b/http/graphql-telemetry/src/test/java/io/quarkus/ts/http/graphql/telemetry/OpenShiftGraphQLTelemetryIT.java
@@ -0,0 +1,8 @@
+package io.quarkus.ts.http.graphql.telemetry;
+
+import io.quarkus.test.scenarios.OpenShiftScenario;
+
+@OpenShiftScenario
+public class OpenShiftGraphQLTelemetryIT extends GraphQLTelemetryIT {
+
+}
diff --git a/http/graphql-telemetry/src/test/java/io/quarkus/ts/http/graphql/Utils.java b/http/graphql-telemetry/src/test/java/io/quarkus/ts/http/graphql/telemetry/Utils.java
similarity index 92%
rename from http/graphql-telemetry/src/test/java/io/quarkus/ts/http/graphql/Utils.java
rename to http/graphql-telemetry/src/test/java/io/quarkus/ts/http/graphql/telemetry/Utils.java
index 6f2ea473d..4201089d1 100644
--- a/http/graphql-telemetry/src/test/java/io/quarkus/ts/http/graphql/Utils.java
+++ b/http/graphql-telemetry/src/test/java/io/quarkus/ts/http/graphql/telemetry/Utils.java
@@ -1,4 +1,4 @@
-package io.quarkus.ts.http.graphql;
+package io.quarkus.ts.http.graphql.telemetry;
import static io.restassured.RestAssured.given;
diff --git a/http/graphql/src/test/java/io/quarkus/ts/http/graphql/TracingIT.java b/http/graphql/src/test/java/io/quarkus/ts/http/graphql/GraphQLTracingIT.java
similarity index 98%
rename from http/graphql/src/test/java/io/quarkus/ts/http/graphql/TracingIT.java
rename to http/graphql/src/test/java/io/quarkus/ts/http/graphql/GraphQLTracingIT.java
index ff1aef908..7e3e20907 100644
--- a/http/graphql/src/test/java/io/quarkus/ts/http/graphql/TracingIT.java
+++ b/http/graphql/src/test/java/io/quarkus/ts/http/graphql/GraphQLTracingIT.java
@@ -20,7 +20,7 @@
import io.restassured.response.Response;
@QuarkusScenario
-public class TracingIT {
+public class GraphQLTracingIT {
private static final String SERVICE_NAME = "graphql-service";
@JaegerContainer
diff --git a/http/graphql-telemetry/src/test/java/io/quarkus/ts/http/graphql/OpenShiftTelemetryIT.java b/http/graphql/src/test/java/io/quarkus/ts/http/graphql/OpenShiftGraphQLTracingIT.java
similarity index 62%
rename from http/graphql-telemetry/src/test/java/io/quarkus/ts/http/graphql/OpenShiftTelemetryIT.java
rename to http/graphql/src/test/java/io/quarkus/ts/http/graphql/OpenShiftGraphQLTracingIT.java
index 0e751c907..16c272fba 100644
--- a/http/graphql-telemetry/src/test/java/io/quarkus/ts/http/graphql/OpenShiftTelemetryIT.java
+++ b/http/graphql/src/test/java/io/quarkus/ts/http/graphql/OpenShiftGraphQLTracingIT.java
@@ -3,6 +3,6 @@
import io.quarkus.test.scenarios.OpenShiftScenario;
@OpenShiftScenario
-public class OpenShiftTelemetryIT extends TelemetryIT {
+public class OpenShiftGraphQLTracingIT extends GraphQLTracingIT {
}
diff --git a/http/graphql/src/test/java/io/quarkus/ts/http/graphql/OpenShiftTracingIT.java b/http/graphql/src/test/java/io/quarkus/ts/http/graphql/OpenShiftTracingIT.java
deleted file mode 100644
index b4ed4f780..000000000
--- a/http/graphql/src/test/java/io/quarkus/ts/http/graphql/OpenShiftTracingIT.java
+++ /dev/null
@@ -1,8 +0,0 @@
-package io.quarkus.ts.http.graphql;
-
-import io.quarkus.test.scenarios.OpenShiftScenario;
-
-@OpenShiftScenario
-public class OpenShiftTracingIT extends TracingIT {
-
-}
diff --git a/http/http-advanced-reactive/pom.xml b/http/http-advanced-reactive/pom.xml
index f662f6659..22b2d4fa8 100644
--- a/http/http-advanced-reactive/pom.xml
+++ b/http/http-advanced-reactive/pom.xml
@@ -66,6 +66,10 @@
com.squareup.okhttp3
okhttp
+
+ org.jboss.resteasy
+ resteasy-multipart-provider
+
diff --git a/http/http-advanced-reactive/src/main/java/io/quarkus/ts/http/advanced/reactive/Hello.java b/http/http-advanced-reactive/src/main/java/io/quarkus/ts/http/advanced/reactive/Hello.java
index 02ee3bbcb..e92a8d4d0 100644
--- a/http/http-advanced-reactive/src/main/java/io/quarkus/ts/http/advanced/reactive/Hello.java
+++ b/http/http-advanced-reactive/src/main/java/io/quarkus/ts/http/advanced/reactive/Hello.java
@@ -10,4 +10,5 @@ public Hello(String content) {
public String getContent() {
return content;
}
+
}
diff --git a/http/http-advanced-reactive/src/main/java/io/quarkus/ts/http/advanced/reactive/HelloAllResource.java b/http/http-advanced-reactive/src/main/java/io/quarkus/ts/http/advanced/reactive/HelloAllResource.java
new file mode 100644
index 000000000..7f9a4191c
--- /dev/null
+++ b/http/http-advanced-reactive/src/main/java/io/quarkus/ts/http/advanced/reactive/HelloAllResource.java
@@ -0,0 +1,26 @@
+package io.quarkus.ts.http.advanced.reactive;
+
+import static io.quarkus.ts.http.advanced.reactive.HelloResource.NAME;
+
+import javax.ws.rs.DefaultValue;
+import javax.ws.rs.GET;
+import javax.ws.rs.Path;
+import javax.ws.rs.Produces;
+import javax.ws.rs.QueryParam;
+import javax.ws.rs.core.MediaType;
+
+import io.smallrye.mutiny.Uni;
+
+@Path("/hello")
+public class HelloAllResource {
+ private static final String TEMPLATE = "Hello all, %s!";
+ public static final String ALL_ENDPOINT_PATH = "/all";
+
+ @Path(ALL_ENDPOINT_PATH)
+ @GET
+ @Produces(MediaType.APPLICATION_JSON)
+ public Uni get(@QueryParam(NAME) @DefaultValue("World") String name) {
+ return Uni.createFrom().item(new Hello(String.format(TEMPLATE, name)));
+ }
+
+}
diff --git a/http/http-advanced-reactive/src/main/java/io/quarkus/ts/http/advanced/reactive/HelloResource.java b/http/http-advanced-reactive/src/main/java/io/quarkus/ts/http/advanced/reactive/HelloResource.java
index ff3dd8b8a..2550878fd 100644
--- a/http/http-advanced-reactive/src/main/java/io/quarkus/ts/http/advanced/reactive/HelloResource.java
+++ b/http/http-advanced-reactive/src/main/java/io/quarkus/ts/http/advanced/reactive/HelloResource.java
@@ -11,11 +11,13 @@
@Path("/hello")
public class HelloResource {
+
private static final String TEMPLATE = "Hello, %s!";
+ public static final String NAME = "name";
@GET
@Produces(MediaType.APPLICATION_JSON)
- public Uni get(@QueryParam("name") @DefaultValue("World") String name) {
+ public Uni get(@QueryParam(NAME) @DefaultValue("World") String name) {
return Uni.createFrom().item(new Hello(String.format(TEMPLATE, name)));
}
}
diff --git a/http/http-advanced-reactive/src/main/java/io/quarkus/ts/http/advanced/reactive/MediaTypeResource.java b/http/http-advanced-reactive/src/main/java/io/quarkus/ts/http/advanced/reactive/MediaTypeResource.java
new file mode 100644
index 000000000..85bf16711
--- /dev/null
+++ b/http/http-advanced-reactive/src/main/java/io/quarkus/ts/http/advanced/reactive/MediaTypeResource.java
@@ -0,0 +1,68 @@
+package io.quarkus.ts.http.advanced.reactive;
+
+import static io.quarkus.ts.http.advanced.reactive.MediaTypeResource.MEDIA_TYPE_PATH;
+import static javax.ws.rs.core.HttpHeaders.ACCEPT_ENCODING;
+import static javax.ws.rs.core.HttpHeaders.ACCEPT_LANGUAGE;
+import static javax.ws.rs.core.MediaType.APPLICATION_JSON;
+import static javax.ws.rs.core.MediaType.APPLICATION_OCTET_STREAM;
+import static javax.ws.rs.core.MediaType.APPLICATION_XML;
+import static javax.ws.rs.core.MediaType.MULTIPART_FORM_DATA;
+import static javax.ws.rs.core.MediaType.TEXT_HTML;
+import static javax.ws.rs.core.MediaType.TEXT_PLAIN;
+
+import java.io.IOException;
+
+import javax.ws.rs.GET;
+import javax.ws.rs.Path;
+import javax.ws.rs.Produces;
+import javax.ws.rs.container.ContainerRequestContext;
+import javax.ws.rs.container.ContainerResponseContext;
+import javax.ws.rs.container.ContainerResponseFilter;
+import javax.ws.rs.core.HttpHeaders;
+import javax.ws.rs.core.Response;
+import javax.ws.rs.ext.Provider;
+
+import io.quarkus.vertx.web.RouteFilter;
+import io.vertx.ext.web.RoutingContext;
+
+@Path(MEDIA_TYPE_PATH)
+public class MediaTypeResource {
+
+ public static final String MEDIA_TYPE_PATH = "/media-type";
+ private static final String IMAGE_PNG = "image/png";
+ private static final String IMAGE_JPEG = "image/jpeg";
+ private static final String TEXT_CSS = "text/css";
+ private static final String TEXT_XML = "text/xml";
+ public static final String APPLICATION_YAML = "application/yaml";
+ public static final String ENGLISH = "en";
+ public static final String JAPANESE = "ja";
+ public static final String ANY_ENCODING = "*";
+
+ @Produces({ APPLICATION_JSON, APPLICATION_XML, TEXT_HTML, TEXT_PLAIN, APPLICATION_OCTET_STREAM,
+ MULTIPART_FORM_DATA, IMAGE_PNG, IMAGE_JPEG, APPLICATION_YAML, TEXT_CSS, TEXT_XML })
+ @GET
+ public Response getMediaType() {
+ return Response.ok(new MediaTypeWrapper()).build();
+ }
+
+ public static class ContentNegotiationRoutingFilter {
+ @RouteFilter
+ void addHeaders(final RoutingContext rc) {
+ rc.response().headers().add(HttpHeaders.VARY, ACCEPT_LANGUAGE);
+ rc.response().headers().add(ACCEPT_LANGUAGE, ENGLISH);
+ rc.next();
+ }
+ }
+
+ @Provider
+ public static class ContentNegotiationContainerResponseFilter implements
+ ContainerResponseFilter {
+ @Override
+ public void filter(final ContainerRequestContext requestContext, final ContainerResponseContext responseContext)
+ throws IOException {
+ responseContext.getHeaders().add(HttpHeaders.VARY, ACCEPT_ENCODING);
+ responseContext.getHeaders().add(ACCEPT_ENCODING, ANY_ENCODING);
+ responseContext.getHeaders().add(ACCEPT_LANGUAGE, JAPANESE);
+ }
+ }
+}
diff --git a/http/http-advanced-reactive/src/main/java/io/quarkus/ts/http/advanced/reactive/MediaTypeWrapper.java b/http/http-advanced-reactive/src/main/java/io/quarkus/ts/http/advanced/reactive/MediaTypeWrapper.java
new file mode 100644
index 000000000..8202c74d8
--- /dev/null
+++ b/http/http-advanced-reactive/src/main/java/io/quarkus/ts/http/advanced/reactive/MediaTypeWrapper.java
@@ -0,0 +1,19 @@
+package io.quarkus.ts.http.advanced.reactive;
+
+import javax.ws.rs.core.MediaType;
+
+import io.quarkus.runtime.annotations.RegisterForReflection;
+
+@RegisterForReflection
+public class MediaTypeWrapper {
+
+ private MediaType mediaType;
+
+ public MediaType getMediaType() {
+ return mediaType;
+ }
+
+ public void setMediaType(MediaType mediaType) {
+ this.mediaType = mediaType;
+ }
+}
diff --git a/http/http-advanced-reactive/src/main/java/io/quarkus/ts/http/advanced/reactive/MediaTypeWrapperSerializer.java b/http/http-advanced-reactive/src/main/java/io/quarkus/ts/http/advanced/reactive/MediaTypeWrapperSerializer.java
new file mode 100644
index 000000000..838e34bae
--- /dev/null
+++ b/http/http-advanced-reactive/src/main/java/io/quarkus/ts/http/advanced/reactive/MediaTypeWrapperSerializer.java
@@ -0,0 +1,33 @@
+package io.quarkus.ts.http.advanced.reactive;
+
+import java.io.IOException;
+import java.io.OutputStream;
+import java.lang.annotation.Annotation;
+import java.lang.reflect.Type;
+
+import javax.ws.rs.WebApplicationException;
+import javax.ws.rs.core.MediaType;
+import javax.ws.rs.core.MultivaluedMap;
+import javax.ws.rs.ext.MessageBodyWriter;
+import javax.ws.rs.ext.Provider;
+
+import com.fasterxml.jackson.databind.ObjectMapper;
+
+@Provider
+public class MediaTypeWrapperSerializer implements MessageBodyWriter {
+
+ @Override
+ public boolean isWriteable(Class> type, Type genericType, Annotation[] annotations,
+ MediaType mediaType) {
+ return type == MediaTypeWrapper.class;
+ }
+
+ @Override
+ public void writeTo(MediaTypeWrapper mediaTypeWrapper, Class> type,
+ Type genericType, Annotation[] annotations, MediaType mediaType,
+ MultivaluedMap httpHeaders, OutputStream entityStream)
+ throws IOException, WebApplicationException {
+ mediaTypeWrapper.setMediaType(mediaType);
+ entityStream.write(new ObjectMapper().writeValueAsBytes(mediaTypeWrapper));
+ }
+}
diff --git a/http/http-advanced-reactive/src/main/java/io/quarkus/ts/http/advanced/reactive/MultipartFormDataDTO.java b/http/http-advanced-reactive/src/main/java/io/quarkus/ts/http/advanced/reactive/MultipartFormDataDTO.java
new file mode 100644
index 000000000..51bf584e5
--- /dev/null
+++ b/http/http-advanced-reactive/src/main/java/io/quarkus/ts/http/advanced/reactive/MultipartFormDataDTO.java
@@ -0,0 +1,23 @@
+package io.quarkus.ts.http.advanced.reactive;
+
+import io.quarkus.runtime.annotations.RegisterForReflection;
+
+@RegisterForReflection
+public class MultipartFormDataDTO {
+
+ private final String text;
+ private final String file;
+
+ public MultipartFormDataDTO(String text, String file) {
+ this.text = text;
+ this.file = file;
+ }
+
+ public String getText() {
+ return text;
+ }
+
+ public String getFile() {
+ return file;
+ }
+}
diff --git a/http/http-advanced-reactive/src/main/java/io/quarkus/ts/http/advanced/reactive/MultipartResource.java b/http/http-advanced-reactive/src/main/java/io/quarkus/ts/http/advanced/reactive/MultipartResource.java
new file mode 100644
index 000000000..adfab42ac
--- /dev/null
+++ b/http/http-advanced-reactive/src/main/java/io/quarkus/ts/http/advanced/reactive/MultipartResource.java
@@ -0,0 +1,48 @@
+package io.quarkus.ts.http.advanced.reactive;
+
+import static io.quarkus.ts.http.advanced.reactive.MultipartResource.MULTIPART_FORM_PATH;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.nio.charset.StandardCharsets;
+
+import javax.ws.rs.Consumes;
+import javax.ws.rs.POST;
+import javax.ws.rs.Path;
+import javax.ws.rs.Produces;
+import javax.ws.rs.core.MediaType;
+import javax.ws.rs.core.Response;
+import javax.ws.rs.core.Response.Status;
+
+import org.apache.commons.io.IOUtils;
+import org.jboss.logging.Logger;
+import org.jboss.resteasy.plugins.providers.multipart.MultipartFormDataInput;
+
+@Path(MULTIPART_FORM_PATH)
+public class MultipartResource {
+
+ private static final Logger LOGGER = Logger.getLogger(MediaTypeResource.class);
+ public static final String TEXT = "text";
+ public static final String FILE = "file";
+ public static final String MULTIPART_FORM_PATH = "/multipart-form-data";
+
+ @POST
+ @Consumes(MediaType.MULTIPART_FORM_DATA)
+ @Produces(MediaType.APPLICATION_JSON)
+ public Response multipartFormData(final MultipartFormDataInput input) {
+ var inputPartText = input.getFormDataMap().get(TEXT).stream().findAny().orElse(null);
+ if (inputPartText != null) {
+ try {
+ String fileContent = IOUtils.toString(input.getFormDataPart(FILE, InputStream.class, null),
+ StandardCharsets.UTF_8);
+ String text = inputPartText.getBodyAsString();
+ return Response.ok(new MultipartFormDataDTO(text, fileContent)).build();
+ } catch (IOException e) {
+ LOGGER.errorf("Failed to retrieve form field value: %s", e.getMessage());
+ }
+ } else {
+ LOGGER.warnf("Multipart Form Data does not contain value of form field '%s'.", TEXT);
+ }
+ return Response.status(Status.BAD_REQUEST).build();
+ }
+}
diff --git a/http/http-advanced-reactive/src/main/java/io/quarkus/ts/http/advanced/reactive/MultipleResponseSerializersResource.java b/http/http-advanced-reactive/src/main/java/io/quarkus/ts/http/advanced/reactive/MultipleResponseSerializersResource.java
new file mode 100644
index 000000000..1b596d41a
--- /dev/null
+++ b/http/http-advanced-reactive/src/main/java/io/quarkus/ts/http/advanced/reactive/MultipleResponseSerializersResource.java
@@ -0,0 +1,106 @@
+package io.quarkus.ts.http.advanced.reactive;
+
+import static io.quarkus.ts.http.advanced.reactive.MultipleResponseSerializersResource.MULTIPLE_RESPONSE_SERIALIZERS_PATH;
+import static javax.ws.rs.core.MediaType.APPLICATION_JSON;
+import static javax.ws.rs.core.MediaType.APPLICATION_JSON_TYPE;
+import static javax.ws.rs.core.MediaType.APPLICATION_OCTET_STREAM;
+import static javax.ws.rs.core.MediaType.APPLICATION_OCTET_STREAM_TYPE;
+import static javax.ws.rs.core.MediaType.TEXT_HTML;
+import static javax.ws.rs.core.MediaType.TEXT_HTML_TYPE;
+import static javax.ws.rs.core.MediaType.TEXT_PLAIN;
+import static javax.ws.rs.core.MediaType.TEXT_PLAIN_TYPE;
+
+import java.io.IOException;
+import java.io.OutputStream;
+import java.lang.annotation.Annotation;
+import java.lang.reflect.Type;
+
+import javax.ws.rs.GET;
+import javax.ws.rs.Path;
+import javax.ws.rs.Produces;
+import javax.ws.rs.WebApplicationException;
+import javax.ws.rs.core.Context;
+import javax.ws.rs.core.MediaType;
+import javax.ws.rs.core.MultivaluedMap;
+import javax.ws.rs.core.Response;
+import javax.ws.rs.ext.MessageBodyWriter;
+import javax.ws.rs.ext.Provider;
+
+import io.vertx.core.http.HttpServerRequest;
+
+@Path(MULTIPLE_RESPONSE_SERIALIZERS_PATH)
+public class MultipleResponseSerializersResource {
+
+ public static final String MULTIPLE_RESPONSE_SERIALIZERS_PATH = "/multiple-response-serializers";
+
+ /**
+ * Response serializers are applied if request query param is true,
+ * e.g. /multiple-response-serializers?apply-response-serializer=true
+ */
+ public static final String APPLY_RESPONSE_SERIALIZER_PARAM_FLAG = "apply-response-serializer";
+
+ @GET
+ @Produces({ TEXT_HTML, APPLICATION_OCTET_STREAM, TEXT_PLAIN, APPLICATION_JSON })
+ public Response getMediaTypeAcceptedBySerializer() {
+ // Actual response is streamed by a response type serializer
+ return Response.ok("").build();
+ }
+
+ @Provider
+ public static class TextHtmlSerializer extends StringResponseSerializer {
+
+ protected TextHtmlSerializer() {
+ super(TEXT_HTML_TYPE);
+ }
+ }
+
+ @Provider
+ public static class ApplicationOctetStreamSerializer extends StringResponseSerializer {
+
+ protected ApplicationOctetStreamSerializer() {
+ super(APPLICATION_OCTET_STREAM_TYPE);
+ }
+ }
+
+ @Provider
+ public static class TextPlainSerializer extends StringResponseSerializer {
+
+ protected TextPlainSerializer() {
+ super(TEXT_PLAIN_TYPE);
+ }
+ }
+
+ @Provider
+ public static class ApplicationJsonSerializer extends StringResponseSerializer {
+
+ protected ApplicationJsonSerializer() {
+ super(APPLICATION_JSON_TYPE);
+ }
+ }
+
+ private static abstract class StringResponseSerializer implements MessageBodyWriter {
+
+ @Context
+ HttpServerRequest httpRequest;
+
+ private final MediaType acceptedMediaType;
+
+ protected StringResponseSerializer(MediaType acceptedMediaType) {
+ this.acceptedMediaType = acceptedMediaType;
+ }
+
+ @Override
+ public boolean isWriteable(Class> type, Type genericType, Annotation[] annotations, MediaType mediaType) {
+ return type.equals(String.class) && mediaType.isCompatible(acceptedMediaType)
+ // Prevent applying a serializer unintentionally
+ && Boolean.parseBoolean(httpRequest.getParam(APPLY_RESPONSE_SERIALIZER_PARAM_FLAG));
+ }
+
+ @Override
+ public void writeTo(String s, Class> type, Type genericType, Annotation[] annotations, MediaType mediaType,
+ MultivaluedMap httpHeaders, OutputStream entityStream)
+ throws IOException, WebApplicationException {
+ entityStream.write(acceptedMediaType.toString().getBytes());
+ }
+ }
+}
diff --git a/http/http-advanced-reactive/src/main/java/io/quarkus/ts/http/advanced/reactive/ReflectionConfiguration.java b/http/http-advanced-reactive/src/main/java/io/quarkus/ts/http/advanced/reactive/ReflectionConfiguration.java
new file mode 100644
index 000000000..a2e0a99a1
--- /dev/null
+++ b/http/http-advanced-reactive/src/main/java/io/quarkus/ts/http/advanced/reactive/ReflectionConfiguration.java
@@ -0,0 +1,8 @@
+package io.quarkus.ts.http.advanced.reactive;
+
+import io.quarkus.runtime.annotations.RegisterForReflection;
+
+@RegisterForReflection(classNames = "javax.ws.rs.core.MediaType")
+public class ReflectionConfiguration {
+
+}
diff --git a/http/http-advanced-reactive/src/main/resources/application.properties b/http/http-advanced-reactive/src/main/resources/application.properties
index fd12abf41..b3629540d 100644
--- a/http/http-advanced-reactive/src/main/resources/application.properties
+++ b/http/http-advanced-reactive/src/main/resources/application.properties
@@ -43,6 +43,14 @@ 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
+quarkus.keycloak.policy-enforcer.paths.multiple-response-serializers.path=/api/multiple-response-serializers/*
+quarkus.keycloak.policy-enforcer.paths.multiple-response-serializers.enforcement-mode=DISABLED
+quarkus.keycloak.policy-enforcer.paths.media-type.path=/api/media-type
+quarkus.keycloak.policy-enforcer.paths.media-type.enforcement-mode=DISABLED
+quarkus.keycloak.policy-enforcer.paths.multipart-form-data.path=/api/multipart-form-data
+quarkus.keycloak.policy-enforcer.paths.multipart-form-data.enforcement-mode=DISABLED
quarkus.keycloak.policy-enforcer.paths.hello.path=/api/hello/*
quarkus.keycloak.policy-enforcer.paths.hello.enforcement-mode=DISABLED
quarkus.keycloak.policy-enforcer.paths.grpc.path=/api/grpc/*
@@ -53,4 +61,8 @@ quarkus.oidc.credentials.secret=test-application-client-secret
quarkus.oidc.token.lifespan-grace=60
# Disable PremierLeagueContainerRequestFilter unless it should be applied
-pl-container-request-filter.enabled=false
\ No newline at end of file
+pl-container-request-filter.enabled=false
+
+# Register MultipartFormDataReader as provider (used by io.quarkus.ts.http.advanced.reactive.MultipartResource.multipartFormData)
+quarkus.index-dependency.resteasy-multipart.group-id=org.jboss.resteasy
+quarkus.index-dependency.resteasy-multipart.artifact-id=resteasy-multipart-provider
diff --git a/http/http-advanced-reactive/src/test/java/io/quarkus/ts/http/advanced/reactive/HttpAdvancedReactiveIT.java b/http/http-advanced-reactive/src/test/java/io/quarkus/ts/http/advanced/reactive/HttpAdvancedReactiveIT.java
index 7408dede2..1c368031d 100644
--- a/http/http-advanced-reactive/src/test/java/io/quarkus/ts/http/advanced/reactive/HttpAdvancedReactiveIT.java
+++ b/http/http-advanced-reactive/src/test/java/io/quarkus/ts/http/advanced/reactive/HttpAdvancedReactiveIT.java
@@ -1,10 +1,35 @@
package io.quarkus.ts.http.advanced.reactive;
+import static com.gargoylesoftware.htmlunit.util.MimeType.IMAGE_JPEG;
+import static com.gargoylesoftware.htmlunit.util.MimeType.IMAGE_PNG;
+import static com.gargoylesoftware.htmlunit.util.MimeType.TEXT_CSS;
+import static io.quarkus.ts.http.advanced.reactive.MediaTypeResource.ANY_ENCODING;
+import static io.quarkus.ts.http.advanced.reactive.MediaTypeResource.APPLICATION_YAML;
+import static io.quarkus.ts.http.advanced.reactive.MediaTypeResource.ENGLISH;
+import static io.quarkus.ts.http.advanced.reactive.MediaTypeResource.JAPANESE;
+import static io.quarkus.ts.http.advanced.reactive.MediaTypeResource.MEDIA_TYPE_PATH;
+import static io.quarkus.ts.http.advanced.reactive.MultipartResource.FILE;
+import static io.quarkus.ts.http.advanced.reactive.MultipartResource.MULTIPART_FORM_PATH;
+import static io.quarkus.ts.http.advanced.reactive.MultipartResource.TEXT;
+import static io.quarkus.ts.http.advanced.reactive.MultipleResponseSerializersResource.APPLY_RESPONSE_SERIALIZER_PARAM_FLAG;
+import static io.quarkus.ts.http.advanced.reactive.MultipleResponseSerializersResource.MULTIPLE_RESPONSE_SERIALIZERS_PATH;
+import static javax.ws.rs.core.MediaType.APPLICATION_JSON;
+import static javax.ws.rs.core.MediaType.APPLICATION_OCTET_STREAM;
+import static javax.ws.rs.core.MediaType.APPLICATION_XML;
+import static javax.ws.rs.core.MediaType.MULTIPART_FORM_DATA;
+import static javax.ws.rs.core.MediaType.TEXT_HTML;
+import static javax.ws.rs.core.MediaType.TEXT_PLAIN;
+import static javax.ws.rs.core.MediaType.TEXT_XML;
+import static org.apache.http.HttpHeaders.ACCEPT_ENCODING;
+import static org.apache.http.HttpHeaders.ACCEPT_LANGUAGE;
+import static org.apache.http.HttpHeaders.CONTENT_TYPE;
+import static org.apache.http.HttpStatus.SC_OK;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.Matchers.containsString;
import static org.hamcrest.Matchers.equalTo;
import static org.hamcrest.Matchers.in;
import static org.hamcrest.Matchers.is;
+import static org.hamcrest.Matchers.notNullValue;
import static org.junit.jupiter.api.Assertions.assertEquals;
import java.net.URISyntaxException;
@@ -16,9 +41,11 @@
import java.util.concurrent.CountDownLatch;
import java.util.concurrent.TimeUnit;
+import javax.ws.rs.core.HttpHeaders;
import javax.ws.rs.core.Response;
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.Test;
@@ -27,6 +54,7 @@
import io.quarkus.test.bootstrap.Protocol;
import io.quarkus.test.bootstrap.RestService;
import io.quarkus.test.scenarios.QuarkusScenario;
+import io.quarkus.test.scenarios.annotations.DisabledOnQuarkusVersion;
import io.quarkus.test.scenarios.annotations.EnabledOnQuarkusVersion;
import io.quarkus.test.services.Container;
import io.quarkus.test.services.QuarkusApplication;
@@ -34,6 +62,7 @@
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.smallrye.mutiny.Uni;
import io.vertx.core.http.HttpVersion;
import io.vertx.core.json.JsonObject;
@@ -48,12 +77,15 @@ public class HttpAdvancedReactiveIT {
private static final String REALM_DEFAULT = "test-realm";
private static final String ROOT_PATH = "/api";
+ private static final String HELLO_ENDPOINT = ROOT_PATH + "/hello";
private static final int TIMEOUT_SEC = 3;
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 KEYCLOAK_PORT = 8080;
private static final int ASSERT_TIMEOUT_SECONDS = 10;
+ private static final String UTF_8_CHARSET = ";charset=UTF-8";
+ private static final String CONTENT = "content";
//TODO Remove workaround after Keycloak is fixed https://github.com/keycloak/keycloak/issues/9916
@Container(image = "${keycloak.image}", expectedLog = "Admin console listening", port = KEYCLOAK_PORT)
@@ -67,15 +99,15 @@ public class HttpAdvancedReactiveIT {
@Test
@DisplayName("Http/1.1 Server test")
public void httpServer() {
- app.given().get("/api/hello")
- .then().statusLine("HTTP/1.1 200 OK").statusCode(HttpStatus.SC_OK)
+ app.given().get(HELLO_ENDPOINT)
+ .then().statusLine("HTTP/1.1 200 OK").statusCode(SC_OK)
.body("content", is("Hello, World!"));
}
@Test
@DisplayName("GRPC Server test")
public void testGrpc() {
- app.given().when().get("/api/grpc/trinity").then().statusCode(HttpStatus.SC_OK).body(is("Hello trinity"));
+ app.given().when().get("/api/grpc/trinity").then().statusCode(SC_OK).body(is("Hello trinity"));
}
@Test
@@ -107,7 +139,7 @@ public void http2ClientSync() throws Exception {
.build(HttpVersionClientService.class);
Response resp = versionHttpClient.getClientHttpVersion();
- assertEquals(HttpStatus.SC_OK, resp.getStatus());
+ assertEquals(SC_OK, resp.getStatus());
assertEquals(HttpVersion.HTTP_2.name(), resp.getHeaderString(HttpClientVersionResource.HTTP_VERSION));
}
@@ -121,7 +153,7 @@ public void http2ClientAsync() throws Exception {
Response resp = clientServiceAsync.getClientHttpVersion().await().atMost(Duration.ofSeconds(ASSERT_TIMEOUT_SECONDS));
- assertEquals(HttpStatus.SC_OK, resp.getStatus());
+ assertEquals(SC_OK, resp.getStatus());
assertEquals(HttpVersion.HTTP_2.name(), resp.getHeaderString(HttpClientVersionResource.HTTP_VERSION));
}
@@ -139,7 +171,7 @@ public void nonAppRedirections() {
.and().header("Location", containsString("/q" + endpoint));
app.given().get(ROOT_PATH + endpoint)
- .then().statusCode(in(Arrays.asList(HttpStatus.SC_OK, HttpStatus.SC_NO_CONTENT)));
+ .then().statusCode(in(Arrays.asList(SC_OK, HttpStatus.SC_NO_CONTENT)));
}
}
@@ -150,7 +182,7 @@ public void microprofileHttpClientRedirection() throws Exception {
.withHostVerified(true).withPassword(PASSWORD).withKeyStorePath(KEY_STORE_PATH)
.build(HealthClientService.class);
- assertThat(HttpStatus.SC_OK, equalTo(healthHttpClient.health().getStatus()));
+ assertThat(SC_OK, equalTo(healthHttpClient.health().getStatus()));
}
@Test
@@ -163,7 +195,7 @@ public void vertxHttpClientRedirection() throws InterruptedException, URISyntaxE
.after(Duration.ofSeconds(TIMEOUT_SEC)).fail().onFailure().retry().atMost(RETRY);
statusCode.subscribe().with(httpStatusCode -> {
- assertEquals(HttpStatus.SC_OK, httpStatusCode);
+ assertEquals(SC_OK, httpStatusCode);
done.countDown();
});
@@ -171,6 +203,117 @@ public void vertxHttpClientRedirection() throws InterruptedException, URISyntaxE
assertThat(done.getCount(), equalTo(0L));
}
+ @DisplayName("RESTEasy Reactive Multipart Provider test")
+ @Test
+ public void multipartFormDataReader() {
+ app.given()
+ .multiPart(FILE, Paths.get("src", "test", "resources", "file.txt").toFile())
+ .formParam(TEXT, TEXT)
+ .post(ROOT_PATH + MULTIPART_FORM_PATH)
+ .then().statusCode(SC_OK)
+ .body(FILE, is("File content"))
+ .body(TEXT, is(TEXT));
+ }
+
+ @DisabledOnQuarkusVersion(version = "(2\\.[0-8]\\..*)|(2\\.9\\.[0-1]\\..*)", reason = "Fixed in Quarkus 2.9.2.Final")
+ @DisplayName("JAX-RS RouterFilter and Vert.x Web Routes integration")
+ @Test
+ public void multipleResponseFilter() {
+ // test headers from both filters are present, that is useful content negotiation
+ // scenario -> server side should be able to set multiple VARY response headers
+ // so browser can identify when to serve cached response and when to send request to a server side
+ var headers = app.given().get(ROOT_PATH + MEDIA_TYPE_PATH).headers().asList();
+ assertHasHeaderWithValue(HttpHeaders.ACCEPT_LANGUAGE, ENGLISH, headers);
+ assertHasHeaderWithValue(HttpHeaders.ACCEPT_LANGUAGE, JAPANESE, headers);
+ assertHasHeaderWithValue(HttpHeaders.ACCEPT_ENCODING, ANY_ENCODING, headers);
+ assertHasHeaderWithValue(HttpHeaders.VARY, ACCEPT_ENCODING, headers);
+ assertHasHeaderWithValue(HttpHeaders.VARY, ACCEPT_LANGUAGE, headers);
+ }
+
+ @DisplayName("Several Resources share same base path test")
+ @Test
+ public void severalResourcesSameBasePath() {
+ // following endpoints are placed in 2 different Resources with the same base path
+ app.given().get(HELLO_ENDPOINT).then().body(CONTENT, is("Hello, World!"));
+ app.given().get(HELLO_ENDPOINT + HelloAllResource.ALL_ENDPOINT_PATH).then().body(CONTENT, is("Hello all, World!"));
+ }
+
+ private void assertHasHeaderWithValue(String headerName, String headerValue, List headers) {
+ Assertions.assertTrue(
+ headers
+ .stream()
+ .filter(h -> h.getName().equals(headerName))
+ .map(Header::getValue)
+ .anyMatch(headerValue::equals));
+ }
+
+ @DisabledOnQuarkusVersion(version = "(2\\.[0-6]\\..*)|(2\\.7\\.[0-5]\\..*)|(2\\.8\\.[0-2]\\..*)", reason = "Fixed in Quarkus 2.8.3.Final. and backported to 2.7.6.Final")
+ @DisplayName("JAX-RS MessageBodyWriter test")
+ @Test
+ public void messageBodyWriter() {
+ // test MediaType is passed to MessageBodyWriter correctly
+ String mediaTypeProperty = "mediaType";
+ app
+ .given()
+ .get(ROOT_PATH + MEDIA_TYPE_PATH)
+ .then()
+ .statusCode(SC_OK)
+ .body(mediaTypeProperty, notNullValue())
+ .body(mediaTypeProperty + ".type", is("application"))
+ .body(mediaTypeProperty + ".subtype", is("json"));
+ }
+
+ @DisabledOnQuarkusVersion(version = "(2\\.[0-8]\\..*)|(2\\.9\\.0\\..*)", reason = "Fixed in Quarkus 2.9.1.Final")
+ @DisplayName("JAX-RS Response Content type test")
+ @Test
+ public void responseContentType() {
+ testResponseContentType(APPLICATION_JSON, APPLICATION_JSON + UTF_8_CHARSET);
+ testResponseContentType(APPLICATION_XML, APPLICATION_XML + UTF_8_CHARSET);
+ testResponseContentType(APPLICATION_YAML, APPLICATION_YAML + UTF_8_CHARSET);
+ testResponseContentType(TEXT_HTML, TEXT_HTML + UTF_8_CHARSET);
+ testResponseContentType(TEXT_PLAIN, TEXT_PLAIN + UTF_8_CHARSET);
+ testResponseContentType(TEXT_CSS, TEXT_CSS + UTF_8_CHARSET);
+ testResponseContentType(TEXT_XML, TEXT_XML + UTF_8_CHARSET);
+ testResponseContentType(APPLICATION_OCTET_STREAM, APPLICATION_OCTET_STREAM);
+ testResponseContentType(MULTIPART_FORM_DATA, MULTIPART_FORM_DATA);
+ testResponseContentType(IMAGE_PNG, IMAGE_PNG);
+ testResponseContentType(IMAGE_JPEG, IMAGE_JPEG);
+ }
+
+ @DisabledOnQuarkusVersion(version = "(2\\.[0-6]\\..*)|(2\\.7\\.[0-5]\\..*)|(2\\.8\\.0\\..*)", reason = "Fixed in Quarkus 2.8.1 and backported to 2.7.6.")
+ @Test
+ public void testMediaTypePassedToMessageBodyWriter() {
+ // Accepted Media Type must be passed to 'MessageBodyWriter'
+ // 'MessageBodyWriter' then returns passed Media Type for a verification
+ assertAcceptedMediaTypeEqualsResponseBody(APPLICATION_JSON);
+ assertAcceptedMediaTypeEqualsResponseBody(TEXT_HTML);
+ assertAcceptedMediaTypeEqualsResponseBody(TEXT_PLAIN);
+ assertAcceptedMediaTypeEqualsResponseBody(APPLICATION_OCTET_STREAM);
+ }
+
+ private void assertAcceptedMediaTypeEqualsResponseBody(String acceptedMediaType) {
+ app
+ .given()
+ .accept(acceptedMediaType)
+ .queryParam(APPLY_RESPONSE_SERIALIZER_PARAM_FLAG, Boolean.TRUE)
+ .get(ROOT_PATH + MULTIPLE_RESPONSE_SERIALIZERS_PATH)
+ .then()
+ .body(is(acceptedMediaType));
+ }
+
+ private void testResponseContentType(String acceptedContentType, String expectedContentType) {
+ app.given()
+ .accept(acceptedContentType)
+ .get(ROOT_PATH + MEDIA_TYPE_PATH)
+ .then().header(CONTENT_TYPE, expectedContentType);
+ }
+
+ // private ValidatableResponse req99BottlesOfBeer(int bottleNumber, int httpStatusCode) {
+ // return app.given()
+ // .get(ROOT_PATH + NinetyNineBottlesOfBeerResource.PATH + "/" + bottleNumber)
+ // .then().statusCode(httpStatusCode);
+ // }
+
protected Protocol getProtocol() {
return Protocol.HTTPS;
}
diff --git a/http/http-advanced-reactive/src/test/resources/file.txt b/http/http-advanced-reactive/src/test/resources/file.txt
new file mode 100644
index 000000000..724c66831
--- /dev/null
+++ b/http/http-advanced-reactive/src/test/resources/file.txt
@@ -0,0 +1 @@
+File content
\ No newline at end of file
diff --git a/http/http-advanced/pom.xml b/http/http-advanced/pom.xml
index 7771b2db4..bc74bfd80 100644
--- a/http/http-advanced/pom.xml
+++ b/http/http-advanced/pom.xml
@@ -55,6 +55,16 @@
io.quarkus
quarkus-keycloak-authorization
+
+ io.netty
+ netty-transport-native-epoll
+ linux-x86_64
+
+
+ io.netty
+ netty-transport-native-kqueue
+ osx-x86_64
+
io.quarkus.qe
quarkus-test-service-keycloak
diff --git a/http/http-advanced/src/test/java/io/quarkus/ts/http/advanced/DomainSocketIT.java b/http/http-advanced/src/test/java/io/quarkus/ts/http/advanced/DomainSocketIT.java
new file mode 100644
index 000000000..debc7a860
--- /dev/null
+++ b/http/http-advanced/src/test/java/io/quarkus/ts/http/advanced/DomainSocketIT.java
@@ -0,0 +1,77 @@
+package io.quarkus.ts.http.advanced;
+
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertTrue;
+
+import java.util.concurrent.CountDownLatch;
+import java.util.concurrent.TimeUnit;
+
+import org.junit.jupiter.api.Tag;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.condition.DisabledIfSystemProperty;
+import org.junit.jupiter.api.condition.DisabledOnOs;
+import org.junit.jupiter.api.condition.OS;
+
+import io.quarkus.test.bootstrap.RestService;
+import io.quarkus.test.scenarios.QuarkusScenario;
+import io.quarkus.test.services.QuarkusApplication;
+import io.vertx.core.Vertx;
+import io.vertx.core.VertxOptions;
+import io.vertx.core.http.HttpMethod;
+import io.vertx.core.json.JsonObject;
+import io.vertx.core.net.SocketAddress;
+import io.vertx.ext.web.client.WebClient;
+import io.vertx.ext.web.client.WebClientOptions;
+import io.vertx.ext.web.client.predicate.ResponsePredicate;
+import io.vertx.ext.web.codec.BodyCodec;
+
+@QuarkusScenario
+@Tag("https://github.com/quarkusio/quarkus/issues/24739")
+@DisabledOnOs(value = OS.WINDOWS, disabledReason = "Netty Native Transport not supported on Windows, see https://quarkus.io/guides/vertx-reference#native-transport")
+@DisabledIfSystemProperty(named = "profile.id", matches = "native", disabledReason = "Only for JVM mode, error in native mode - https://github.com/quarkusio/quarkus/issues/25928")
+public class DomainSocketIT {
+
+ @QuarkusApplication
+ static RestService app = new RestService()
+ .withProperty("quarkus.oidc.enabled", "false")
+ .withProperty("quarkus.http.host-enabled", "false")
+ .withProperty("quarkus.http.domain-socket", "/tmp/io.quarkus.app.socket")
+ .withProperty("quarkus.http.domain-socket-enabled", "true")
+ .withProperty("quarkus.vertx.prefer-native-transport", "true");
+
+ @Test
+ public void ensureApplicationStartsWithDomainSocketConfigured() {
+ assertTrue(app.isRunning(), "Application should start with domain socket configured");
+ app.logs().assertContains("Listening on: unix:/tmp/io.quarkus.app.socket");
+ }
+
+ @Test
+ public void ensureApplicationProvidesContent() throws InterruptedException {
+ Vertx vertx = Vertx.vertx(new VertxOptions().setPreferNativeTransport(true));
+ WebClient client = WebClient.create(vertx, new WebClientOptions().setFollowRedirects(false));
+ SocketAddress serverAddress = SocketAddress.domainSocketAddress("/tmp/io.quarkus.app.socket");
+
+ JsonObject result = new JsonObject();
+ CountDownLatch errors = new CountDownLatch(1);
+ client
+ .request(
+ HttpMethod.GET,
+ serverAddress,
+ 8080,
+ "localhost",
+ "/api/hello")
+ .expect(ResponsePredicate.SC_OK)
+ .as(BodyCodec.jsonObject())
+ .send()
+ .onSuccess(res -> {
+ result.put("body", res.body().toString());
+ errors.countDown();
+ })
+ .onFailure(err -> result.put("fail", err.getMessage()));
+
+ errors.await(3, TimeUnit.SECONDS);
+
+ assertEquals(0, errors.getCount(), "Something went wrong with the request: " + result.getString("fail"));
+ assertEquals("{\"content\":\"Hello, World!\"}", result.getString("body"), "Received body is different");
+ }
+}
diff --git a/http/http-minimum-reactive/src/test/java/io/quarkus/ts/http/minimum/reactive/HttpCustomHeadersIT.java b/http/http-minimum-reactive/src/test/java/io/quarkus/ts/http/minimum/reactive/HttpCustomHeadersIT.java
index 9ab7e6a5a..93bd675ce 100644
--- a/http/http-minimum-reactive/src/test/java/io/quarkus/ts/http/minimum/reactive/HttpCustomHeadersIT.java
+++ b/http/http-minimum-reactive/src/test/java/io/quarkus/ts/http/minimum/reactive/HttpCustomHeadersIT.java
@@ -1,6 +1,7 @@
package io.quarkus.ts.http.minimum.reactive;
import static io.restassured.RestAssured.given;
+import static org.hamcrest.CoreMatchers.containsString;
import static org.hamcrest.CoreMatchers.is;
import javax.ws.rs.core.MediaType;
@@ -40,6 +41,6 @@ public void getContentType(String contentType) {
.then()
.statusCode(HttpStatus.SC_OK)
.body("content", is("hello"))
- .contentType(is(MediaType.APPLICATION_JSON));
+ .contentType(containsString(MediaType.APPLICATION_JSON));
}
}
diff --git a/http/http-static/src/test/java/io/quarkus/ts/http/GenerateLargeFile.java b/http/http-static/src/test/java/io/quarkus/ts/httpstatic/GenerateLargeFile.java
similarity index 100%
rename from http/http-static/src/test/java/io/quarkus/ts/http/GenerateLargeFile.java
rename to http/http-static/src/test/java/io/quarkus/ts/httpstatic/GenerateLargeFile.java
diff --git a/http/http-static/src/test/java/io/quarkus/ts/http/LargeStaticResourceIT.java b/http/http-static/src/test/java/io/quarkus/ts/httpstatic/LargeStaticResourceIT.java
similarity index 100%
rename from http/http-static/src/test/java/io/quarkus/ts/http/LargeStaticResourceIT.java
rename to http/http-static/src/test/java/io/quarkus/ts/httpstatic/LargeStaticResourceIT.java
diff --git a/http/jaxrs-reactive/src/main/java/io/quarkus/ts/jaxrs/reactive/ExecutionModelResource.java b/http/jaxrs-reactive/src/main/java/io/quarkus/ts/http/jaxrs/reactive/ExecutionModelResource.java
similarity index 96%
rename from http/jaxrs-reactive/src/main/java/io/quarkus/ts/jaxrs/reactive/ExecutionModelResource.java
rename to http/jaxrs-reactive/src/main/java/io/quarkus/ts/http/jaxrs/reactive/ExecutionModelResource.java
index b83f6d5ce..6d9039ff8 100644
--- a/http/jaxrs-reactive/src/main/java/io/quarkus/ts/jaxrs/reactive/ExecutionModelResource.java
+++ b/http/jaxrs-reactive/src/main/java/io/quarkus/ts/http/jaxrs/reactive/ExecutionModelResource.java
@@ -1,4 +1,4 @@
-package io.quarkus.ts.jaxrs.reactive;
+package io.quarkus.ts.http.jaxrs.reactive;
import java.util.concurrent.CompletableFuture;
import java.util.concurrent.CompletionStage;
diff --git a/http/jaxrs-reactive/src/main/java/io/quarkus/ts/jaxrs/reactive/HttpCachingResource.java b/http/jaxrs-reactive/src/main/java/io/quarkus/ts/http/jaxrs/reactive/HttpCachingResource.java
similarity index 95%
rename from http/jaxrs-reactive/src/main/java/io/quarkus/ts/jaxrs/reactive/HttpCachingResource.java
rename to http/jaxrs-reactive/src/main/java/io/quarkus/ts/http/jaxrs/reactive/HttpCachingResource.java
index 98645bcf7..a828f1fe7 100644
--- a/http/jaxrs-reactive/src/main/java/io/quarkus/ts/jaxrs/reactive/HttpCachingResource.java
+++ b/http/jaxrs-reactive/src/main/java/io/quarkus/ts/http/jaxrs/reactive/HttpCachingResource.java
@@ -1,4 +1,4 @@
-package io.quarkus.ts.jaxrs.reactive;
+package io.quarkus.ts.http.jaxrs.reactive;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
diff --git a/http/jaxrs-reactive/src/main/java/io/quarkus/ts/jaxrs/reactive/MultipartBody.java b/http/jaxrs-reactive/src/main/java/io/quarkus/ts/http/jaxrs/reactive/MultipartBody.java
similarity index 90%
rename from http/jaxrs-reactive/src/main/java/io/quarkus/ts/jaxrs/reactive/MultipartBody.java
rename to http/jaxrs-reactive/src/main/java/io/quarkus/ts/http/jaxrs/reactive/MultipartBody.java
index 45e793669..0a2dbd75e 100644
--- a/http/jaxrs-reactive/src/main/java/io/quarkus/ts/jaxrs/reactive/MultipartBody.java
+++ b/http/jaxrs-reactive/src/main/java/io/quarkus/ts/http/jaxrs/reactive/MultipartBody.java
@@ -1,4 +1,4 @@
-package io.quarkus.ts.jaxrs.reactive;
+package io.quarkus.ts.http.jaxrs.reactive;
import java.io.File;
diff --git a/http/jaxrs-reactive/src/main/java/io/quarkus/ts/jaxrs/reactive/MultipartResource.java b/http/jaxrs-reactive/src/main/java/io/quarkus/ts/http/jaxrs/reactive/MultipartResource.java
similarity index 97%
rename from http/jaxrs-reactive/src/main/java/io/quarkus/ts/jaxrs/reactive/MultipartResource.java
rename to http/jaxrs-reactive/src/main/java/io/quarkus/ts/http/jaxrs/reactive/MultipartResource.java
index b68b5628d..9ed397e1e 100644
--- a/http/jaxrs-reactive/src/main/java/io/quarkus/ts/jaxrs/reactive/MultipartResource.java
+++ b/http/jaxrs-reactive/src/main/java/io/quarkus/ts/http/jaxrs/reactive/MultipartResource.java
@@ -1,4 +1,4 @@
-package io.quarkus.ts.jaxrs.reactive;
+package io.quarkus.ts.http.jaxrs.reactive;
import java.io.IOException;
diff --git a/http/jaxrs-reactive/src/main/java/io/quarkus/ts/jaxrs/reactive/client/ClientMultipartBody.java b/http/jaxrs-reactive/src/main/java/io/quarkus/ts/http/jaxrs/reactive/client/ClientMultipartBody.java
similarity index 84%
rename from http/jaxrs-reactive/src/main/java/io/quarkus/ts/jaxrs/reactive/client/ClientMultipartBody.java
rename to http/jaxrs-reactive/src/main/java/io/quarkus/ts/http/jaxrs/reactive/client/ClientMultipartBody.java
index f4afae8b2..33626e22c 100644
--- a/http/jaxrs-reactive/src/main/java/io/quarkus/ts/jaxrs/reactive/client/ClientMultipartBody.java
+++ b/http/jaxrs-reactive/src/main/java/io/quarkus/ts/http/jaxrs/reactive/client/ClientMultipartBody.java
@@ -1,4 +1,4 @@
-package io.quarkus.ts.jaxrs.reactive.client;
+package io.quarkus.ts.http.jaxrs.reactive.client;
import javax.ws.rs.core.MediaType;
diff --git a/http/jaxrs-reactive/src/main/java/io/quarkus/ts/jaxrs/reactive/client/MultipartClientResource.java b/http/jaxrs-reactive/src/main/java/io/quarkus/ts/http/jaxrs/reactive/client/MultipartClientResource.java
similarity index 93%
rename from http/jaxrs-reactive/src/main/java/io/quarkus/ts/jaxrs/reactive/client/MultipartClientResource.java
rename to http/jaxrs-reactive/src/main/java/io/quarkus/ts/http/jaxrs/reactive/client/MultipartClientResource.java
index 8281b163d..9c0a35586 100644
--- a/http/jaxrs-reactive/src/main/java/io/quarkus/ts/jaxrs/reactive/client/MultipartClientResource.java
+++ b/http/jaxrs-reactive/src/main/java/io/quarkus/ts/http/jaxrs/reactive/client/MultipartClientResource.java
@@ -1,4 +1,4 @@
-package io.quarkus.ts.jaxrs.reactive.client;
+package io.quarkus.ts.http.jaxrs.reactive.client;
import javax.inject.Inject;
import javax.ws.rs.POST;
diff --git a/http/jaxrs-reactive/src/main/java/io/quarkus/ts/jaxrs/reactive/client/MultipartService.java b/http/jaxrs-reactive/src/main/java/io/quarkus/ts/http/jaxrs/reactive/client/MultipartService.java
similarity index 91%
rename from http/jaxrs-reactive/src/main/java/io/quarkus/ts/jaxrs/reactive/client/MultipartService.java
rename to http/jaxrs-reactive/src/main/java/io/quarkus/ts/http/jaxrs/reactive/client/MultipartService.java
index 17f609326..92a438cc5 100644
--- a/http/jaxrs-reactive/src/main/java/io/quarkus/ts/jaxrs/reactive/client/MultipartService.java
+++ b/http/jaxrs-reactive/src/main/java/io/quarkus/ts/http/jaxrs/reactive/client/MultipartService.java
@@ -1,4 +1,4 @@
-package io.quarkus.ts.jaxrs.reactive.client;
+package io.quarkus.ts.http.jaxrs.reactive.client;
import javax.ws.rs.Consumes;
import javax.ws.rs.POST;
diff --git a/http/jaxrs-reactive/src/main/java/io/quarkus/ts/jaxrs/reactive/client/PojoData.java b/http/jaxrs-reactive/src/main/java/io/quarkus/ts/http/jaxrs/reactive/client/PojoData.java
similarity index 76%
rename from http/jaxrs-reactive/src/main/java/io/quarkus/ts/jaxrs/reactive/client/PojoData.java
rename to http/jaxrs-reactive/src/main/java/io/quarkus/ts/http/jaxrs/reactive/client/PojoData.java
index 7307f3429..c6c97a2e5 100644
--- a/http/jaxrs-reactive/src/main/java/io/quarkus/ts/jaxrs/reactive/client/PojoData.java
+++ b/http/jaxrs-reactive/src/main/java/io/quarkus/ts/http/jaxrs/reactive/client/PojoData.java
@@ -1,4 +1,4 @@
-package io.quarkus.ts.jaxrs.reactive.client;
+package io.quarkus.ts.http.jaxrs.reactive.client;
import io.quarkus.runtime.annotations.RegisterForReflection;
diff --git a/http/jaxrs-reactive/src/main/java/io/quarkus/ts/jaxrs/reactive/json/JsonResource.java b/http/jaxrs-reactive/src/main/java/io/quarkus/ts/http/jaxrs/reactive/json/JsonResource.java
similarity index 94%
rename from http/jaxrs-reactive/src/main/java/io/quarkus/ts/jaxrs/reactive/json/JsonResource.java
rename to http/jaxrs-reactive/src/main/java/io/quarkus/ts/http/jaxrs/reactive/json/JsonResource.java
index 2c7d29821..5fca4c900 100644
--- a/http/jaxrs-reactive/src/main/java/io/quarkus/ts/jaxrs/reactive/json/JsonResource.java
+++ b/http/jaxrs-reactive/src/main/java/io/quarkus/ts/http/jaxrs/reactive/json/JsonResource.java
@@ -1,4 +1,4 @@
-package io.quarkus.ts.jaxrs.reactive.json;
+package io.quarkus.ts.http.jaxrs.reactive.json;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
diff --git a/http/jaxrs-reactive/src/main/java/io/quarkus/ts/jaxrs/reactive/json/UnquotedFields.java b/http/jaxrs-reactive/src/main/java/io/quarkus/ts/http/jaxrs/reactive/json/UnquotedFields.java
similarity index 91%
rename from http/jaxrs-reactive/src/main/java/io/quarkus/ts/jaxrs/reactive/json/UnquotedFields.java
rename to http/jaxrs-reactive/src/main/java/io/quarkus/ts/http/jaxrs/reactive/json/UnquotedFields.java
index 155b2c6a7..1c123f5da 100644
--- a/http/jaxrs-reactive/src/main/java/io/quarkus/ts/jaxrs/reactive/json/UnquotedFields.java
+++ b/http/jaxrs-reactive/src/main/java/io/quarkus/ts/http/jaxrs/reactive/json/UnquotedFields.java
@@ -1,4 +1,4 @@
-package io.quarkus.ts.jaxrs.reactive.json;
+package io.quarkus.ts.http.jaxrs.reactive.json;
import java.lang.reflect.Type;
import java.util.function.BiFunction;
diff --git a/http/jaxrs-reactive/src/main/java/io/quarkus/ts/jaxrs/reactive/json/User.java b/http/jaxrs-reactive/src/main/java/io/quarkus/ts/http/jaxrs/reactive/json/User.java
similarity index 80%
rename from http/jaxrs-reactive/src/main/java/io/quarkus/ts/jaxrs/reactive/json/User.java
rename to http/jaxrs-reactive/src/main/java/io/quarkus/ts/http/jaxrs/reactive/json/User.java
index 46afb3e4c..c7c0db23e 100644
--- a/http/jaxrs-reactive/src/main/java/io/quarkus/ts/jaxrs/reactive/json/User.java
+++ b/http/jaxrs-reactive/src/main/java/io/quarkus/ts/http/jaxrs/reactive/json/User.java
@@ -1,4 +1,4 @@
-package io.quarkus.ts.jaxrs.reactive.json;
+package io.quarkus.ts.http.jaxrs.reactive.json;
import com.fasterxml.jackson.annotation.JsonView;
diff --git a/http/jaxrs-reactive/src/main/java/io/quarkus/ts/jaxrs/reactive/json/Views.java b/http/jaxrs-reactive/src/main/java/io/quarkus/ts/http/jaxrs/reactive/json/Views.java
similarity index 71%
rename from http/jaxrs-reactive/src/main/java/io/quarkus/ts/jaxrs/reactive/json/Views.java
rename to http/jaxrs-reactive/src/main/java/io/quarkus/ts/http/jaxrs/reactive/json/Views.java
index b84687153..be5193e68 100644
--- a/http/jaxrs-reactive/src/main/java/io/quarkus/ts/jaxrs/reactive/json/Views.java
+++ b/http/jaxrs-reactive/src/main/java/io/quarkus/ts/http/jaxrs/reactive/json/Views.java
@@ -1,4 +1,4 @@
-package io.quarkus.ts.jaxrs.reactive.json;
+package io.quarkus.ts.http.jaxrs.reactive.json;
public class Views {
diff --git a/http/jaxrs-reactive/src/main/resources/application.properties b/http/jaxrs-reactive/src/main/resources/application.properties
index ed255c199..f32c211c5 100644
--- a/http/jaxrs-reactive/src/main/resources/application.properties
+++ b/http/jaxrs-reactive/src/main/resources/application.properties
@@ -1,4 +1,4 @@
# Disable sticky session in order to be able to test HTTP cache features in OpenShiftHttpCachingResourceIT
# See https://access.redhat.comsolutions/4820731.
quarkus.openshift.route.annotations."haproxy.router.openshift.io/disable_cookies"=true
-io.quarkus.ts.jaxrs.reactive.client.MultipartService/mp-rest/url=http://localhost:${quarkus.http.port}
\ No newline at end of file
+io.quarkus.ts.http.jaxrs.reactive.client.MultipartService/mp-rest/url=http://localhost:${quarkus.http.port}
\ No newline at end of file
diff --git a/http/jaxrs-reactive/src/test/java/io/quarkus/ts/jaxrs/reactive/AsciiMultipartResourceIT.java b/http/jaxrs-reactive/src/test/java/io/quarkus/ts/http/jaxrs/reactive/AsciiMultipartResourceIT.java
similarity index 97%
rename from http/jaxrs-reactive/src/test/java/io/quarkus/ts/jaxrs/reactive/AsciiMultipartResourceIT.java
rename to http/jaxrs-reactive/src/test/java/io/quarkus/ts/http/jaxrs/reactive/AsciiMultipartResourceIT.java
index 7ad2d9341..5780d9373 100644
--- a/http/jaxrs-reactive/src/test/java/io/quarkus/ts/jaxrs/reactive/AsciiMultipartResourceIT.java
+++ b/http/jaxrs-reactive/src/test/java/io/quarkus/ts/http/jaxrs/reactive/AsciiMultipartResourceIT.java
@@ -1,4 +1,4 @@
-package io.quarkus.ts.jaxrs.reactive;
+package io.quarkus.ts.http.jaxrs.reactive;
import static org.hamcrest.CoreMatchers.equalTo;
import static org.hamcrest.CoreMatchers.not;
diff --git a/http/jaxrs-reactive/src/test/java/io/quarkus/ts/jaxrs/reactive/ExecutionModelResourceIT.java b/http/jaxrs-reactive/src/test/java/io/quarkus/ts/http/jaxrs/reactive/ExecutionModelResourceIT.java
similarity index 97%
rename from http/jaxrs-reactive/src/test/java/io/quarkus/ts/jaxrs/reactive/ExecutionModelResourceIT.java
rename to http/jaxrs-reactive/src/test/java/io/quarkus/ts/http/jaxrs/reactive/ExecutionModelResourceIT.java
index ace7865a1..8c936a23c 100644
--- a/http/jaxrs-reactive/src/test/java/io/quarkus/ts/jaxrs/reactive/ExecutionModelResourceIT.java
+++ b/http/jaxrs-reactive/src/test/java/io/quarkus/ts/http/jaxrs/reactive/ExecutionModelResourceIT.java
@@ -1,4 +1,4 @@
-package io.quarkus.ts.jaxrs.reactive;
+package io.quarkus.ts.http.jaxrs.reactive;
import static org.hamcrest.CoreMatchers.equalTo;
diff --git a/http/jaxrs-reactive/src/test/java/io/quarkus/ts/jaxrs/reactive/HttpCachingResourceIT.java b/http/jaxrs-reactive/src/test/java/io/quarkus/ts/http/jaxrs/reactive/HttpCachingResourceIT.java
similarity index 98%
rename from http/jaxrs-reactive/src/test/java/io/quarkus/ts/jaxrs/reactive/HttpCachingResourceIT.java
rename to http/jaxrs-reactive/src/test/java/io/quarkus/ts/http/jaxrs/reactive/HttpCachingResourceIT.java
index 9a61aa211..5c8047f07 100644
--- a/http/jaxrs-reactive/src/test/java/io/quarkus/ts/jaxrs/reactive/HttpCachingResourceIT.java
+++ b/http/jaxrs-reactive/src/test/java/io/quarkus/ts/http/jaxrs/reactive/HttpCachingResourceIT.java
@@ -1,4 +1,4 @@
-package io.quarkus.ts.jaxrs.reactive;
+package io.quarkus.ts.http.jaxrs.reactive;
import static io.restassured.RestAssured.given;
import static org.hamcrest.CoreMatchers.allOf;
diff --git a/http/jaxrs-reactive/src/test/java/io/quarkus/ts/jaxrs/reactive/MultipartResourceIT.java b/http/jaxrs-reactive/src/test/java/io/quarkus/ts/http/jaxrs/reactive/MultipartResourceIT.java
similarity index 98%
rename from http/jaxrs-reactive/src/test/java/io/quarkus/ts/jaxrs/reactive/MultipartResourceIT.java
rename to http/jaxrs-reactive/src/test/java/io/quarkus/ts/http/jaxrs/reactive/MultipartResourceIT.java
index c1e0d2915..e3722edb8 100644
--- a/http/jaxrs-reactive/src/test/java/io/quarkus/ts/jaxrs/reactive/MultipartResourceIT.java
+++ b/http/jaxrs-reactive/src/test/java/io/quarkus/ts/http/jaxrs/reactive/MultipartResourceIT.java
@@ -1,4 +1,4 @@
-package io.quarkus.ts.jaxrs.reactive;
+package io.quarkus.ts.http.jaxrs.reactive;
import static org.hamcrest.CoreMatchers.containsString;
import static org.hamcrest.CoreMatchers.equalTo;
diff --git a/http/jaxrs-reactive/src/test/java/io/quarkus/ts/jaxrs/reactive/OpenShiftExecutionModelResourceIT.java b/http/jaxrs-reactive/src/test/java/io/quarkus/ts/http/jaxrs/reactive/OpenShiftExecutionModelResourceIT.java
similarity index 78%
rename from http/jaxrs-reactive/src/test/java/io/quarkus/ts/jaxrs/reactive/OpenShiftExecutionModelResourceIT.java
rename to http/jaxrs-reactive/src/test/java/io/quarkus/ts/http/jaxrs/reactive/OpenShiftExecutionModelResourceIT.java
index b126fbc2d..a7130dd8b 100644
--- a/http/jaxrs-reactive/src/test/java/io/quarkus/ts/jaxrs/reactive/OpenShiftExecutionModelResourceIT.java
+++ b/http/jaxrs-reactive/src/test/java/io/quarkus/ts/http/jaxrs/reactive/OpenShiftExecutionModelResourceIT.java
@@ -1,4 +1,4 @@
-package io.quarkus.ts.jaxrs.reactive;
+package io.quarkus.ts.http.jaxrs.reactive;
import io.quarkus.test.scenarios.OpenShiftScenario;
diff --git a/http/jaxrs-reactive/src/test/java/io/quarkus/ts/jaxrs/reactive/OpenShiftHttpCachingResourceIT.java b/http/jaxrs-reactive/src/test/java/io/quarkus/ts/http/jaxrs/reactive/OpenShiftHttpCachingResourceIT.java
similarity index 89%
rename from http/jaxrs-reactive/src/test/java/io/quarkus/ts/jaxrs/reactive/OpenShiftHttpCachingResourceIT.java
rename to http/jaxrs-reactive/src/test/java/io/quarkus/ts/http/jaxrs/reactive/OpenShiftHttpCachingResourceIT.java
index 9ffba38b3..4296417ac 100644
--- a/http/jaxrs-reactive/src/test/java/io/quarkus/ts/jaxrs/reactive/OpenShiftHttpCachingResourceIT.java
+++ b/http/jaxrs-reactive/src/test/java/io/quarkus/ts/http/jaxrs/reactive/OpenShiftHttpCachingResourceIT.java
@@ -1,4 +1,4 @@
-package io.quarkus.ts.jaxrs.reactive;
+package io.quarkus.ts.http.jaxrs.reactive;
import org.junit.jupiter.api.Tag;
diff --git a/http/jaxrs-reactive/src/test/java/io/quarkus/ts/jaxrs/reactive/OpenShiftMultipartResourceIT.java b/http/jaxrs-reactive/src/test/java/io/quarkus/ts/http/jaxrs/reactive/OpenShiftMultipartResourceIT.java
similarity index 77%
rename from http/jaxrs-reactive/src/test/java/io/quarkus/ts/jaxrs/reactive/OpenShiftMultipartResourceIT.java
rename to http/jaxrs-reactive/src/test/java/io/quarkus/ts/http/jaxrs/reactive/OpenShiftMultipartResourceIT.java
index 7e1bca292..408e13984 100644
--- a/http/jaxrs-reactive/src/test/java/io/quarkus/ts/jaxrs/reactive/OpenShiftMultipartResourceIT.java
+++ b/http/jaxrs-reactive/src/test/java/io/quarkus/ts/http/jaxrs/reactive/OpenShiftMultipartResourceIT.java
@@ -1,4 +1,4 @@
-package io.quarkus.ts.jaxrs.reactive;
+package io.quarkus.ts.http.jaxrs.reactive;
import io.quarkus.test.scenarios.OpenShiftScenario;
diff --git a/http/jaxrs-reactive/src/test/java/io/quarkus/ts/jaxrs/reactive/client/MultipartClientResourceIT.java b/http/jaxrs-reactive/src/test/java/io/quarkus/ts/http/jaxrs/reactive/client/MultipartClientResourceIT.java
similarity index 93%
rename from http/jaxrs-reactive/src/test/java/io/quarkus/ts/jaxrs/reactive/client/MultipartClientResourceIT.java
rename to http/jaxrs-reactive/src/test/java/io/quarkus/ts/http/jaxrs/reactive/client/MultipartClientResourceIT.java
index d73a41593..43fa4f641 100644
--- a/http/jaxrs-reactive/src/test/java/io/quarkus/ts/jaxrs/reactive/client/MultipartClientResourceIT.java
+++ b/http/jaxrs-reactive/src/test/java/io/quarkus/ts/http/jaxrs/reactive/client/MultipartClientResourceIT.java
@@ -1,4 +1,4 @@
-package io.quarkus.ts.jaxrs.reactive.client;
+package io.quarkus.ts.http.jaxrs.reactive.client;
import static io.restassured.RestAssured.given;
import static org.hamcrest.Matchers.containsStringIgnoringCase;
diff --git a/http/jaxrs-reactive/src/test/java/io/quarkus/ts/jaxrs/reactive/json/JsonResourceIT.java b/http/jaxrs-reactive/src/test/java/io/quarkus/ts/http/jaxrs/reactive/json/JsonResourceIT.java
similarity index 97%
rename from http/jaxrs-reactive/src/test/java/io/quarkus/ts/jaxrs/reactive/json/JsonResourceIT.java
rename to http/jaxrs-reactive/src/test/java/io/quarkus/ts/http/jaxrs/reactive/json/JsonResourceIT.java
index 459beec02..d798138cf 100644
--- a/http/jaxrs-reactive/src/test/java/io/quarkus/ts/jaxrs/reactive/json/JsonResourceIT.java
+++ b/http/jaxrs-reactive/src/test/java/io/quarkus/ts/http/jaxrs/reactive/json/JsonResourceIT.java
@@ -1,4 +1,4 @@
-package io.quarkus.ts.jaxrs.reactive.json;
+package io.quarkus.ts.http.jaxrs.reactive.json;
import static io.restassured.RestAssured.given;
import static org.junit.jupiter.api.Assertions.assertEquals;
diff --git a/http/jaxrs-reactive/src/test/java/io/quarkus/ts/jaxrs/reactive/json/OpenShiftJsonResourceIT.java b/http/jaxrs-reactive/src/test/java/io/quarkus/ts/http/jaxrs/reactive/json/OpenShiftJsonResourceIT.java
similarity index 74%
rename from http/jaxrs-reactive/src/test/java/io/quarkus/ts/jaxrs/reactive/json/OpenShiftJsonResourceIT.java
rename to http/jaxrs-reactive/src/test/java/io/quarkus/ts/http/jaxrs/reactive/json/OpenShiftJsonResourceIT.java
index 09ea84d3b..05a536e2a 100644
--- a/http/jaxrs-reactive/src/test/java/io/quarkus/ts/jaxrs/reactive/json/OpenShiftJsonResourceIT.java
+++ b/http/jaxrs-reactive/src/test/java/io/quarkus/ts/http/jaxrs/reactive/json/OpenShiftJsonResourceIT.java
@@ -1,4 +1,4 @@
-package io.quarkus.ts.jaxrs.reactive.json;
+package io.quarkus.ts.http.jaxrs.reactive.json;
import io.quarkus.test.scenarios.OpenShiftScenario;
diff --git a/http/jaxrs/pom.xml b/http/jaxrs/pom.xml
index 410fcf001..5cd4b3a3b 100644
--- a/http/jaxrs/pom.xml
+++ b/http/jaxrs/pom.xml
@@ -9,7 +9,7 @@
jaxrs
jar
- Quarkus QE TS: HTTP: jaxrs
+ Quarkus QE TS: HTTP: JAX-RS
io.quarkus
diff --git a/http/jaxrs/src/main/java/io/quarkus/ts/security/core/GreetingResource.java b/http/jaxrs/src/main/java/io/quarkus/ts/http/jaxrs/GreetingResource.java
similarity index 91%
rename from http/jaxrs/src/main/java/io/quarkus/ts/security/core/GreetingResource.java
rename to http/jaxrs/src/main/java/io/quarkus/ts/http/jaxrs/GreetingResource.java
index 795377a28..46ff58c9c 100644
--- a/http/jaxrs/src/main/java/io/quarkus/ts/security/core/GreetingResource.java
+++ b/http/jaxrs/src/main/java/io/quarkus/ts/http/jaxrs/GreetingResource.java
@@ -1,4 +1,4 @@
-package io.quarkus.ts.security.core;
+package io.quarkus.ts.http.jaxrs;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
@@ -34,7 +34,7 @@ public String hello() {
@GET
@Produces(MediaType.TEXT_PLAIN)
@Path("/serialize-string")
- public String serstring() throws IOException, ClassNotFoundException {
+ public String getSerializedString() throws IOException, ClassNotFoundException {
byte[] bytes;
@@ -56,7 +56,7 @@ public String serstring() throws IOException, ClassNotFoundException {
@GET
@Produces(MediaType.TEXT_PLAIN)
@Path("/serialize-list")
- public String serlist() throws IOException, ClassNotFoundException {
+ public String getSerializedList() throws IOException, ClassNotFoundException {
byte[] bytes;
@@ -82,7 +82,8 @@ public String serlist() throws IOException, ClassNotFoundException {
@GET
@Produces(MediaType.APPLICATION_JSON)
@Path("/big-serialize-list")
- public Map bigSerlist(@QueryParam("expSize") int expSize) throws IOException, ClassNotFoundException {
+ public Map getBigSerializedList(@QueryParam("expSize") int expSize)
+ throws IOException, ClassNotFoundException {
ByteArrayOutputStream out = new ByteArrayOutputStream();
int ix = 0;
try (JsonGenerator g = MAPPER.createGenerator(out)) {
diff --git a/http/jaxrs/src/main/java/io/quarkus/ts/security/core/MultipartBody.java b/http/jaxrs/src/main/java/io/quarkus/ts/http/jaxrs/MultipartBody.java
similarity index 92%
rename from http/jaxrs/src/main/java/io/quarkus/ts/security/core/MultipartBody.java
rename to http/jaxrs/src/main/java/io/quarkus/ts/http/jaxrs/MultipartBody.java
index 8435123a3..26a2cb7e7 100644
--- a/http/jaxrs/src/main/java/io/quarkus/ts/security/core/MultipartBody.java
+++ b/http/jaxrs/src/main/java/io/quarkus/ts/http/jaxrs/MultipartBody.java
@@ -1,4 +1,4 @@
-package io.quarkus.ts.security.core;
+package io.quarkus.ts.http.jaxrs;
import java.io.InputStream;
diff --git a/http/jaxrs/src/main/java/io/quarkus/ts/security/core/MultipartResource.java b/http/jaxrs/src/main/java/io/quarkus/ts/http/jaxrs/MultipartResource.java
similarity index 97%
rename from http/jaxrs/src/main/java/io/quarkus/ts/security/core/MultipartResource.java
rename to http/jaxrs/src/main/java/io/quarkus/ts/http/jaxrs/MultipartResource.java
index b5c44460f..2ae3e9f41 100644
--- a/http/jaxrs/src/main/java/io/quarkus/ts/security/core/MultipartResource.java
+++ b/http/jaxrs/src/main/java/io/quarkus/ts/http/jaxrs/MultipartResource.java
@@ -1,4 +1,4 @@
-package io.quarkus.ts.security.core;
+package io.quarkus.ts.http.jaxrs;
import java.io.IOException;
diff --git a/http/jaxrs/src/main/java/io/quarkus/ts/security/core/SerializationConfig.java b/http/jaxrs/src/main/java/io/quarkus/ts/http/jaxrs/SerializationConfig.java
similarity index 94%
rename from http/jaxrs/src/main/java/io/quarkus/ts/security/core/SerializationConfig.java
rename to http/jaxrs/src/main/java/io/quarkus/ts/http/jaxrs/SerializationConfig.java
index 3b272d4c8..66bf44f6b 100644
--- a/http/jaxrs/src/main/java/io/quarkus/ts/security/core/SerializationConfig.java
+++ b/http/jaxrs/src/main/java/io/quarkus/ts/http/jaxrs/SerializationConfig.java
@@ -1,4 +1,4 @@
-package io.quarkus.ts.security.core;
+package io.quarkus.ts.http.jaxrs;
import java.util.ArrayList;
import java.util.List;
diff --git a/http/jaxrs/src/test/java/io/quarkus/ts/security/core/AsciiMultipartResourceIT.java b/http/jaxrs/src/test/java/io/quarkus/ts/http/jaxrs/AsciiMultipartResourceIT.java
similarity index 97%
rename from http/jaxrs/src/test/java/io/quarkus/ts/security/core/AsciiMultipartResourceIT.java
rename to http/jaxrs/src/test/java/io/quarkus/ts/http/jaxrs/AsciiMultipartResourceIT.java
index d6d43581f..09c80cb1e 100644
--- a/http/jaxrs/src/test/java/io/quarkus/ts/security/core/AsciiMultipartResourceIT.java
+++ b/http/jaxrs/src/test/java/io/quarkus/ts/http/jaxrs/AsciiMultipartResourceIT.java
@@ -1,4 +1,4 @@
-package io.quarkus.ts.security.core;
+package io.quarkus.ts.http.jaxrs;
import static org.hamcrest.CoreMatchers.equalTo;
import static org.hamcrest.CoreMatchers.not;
diff --git a/http/jaxrs/src/test/java/io/quarkus/ts/security/core/BaseQuarkusBundleIT.java b/http/jaxrs/src/test/java/io/quarkus/ts/http/jaxrs/BasicRESTEasyJacksonIT.java
similarity index 84%
rename from http/jaxrs/src/test/java/io/quarkus/ts/security/core/BaseQuarkusBundleIT.java
rename to http/jaxrs/src/test/java/io/quarkus/ts/http/jaxrs/BasicRESTEasyJacksonIT.java
index 669b5e66f..30beb68c8 100644
--- a/http/jaxrs/src/test/java/io/quarkus/ts/security/core/BaseQuarkusBundleIT.java
+++ b/http/jaxrs/src/test/java/io/quarkus/ts/http/jaxrs/BasicRESTEasyJacksonIT.java
@@ -1,4 +1,4 @@
-package io.quarkus.ts.security.core;
+package io.quarkus.ts.http.jaxrs;
import static io.restassured.RestAssured.given;
import static org.hamcrest.CoreMatchers.is;
@@ -8,7 +8,7 @@
import io.quarkus.test.scenarios.QuarkusScenario;
@QuarkusScenario
-public class BaseQuarkusBundleIT {
+public class BasicRESTEasyJacksonIT {
@Test
public void testQuarkusEndpoint() {
diff --git a/http/jaxrs/src/test/java/io/quarkus/ts/security/core/MultipartResourceIT.java b/http/jaxrs/src/test/java/io/quarkus/ts/http/jaxrs/MultipartResourceIT.java
similarity index 99%
rename from http/jaxrs/src/test/java/io/quarkus/ts/security/core/MultipartResourceIT.java
rename to http/jaxrs/src/test/java/io/quarkus/ts/http/jaxrs/MultipartResourceIT.java
index 841e22242..3a16dab15 100644
--- a/http/jaxrs/src/test/java/io/quarkus/ts/security/core/MultipartResourceIT.java
+++ b/http/jaxrs/src/test/java/io/quarkus/ts/http/jaxrs/MultipartResourceIT.java
@@ -1,4 +1,4 @@
-package io.quarkus.ts.security.core;
+package io.quarkus.ts.http.jaxrs;
import static org.hamcrest.CoreMatchers.containsString;
import static org.hamcrest.CoreMatchers.equalTo;
diff --git a/http/jaxrs/src/test/java/io/quarkus/ts/security/core/OpenShiftMultipartResourceIT.java b/http/jaxrs/src/test/java/io/quarkus/ts/http/jaxrs/OpenShiftMultipartResourceIT.java
similarity index 79%
rename from http/jaxrs/src/test/java/io/quarkus/ts/security/core/OpenShiftMultipartResourceIT.java
rename to http/jaxrs/src/test/java/io/quarkus/ts/http/jaxrs/OpenShiftMultipartResourceIT.java
index 79e780a82..c6b076944 100644
--- a/http/jaxrs/src/test/java/io/quarkus/ts/security/core/OpenShiftMultipartResourceIT.java
+++ b/http/jaxrs/src/test/java/io/quarkus/ts/http/jaxrs/OpenShiftMultipartResourceIT.java
@@ -1,4 +1,4 @@
-package io.quarkus.ts.security.core;
+package io.quarkus.ts.http.jaxrs;
import io.quarkus.test.scenarios.OpenShiftScenario;
diff --git a/http/jaxrs/src/test/java/io/quarkus/ts/security/core/SerializationIT.java b/http/jaxrs/src/test/java/io/quarkus/ts/http/jaxrs/RESTEasyJacksonSerializationIT.java
similarity index 96%
rename from http/jaxrs/src/test/java/io/quarkus/ts/security/core/SerializationIT.java
rename to http/jaxrs/src/test/java/io/quarkus/ts/http/jaxrs/RESTEasyJacksonSerializationIT.java
index 8dfe33efd..360c15346 100644
--- a/http/jaxrs/src/test/java/io/quarkus/ts/security/core/SerializationIT.java
+++ b/http/jaxrs/src/test/java/io/quarkus/ts/http/jaxrs/RESTEasyJacksonSerializationIT.java
@@ -1,4 +1,4 @@
-package io.quarkus.ts.security.core;
+package io.quarkus.ts.http.jaxrs;
import static io.restassured.RestAssured.given;
@@ -12,7 +12,7 @@
@Tag("QUARKUS-1554")
@QuarkusScenario
-public class SerializationIT {
+public class RESTEasyJacksonSerializationIT {
protected final static int LONGEST_EAGER_ALLOC = 100_000;
protected final static int FIRST_RANDOM_VARIATION = 1;
diff --git a/http/reactive-routes/src/main/java/io/quarkus/ts/BasicsRouteHandler.java b/http/reactive-routes/src/main/java/io/quarkus/ts/http/reactiveroutes/BasicsRouteHandler.java
similarity index 90%
rename from http/reactive-routes/src/main/java/io/quarkus/ts/BasicsRouteHandler.java
rename to http/reactive-routes/src/main/java/io/quarkus/ts/http/reactiveroutes/BasicsRouteHandler.java
index a0fab5288..10c2cb9bc 100644
--- a/http/reactive-routes/src/main/java/io/quarkus/ts/BasicsRouteHandler.java
+++ b/http/reactive-routes/src/main/java/io/quarkus/ts/http/reactiveroutes/BasicsRouteHandler.java
@@ -1,4 +1,4 @@
-package io.quarkus.ts;
+package io.quarkus.ts.http.reactiveroutes;
import io.quarkus.vertx.web.Param;
import io.quarkus.vertx.web.Route;
diff --git a/http/reactive-routes/src/main/java/io/quarkus/ts/ReactiveRoutesTracing.java b/http/reactive-routes/src/main/java/io/quarkus/ts/http/reactiveroutes/ReactiveRoutesTracing.java
similarity index 86%
rename from http/reactive-routes/src/main/java/io/quarkus/ts/ReactiveRoutesTracing.java
rename to http/reactive-routes/src/main/java/io/quarkus/ts/http/reactiveroutes/ReactiveRoutesTracing.java
index dc3cb3ffe..3aad7a2bf 100644
--- a/http/reactive-routes/src/main/java/io/quarkus/ts/ReactiveRoutesTracing.java
+++ b/http/reactive-routes/src/main/java/io/quarkus/ts/http/reactiveroutes/ReactiveRoutesTracing.java
@@ -1,4 +1,4 @@
-package io.quarkus.ts;
+package io.quarkus.ts.http.reactiveroutes;
import io.quarkus.vertx.web.Route;
import io.quarkus.vertx.web.RouteBase;
diff --git a/http/reactive-routes/src/main/java/io/quarkus/ts/validation/Request.java b/http/reactive-routes/src/main/java/io/quarkus/ts/http/reactiveroutes/validation/Request.java
similarity index 86%
rename from http/reactive-routes/src/main/java/io/quarkus/ts/validation/Request.java
rename to http/reactive-routes/src/main/java/io/quarkus/ts/http/reactiveroutes/validation/Request.java
index 10f712cb6..fb5e59527 100644
--- a/http/reactive-routes/src/main/java/io/quarkus/ts/validation/Request.java
+++ b/http/reactive-routes/src/main/java/io/quarkus/ts/http/reactiveroutes/validation/Request.java
@@ -1,9 +1,9 @@
-package io.quarkus.ts.validation;
+package io.quarkus.ts.http.reactiveroutes.validation;
import javax.validation.constraints.Pattern;
import javax.validation.constraints.Size;
-import io.quarkus.ts.validation.annotations.Uppercase;
+import io.quarkus.ts.http.reactiveroutes.validation.annotations.Uppercase;
public class Request {
@Size(min = 3, max = 3, message = "First code must have 3 characters")
diff --git a/http/reactive-routes/src/main/java/io/quarkus/ts/validation/Response.java b/http/reactive-routes/src/main/java/io/quarkus/ts/http/reactiveroutes/validation/Response.java
similarity index 77%
rename from http/reactive-routes/src/main/java/io/quarkus/ts/validation/Response.java
rename to http/reactive-routes/src/main/java/io/quarkus/ts/http/reactiveroutes/validation/Response.java
index cb56ff4d5..18e407a3f 100644
--- a/http/reactive-routes/src/main/java/io/quarkus/ts/validation/Response.java
+++ b/http/reactive-routes/src/main/java/io/quarkus/ts/http/reactiveroutes/validation/Response.java
@@ -1,8 +1,8 @@
-package io.quarkus.ts.validation;
+package io.quarkus.ts.http.reactiveroutes.validation;
import javax.validation.constraints.NotNull;
-import io.quarkus.ts.validation.annotations.Uppercase;
+import io.quarkus.ts.http.reactiveroutes.validation.annotations.Uppercase;
public class Response {
@NotNull(message = "id can't be null")
diff --git a/http/reactive-routes/src/main/java/io/quarkus/ts/validation/ValidationOnRequestBodyRouteHandler.java b/http/reactive-routes/src/main/java/io/quarkus/ts/http/reactiveroutes/validation/ValidationOnRequestBodyRouteHandler.java
similarity index 88%
rename from http/reactive-routes/src/main/java/io/quarkus/ts/validation/ValidationOnRequestBodyRouteHandler.java
rename to http/reactive-routes/src/main/java/io/quarkus/ts/http/reactiveroutes/validation/ValidationOnRequestBodyRouteHandler.java
index 26564be4a..9092fcf8c 100644
--- a/http/reactive-routes/src/main/java/io/quarkus/ts/validation/ValidationOnRequestBodyRouteHandler.java
+++ b/http/reactive-routes/src/main/java/io/quarkus/ts/http/reactiveroutes/validation/ValidationOnRequestBodyRouteHandler.java
@@ -1,4 +1,4 @@
-package io.quarkus.ts.validation;
+package io.quarkus.ts.http.reactiveroutes.validation;
import javax.validation.Valid;
diff --git a/http/reactive-routes/src/main/java/io/quarkus/ts/validation/ValidationOnRequestParamsRouteHandler.java b/http/reactive-routes/src/main/java/io/quarkus/ts/http/reactiveroutes/validation/ValidationOnRequestParamsRouteHandler.java
similarity index 90%
rename from http/reactive-routes/src/main/java/io/quarkus/ts/validation/ValidationOnRequestParamsRouteHandler.java
rename to http/reactive-routes/src/main/java/io/quarkus/ts/http/reactiveroutes/validation/ValidationOnRequestParamsRouteHandler.java
index f8032db56..09b5426f5 100644
--- a/http/reactive-routes/src/main/java/io/quarkus/ts/validation/ValidationOnRequestParamsRouteHandler.java
+++ b/http/reactive-routes/src/main/java/io/quarkus/ts/http/reactiveroutes/validation/ValidationOnRequestParamsRouteHandler.java
@@ -1,9 +1,9 @@
-package io.quarkus.ts.validation;
+package io.quarkus.ts.http.reactiveroutes.validation;
import javax.validation.constraints.Pattern;
import javax.validation.constraints.Size;
-import io.quarkus.ts.validation.annotations.Uppercase;
+import io.quarkus.ts.http.reactiveroutes.validation.annotations.Uppercase;
import io.quarkus.vertx.web.Param;
import io.quarkus.vertx.web.Route;
import io.quarkus.vertx.web.Route.HttpMethod;
diff --git a/http/reactive-routes/src/main/java/io/quarkus/ts/validation/ValidationOnResponseRouteHandler.java b/http/reactive-routes/src/main/java/io/quarkus/ts/http/reactiveroutes/validation/ValidationOnResponseRouteHandler.java
similarity index 96%
rename from http/reactive-routes/src/main/java/io/quarkus/ts/validation/ValidationOnResponseRouteHandler.java
rename to http/reactive-routes/src/main/java/io/quarkus/ts/http/reactiveroutes/validation/ValidationOnResponseRouteHandler.java
index d20107f0c..5a93e4711 100644
--- a/http/reactive-routes/src/main/java/io/quarkus/ts/validation/ValidationOnResponseRouteHandler.java
+++ b/http/reactive-routes/src/main/java/io/quarkus/ts/http/reactiveroutes/validation/ValidationOnResponseRouteHandler.java
@@ -1,4 +1,4 @@
-package io.quarkus.ts.validation;
+package io.quarkus.ts.http.reactiveroutes.validation;
import javax.validation.Valid;
import javax.validation.constraints.Size;
diff --git a/http/reactive-routes/src/main/java/io/quarkus/ts/validation/annotations/Uppercase.java b/http/reactive-routes/src/main/java/io/quarkus/ts/http/reactiveroutes/validation/annotations/Uppercase.java
similarity index 93%
rename from http/reactive-routes/src/main/java/io/quarkus/ts/validation/annotations/Uppercase.java
rename to http/reactive-routes/src/main/java/io/quarkus/ts/http/reactiveroutes/validation/annotations/Uppercase.java
index 6782fec34..46b4570de 100644
--- a/http/reactive-routes/src/main/java/io/quarkus/ts/validation/annotations/Uppercase.java
+++ b/http/reactive-routes/src/main/java/io/quarkus/ts/http/reactiveroutes/validation/annotations/Uppercase.java
@@ -1,4 +1,4 @@
-package io.quarkus.ts.validation.annotations;
+package io.quarkus.ts.http.reactiveroutes.validation.annotations;
import static java.lang.annotation.ElementType.ANNOTATION_TYPE;
import static java.lang.annotation.ElementType.CONSTRUCTOR;
diff --git a/http/reactive-routes/src/main/java/io/quarkus/ts/validation/annotations/UppercaseService.java b/http/reactive-routes/src/main/java/io/quarkus/ts/http/reactiveroutes/validation/annotations/UppercaseService.java
similarity index 81%
rename from http/reactive-routes/src/main/java/io/quarkus/ts/validation/annotations/UppercaseService.java
rename to http/reactive-routes/src/main/java/io/quarkus/ts/http/reactiveroutes/validation/annotations/UppercaseService.java
index 249f94862..454879d51 100644
--- a/http/reactive-routes/src/main/java/io/quarkus/ts/validation/annotations/UppercaseService.java
+++ b/http/reactive-routes/src/main/java/io/quarkus/ts/http/reactiveroutes/validation/annotations/UppercaseService.java
@@ -1,4 +1,4 @@
-package io.quarkus.ts.validation.annotations;
+package io.quarkus.ts.http.reactiveroutes.validation.annotations;
import javax.enterprise.context.ApplicationScoped;
diff --git a/http/reactive-routes/src/main/java/io/quarkus/ts/validation/annotations/UppercaseValidator.java b/http/reactive-routes/src/main/java/io/quarkus/ts/http/reactiveroutes/validation/annotations/UppercaseValidator.java
similarity index 88%
rename from http/reactive-routes/src/main/java/io/quarkus/ts/validation/annotations/UppercaseValidator.java
rename to http/reactive-routes/src/main/java/io/quarkus/ts/http/reactiveroutes/validation/annotations/UppercaseValidator.java
index 896af1f3b..0bfa8d077 100644
--- a/http/reactive-routes/src/main/java/io/quarkus/ts/validation/annotations/UppercaseValidator.java
+++ b/http/reactive-routes/src/main/java/io/quarkus/ts/http/reactiveroutes/validation/annotations/UppercaseValidator.java
@@ -1,4 +1,4 @@
-package io.quarkus.ts.validation.annotations;
+package io.quarkus.ts.http.reactiveroutes.validation.annotations;
import javax.enterprise.context.ApplicationScoped;
import javax.inject.Inject;
diff --git a/http/reactive-routes/src/test/java/io/quarkus/ts/BasicsRouteHandlerIT.java b/http/reactive-routes/src/test/java/io/quarkus/ts/http/reactiveroutes/BasicsRouteHandlerIT.java
similarity index 91%
rename from http/reactive-routes/src/test/java/io/quarkus/ts/BasicsRouteHandlerIT.java
rename to http/reactive-routes/src/test/java/io/quarkus/ts/http/reactiveroutes/BasicsRouteHandlerIT.java
index d6ef918fc..6d4afec42 100644
--- a/http/reactive-routes/src/test/java/io/quarkus/ts/BasicsRouteHandlerIT.java
+++ b/http/reactive-routes/src/test/java/io/quarkus/ts/http/reactiveroutes/BasicsRouteHandlerIT.java
@@ -1,4 +1,4 @@
-package io.quarkus.ts;
+package io.quarkus.ts.http.reactiveroutes;
import static io.restassured.RestAssured.given;
diff --git a/http/reactive-routes/src/test/java/io/quarkus/ts/validation/ValidationOnRequestBodyRouteHandlerIT.java b/http/reactive-routes/src/test/java/io/quarkus/ts/http/reactiveroutes/validation/ValidationOnRequestBodyRouteHandlerIT.java
similarity index 77%
rename from http/reactive-routes/src/test/java/io/quarkus/ts/validation/ValidationOnRequestBodyRouteHandlerIT.java
rename to http/reactive-routes/src/test/java/io/quarkus/ts/http/reactiveroutes/validation/ValidationOnRequestBodyRouteHandlerIT.java
index c9478febb..adc22dfe9 100644
--- a/http/reactive-routes/src/test/java/io/quarkus/ts/validation/ValidationOnRequestBodyRouteHandlerIT.java
+++ b/http/reactive-routes/src/test/java/io/quarkus/ts/http/reactiveroutes/validation/ValidationOnRequestBodyRouteHandlerIT.java
@@ -1,16 +1,16 @@
-package io.quarkus.ts.validation;
+package io.quarkus.ts.http.reactiveroutes.validation;
-import static io.quarkus.ts.validation.utils.ValidationAssertions.assertValidationErrorDetails;
-import static io.quarkus.ts.validation.utils.ValidationAssertions.assertValidationErrorField;
-import static io.quarkus.ts.validation.utils.ValidationAssertions.assertValidationErrorStatus;
-import static io.quarkus.ts.validation.utils.ValidationAssertions.assertValidationErrorTitle;
+import static io.quarkus.ts.http.reactiveroutes.validation.utils.ValidationAssertions.assertValidationErrorDetails;
+import static io.quarkus.ts.http.reactiveroutes.validation.utils.ValidationAssertions.assertValidationErrorField;
+import static io.quarkus.ts.http.reactiveroutes.validation.utils.ValidationAssertions.assertValidationErrorStatus;
+import static io.quarkus.ts.http.reactiveroutes.validation.utils.ValidationAssertions.assertValidationErrorTitle;
import static io.restassured.RestAssured.given;
import org.apache.http.HttpStatus;
import org.junit.jupiter.api.Test;
import io.quarkus.test.scenarios.QuarkusScenario;
-import io.quarkus.ts.validation.utils.ValidationErrorResponse;
+import io.quarkus.ts.http.reactiveroutes.validation.utils.ValidationErrorResponse;
import io.vertx.core.json.Json;
@QuarkusScenario
@@ -32,7 +32,8 @@ public void shouldGetValidationErrorWhenRequestFirstCodeIsWrong() {
assertValidationErrorTitle(response);
assertValidationErrorDetails(response);
assertValidationErrorStatus(response, HttpStatus.SC_BAD_REQUEST);
- assertValidationErrorField(response, "validateRequestBody.param.firstCode", "First code must have 3 characters");
+ assertValidationErrorField(response, "validateRequestBody.param.firstCode",
+ "First code must have 3 characters");
}
@Test
@@ -51,8 +52,10 @@ public void shouldGetValidationErrorsWhenFirstAndSecondCodesAreWrong() {
assertValidationErrorTitle(response);
assertValidationErrorDetails(response);
assertValidationErrorStatus(response, HttpStatus.SC_BAD_REQUEST);
- assertValidationErrorField(response, "validateRequestBody.param.firstCode", "First code must have 3 characters");
- assertValidationErrorField(response, "validateRequestBody.param.secondCode", "Second second must match pattern");
+ assertValidationErrorField(response, "validateRequestBody.param.firstCode",
+ "First code must have 3 characters");
+ assertValidationErrorField(response, "validateRequestBody.param.secondCode",
+ "Second second must match pattern");
}
@Test
@@ -73,7 +76,8 @@ public void shouldGetValidationErrorWhenSingleParamIsLowercase() {
assertValidationErrorTitle(response);
assertValidationErrorDetails(response);
assertValidationErrorStatus(response, HttpStatus.SC_BAD_REQUEST);
- assertValidationErrorField(response, "validateRequestBody.param.custom", "Value must be uppercase");
+ assertValidationErrorField(response, "validateRequestBody.param.custom",
+ "Value must be uppercase");
}
@Test
diff --git a/http/reactive-routes/src/test/java/io/quarkus/ts/validation/ValidationOnRequestParamRouteHandlerIT.java b/http/reactive-routes/src/test/java/io/quarkus/ts/http/reactiveroutes/validation/ValidationOnRequestParamRouteHandlerIT.java
similarity index 77%
rename from http/reactive-routes/src/test/java/io/quarkus/ts/validation/ValidationOnRequestParamRouteHandlerIT.java
rename to http/reactive-routes/src/test/java/io/quarkus/ts/http/reactiveroutes/validation/ValidationOnRequestParamRouteHandlerIT.java
index 659efcf79..326fd243b 100644
--- a/http/reactive-routes/src/test/java/io/quarkus/ts/validation/ValidationOnRequestParamRouteHandlerIT.java
+++ b/http/reactive-routes/src/test/java/io/quarkus/ts/http/reactiveroutes/validation/ValidationOnRequestParamRouteHandlerIT.java
@@ -1,16 +1,16 @@
-package io.quarkus.ts.validation;
+package io.quarkus.ts.http.reactiveroutes.validation;
-import static io.quarkus.ts.validation.utils.ValidationAssertions.assertValidationErrorDetails;
-import static io.quarkus.ts.validation.utils.ValidationAssertions.assertValidationErrorField;
-import static io.quarkus.ts.validation.utils.ValidationAssertions.assertValidationErrorStatus;
-import static io.quarkus.ts.validation.utils.ValidationAssertions.assertValidationErrorTitle;
+import static io.quarkus.ts.http.reactiveroutes.validation.utils.ValidationAssertions.assertValidationErrorDetails;
+import static io.quarkus.ts.http.reactiveroutes.validation.utils.ValidationAssertions.assertValidationErrorField;
+import static io.quarkus.ts.http.reactiveroutes.validation.utils.ValidationAssertions.assertValidationErrorStatus;
+import static io.quarkus.ts.http.reactiveroutes.validation.utils.ValidationAssertions.assertValidationErrorTitle;
import static io.restassured.RestAssured.given;
import org.apache.http.HttpStatus;
import org.junit.jupiter.api.Test;
import io.quarkus.test.scenarios.QuarkusScenario;
-import io.quarkus.ts.validation.utils.ValidationErrorResponse;
+import io.quarkus.ts.http.reactiveroutes.validation.utils.ValidationErrorResponse;
@QuarkusScenario
public class ValidationOnRequestParamRouteHandlerIT {
@@ -27,7 +27,8 @@ public void shouldGetValidationErrorWhenSingleParamIsWrong() {
assertValidationErrorTitle(response);
assertValidationErrorDetails(response);
assertValidationErrorStatus(response, HttpStatus.SC_BAD_REQUEST);
- assertValidationErrorField(response, "validateRequestSingleParam.param", "Param must have 3 characters");
+ assertValidationErrorField(response, "validateRequestSingleParam.param",
+ "Param must have 3 characters");
}
@Test
@@ -48,8 +49,10 @@ public void shouldGetValidationErrorsWhenAllParamsAreWrong() {
assertValidationErrorTitle(response);
assertValidationErrorDetails(response);
assertValidationErrorStatus(response, HttpStatus.SC_BAD_REQUEST);
- assertValidationErrorField(response, "validateRequestMultipleParam.firstParam", "First param must have 3 characters");
- assertValidationErrorField(response, "validateRequestMultipleParam.secondParam", "Second param must match pattern");
+ assertValidationErrorField(response, "validateRequestMultipleParam.firstParam",
+ "First param must have 3 characters");
+ assertValidationErrorField(response, "validateRequestMultipleParam.secondParam",
+ "Second param must match pattern");
}
@Test
diff --git a/http/reactive-routes/src/test/java/io/quarkus/ts/validation/ValidationOnResponseRouteHandlerIT.java b/http/reactive-routes/src/test/java/io/quarkus/ts/http/reactiveroutes/validation/ValidationOnResponseRouteHandlerIT.java
similarity index 74%
rename from http/reactive-routes/src/test/java/io/quarkus/ts/validation/ValidationOnResponseRouteHandlerIT.java
rename to http/reactive-routes/src/test/java/io/quarkus/ts/http/reactiveroutes/validation/ValidationOnResponseRouteHandlerIT.java
index 6c9caeb65..d04aca380 100644
--- a/http/reactive-routes/src/test/java/io/quarkus/ts/validation/ValidationOnResponseRouteHandlerIT.java
+++ b/http/reactive-routes/src/test/java/io/quarkus/ts/http/reactiveroutes/validation/ValidationOnResponseRouteHandlerIT.java
@@ -1,9 +1,9 @@
-package io.quarkus.ts.validation;
+package io.quarkus.ts.http.reactiveroutes.validation;
-import static io.quarkus.ts.validation.utils.ValidationAssertions.assertValidationErrorDetails;
-import static io.quarkus.ts.validation.utils.ValidationAssertions.assertValidationErrorField;
-import static io.quarkus.ts.validation.utils.ValidationAssertions.assertValidationErrorStatus;
-import static io.quarkus.ts.validation.utils.ValidationAssertions.assertValidationErrorTitle;
+import static io.quarkus.ts.http.reactiveroutes.validation.utils.ValidationAssertions.assertValidationErrorDetails;
+import static io.quarkus.ts.http.reactiveroutes.validation.utils.ValidationAssertions.assertValidationErrorField;
+import static io.quarkus.ts.http.reactiveroutes.validation.utils.ValidationAssertions.assertValidationErrorStatus;
+import static io.quarkus.ts.http.reactiveroutes.validation.utils.ValidationAssertions.assertValidationErrorTitle;
import static io.restassured.RestAssured.given;
import org.apache.http.HttpStatus;
@@ -11,7 +11,7 @@
import org.junit.jupiter.api.Test;
import io.quarkus.test.scenarios.QuarkusScenario;
-import io.quarkus.ts.validation.utils.ValidationErrorResponse;
+import io.quarkus.ts.http.reactiveroutes.validation.utils.ValidationErrorResponse;
@QuarkusScenario
public class ValidationOnResponseRouteHandlerIT {
diff --git a/http/reactive-routes/src/test/java/io/quarkus/ts/validation/utils/ValidationAssertions.java b/http/reactive-routes/src/test/java/io/quarkus/ts/http/reactiveroutes/validation/utils/ValidationAssertions.java
similarity index 96%
rename from http/reactive-routes/src/test/java/io/quarkus/ts/validation/utils/ValidationAssertions.java
rename to http/reactive-routes/src/test/java/io/quarkus/ts/http/reactiveroutes/validation/utils/ValidationAssertions.java
index b2093f201..dd0eb8dfd 100644
--- a/http/reactive-routes/src/test/java/io/quarkus/ts/validation/utils/ValidationAssertions.java
+++ b/http/reactive-routes/src/test/java/io/quarkus/ts/http/reactiveroutes/validation/utils/ValidationAssertions.java
@@ -1,4 +1,4 @@
-package io.quarkus.ts.validation.utils;
+package io.quarkus.ts.http.reactiveroutes.validation.utils;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertFalse;
diff --git a/http/reactive-routes/src/test/java/io/quarkus/ts/validation/utils/ValidationError.java b/http/reactive-routes/src/test/java/io/quarkus/ts/http/reactiveroutes/validation/utils/ValidationError.java
similarity index 86%
rename from http/reactive-routes/src/test/java/io/quarkus/ts/validation/utils/ValidationError.java
rename to http/reactive-routes/src/test/java/io/quarkus/ts/http/reactiveroutes/validation/utils/ValidationError.java
index 712874294..e8ed055bb 100644
--- a/http/reactive-routes/src/test/java/io/quarkus/ts/validation/utils/ValidationError.java
+++ b/http/reactive-routes/src/test/java/io/quarkus/ts/http/reactiveroutes/validation/utils/ValidationError.java
@@ -1,4 +1,4 @@
-package io.quarkus.ts.validation.utils;
+package io.quarkus.ts.http.reactiveroutes.validation.utils;
public class ValidationError {
private String field;
diff --git a/http/reactive-routes/src/test/java/io/quarkus/ts/validation/utils/ValidationErrorResponse.java b/http/reactive-routes/src/test/java/io/quarkus/ts/http/reactiveroutes/validation/utils/ValidationErrorResponse.java
similarity index 92%
rename from http/reactive-routes/src/test/java/io/quarkus/ts/validation/utils/ValidationErrorResponse.java
rename to http/reactive-routes/src/test/java/io/quarkus/ts/http/reactiveroutes/validation/utils/ValidationErrorResponse.java
index d84da176d..4d15b547b 100644
--- a/http/reactive-routes/src/test/java/io/quarkus/ts/validation/utils/ValidationErrorResponse.java
+++ b/http/reactive-routes/src/test/java/io/quarkus/ts/http/reactiveroutes/validation/utils/ValidationErrorResponse.java
@@ -1,4 +1,4 @@
-package io.quarkus.ts.validation.utils;
+package io.quarkus.ts.http.reactiveroutes.validation.utils;
public class ValidationErrorResponse {
private String title;
diff --git a/http/rest-client-reactive/pom.xml b/http/rest-client-reactive/pom.xml
index 206baec67..cad2842f6 100644
--- a/http/rest-client-reactive/pom.xml
+++ b/http/rest-client-reactive/pom.xml
@@ -19,6 +19,10 @@
io.quarkus
quarkus-rest-client-reactive-jackson
+
+ io.quarkus
+ quarkus-smallrye-openapi
+
io.quarkus
quarkus-jaxb
diff --git a/http/rest-client-reactive/src/main/java/io/quarkus/ts/http/restclient/reactive/BookClient.java b/http/rest-client-reactive/src/main/java/io/quarkus/ts/http/restclient/reactive/BookClient.java
index 317ce1575..d1d36c3b7 100644
--- a/http/rest-client-reactive/src/main/java/io/quarkus/ts/http/restclient/reactive/BookClient.java
+++ b/http/rest-client-reactive/src/main/java/io/quarkus/ts/http/restclient/reactive/BookClient.java
@@ -11,6 +11,7 @@
import org.eclipse.microprofile.rest.client.inject.RegisterRestClient;
import io.quarkus.ts.http.restclient.reactive.json.Book;
+import io.smallrye.mutiny.Multi;
import io.smallrye.mutiny.Uni;
@RegisterRestClient
@@ -65,4 +66,12 @@ interface CurrencyClient {
String getName();
}
+ @GET
+ @Path("/クイック検索/% # [ ] + = & @ : ! * ( ) ' $ , ?/- _ . ~")
+ Multi getByDecodedSearchTerm(@QueryParam("searchTerm") String searchTerm);
+
+ @GET
+ @Path("/%E3%82%AF%E3%82%A4%E3%83%83%E3%82%AF%E6%A4%9C%E7%B4%A2/%25%20%23%20%5B%20%5D%20+%20=%20&%20@%20:%20!%20*%20(%20)%20'%20$%20,%20%3F/-%20_%20.%20~")
+ Multi getByEncodedSearchTerm(@QueryParam("searchTerm") String searchTerm);
+
}
diff --git a/http/rest-client-reactive/src/main/java/io/quarkus/ts/http/restclient/reactive/PlainBookResource.java b/http/rest-client-reactive/src/main/java/io/quarkus/ts/http/restclient/reactive/PlainBookResource.java
index 98c3fd92b..116477609 100644
--- a/http/rest-client-reactive/src/main/java/io/quarkus/ts/http/restclient/reactive/PlainBookResource.java
+++ b/http/rest-client-reactive/src/main/java/io/quarkus/ts/http/restclient/reactive/PlainBookResource.java
@@ -10,11 +10,14 @@
import javax.ws.rs.core.MediaType;
import io.quarkus.ts.http.restclient.reactive.json.Book;
+import io.smallrye.mutiny.Multi;
import io.smallrye.mutiny.Uni;
@Path("/books")
public class PlainBookResource {
+ public static final String SEARCH_TERM_VAL = "Ernest Hemingway";
+
@GET
@Path("/map")
@Produces(MediaType.APPLICATION_JSON)
@@ -50,4 +53,23 @@ public Uni getProfession() {
public Uni getCurrency() {
return Uni.createFrom().item("USD");
}
+
+ /**
+ * Characters in foreign language: '%E3%82%AF%E3%82%A4%E3%83%83%E3%82%AF%E6%A4%9C%E7%B4%A2' -> 'クイック検索' -> 'quick-search'
+ * Reserved characters: '%25%20%23%20%5B%20%5D%20+%20=%20&%20@%20:%20!%20*%20(%20)%20'%20$%20,%20%3F' -> "% # [ ] + = & @ :
+ * ! * ( ) ' $ , ?",
+ * characters '=', '+', '@', ':', '!', '*', '(', ')', '\'', ',' are not encoded as it's not necessary.
+ * Unreserved characters: - _ . ~
+ */
+ @GET
+ @Path("/%E3%82%AF%E3%82%A4%E3%83%83%E3%82%AF%E6%A4%9C%E7%B4%A2/%25%20%23%20%5B%20%5D%20+%20=%20&%20@%20:%20!%20*%20(%20)%20'%20$%20,%20%3F/-%20_%20.%20~")
+ public Multi getBySearchTerm(@QueryParam("searchTerm") String searchTerm) {
+ if (SEARCH_TERM_VAL.equals(searchTerm)) {
+ return Multi.createFrom().items("In Ou"
+ + "r Time", ", ", "The Sun Also Rises", ", ", "A Farewell to Arms", ", ",
+ "The Old Man and the Sea");
+ } else {
+ return Multi.createFrom().empty();
+ }
+ }
}
diff --git a/http/rest-client-reactive/src/main/java/io/quarkus/ts/http/restclient/reactive/ReactiveClientBookResource.java b/http/rest-client-reactive/src/main/java/io/quarkus/ts/http/restclient/reactive/ReactiveClientBookResource.java
index 9682ce0fc..d84e28016 100644
--- a/http/rest-client-reactive/src/main/java/io/quarkus/ts/http/restclient/reactive/ReactiveClientBookResource.java
+++ b/http/rest-client-reactive/src/main/java/io/quarkus/ts/http/restclient/reactive/ReactiveClientBookResource.java
@@ -13,6 +13,7 @@
import io.quarkus.ts.http.restclient.reactive.json.Book;
import io.quarkus.ts.http.restclient.reactive.json.IdBeanParam;
import io.quarkus.ts.http.restclient.reactive.json.JsonRestInterface;
+import io.smallrye.mutiny.Multi;
import io.smallrye.mutiny.Uni;
@Path("/client/book")
@@ -64,4 +65,16 @@ public Uni getSubSubResource() {
public String getLastResource() {
return bookInterface.getAuthor().getProfession().getWage().getCurrency().getName();
}
+
+ @GET
+ @Path("/quick-search/decoded")
+ public Multi getDecodedPath(@QueryParam("searchTerm") String searchTerm) {
+ return bookInterface.getByDecodedSearchTerm(searchTerm);
+ }
+
+ @GET
+ @Path("/quick-search/encoded")
+ public Multi getEncodedPath(@QueryParam("searchTerm") String searchTerm) {
+ return bookInterface.getByEncodedSearchTerm(searchTerm);
+ }
}
diff --git a/http/rest-client-reactive/src/test/java/io/quarkus/ts/http/restclient/reactive/ReactiveRestClientIT.java b/http/rest-client-reactive/src/test/java/io/quarkus/ts/http/restclient/reactive/ReactiveRestClientIT.java
index 41300d235..ef5869f1c 100644
--- a/http/rest-client-reactive/src/test/java/io/quarkus/ts/http/restclient/reactive/ReactiveRestClientIT.java
+++ b/http/rest-client-reactive/src/test/java/io/quarkus/ts/http/restclient/reactive/ReactiveRestClientIT.java
@@ -1,5 +1,7 @@
package io.quarkus.ts.http.restclient.reactive;
+import static io.quarkus.ts.http.restclient.reactive.PlainBookResource.SEARCH_TERM_VAL;
+import static org.hamcrest.Matchers.nullValue;
import static org.junit.jupiter.api.Assertions.assertEquals;
import org.apache.http.HttpStatus;
@@ -11,12 +13,17 @@
import io.quarkus.test.bootstrap.RestService;
import io.quarkus.test.scenarios.QuarkusScenario;
+import io.quarkus.test.scenarios.annotations.DisabledOnQuarkusVersion;
import io.quarkus.test.services.QuarkusApplication;
import io.restassured.response.Response;
@QuarkusScenario
public class ReactiveRestClientIT {
+ private static final String HEMINGWAY_BOOKS = "In Our Time, The Sun Also Rises, A Farewell to Arms, The Old Man and the Sea";
+ private static final String DISABLE_IF_NOT_QUARKUS_2_7_6_OR_2_8_3_OR_HIGHER = "(2\\.[0-6]\\..*)|(2\\.7\\.[0-5]\\..*)|(2\\.8\\.[0-2]\\..*)";
+ private static final String FIXED_IN_2_7_6_AND_2_8_3 = "Fixed in Quarkus 2.8.3.Final and 2.7.6.Final";
+
@QuarkusApplication
static RestService app = new RestService().withProperties("modern.properties");
@@ -107,4 +114,33 @@ public void deepLevel() {
assertEquals(HttpStatus.SC_OK, response.statusCode());
assertEquals("Heller", response.getBody().asString());
}
+
+ @DisabledOnQuarkusVersion(version = DISABLE_IF_NOT_QUARKUS_2_7_6_OR_2_8_3_OR_HIGHER, reason = FIXED_IN_2_7_6_AND_2_8_3)
+ @Test
+ public void decodedRequestPath() {
+ Response response = app.given().given().queryParam("searchTerm", SEARCH_TERM_VAL)
+ .get("/client/book/quick-search/decoded");
+ assertEquals(HttpStatus.SC_OK, response.statusCode());
+ assertEquals(HEMINGWAY_BOOKS, response.getBody().asString());
+ }
+
+ @DisabledOnQuarkusVersion(version = DISABLE_IF_NOT_QUARKUS_2_7_6_OR_2_8_3_OR_HIGHER, reason = FIXED_IN_2_7_6_AND_2_8_3)
+ @Test
+ public void encodedRequestPath() {
+ Response response = app.given().given().queryParam("searchTerm", SEARCH_TERM_VAL)
+ .get("/client/book/quick-search/encoded");
+ assertEquals(HttpStatus.SC_OK, response.statusCode());
+ assertEquals(HEMINGWAY_BOOKS, response.getBody().asString());
+ }
+
+ /**
+ * Test class annotated with {@link javax.ws.rs.Path} and registered as client via
+ * {@link org.eclipse.microprofile.rest.client.inject.RegisterRestClient} must not be included in OpenAPI Document.
+ */
+ @DisabledOnQuarkusVersion(version = "(2\\.[0-6]\\..*)|(2\\.7\\.[0-5]\\..*)", reason = "Fixed in Quarkus 2.7.6.")
+ @Test
+ public void restClientIsNotIncludedInOpenApiDocument() {
+ // Path '/books/author/profession/name' is unique to AuthorClient#getProfession() and should not be part of OpenAPI document
+ app.given().get("/q/openapi?format=json").then().body("paths.\"/books/author/profession/name\"", nullValue());
+ }
}
diff --git a/http/rest-client-reactive/src/test/java/io/quarkus/ts/http/restclient/reactive/ProxyIT.java b/http/rest-client-reactive/src/test/java/io/quarkus/ts/http/restclient/reactive/ReactiveRestClientProxyIT.java
similarity index 97%
rename from http/rest-client-reactive/src/test/java/io/quarkus/ts/http/restclient/reactive/ProxyIT.java
rename to http/rest-client-reactive/src/test/java/io/quarkus/ts/http/restclient/reactive/ReactiveRestClientProxyIT.java
index b88157e48..7ea64297c 100644
--- a/http/rest-client-reactive/src/test/java/io/quarkus/ts/http/restclient/reactive/ProxyIT.java
+++ b/http/rest-client-reactive/src/test/java/io/quarkus/ts/http/restclient/reactive/ReactiveRestClientProxyIT.java
@@ -13,7 +13,7 @@
import io.restassured.response.Response;
@QuarkusScenario
-public class ProxyIT {
+public class ReactiveRestClientProxyIT {
private static final String USER = "proxyuser";
private static final String PASSWORD = "proxypassword";
@@ -30,7 +30,7 @@ public class ProxyIT {
() -> proxy.getHost().replace("http://", "") + ":" + proxy.getPort());
@Test
- void getThrough() {
+ void sendRequestThroughProxy() {
Response proxied = proxyApp.given().with().get("/proxied/");
Assertions.assertEquals(HttpStatus.SC_OK, proxied.statusCode());
Assertions.assertTrue(proxied.body().asString().contains("Example Domain"));
diff --git a/http/rest-client-reactive/src/test/java/io/quarkus/ts/http/restclient/reactive/ClassicPropertiesIT.java b/http/rest-client-reactive/src/test/java/io/quarkus/ts/http/restclient/reactive/StandardMicroProfilePropertiesNotationIT.java
similarity index 93%
rename from http/rest-client-reactive/src/test/java/io/quarkus/ts/http/restclient/reactive/ClassicPropertiesIT.java
rename to http/rest-client-reactive/src/test/java/io/quarkus/ts/http/restclient/reactive/StandardMicroProfilePropertiesNotationIT.java
index 4110f0e21..f8ba56293 100644
--- a/http/rest-client-reactive/src/test/java/io/quarkus/ts/http/restclient/reactive/ClassicPropertiesIT.java
+++ b/http/rest-client-reactive/src/test/java/io/quarkus/ts/http/restclient/reactive/StandardMicroProfilePropertiesNotationIT.java
@@ -11,7 +11,7 @@
import io.restassured.response.Response;
@QuarkusScenario
-public class ClassicPropertiesIT {
+public class StandardMicroProfilePropertiesNotationIT {
@QuarkusApplication
static RestService app = new RestService().withProperties("classic.properties");
diff --git a/http/servlet-undertow/src/main/java/io/quarkus/ts/filters/CustomRequestFilter.java b/http/servlet-undertow/src/main/java/io/quarkus/ts/http/undertow/filters/CustomRequestFilter.java
similarity index 94%
rename from http/servlet-undertow/src/main/java/io/quarkus/ts/filters/CustomRequestFilter.java
rename to http/servlet-undertow/src/main/java/io/quarkus/ts/http/undertow/filters/CustomRequestFilter.java
index 392233526..93d2308d8 100644
--- a/http/servlet-undertow/src/main/java/io/quarkus/ts/filters/CustomRequestFilter.java
+++ b/http/servlet-undertow/src/main/java/io/quarkus/ts/http/undertow/filters/CustomRequestFilter.java
@@ -1,4 +1,4 @@
-package io.quarkus.ts.filters;
+package io.quarkus.ts.http.undertow.filters;
import java.io.IOException;
diff --git a/http/servlet-undertow/src/main/java/io/quarkus/ts/listener/SessionListener.java b/http/servlet-undertow/src/main/java/io/quarkus/ts/http/undertow/listener/SessionListener.java
similarity index 97%
rename from http/servlet-undertow/src/main/java/io/quarkus/ts/listener/SessionListener.java
rename to http/servlet-undertow/src/main/java/io/quarkus/ts/http/undertow/listener/SessionListener.java
index 2f66d6ece..573b0e383 100644
--- a/http/servlet-undertow/src/main/java/io/quarkus/ts/listener/SessionListener.java
+++ b/http/servlet-undertow/src/main/java/io/quarkus/ts/http/undertow/listener/SessionListener.java
@@ -1,4 +1,4 @@
-package io.quarkus.ts.listener;
+package io.quarkus.ts.http.undertow.listener;
import java.util.LinkedList;
diff --git a/http/servlet-undertow/src/main/java/io/quarkus/ts/servlets/HelloWorld.java b/http/servlet-undertow/src/main/java/io/quarkus/ts/http/undertow/servlets/HelloWorld.java
similarity index 94%
rename from http/servlet-undertow/src/main/java/io/quarkus/ts/servlets/HelloWorld.java
rename to http/servlet-undertow/src/main/java/io/quarkus/ts/http/undertow/servlets/HelloWorld.java
index 673b8db01..24715524e 100644
--- a/http/servlet-undertow/src/main/java/io/quarkus/ts/servlets/HelloWorld.java
+++ b/http/servlet-undertow/src/main/java/io/quarkus/ts/http/undertow/servlets/HelloWorld.java
@@ -1,4 +1,4 @@
-package io.quarkus.ts.servlets;
+package io.quarkus.ts.http.undertow.servlets;
import java.io.IOException;
import java.io.PrintWriter;
diff --git a/http/servlet-undertow/src/main/resources/META-INF/web.xml b/http/servlet-undertow/src/main/resources/META-INF/web.xml
index 5c1b14d45..946b6166a 100644
--- a/http/servlet-undertow/src/main/resources/META-INF/web.xml
+++ b/http/servlet-undertow/src/main/resources/META-INF/web.xml
@@ -1,11 +1,11 @@
- io.quarkus.ts.listener.SessionListener
+ io.quarkus.ts.http.undertow.listener.SessionListener
CustomRequestFilter
- io.quarkus.ts.filters.CustomRequestFilter
+ io.quarkus.ts.http.undertow.filters.CustomRequestFilter
CustomRequestFilter
@@ -13,7 +13,7 @@
HelloWorld
- io.quarkus.ts.servlets.HelloWorld
+ io.quarkus.ts.http.undertow.servlets.HelloWorld
HelloWorld
diff --git a/http/servlet-undertow/src/test/java/io/quarkus/ts/servlets/HttpServletWithSessionListenerIT.java b/http/servlet-undertow/src/test/java/io/quarkus/ts/http/undertow/HttpServletWithSessionListenerIT.java
similarity index 93%
rename from http/servlet-undertow/src/test/java/io/quarkus/ts/servlets/HttpServletWithSessionListenerIT.java
rename to http/servlet-undertow/src/test/java/io/quarkus/ts/http/undertow/HttpServletWithSessionListenerIT.java
index 9a6c242dc..fc5a2fb95 100644
--- a/http/servlet-undertow/src/test/java/io/quarkus/ts/servlets/HttpServletWithSessionListenerIT.java
+++ b/http/servlet-undertow/src/test/java/io/quarkus/ts/http/undertow/HttpServletWithSessionListenerIT.java
@@ -1,6 +1,6 @@
-package io.quarkus.ts.servlets;
+package io.quarkus.ts.http.undertow;
-import static io.quarkus.ts.listener.SessionListener.GAUGE_ACTIVE_SESSION;
+import static io.quarkus.ts.http.undertow.listener.SessionListener.GAUGE_ACTIVE_SESSION;
import static org.awaitility.Awaitility.await;
import java.time.Duration;
diff --git a/http/vertx-web-client/src/main/java/io/quarkus/qe/vertx/webclient/config/ChuckEndpointValue.java b/http/vertx-web-client/src/main/java/io/quarkus/ts/http/vertx/webclient/config/ChuckEndpointValue.java
similarity index 80%
rename from http/vertx-web-client/src/main/java/io/quarkus/qe/vertx/webclient/config/ChuckEndpointValue.java
rename to http/vertx-web-client/src/main/java/io/quarkus/ts/http/vertx/webclient/config/ChuckEndpointValue.java
index 6e789687a..281bdbb1c 100644
--- a/http/vertx-web-client/src/main/java/io/quarkus/qe/vertx/webclient/config/ChuckEndpointValue.java
+++ b/http/vertx-web-client/src/main/java/io/quarkus/ts/http/vertx/webclient/config/ChuckEndpointValue.java
@@ -1,4 +1,4 @@
-package io.quarkus.qe.vertx.webclient.config;
+package io.quarkus.ts.http.vertx.webclient.config;
public class ChuckEndpointValue {
diff --git a/http/vertx-web-client/src/main/java/io/quarkus/qe/vertx/webclient/config/ChuckEndpointValueConverter.java b/http/vertx-web-client/src/main/java/io/quarkus/ts/http/vertx/webclient/config/ChuckEndpointValueConverter.java
similarity index 84%
rename from http/vertx-web-client/src/main/java/io/quarkus/qe/vertx/webclient/config/ChuckEndpointValueConverter.java
rename to http/vertx-web-client/src/main/java/io/quarkus/ts/http/vertx/webclient/config/ChuckEndpointValueConverter.java
index eaec99a43..8a7c0c1e6 100644
--- a/http/vertx-web-client/src/main/java/io/quarkus/qe/vertx/webclient/config/ChuckEndpointValueConverter.java
+++ b/http/vertx-web-client/src/main/java/io/quarkus/ts/http/vertx/webclient/config/ChuckEndpointValueConverter.java
@@ -1,4 +1,4 @@
-package io.quarkus.qe.vertx.webclient.config;
+package io.quarkus.ts.http.vertx.webclient.config;
import org.eclipse.microprofile.config.spi.Converter;
diff --git a/http/vertx-web-client/src/main/java/io/quarkus/qe/vertx/webclient/config/VertxWebClientConfig.java b/http/vertx-web-client/src/main/java/io/quarkus/ts/http/vertx/webclient/config/VertxWebClientConfig.java
similarity index 82%
rename from http/vertx-web-client/src/main/java/io/quarkus/qe/vertx/webclient/config/VertxWebClientConfig.java
rename to http/vertx-web-client/src/main/java/io/quarkus/ts/http/vertx/webclient/config/VertxWebClientConfig.java
index f51cb74ee..2066b27da 100644
--- a/http/vertx-web-client/src/main/java/io/quarkus/qe/vertx/webclient/config/VertxWebClientConfig.java
+++ b/http/vertx-web-client/src/main/java/io/quarkus/ts/http/vertx/webclient/config/VertxWebClientConfig.java
@@ -1,4 +1,4 @@
-package io.quarkus.qe.vertx.webclient.config;
+package io.quarkus.ts.http.vertx.webclient.config;
import io.smallrye.config.ConfigMapping;
import io.smallrye.config.WithName;
diff --git a/http/vertx-web-client/src/main/java/io/quarkus/qe/vertx/webclient/handler/ChuckNorrisResource.java b/http/vertx-web-client/src/main/java/io/quarkus/ts/http/vertx/webclient/handler/ChuckNorrisResource.java
similarity index 92%
rename from http/vertx-web-client/src/main/java/io/quarkus/qe/vertx/webclient/handler/ChuckNorrisResource.java
rename to http/vertx-web-client/src/main/java/io/quarkus/ts/http/vertx/webclient/handler/ChuckNorrisResource.java
index 41b20198c..74c8a209e 100644
--- a/http/vertx-web-client/src/main/java/io/quarkus/qe/vertx/webclient/handler/ChuckNorrisResource.java
+++ b/http/vertx-web-client/src/main/java/io/quarkus/ts/http/vertx/webclient/handler/ChuckNorrisResource.java
@@ -1,4 +1,4 @@
-package io.quarkus.qe.vertx.webclient.handler;
+package io.quarkus.ts.http.vertx.webclient.handler;
import static io.quarkus.vertx.web.Route.HttpMethod;
@@ -13,9 +13,9 @@
import org.eclipse.microprofile.config.inject.ConfigProperty;
-import io.quarkus.qe.vertx.webclient.config.ChuckEndpointValue;
-import io.quarkus.qe.vertx.webclient.config.VertxWebClientConfig;
-import io.quarkus.qe.vertx.webclient.model.Joke;
+import io.quarkus.ts.http.vertx.webclient.config.ChuckEndpointValue;
+import io.quarkus.ts.http.vertx.webclient.config.VertxWebClientConfig;
+import io.quarkus.ts.http.vertx.webclient.model.Joke;
import io.quarkus.vertx.web.Route;
import io.quarkus.vertx.web.RouteBase;
import io.smallrye.mutiny.Uni;
diff --git a/http/vertx-web-client/src/main/java/io/quarkus/qe/vertx/webclient/handler/FailureHandler.java b/http/vertx-web-client/src/main/java/io/quarkus/ts/http/vertx/webclient/handler/FailureHandler.java
similarity index 94%
rename from http/vertx-web-client/src/main/java/io/quarkus/qe/vertx/webclient/handler/FailureHandler.java
rename to http/vertx-web-client/src/main/java/io/quarkus/ts/http/vertx/webclient/handler/FailureHandler.java
index 1b99ba881..0f4086007 100644
--- a/http/vertx-web-client/src/main/java/io/quarkus/qe/vertx/webclient/handler/FailureHandler.java
+++ b/http/vertx-web-client/src/main/java/io/quarkus/ts/http/vertx/webclient/handler/FailureHandler.java
@@ -1,4 +1,4 @@
-package io.quarkus.qe.vertx.webclient.handler;
+package io.quarkus.ts.http.vertx.webclient.handler;
import java.net.HttpURLConnection;
diff --git a/http/vertx-web-client/src/main/java/io/quarkus/qe/vertx/webclient/handler/TracingExampleResource.java b/http/vertx-web-client/src/main/java/io/quarkus/ts/http/vertx/webclient/handler/TracingExampleResource.java
similarity index 78%
rename from http/vertx-web-client/src/main/java/io/quarkus/qe/vertx/webclient/handler/TracingExampleResource.java
rename to http/vertx-web-client/src/main/java/io/quarkus/ts/http/vertx/webclient/handler/TracingExampleResource.java
index f965e1542..467e63f51 100644
--- a/http/vertx-web-client/src/main/java/io/quarkus/qe/vertx/webclient/handler/TracingExampleResource.java
+++ b/http/vertx-web-client/src/main/java/io/quarkus/ts/http/vertx/webclient/handler/TracingExampleResource.java
@@ -1,8 +1,8 @@
-package io.quarkus.qe.vertx.webclient.handler;
+package io.quarkus.ts.http.vertx.webclient.handler;
import javax.inject.Inject;
-import io.quarkus.qe.vertx.webclient.service.PongService;
+import io.quarkus.ts.http.vertx.webclient.service.PongService;
import io.quarkus.vertx.web.Route;
import io.quarkus.vertx.web.RouteBase;
import io.smallrye.mutiny.Uni;
diff --git a/http/vertx-web-client/src/main/java/io/quarkus/qe/vertx/webclient/model/Joke.java b/http/vertx-web-client/src/main/java/io/quarkus/ts/http/vertx/webclient/model/Joke.java
similarity index 93%
rename from http/vertx-web-client/src/main/java/io/quarkus/qe/vertx/webclient/model/Joke.java
rename to http/vertx-web-client/src/main/java/io/quarkus/ts/http/vertx/webclient/model/Joke.java
index 807efc6af..6e91b7b93 100644
--- a/http/vertx-web-client/src/main/java/io/quarkus/qe/vertx/webclient/model/Joke.java
+++ b/http/vertx-web-client/src/main/java/io/quarkus/ts/http/vertx/webclient/model/Joke.java
@@ -1,4 +1,4 @@
-package io.quarkus.qe.vertx.webclient.model;
+package io.quarkus.ts.http.vertx.webclient.model;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonProperty;
diff --git a/http/vertx-web-client/src/main/java/io/quarkus/qe/vertx/webclient/service/PongService.java b/http/vertx-web-client/src/main/java/io/quarkus/ts/http/vertx/webclient/service/PongService.java
similarity index 95%
rename from http/vertx-web-client/src/main/java/io/quarkus/qe/vertx/webclient/service/PongService.java
rename to http/vertx-web-client/src/main/java/io/quarkus/ts/http/vertx/webclient/service/PongService.java
index 7647af7f0..d8b0e8018 100644
--- a/http/vertx-web-client/src/main/java/io/quarkus/qe/vertx/webclient/service/PongService.java
+++ b/http/vertx-web-client/src/main/java/io/quarkus/ts/http/vertx/webclient/service/PongService.java
@@ -1,4 +1,4 @@
-package io.quarkus.qe.vertx.webclient.service;
+package io.quarkus.ts.http.vertx.webclient.service;
import java.net.HttpURLConnection;
diff --git a/http/vertx-web-client/src/main/resources/META-INF/services/org.eclipse.microprofile.config.spi.Converter b/http/vertx-web-client/src/main/resources/META-INF/services/org.eclipse.microprofile.config.spi.Converter
index 6565db531..a9e69bad9 100644
--- a/http/vertx-web-client/src/main/resources/META-INF/services/org.eclipse.microprofile.config.spi.Converter
+++ b/http/vertx-web-client/src/main/resources/META-INF/services/org.eclipse.microprofile.config.spi.Converter
@@ -1 +1 @@
-io.quarkus.qe.vertx.webclient.config.ChuckEndpointValueConverter
\ No newline at end of file
+io.quarkus.ts.http.vertx.webclient.config.ChuckEndpointValueConverter
\ No newline at end of file
diff --git a/http/vertx-web-client/src/test/java/io/quarkus/qe/vertx/webclient/PureVertxHttpClientTest.java b/http/vertx-web-client/src/test/java/io/quarkus/ts/http/vertx/webclient/PureVertxHttpClientTest.java
similarity index 97%
rename from http/vertx-web-client/src/test/java/io/quarkus/qe/vertx/webclient/PureVertxHttpClientTest.java
rename to http/vertx-web-client/src/test/java/io/quarkus/ts/http/vertx/webclient/PureVertxHttpClientTest.java
index a359f2c36..d1385eed9 100644
--- a/http/vertx-web-client/src/test/java/io/quarkus/qe/vertx/webclient/PureVertxHttpClientTest.java
+++ b/http/vertx-web-client/src/test/java/io/quarkus/ts/http/vertx/webclient/PureVertxHttpClientTest.java
@@ -1,4 +1,4 @@
-package io.quarkus.qe.vertx.webclient;
+package io.quarkus.ts.http.vertx.webclient;
import static org.junit.jupiter.api.Assertions.assertEquals;
diff --git a/http/vertx-web-client/src/test/java/io/quarkus/qe/vertx/webclient/ChuckNorrisResourceIT.java b/http/vertx-web-client/src/test/java/io/quarkus/ts/http/vertx/webclient/VertxWebClientIT.java
similarity index 98%
rename from http/vertx-web-client/src/test/java/io/quarkus/qe/vertx/webclient/ChuckNorrisResourceIT.java
rename to http/vertx-web-client/src/test/java/io/quarkus/ts/http/vertx/webclient/VertxWebClientIT.java
index f8ad2a955..bfa197458 100644
--- a/http/vertx-web-client/src/test/java/io/quarkus/qe/vertx/webclient/ChuckNorrisResourceIT.java
+++ b/http/vertx-web-client/src/test/java/io/quarkus/ts/http/vertx/webclient/VertxWebClientIT.java
@@ -1,4 +1,4 @@
-package io.quarkus.qe.vertx.webclient;
+package io.quarkus.ts.http.vertx.webclient;
import static com.github.tomakehurst.wiremock.client.WireMock.aResponse;
import static com.github.tomakehurst.wiremock.client.WireMock.get;
@@ -39,7 +39,7 @@
import io.restassured.response.Response;
@QuarkusScenario
-public class ChuckNorrisResourceIT {
+public class VertxWebClientIT {
static final String EXPECTED_ID = "aBanNLDwR-SAz7iMHuCiyw";
static final String EXPECTED_VALUE = "Chuck Norris has already been to mars; that why there's no signs of life";
static final int DELAY = 3500; // must be greater than vertx.webclient.timeout-sec
@@ -142,7 +142,7 @@ private void thenRetrieveTraces(int pageLimit, String lookBack, String serviceNa
.queryParam("limit", pageLimit)
.queryParam("lookback", lookBack)
.queryParam("service", serviceName)
- .queryParam("operation", operationName)
+ .queryParam("operationName", operationName)
.get(jaeger.getRestUrl());
}
diff --git a/javaee-like-getting-started/pom.xml b/javaee-like-getting-started/pom.xml
index 4930a88e0..7e4575dbc 100644
--- a/javaee-like-getting-started/pom.xml
+++ b/javaee-like-getting-started/pom.xml
@@ -9,7 +9,7 @@
javaee-like-getting-started
jar
- Quarkus QE TS: javaee like getting started
+ Quarkus QE TS: Java EE like Getting Started
io.quarkus
diff --git a/javaee-like-getting-started/src/main/java/io/quarkus/ts/core/CustomHealthCheckGroup.java b/javaee-like-getting-started/src/main/java/io/quarkus/ts/javaee/gettingstarted/CustomHealthCheckGroup.java
similarity index 91%
rename from javaee-like-getting-started/src/main/java/io/quarkus/ts/core/CustomHealthCheckGroup.java
rename to javaee-like-getting-started/src/main/java/io/quarkus/ts/javaee/gettingstarted/CustomHealthCheckGroup.java
index 0bc26a98a..0b6b9a0e3 100644
--- a/javaee-like-getting-started/src/main/java/io/quarkus/ts/core/CustomHealthCheckGroup.java
+++ b/javaee-like-getting-started/src/main/java/io/quarkus/ts/javaee/gettingstarted/CustomHealthCheckGroup.java
@@ -1,4 +1,4 @@
-package io.quarkus.ts.core;
+package io.quarkus.ts.javaee.gettingstarted;
import javax.enterprise.context.ApplicationScoped;
diff --git a/javaee-like-getting-started/src/main/java/io/quarkus/ts/core/FallbackResource.java b/javaee-like-getting-started/src/main/java/io/quarkus/ts/javaee/gettingstarted/FallbackResource.java
similarity index 92%
rename from javaee-like-getting-started/src/main/java/io/quarkus/ts/core/FallbackResource.java
rename to javaee-like-getting-started/src/main/java/io/quarkus/ts/javaee/gettingstarted/FallbackResource.java
index 292a08a3c..e9569ce61 100644
--- a/javaee-like-getting-started/src/main/java/io/quarkus/ts/core/FallbackResource.java
+++ b/javaee-like-getting-started/src/main/java/io/quarkus/ts/javaee/gettingstarted/FallbackResource.java
@@ -1,4 +1,4 @@
-package io.quarkus.ts.core;
+package io.quarkus.ts.javaee.gettingstarted;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
diff --git a/javaee-like-getting-started/src/main/java/io/quarkus/ts/core/GreetingHealthCheck.java b/javaee-like-getting-started/src/main/java/io/quarkus/ts/javaee/gettingstarted/GreetingHealthCheck.java
similarity index 90%
rename from javaee-like-getting-started/src/main/java/io/quarkus/ts/core/GreetingHealthCheck.java
rename to javaee-like-getting-started/src/main/java/io/quarkus/ts/javaee/gettingstarted/GreetingHealthCheck.java
index e74a1e29a..380bff525 100644
--- a/javaee-like-getting-started/src/main/java/io/quarkus/ts/core/GreetingHealthCheck.java
+++ b/javaee-like-getting-started/src/main/java/io/quarkus/ts/javaee/gettingstarted/GreetingHealthCheck.java
@@ -1,4 +1,4 @@
-package io.quarkus.ts.core;
+package io.quarkus.ts.javaee.gettingstarted;
import javax.enterprise.context.ApplicationScoped;
diff --git a/javaee-like-getting-started/src/main/java/io/quarkus/ts/core/GreetingLivenessCheck.java b/javaee-like-getting-started/src/main/java/io/quarkus/ts/javaee/gettingstarted/GreetingLivenessCheck.java
similarity index 89%
rename from javaee-like-getting-started/src/main/java/io/quarkus/ts/core/GreetingLivenessCheck.java
rename to javaee-like-getting-started/src/main/java/io/quarkus/ts/javaee/gettingstarted/GreetingLivenessCheck.java
index e06fb02e3..650df601f 100644
--- a/javaee-like-getting-started/src/main/java/io/quarkus/ts/core/GreetingLivenessCheck.java
+++ b/javaee-like-getting-started/src/main/java/io/quarkus/ts/javaee/gettingstarted/GreetingLivenessCheck.java
@@ -1,4 +1,4 @@
-package io.quarkus.ts.core;
+package io.quarkus.ts.javaee.gettingstarted;
import org.eclipse.microprofile.health.HealthCheck;
import org.eclipse.microprofile.health.HealthCheckResponse;
diff --git a/javaee-like-getting-started/src/main/java/io/quarkus/ts/core/GreetingReadinessCheck.java b/javaee-like-getting-started/src/main/java/io/quarkus/ts/javaee/gettingstarted/GreetingReadinessCheck.java
similarity index 89%
rename from javaee-like-getting-started/src/main/java/io/quarkus/ts/core/GreetingReadinessCheck.java
rename to javaee-like-getting-started/src/main/java/io/quarkus/ts/javaee/gettingstarted/GreetingReadinessCheck.java
index f22d2e2ba..87871b2dc 100644
--- a/javaee-like-getting-started/src/main/java/io/quarkus/ts/core/GreetingReadinessCheck.java
+++ b/javaee-like-getting-started/src/main/java/io/quarkus/ts/javaee/gettingstarted/GreetingReadinessCheck.java
@@ -1,4 +1,4 @@
-package io.quarkus.ts.core;
+package io.quarkus.ts.javaee.gettingstarted;
import org.eclipse.microprofile.health.HealthCheck;
import org.eclipse.microprofile.health.HealthCheckResponse;
diff --git a/javaee-like-getting-started/src/main/java/io/quarkus/ts/core/GreetingResource.java b/javaee-like-getting-started/src/main/java/io/quarkus/ts/javaee/gettingstarted/GreetingResource.java
similarity index 89%
rename from javaee-like-getting-started/src/main/java/io/quarkus/ts/core/GreetingResource.java
rename to javaee-like-getting-started/src/main/java/io/quarkus/ts/javaee/gettingstarted/GreetingResource.java
index 06beb92c8..88691378e 100644
--- a/javaee-like-getting-started/src/main/java/io/quarkus/ts/core/GreetingResource.java
+++ b/javaee-like-getting-started/src/main/java/io/quarkus/ts/javaee/gettingstarted/GreetingResource.java
@@ -1,4 +1,4 @@
-package io.quarkus.ts.core;
+package io.quarkus.ts.javaee.gettingstarted;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
diff --git a/javaee-like-getting-started/src/main/java/io/quarkus/ts/core/InjectingScopedBeansResource.java b/javaee-like-getting-started/src/main/java/io/quarkus/ts/javaee/gettingstarted/InjectingScopedBeansResource.java
similarity index 95%
rename from javaee-like-getting-started/src/main/java/io/quarkus/ts/core/InjectingScopedBeansResource.java
rename to javaee-like-getting-started/src/main/java/io/quarkus/ts/javaee/gettingstarted/InjectingScopedBeansResource.java
index 741b8250e..48cdcfdea 100644
--- a/javaee-like-getting-started/src/main/java/io/quarkus/ts/core/InjectingScopedBeansResource.java
+++ b/javaee-like-getting-started/src/main/java/io/quarkus/ts/javaee/gettingstarted/InjectingScopedBeansResource.java
@@ -1,4 +1,4 @@
-package io.quarkus.ts.core;
+package io.quarkus.ts.javaee.gettingstarted;
import javax.inject.Inject;
import javax.servlet.ServletContext;
diff --git a/javaee-like-getting-started/src/test/java/io/quarkus/ts/core/FallbackResourceIT.java b/javaee-like-getting-started/src/test/java/io/quarkus/ts/javaee/gettingstarted/FallbackResourceIT.java
similarity index 92%
rename from javaee-like-getting-started/src/test/java/io/quarkus/ts/core/FallbackResourceIT.java
rename to javaee-like-getting-started/src/test/java/io/quarkus/ts/javaee/gettingstarted/FallbackResourceIT.java
index 681ed39c9..e03cf21d6 100644
--- a/javaee-like-getting-started/src/test/java/io/quarkus/ts/core/FallbackResourceIT.java
+++ b/javaee-like-getting-started/src/test/java/io/quarkus/ts/javaee/gettingstarted/FallbackResourceIT.java
@@ -1,4 +1,4 @@
-package io.quarkus.ts.core;
+package io.quarkus.ts.javaee.gettingstarted;
import static io.restassured.RestAssured.given;
import static org.hamcrest.CoreMatchers.is;
@@ -13,7 +13,7 @@ public class FallbackResourceIT {
private static final String WORK_METHOD = "work";
private static final String FAIL_METHOD = "fail";
- private static final String FALLBACK_METRIC = "base_ft_invocations_total{fallback=\"%s\",method=\"io.quarkus.ts.core.FallbackResource.%s\",result=\"valueReturned\"} %s.0";
+ private static final String FALLBACK_METRIC = "base_ft_invocations_total{fallback=\"%s\",method=\"io.quarkus.ts.javaee.gettingstarted.FallbackResource.%s\",result=\"valueReturned\"} %s.0";
private static final String FALLBACK_APPLIED = "applied";
private static final String FALLBACK_NOT_APPLIED = "notApplied";
private static final String ONE = "1";
diff --git a/javaee-like-getting-started/src/test/java/io/quarkus/ts/core/InjectingScopedBeansResourceIT.java b/javaee-like-getting-started/src/test/java/io/quarkus/ts/javaee/gettingstarted/InjectingScopedBeansResourceIT.java
similarity index 93%
rename from javaee-like-getting-started/src/test/java/io/quarkus/ts/core/InjectingScopedBeansResourceIT.java
rename to javaee-like-getting-started/src/test/java/io/quarkus/ts/javaee/gettingstarted/InjectingScopedBeansResourceIT.java
index a465063e7..bb04d3c8f 100644
--- a/javaee-like-getting-started/src/test/java/io/quarkus/ts/core/InjectingScopedBeansResourceIT.java
+++ b/javaee-like-getting-started/src/test/java/io/quarkus/ts/javaee/gettingstarted/InjectingScopedBeansResourceIT.java
@@ -1,4 +1,4 @@
-package io.quarkus.ts.core;
+package io.quarkus.ts.javaee.gettingstarted;
import static io.restassured.RestAssured.given;
import static org.hamcrest.Matchers.notNullValue;
diff --git a/javaee-like-getting-started/src/test/java/io/quarkus/ts/core/JavaEELikeHealthCheckIT.java b/javaee-like-getting-started/src/test/java/io/quarkus/ts/javaee/gettingstarted/JavaEELikeHealthCheckIT.java
similarity index 98%
rename from javaee-like-getting-started/src/test/java/io/quarkus/ts/core/JavaEELikeHealthCheckIT.java
rename to javaee-like-getting-started/src/test/java/io/quarkus/ts/javaee/gettingstarted/JavaEELikeHealthCheckIT.java
index ca24b9e1b..4442e33b4 100644
--- a/javaee-like-getting-started/src/test/java/io/quarkus/ts/core/JavaEELikeHealthCheckIT.java
+++ b/javaee-like-getting-started/src/test/java/io/quarkus/ts/javaee/gettingstarted/JavaEELikeHealthCheckIT.java
@@ -1,4 +1,4 @@
-package io.quarkus.ts.core;
+package io.quarkus.ts.javaee.gettingstarted;
import static io.restassured.RestAssured.given;
import static org.hamcrest.Matchers.containsInAnyOrder;
diff --git a/javaee-like-getting-started/src/test/java/io/quarkus/ts/core/JavaEELikeQuarkusBundleIT.java b/javaee-like-getting-started/src/test/java/io/quarkus/ts/javaee/gettingstarted/JavaEELikeQuarkusBundleIT.java
similarity index 90%
rename from javaee-like-getting-started/src/test/java/io/quarkus/ts/core/JavaEELikeQuarkusBundleIT.java
rename to javaee-like-getting-started/src/test/java/io/quarkus/ts/javaee/gettingstarted/JavaEELikeQuarkusBundleIT.java
index 748af3fd0..87b63c0b6 100644
--- a/javaee-like-getting-started/src/test/java/io/quarkus/ts/core/JavaEELikeQuarkusBundleIT.java
+++ b/javaee-like-getting-started/src/test/java/io/quarkus/ts/javaee/gettingstarted/JavaEELikeQuarkusBundleIT.java
@@ -1,4 +1,4 @@
-package io.quarkus.ts.core;
+package io.quarkus.ts.javaee.gettingstarted;
import static io.restassured.RestAssured.given;
import static org.hamcrest.CoreMatchers.is;
diff --git a/logging/jboss/src/test/java/io/quarkus/ts/logging/jboss/LogResourceIT.java b/logging/jboss/src/test/java/io/quarkus/ts/logging/jboss/LoggingInJsonIT.java
similarity index 99%
rename from logging/jboss/src/test/java/io/quarkus/ts/logging/jboss/LogResourceIT.java
rename to logging/jboss/src/test/java/io/quarkus/ts/logging/jboss/LoggingInJsonIT.java
index b879ba1c7..3f129a572 100644
--- a/logging/jboss/src/test/java/io/quarkus/ts/logging/jboss/LogResourceIT.java
+++ b/logging/jboss/src/test/java/io/quarkus/ts/logging/jboss/LoggingInJsonIT.java
@@ -11,7 +11,7 @@
import io.quarkus.test.services.QuarkusApplication;
@QuarkusScenario
-public class LogResourceIT {
+public class LoggingInJsonIT {
private static final String EXPECTED_JSON_MESSAGE = "\"level\":\"INFO\",\"message\":\"Profile prod activated. \"";
private static final String MESSAGE = "messageLog";
diff --git a/messaging/amqp-reactive/src/test/java/io/quarkus/ts/messaging/amqpreactive/BaseAmqpIT.java b/messaging/amqp-reactive/src/test/java/io/quarkus/ts/messaging/amqpreactive/BaseAmqpReactiveIT.java
similarity index 96%
rename from messaging/amqp-reactive/src/test/java/io/quarkus/ts/messaging/amqpreactive/BaseAmqpIT.java
rename to messaging/amqp-reactive/src/test/java/io/quarkus/ts/messaging/amqpreactive/BaseAmqpReactiveIT.java
index 303d7188a..ced8a7173 100644
--- a/messaging/amqp-reactive/src/test/java/io/quarkus/ts/messaging/amqpreactive/BaseAmqpIT.java
+++ b/messaging/amqp-reactive/src/test/java/io/quarkus/ts/messaging/amqpreactive/BaseAmqpReactiveIT.java
@@ -11,7 +11,7 @@
import org.apache.http.HttpStatus;
import org.junit.jupiter.api.Test;
-public abstract class BaseAmqpIT {
+public abstract class BaseAmqpReactiveIT {
static final int ASSERT_TIMEOUT_SECONDS = 30;
static final List EXPECTED_PRICES = Arrays.asList("10", "20", "30", "40", "50", "60", "70", "80", "90", "100");
diff --git a/messaging/amqp-reactive/src/test/java/io/quarkus/ts/messaging/amqpreactive/DevModeAmqpIT.java b/messaging/amqp-reactive/src/test/java/io/quarkus/ts/messaging/amqpreactive/DevModeAmqpReactiveIT.java
similarity index 91%
rename from messaging/amqp-reactive/src/test/java/io/quarkus/ts/messaging/amqpreactive/DevModeAmqpIT.java
rename to messaging/amqp-reactive/src/test/java/io/quarkus/ts/messaging/amqpreactive/DevModeAmqpReactiveIT.java
index 0166e82ea..4dc26b06f 100644
--- a/messaging/amqp-reactive/src/test/java/io/quarkus/ts/messaging/amqpreactive/DevModeAmqpIT.java
+++ b/messaging/amqp-reactive/src/test/java/io/quarkus/ts/messaging/amqpreactive/DevModeAmqpReactiveIT.java
@@ -9,7 +9,7 @@
@Tag("QUARKUS-959")
@QuarkusScenario
-public class DevModeAmqpIT extends BaseAmqpIT {
+public class DevModeAmqpReactiveIT extends BaseAmqpReactiveIT {
/**
* AMQP must be started using DEV services when running in DEV mode
diff --git a/messaging/amqp-reactive/src/test/java/io/quarkus/ts/messaging/amqpreactive/OpenShiftProdAmqpIT.java b/messaging/amqp-reactive/src/test/java/io/quarkus/ts/messaging/amqpreactive/OpenShiftProdAmqpReactiveIT.java
similarity index 63%
rename from messaging/amqp-reactive/src/test/java/io/quarkus/ts/messaging/amqpreactive/OpenShiftProdAmqpIT.java
rename to messaging/amqp-reactive/src/test/java/io/quarkus/ts/messaging/amqpreactive/OpenShiftProdAmqpReactiveIT.java
index 469d92c10..1a10b50c2 100644
--- a/messaging/amqp-reactive/src/test/java/io/quarkus/ts/messaging/amqpreactive/OpenShiftProdAmqpIT.java
+++ b/messaging/amqp-reactive/src/test/java/io/quarkus/ts/messaging/amqpreactive/OpenShiftProdAmqpReactiveIT.java
@@ -3,5 +3,5 @@
import io.quarkus.test.scenarios.OpenShiftScenario;
@OpenShiftScenario
-public class OpenShiftProdAmqpIT extends ProdAmqpIT {
+public class OpenShiftProdAmqpReactiveIT extends ProdAmqpReactiveIT {
}
diff --git a/messaging/amqp-reactive/src/test/java/io/quarkus/ts/messaging/amqpreactive/ProdAmqpIT.java b/messaging/amqp-reactive/src/test/java/io/quarkus/ts/messaging/amqpreactive/ProdAmqpReactiveIT.java
similarity index 92%
rename from messaging/amqp-reactive/src/test/java/io/quarkus/ts/messaging/amqpreactive/ProdAmqpIT.java
rename to messaging/amqp-reactive/src/test/java/io/quarkus/ts/messaging/amqpreactive/ProdAmqpReactiveIT.java
index e77677e4b..e6f7406d3 100644
--- a/messaging/amqp-reactive/src/test/java/io/quarkus/ts/messaging/amqpreactive/ProdAmqpIT.java
+++ b/messaging/amqp-reactive/src/test/java/io/quarkus/ts/messaging/amqpreactive/ProdAmqpReactiveIT.java
@@ -8,7 +8,7 @@
import io.quarkus.test.services.containers.model.AmqProtocol;
@QuarkusScenario
-public class ProdAmqpIT extends BaseAmqpIT {
+public class ProdAmqpReactiveIT extends BaseAmqpReactiveIT {
@AmqContainer(image = "registry.access.redhat.com/amq-broker-7/amq-broker-72-openshift", protocol = AmqProtocol.AMQP)
static AmqService amq = new AmqService();
diff --git a/messaging/cloud-events/amqp-binary/src/main/java/io/quarkus/ts/messaging/amqpreactive/Consumer.java b/messaging/cloud-events/amqp-binary/src/main/java/io/quarkus/ts/messaging/cloudevents/amqpbinary/Consumer.java
similarity index 97%
rename from messaging/cloud-events/amqp-binary/src/main/java/io/quarkus/ts/messaging/amqpreactive/Consumer.java
rename to messaging/cloud-events/amqp-binary/src/main/java/io/quarkus/ts/messaging/cloudevents/amqpbinary/Consumer.java
index da42514a9..c6b7324f0 100644
--- a/messaging/cloud-events/amqp-binary/src/main/java/io/quarkus/ts/messaging/amqpreactive/Consumer.java
+++ b/messaging/cloud-events/amqp-binary/src/main/java/io/quarkus/ts/messaging/cloudevents/amqpbinary/Consumer.java
@@ -1,4 +1,4 @@
-package io.quarkus.ts.messaging.amqpreactive;
+package io.quarkus.ts.messaging.cloudevents.amqpbinary;
import java.util.HashMap;
import java.util.Objects;
diff --git a/messaging/cloud-events/amqp-binary/src/main/java/io/quarkus/ts/messaging/amqpreactive/Producer.java b/messaging/cloud-events/amqp-binary/src/main/java/io/quarkus/ts/messaging/cloudevents/amqpbinary/Producer.java
similarity index 95%
rename from messaging/cloud-events/amqp-binary/src/main/java/io/quarkus/ts/messaging/amqpreactive/Producer.java
rename to messaging/cloud-events/amqp-binary/src/main/java/io/quarkus/ts/messaging/cloudevents/amqpbinary/Producer.java
index 8d6bdc98d..d90fc05cc 100644
--- a/messaging/cloud-events/amqp-binary/src/main/java/io/quarkus/ts/messaging/amqpreactive/Producer.java
+++ b/messaging/cloud-events/amqp-binary/src/main/java/io/quarkus/ts/messaging/cloudevents/amqpbinary/Producer.java
@@ -1,4 +1,4 @@
-package io.quarkus.ts.messaging.amqpreactive;
+package io.quarkus.ts.messaging.cloudevents.amqpbinary;
import java.net.URI;
import java.time.Duration;
diff --git a/messaging/cloud-events/amqp-binary/src/main/java/io/quarkus/ts/messaging/amqpreactive/Resource.java b/messaging/cloud-events/amqp-binary/src/main/java/io/quarkus/ts/messaging/cloudevents/amqpbinary/Resource.java
similarity index 90%
rename from messaging/cloud-events/amqp-binary/src/main/java/io/quarkus/ts/messaging/amqpreactive/Resource.java
rename to messaging/cloud-events/amqp-binary/src/main/java/io/quarkus/ts/messaging/cloudevents/amqpbinary/Resource.java
index 869b893b7..098f041ad 100644
--- a/messaging/cloud-events/amqp-binary/src/main/java/io/quarkus/ts/messaging/amqpreactive/Resource.java
+++ b/messaging/cloud-events/amqp-binary/src/main/java/io/quarkus/ts/messaging/cloudevents/amqpbinary/Resource.java
@@ -1,4 +1,4 @@
-package io.quarkus.ts.messaging.amqpreactive;
+package io.quarkus.ts.messaging.cloudevents.amqpbinary;
import javax.inject.Inject;
import javax.ws.rs.GET;
diff --git a/messaging/cloud-events/amqp-binary/src/test/java/io/quarkus/ts/messaging/amqpreactive/OpenShiftProdAmqpIT.java b/messaging/cloud-events/amqp-binary/src/test/java/io/quarkus/ts/messaging/amqpreactive/OpenShiftProdAmqpIT.java
deleted file mode 100644
index 469d92c10..000000000
--- a/messaging/cloud-events/amqp-binary/src/test/java/io/quarkus/ts/messaging/amqpreactive/OpenShiftProdAmqpIT.java
+++ /dev/null
@@ -1,7 +0,0 @@
-package io.quarkus.ts.messaging.amqpreactive;
-
-import io.quarkus.test.scenarios.OpenShiftScenario;
-
-@OpenShiftScenario
-public class OpenShiftProdAmqpIT extends ProdAmqpIT {
-}
diff --git a/messaging/cloud-events/amqp-json/src/test/java/io/quarkus/ts/messaging/amqpreactive/BaseAmqpIT.java b/messaging/cloud-events/amqp-binary/src/test/java/io/quarkus/ts/messaging/cloudevents/amqpbinary/BaseBinaryCloudEventsOverAmqpIT.java
similarity index 92%
rename from messaging/cloud-events/amqp-json/src/test/java/io/quarkus/ts/messaging/amqpreactive/BaseAmqpIT.java
rename to messaging/cloud-events/amqp-binary/src/test/java/io/quarkus/ts/messaging/cloudevents/amqpbinary/BaseBinaryCloudEventsOverAmqpIT.java
index 2f7503d79..80d0acf56 100644
--- a/messaging/cloud-events/amqp-json/src/test/java/io/quarkus/ts/messaging/amqpreactive/BaseAmqpIT.java
+++ b/messaging/cloud-events/amqp-binary/src/test/java/io/quarkus/ts/messaging/cloudevents/amqpbinary/BaseBinaryCloudEventsOverAmqpIT.java
@@ -1,4 +1,4 @@
-package io.quarkus.ts.messaging.amqpreactive;
+package io.quarkus.ts.messaging.cloudevents.amqpbinary;
import static io.restassured.RestAssured.given;
import static org.awaitility.Awaitility.await;
@@ -13,7 +13,7 @@
import org.apache.http.HttpStatus;
import org.junit.jupiter.api.Test;
-public abstract class BaseAmqpIT {
+public abstract class BaseBinaryCloudEventsOverAmqpIT {
static final int ASSERT_TIMEOUT_SECONDS = 30;
static final List EXPECTED_PRICES = Arrays.asList("10", "20", "30", "40", "50", "60", "70", "80", "90", "100");
diff --git a/messaging/cloud-events/amqp-binary/src/test/java/io/quarkus/ts/messaging/amqpreactive/ProdAmqpIT.java b/messaging/cloud-events/amqp-binary/src/test/java/io/quarkus/ts/messaging/cloudevents/amqpbinary/BinaryCloudEventsOverProdAmqpIT.java
similarity index 82%
rename from messaging/cloud-events/amqp-binary/src/test/java/io/quarkus/ts/messaging/amqpreactive/ProdAmqpIT.java
rename to messaging/cloud-events/amqp-binary/src/test/java/io/quarkus/ts/messaging/cloudevents/amqpbinary/BinaryCloudEventsOverProdAmqpIT.java
index 13461cc6a..0990c4969 100644
--- a/messaging/cloud-events/amqp-binary/src/test/java/io/quarkus/ts/messaging/amqpreactive/ProdAmqpIT.java
+++ b/messaging/cloud-events/amqp-binary/src/test/java/io/quarkus/ts/messaging/cloudevents/amqpbinary/BinaryCloudEventsOverProdAmqpIT.java
@@ -1,4 +1,4 @@
-package io.quarkus.ts.messaging.amqpreactive;
+package io.quarkus.ts.messaging.cloudevents.amqpbinary;
import io.quarkus.test.bootstrap.AmqService;
import io.quarkus.test.bootstrap.RestService;
@@ -8,7 +8,7 @@
import io.quarkus.test.services.containers.model.AmqProtocol;
@QuarkusScenario
-public class ProdAmqpIT extends BaseAmqpIT {
+public class BinaryCloudEventsOverProdAmqpIT extends BaseBinaryCloudEventsOverAmqpIT {
@AmqContainer(image = "registry.access.redhat.com/amq-broker-7/amq-broker-72-openshift", protocol = AmqProtocol.AMQP)
static AmqService amq = new AmqService();
diff --git a/messaging/cloud-events/amqp-binary/src/test/java/io/quarkus/ts/messaging/cloudevents/amqpbinary/OpenShiftBinaryCloudEventsOverProdAmqpIT.java b/messaging/cloud-events/amqp-binary/src/test/java/io/quarkus/ts/messaging/cloudevents/amqpbinary/OpenShiftBinaryCloudEventsOverProdAmqpIT.java
new file mode 100644
index 000000000..0193a5347
--- /dev/null
+++ b/messaging/cloud-events/amqp-binary/src/test/java/io/quarkus/ts/messaging/cloudevents/amqpbinary/OpenShiftBinaryCloudEventsOverProdAmqpIT.java
@@ -0,0 +1,7 @@
+package io.quarkus.ts.messaging.cloudevents.amqpbinary;
+
+import io.quarkus.test.scenarios.OpenShiftScenario;
+
+@OpenShiftScenario
+public class OpenShiftBinaryCloudEventsOverProdAmqpIT extends BinaryCloudEventsOverProdAmqpIT {
+}
diff --git a/messaging/cloud-events/amqp-json/src/main/java/io/quarkus/ts/messaging/amqpreactive/Consumer.java b/messaging/cloud-events/amqp-json/src/main/java/io/quarkus/ts/messaging/cloudevents/amqpjson/Consumer.java
similarity index 97%
rename from messaging/cloud-events/amqp-json/src/main/java/io/quarkus/ts/messaging/amqpreactive/Consumer.java
rename to messaging/cloud-events/amqp-json/src/main/java/io/quarkus/ts/messaging/cloudevents/amqpjson/Consumer.java
index da42514a9..04b6ebfeb 100644
--- a/messaging/cloud-events/amqp-json/src/main/java/io/quarkus/ts/messaging/amqpreactive/Consumer.java
+++ b/messaging/cloud-events/amqp-json/src/main/java/io/quarkus/ts/messaging/cloudevents/amqpjson/Consumer.java
@@ -1,4 +1,4 @@
-package io.quarkus.ts.messaging.amqpreactive;
+package io.quarkus.ts.messaging.cloudevents.amqpjson;
import java.util.HashMap;
import java.util.Objects;
diff --git a/messaging/cloud-events/amqp-json/src/main/java/io/quarkus/ts/messaging/amqpreactive/Producer.java b/messaging/cloud-events/amqp-json/src/main/java/io/quarkus/ts/messaging/cloudevents/amqpjson/Producer.java
similarity index 97%
rename from messaging/cloud-events/amqp-json/src/main/java/io/quarkus/ts/messaging/amqpreactive/Producer.java
rename to messaging/cloud-events/amqp-json/src/main/java/io/quarkus/ts/messaging/cloudevents/amqpjson/Producer.java
index cfd6989c2..d9aa6b16c 100644
--- a/messaging/cloud-events/amqp-json/src/main/java/io/quarkus/ts/messaging/amqpreactive/Producer.java
+++ b/messaging/cloud-events/amqp-json/src/main/java/io/quarkus/ts/messaging/cloudevents/amqpjson/Producer.java
@@ -1,4 +1,4 @@
-package io.quarkus.ts.messaging.amqpreactive;
+package io.quarkus.ts.messaging.cloudevents.amqpjson;
import java.net.URI;
import java.time.Duration;
diff --git a/messaging/cloud-events/amqp-json/src/main/java/io/quarkus/ts/messaging/amqpreactive/Resource.java b/messaging/cloud-events/amqp-json/src/main/java/io/quarkus/ts/messaging/cloudevents/amqpjson/Resource.java
similarity index 90%
rename from messaging/cloud-events/amqp-json/src/main/java/io/quarkus/ts/messaging/amqpreactive/Resource.java
rename to messaging/cloud-events/amqp-json/src/main/java/io/quarkus/ts/messaging/cloudevents/amqpjson/Resource.java
index 869b893b7..affe7a331 100644
--- a/messaging/cloud-events/amqp-json/src/main/java/io/quarkus/ts/messaging/amqpreactive/Resource.java
+++ b/messaging/cloud-events/amqp-json/src/main/java/io/quarkus/ts/messaging/cloudevents/amqpjson/Resource.java
@@ -1,4 +1,4 @@
-package io.quarkus.ts.messaging.amqpreactive;
+package io.quarkus.ts.messaging.cloudevents.amqpjson;
import javax.inject.Inject;
import javax.ws.rs.GET;
diff --git a/messaging/cloud-events/amqp-json/src/test/java/io/quarkus/ts/messaging/amqpreactive/OpenShiftProdAmqpIT.java b/messaging/cloud-events/amqp-json/src/test/java/io/quarkus/ts/messaging/amqpreactive/OpenShiftProdAmqpIT.java
deleted file mode 100644
index 469d92c10..000000000
--- a/messaging/cloud-events/amqp-json/src/test/java/io/quarkus/ts/messaging/amqpreactive/OpenShiftProdAmqpIT.java
+++ /dev/null
@@ -1,7 +0,0 @@
-package io.quarkus.ts.messaging.amqpreactive;
-
-import io.quarkus.test.scenarios.OpenShiftScenario;
-
-@OpenShiftScenario
-public class OpenShiftProdAmqpIT extends ProdAmqpIT {
-}
diff --git a/messaging/cloud-events/amqp-binary/src/test/java/io/quarkus/ts/messaging/amqpreactive/BaseAmqpIT.java b/messaging/cloud-events/amqp-json/src/test/java/io/quarkus/ts/messaging/cloudevents/amqpjson/BaseJSONCloudEventsOverAmqpIT.java
similarity index 92%
rename from messaging/cloud-events/amqp-binary/src/test/java/io/quarkus/ts/messaging/amqpreactive/BaseAmqpIT.java
rename to messaging/cloud-events/amqp-json/src/test/java/io/quarkus/ts/messaging/cloudevents/amqpjson/BaseJSONCloudEventsOverAmqpIT.java
index 2f7503d79..4cb15fa4b 100644
--- a/messaging/cloud-events/amqp-binary/src/test/java/io/quarkus/ts/messaging/amqpreactive/BaseAmqpIT.java
+++ b/messaging/cloud-events/amqp-json/src/test/java/io/quarkus/ts/messaging/cloudevents/amqpjson/BaseJSONCloudEventsOverAmqpIT.java
@@ -1,4 +1,4 @@
-package io.quarkus.ts.messaging.amqpreactive;
+package io.quarkus.ts.messaging.cloudevents.amqpjson;
import static io.restassured.RestAssured.given;
import static org.awaitility.Awaitility.await;
@@ -13,7 +13,7 @@
import org.apache.http.HttpStatus;
import org.junit.jupiter.api.Test;
-public abstract class BaseAmqpIT {
+public abstract class BaseJSONCloudEventsOverAmqpIT {
static final int ASSERT_TIMEOUT_SECONDS = 30;
static final List EXPECTED_PRICES = Arrays.asList("10", "20", "30", "40", "50", "60", "70", "80", "90", "100");
diff --git a/messaging/cloud-events/amqp-json/src/test/java/io/quarkus/ts/messaging/amqpreactive/ProdAmqpIT.java b/messaging/cloud-events/amqp-json/src/test/java/io/quarkus/ts/messaging/cloudevents/amqpjson/JSONCloudEventsOverProdAmqpIT.java
similarity index 83%
rename from messaging/cloud-events/amqp-json/src/test/java/io/quarkus/ts/messaging/amqpreactive/ProdAmqpIT.java
rename to messaging/cloud-events/amqp-json/src/test/java/io/quarkus/ts/messaging/cloudevents/amqpjson/JSONCloudEventsOverProdAmqpIT.java
index 13461cc6a..1f8a45e36 100644
--- a/messaging/cloud-events/amqp-json/src/test/java/io/quarkus/ts/messaging/amqpreactive/ProdAmqpIT.java
+++ b/messaging/cloud-events/amqp-json/src/test/java/io/quarkus/ts/messaging/cloudevents/amqpjson/JSONCloudEventsOverProdAmqpIT.java
@@ -1,4 +1,4 @@
-package io.quarkus.ts.messaging.amqpreactive;
+package io.quarkus.ts.messaging.cloudevents.amqpjson;
import io.quarkus.test.bootstrap.AmqService;
import io.quarkus.test.bootstrap.RestService;
@@ -8,7 +8,7 @@
import io.quarkus.test.services.containers.model.AmqProtocol;
@QuarkusScenario
-public class ProdAmqpIT extends BaseAmqpIT {
+public class JSONCloudEventsOverProdAmqpIT extends BaseJSONCloudEventsOverAmqpIT {
@AmqContainer(image = "registry.access.redhat.com/amq-broker-7/amq-broker-72-openshift", protocol = AmqProtocol.AMQP)
static AmqService amq = new AmqService();
diff --git a/messaging/cloud-events/amqp-json/src/test/java/io/quarkus/ts/messaging/cloudevents/amqpjson/OpenShiftJSONCloudEventsOverProdAmqpIT.java b/messaging/cloud-events/amqp-json/src/test/java/io/quarkus/ts/messaging/cloudevents/amqpjson/OpenShiftJSONCloudEventsOverProdAmqpIT.java
new file mode 100644
index 000000000..a8035e0a0
--- /dev/null
+++ b/messaging/cloud-events/amqp-json/src/test/java/io/quarkus/ts/messaging/cloudevents/amqpjson/OpenShiftJSONCloudEventsOverProdAmqpIT.java
@@ -0,0 +1,7 @@
+package io.quarkus.ts.messaging.cloudevents.amqpjson;
+
+import io.quarkus.test.scenarios.OpenShiftScenario;
+
+@OpenShiftScenario
+public class OpenShiftJSONCloudEventsOverProdAmqpIT extends JSONCloudEventsOverProdAmqpIT {
+}
diff --git a/messaging/infinispan-grpc-kafka/src/main/java/io/quarkus/qe/messaging/infinispan/InfinispanPopulated.java b/messaging/infinispan-grpc-kafka/src/main/java/io/quarkus/ts/messaging/infinispan/grpc/kafka/InfinispanPopulated.java
similarity index 95%
rename from messaging/infinispan-grpc-kafka/src/main/java/io/quarkus/qe/messaging/infinispan/InfinispanPopulated.java
rename to messaging/infinispan-grpc-kafka/src/main/java/io/quarkus/ts/messaging/infinispan/grpc/kafka/InfinispanPopulated.java
index e84a41798..15be908fc 100644
--- a/messaging/infinispan-grpc-kafka/src/main/java/io/quarkus/qe/messaging/infinispan/InfinispanPopulated.java
+++ b/messaging/infinispan-grpc-kafka/src/main/java/io/quarkus/ts/messaging/infinispan/grpc/kafka/InfinispanPopulated.java
@@ -1,4 +1,4 @@
-package io.quarkus.qe.messaging.infinispan;
+package io.quarkus.ts.messaging.infinispan.grpc.kafka;
import javax.enterprise.context.ApplicationScoped;
import javax.enterprise.event.Observes;
diff --git a/messaging/infinispan-grpc-kafka/src/main/java/io/quarkus/qe/messaging/infinispan/books/Book.java b/messaging/infinispan-grpc-kafka/src/main/java/io/quarkus/ts/messaging/infinispan/grpc/kafka/books/Book.java
similarity index 96%
rename from messaging/infinispan-grpc-kafka/src/main/java/io/quarkus/qe/messaging/infinispan/books/Book.java
rename to messaging/infinispan-grpc-kafka/src/main/java/io/quarkus/ts/messaging/infinispan/grpc/kafka/books/Book.java
index 68bf6442f..7cc4af042 100644
--- a/messaging/infinispan-grpc-kafka/src/main/java/io/quarkus/qe/messaging/infinispan/books/Book.java
+++ b/messaging/infinispan-grpc-kafka/src/main/java/io/quarkus/ts/messaging/infinispan/grpc/kafka/books/Book.java
@@ -1,4 +1,4 @@
-package io.quarkus.qe.messaging.infinispan.books;
+package io.quarkus.ts.messaging.infinispan.grpc.kafka.books;
import java.util.Objects;
diff --git a/messaging/infinispan-grpc-kafka/src/main/java/io/quarkus/qe/messaging/infinispan/books/BookCacheInitializer.java b/messaging/infinispan-grpc-kafka/src/main/java/io/quarkus/ts/messaging/infinispan/grpc/kafka/books/BookCacheInitializer.java
similarity index 93%
rename from messaging/infinispan-grpc-kafka/src/main/java/io/quarkus/qe/messaging/infinispan/books/BookCacheInitializer.java
rename to messaging/infinispan-grpc-kafka/src/main/java/io/quarkus/ts/messaging/infinispan/grpc/kafka/books/BookCacheInitializer.java
index fdb81b540..84f40f84c 100644
--- a/messaging/infinispan-grpc-kafka/src/main/java/io/quarkus/qe/messaging/infinispan/books/BookCacheInitializer.java
+++ b/messaging/infinispan-grpc-kafka/src/main/java/io/quarkus/ts/messaging/infinispan/grpc/kafka/books/BookCacheInitializer.java
@@ -1,4 +1,4 @@
-package io.quarkus.qe.messaging.infinispan.books;
+package io.quarkus.ts.messaging.infinispan.grpc.kafka.books;
import javax.enterprise.context.ApplicationScoped;
import javax.enterprise.event.Observes;
diff --git a/messaging/infinispan-grpc-kafka/src/main/java/io/quarkus/qe/messaging/infinispan/books/BookContextInitializer.java b/messaging/infinispan-grpc-kafka/src/main/java/io/quarkus/ts/messaging/infinispan/grpc/kafka/books/BookContextInitializer.java
similarity index 83%
rename from messaging/infinispan-grpc-kafka/src/main/java/io/quarkus/qe/messaging/infinispan/books/BookContextInitializer.java
rename to messaging/infinispan-grpc-kafka/src/main/java/io/quarkus/ts/messaging/infinispan/grpc/kafka/books/BookContextInitializer.java
index 0add1a951..f0434d6a5 100644
--- a/messaging/infinispan-grpc-kafka/src/main/java/io/quarkus/qe/messaging/infinispan/books/BookContextInitializer.java
+++ b/messaging/infinispan-grpc-kafka/src/main/java/io/quarkus/ts/messaging/infinispan/grpc/kafka/books/BookContextInitializer.java
@@ -1,4 +1,4 @@
-package io.quarkus.qe.messaging.infinispan.books;
+package io.quarkus.ts.messaging.infinispan.grpc.kafka.books;
import org.infinispan.protostream.SerializationContextInitializer;
import org.infinispan.protostream.annotations.AutoProtoSchemaBuilder;
diff --git a/messaging/infinispan-grpc-kafka/src/main/java/io/quarkus/qe/messaging/infinispan/books/BookResource.java b/messaging/infinispan-grpc-kafka/src/main/java/io/quarkus/ts/messaging/infinispan/grpc/kafka/books/BookResource.java
similarity index 93%
rename from messaging/infinispan-grpc-kafka/src/main/java/io/quarkus/qe/messaging/infinispan/books/BookResource.java
rename to messaging/infinispan-grpc-kafka/src/main/java/io/quarkus/ts/messaging/infinispan/grpc/kafka/books/BookResource.java
index ce0c46d4d..ff624f464 100644
--- a/messaging/infinispan-grpc-kafka/src/main/java/io/quarkus/qe/messaging/infinispan/books/BookResource.java
+++ b/messaging/infinispan-grpc-kafka/src/main/java/io/quarkus/ts/messaging/infinispan/grpc/kafka/books/BookResource.java
@@ -1,4 +1,4 @@
-package io.quarkus.qe.messaging.infinispan.books;
+package io.quarkus.ts.messaging.infinispan.grpc.kafka.books;
import javax.inject.Inject;
import javax.validation.Valid;
diff --git a/messaging/infinispan-grpc-kafka/src/main/java/io/quarkus/qe/messaging/infinispan/greeting/BlockingHelloService.java b/messaging/infinispan-grpc-kafka/src/main/java/io/quarkus/ts/messaging/infinispan/grpc/kafka/greeting/BlockingHelloService.java
similarity index 90%
rename from messaging/infinispan-grpc-kafka/src/main/java/io/quarkus/qe/messaging/infinispan/greeting/BlockingHelloService.java
rename to messaging/infinispan-grpc-kafka/src/main/java/io/quarkus/ts/messaging/infinispan/grpc/kafka/greeting/BlockingHelloService.java
index 891500f1e..b27c3ad84 100644
--- a/messaging/infinispan-grpc-kafka/src/main/java/io/quarkus/qe/messaging/infinispan/greeting/BlockingHelloService.java
+++ b/messaging/infinispan-grpc-kafka/src/main/java/io/quarkus/ts/messaging/infinispan/grpc/kafka/greeting/BlockingHelloService.java
@@ -1,4 +1,4 @@
-package io.quarkus.qe.messaging.infinispan.greeting;
+package io.quarkus.ts.messaging.infinispan.grpc.kafka.greeting;
import io.grpc.stub.StreamObserver;
import io.quarkus.example.blocking.GreeterGrpc;
diff --git a/messaging/infinispan-grpc-kafka/src/main/java/io/quarkus/qe/messaging/infinispan/greeting/GreetingResource.java b/messaging/infinispan-grpc-kafka/src/main/java/io/quarkus/ts/messaging/infinispan/grpc/kafka/greeting/GreetingResource.java
similarity index 94%
rename from messaging/infinispan-grpc-kafka/src/main/java/io/quarkus/qe/messaging/infinispan/greeting/GreetingResource.java
rename to messaging/infinispan-grpc-kafka/src/main/java/io/quarkus/ts/messaging/infinispan/grpc/kafka/greeting/GreetingResource.java
index 32a481936..2ab0b137b 100644
--- a/messaging/infinispan-grpc-kafka/src/main/java/io/quarkus/qe/messaging/infinispan/greeting/GreetingResource.java
+++ b/messaging/infinispan-grpc-kafka/src/main/java/io/quarkus/ts/messaging/infinispan/grpc/kafka/greeting/GreetingResource.java
@@ -1,4 +1,4 @@
-package io.quarkus.qe.messaging.infinispan.greeting;
+package io.quarkus.ts.messaging.infinispan.grpc.kafka.greeting;
import javax.inject.Inject;
import javax.ws.rs.GET;
diff --git a/messaging/infinispan-grpc-kafka/src/main/java/io/quarkus/qe/messaging/infinispan/greeting/MutinyHelloService.java b/messaging/infinispan-grpc-kafka/src/main/java/io/quarkus/ts/messaging/infinispan/grpc/kafka/greeting/MutinyHelloService.java
similarity index 89%
rename from messaging/infinispan-grpc-kafka/src/main/java/io/quarkus/qe/messaging/infinispan/greeting/MutinyHelloService.java
rename to messaging/infinispan-grpc-kafka/src/main/java/io/quarkus/ts/messaging/infinispan/grpc/kafka/greeting/MutinyHelloService.java
index 53da97d06..1e5a5e155 100644
--- a/messaging/infinispan-grpc-kafka/src/main/java/io/quarkus/qe/messaging/infinispan/greeting/MutinyHelloService.java
+++ b/messaging/infinispan-grpc-kafka/src/main/java/io/quarkus/ts/messaging/infinispan/grpc/kafka/greeting/MutinyHelloService.java
@@ -1,4 +1,4 @@
-package io.quarkus.qe.messaging.infinispan.greeting;
+package io.quarkus.ts.messaging.infinispan.grpc.kafka.greeting;
import io.quarkus.example.dto.HelloReply;
import io.quarkus.example.dto.HelloRequest;
diff --git a/messaging/infinispan-grpc-kafka/src/main/java/io/quarkus/qe/messaging/infinispan/prices/PriceConsumer.java b/messaging/infinispan-grpc-kafka/src/main/java/io/quarkus/ts/messaging/infinispan/grpc/kafka/prices/PriceConsumer.java
similarity index 90%
rename from messaging/infinispan-grpc-kafka/src/main/java/io/quarkus/qe/messaging/infinispan/prices/PriceConsumer.java
rename to messaging/infinispan-grpc-kafka/src/main/java/io/quarkus/ts/messaging/infinispan/grpc/kafka/prices/PriceConsumer.java
index 7e2e871ef..6ff53893e 100644
--- a/messaging/infinispan-grpc-kafka/src/main/java/io/quarkus/qe/messaging/infinispan/prices/PriceConsumer.java
+++ b/messaging/infinispan-grpc-kafka/src/main/java/io/quarkus/ts/messaging/infinispan/grpc/kafka/prices/PriceConsumer.java
@@ -1,4 +1,4 @@
-package io.quarkus.qe.messaging.infinispan.prices;
+package io.quarkus.ts.messaging.infinispan.grpc.kafka.prices;
import java.util.Queue;
import java.util.concurrent.ConcurrentLinkedQueue;
diff --git a/messaging/infinispan-grpc-kafka/src/main/java/io/quarkus/qe/messaging/infinispan/prices/PriceConverter.java b/messaging/infinispan-grpc-kafka/src/main/java/io/quarkus/ts/messaging/infinispan/grpc/kafka/prices/PriceConverter.java
similarity index 91%
rename from messaging/infinispan-grpc-kafka/src/main/java/io/quarkus/qe/messaging/infinispan/prices/PriceConverter.java
rename to messaging/infinispan-grpc-kafka/src/main/java/io/quarkus/ts/messaging/infinispan/grpc/kafka/prices/PriceConverter.java
index 8831fc567..7e6219c6b 100644
--- a/messaging/infinispan-grpc-kafka/src/main/java/io/quarkus/qe/messaging/infinispan/prices/PriceConverter.java
+++ b/messaging/infinispan-grpc-kafka/src/main/java/io/quarkus/ts/messaging/infinispan/grpc/kafka/prices/PriceConverter.java
@@ -1,4 +1,4 @@
-package io.quarkus.qe.messaging.infinispan.prices;
+package io.quarkus.ts.messaging.infinispan.grpc.kafka.prices;
import javax.enterprise.context.ApplicationScoped;
diff --git a/messaging/infinispan-grpc-kafka/src/main/java/io/quarkus/qe/messaging/infinispan/prices/PriceGenerator.java b/messaging/infinispan-grpc-kafka/src/main/java/io/quarkus/ts/messaging/infinispan/grpc/kafka/prices/PriceGenerator.java
similarity index 92%
rename from messaging/infinispan-grpc-kafka/src/main/java/io/quarkus/qe/messaging/infinispan/prices/PriceGenerator.java
rename to messaging/infinispan-grpc-kafka/src/main/java/io/quarkus/ts/messaging/infinispan/grpc/kafka/prices/PriceGenerator.java
index 2b0d47900..cf379c6c9 100644
--- a/messaging/infinispan-grpc-kafka/src/main/java/io/quarkus/qe/messaging/infinispan/prices/PriceGenerator.java
+++ b/messaging/infinispan-grpc-kafka/src/main/java/io/quarkus/ts/messaging/infinispan/grpc/kafka/prices/PriceGenerator.java
@@ -1,4 +1,4 @@
-package io.quarkus.qe.messaging.infinispan.prices;
+package io.quarkus.ts.messaging.infinispan.grpc.kafka.prices;
import java.time.Duration;
import java.util.Random;
diff --git a/messaging/infinispan-grpc-kafka/src/main/java/io/quarkus/qe/messaging/infinispan/prices/PriceResource.java b/messaging/infinispan-grpc-kafka/src/main/java/io/quarkus/ts/messaging/infinispan/grpc/kafka/prices/PriceResource.java
similarity index 88%
rename from messaging/infinispan-grpc-kafka/src/main/java/io/quarkus/qe/messaging/infinispan/prices/PriceResource.java
rename to messaging/infinispan-grpc-kafka/src/main/java/io/quarkus/ts/messaging/infinispan/grpc/kafka/prices/PriceResource.java
index 728b88519..9c6897729 100644
--- a/messaging/infinispan-grpc-kafka/src/main/java/io/quarkus/qe/messaging/infinispan/prices/PriceResource.java
+++ b/messaging/infinispan-grpc-kafka/src/main/java/io/quarkus/ts/messaging/infinispan/grpc/kafka/prices/PriceResource.java
@@ -1,4 +1,4 @@
-package io.quarkus.qe.messaging.infinispan.prices;
+package io.quarkus.ts.messaging.infinispan.grpc.kafka.prices;
import javax.inject.Inject;
import javax.ws.rs.GET;
diff --git a/messaging/infinispan-grpc-kafka/src/main/java/io/quarkus/qe/messaging/infinispan/providers/KafkaProviders.java b/messaging/infinispan-grpc-kafka/src/main/java/io/quarkus/ts/messaging/infinispan/grpc/kafka/providers/KafkaProviders.java
similarity index 95%
rename from messaging/infinispan-grpc-kafka/src/main/java/io/quarkus/qe/messaging/infinispan/providers/KafkaProviders.java
rename to messaging/infinispan-grpc-kafka/src/main/java/io/quarkus/ts/messaging/infinispan/grpc/kafka/providers/KafkaProviders.java
index c6d68a774..7682ca52b 100644
--- a/messaging/infinispan-grpc-kafka/src/main/java/io/quarkus/qe/messaging/infinispan/providers/KafkaProviders.java
+++ b/messaging/infinispan-grpc-kafka/src/main/java/io/quarkus/ts/messaging/infinispan/grpc/kafka/providers/KafkaProviders.java
@@ -1,4 +1,4 @@
-package io.quarkus.qe.messaging.infinispan.providers;
+package io.quarkus.ts.messaging.infinispan.grpc.kafka.providers;
import java.util.Properties;
diff --git a/messaging/infinispan-grpc-kafka/src/main/java/io/quarkus/qe/messaging/infinispan/providers/SaslKafkaProvider.java b/messaging/infinispan-grpc-kafka/src/main/java/io/quarkus/ts/messaging/infinispan/grpc/kafka/providers/SaslKafkaProvider.java
similarity index 97%
rename from messaging/infinispan-grpc-kafka/src/main/java/io/quarkus/qe/messaging/infinispan/providers/SaslKafkaProvider.java
rename to messaging/infinispan-grpc-kafka/src/main/java/io/quarkus/ts/messaging/infinispan/grpc/kafka/providers/SaslKafkaProvider.java
index b08b55fca..6ddc4e23c 100644
--- a/messaging/infinispan-grpc-kafka/src/main/java/io/quarkus/qe/messaging/infinispan/providers/SaslKafkaProvider.java
+++ b/messaging/infinispan-grpc-kafka/src/main/java/io/quarkus/ts/messaging/infinispan/grpc/kafka/providers/SaslKafkaProvider.java
@@ -1,4 +1,4 @@
-package io.quarkus.qe.messaging.infinispan.providers;
+package io.quarkus.ts.messaging.infinispan.grpc.kafka.providers;
import java.util.Collections;
import java.util.Properties;
diff --git a/messaging/infinispan-grpc-kafka/src/main/java/io/quarkus/qe/messaging/infinispan/quickstart/GreetingCachedResource.java b/messaging/infinispan-grpc-kafka/src/main/java/io/quarkus/ts/messaging/infinispan/grpc/kafka/quickstart/GreetingCachedResource.java
similarity index 88%
rename from messaging/infinispan-grpc-kafka/src/main/java/io/quarkus/qe/messaging/infinispan/quickstart/GreetingCachedResource.java
rename to messaging/infinispan-grpc-kafka/src/main/java/io/quarkus/ts/messaging/infinispan/grpc/kafka/quickstart/GreetingCachedResource.java
index 2597f7fa4..9ecc68b6f 100644
--- a/messaging/infinispan-grpc-kafka/src/main/java/io/quarkus/qe/messaging/infinispan/quickstart/GreetingCachedResource.java
+++ b/messaging/infinispan-grpc-kafka/src/main/java/io/quarkus/ts/messaging/infinispan/grpc/kafka/quickstart/GreetingCachedResource.java
@@ -1,4 +1,4 @@
-package io.quarkus.qe.messaging.infinispan.quickstart;
+package io.quarkus.ts.messaging.infinispan.grpc.kafka.quickstart;
import javax.inject.Inject;
import javax.ws.rs.GET;
diff --git a/messaging/infinispan-grpc-kafka/src/main/java/io/quarkus/qe/messaging/infinispan/quickstart/KafkaEndpoint.java b/messaging/infinispan-grpc-kafka/src/main/java/io/quarkus/ts/messaging/infinispan/grpc/kafka/quickstart/KafkaEndpoint.java
similarity index 97%
rename from messaging/infinispan-grpc-kafka/src/main/java/io/quarkus/qe/messaging/infinispan/quickstart/KafkaEndpoint.java
rename to messaging/infinispan-grpc-kafka/src/main/java/io/quarkus/ts/messaging/infinispan/grpc/kafka/quickstart/KafkaEndpoint.java
index f161ddd7c..5f52e2920 100644
--- a/messaging/infinispan-grpc-kafka/src/main/java/io/quarkus/qe/messaging/infinispan/quickstart/KafkaEndpoint.java
+++ b/messaging/infinispan-grpc-kafka/src/main/java/io/quarkus/ts/messaging/infinispan/grpc/kafka/quickstart/KafkaEndpoint.java
@@ -1,4 +1,4 @@
-package io.quarkus.qe.messaging.infinispan.quickstart;
+package io.quarkus.ts.messaging.infinispan.grpc.kafka.quickstart;
import java.time.Duration;
import java.util.Collections;
diff --git a/messaging/infinispan-grpc-kafka/src/main/java/io/quarkus/qe/messaging/infinispan/quickstart/SaslKafkaEndpoint.java b/messaging/infinispan-grpc-kafka/src/main/java/io/quarkus/ts/messaging/infinispan/grpc/kafka/quickstart/SaslKafkaEndpoint.java
similarity index 96%
rename from messaging/infinispan-grpc-kafka/src/main/java/io/quarkus/qe/messaging/infinispan/quickstart/SaslKafkaEndpoint.java
rename to messaging/infinispan-grpc-kafka/src/main/java/io/quarkus/ts/messaging/infinispan/grpc/kafka/quickstart/SaslKafkaEndpoint.java
index 14ffd5ce5..ab0df52d6 100644
--- a/messaging/infinispan-grpc-kafka/src/main/java/io/quarkus/qe/messaging/infinispan/quickstart/SaslKafkaEndpoint.java
+++ b/messaging/infinispan-grpc-kafka/src/main/java/io/quarkus/ts/messaging/infinispan/grpc/kafka/quickstart/SaslKafkaEndpoint.java
@@ -1,4 +1,4 @@
-package io.quarkus.qe.messaging.infinispan.quickstart;
+package io.quarkus.ts.messaging.infinispan.grpc.kafka.quickstart;
import java.util.Set;
import java.util.concurrent.ExecutionException;
diff --git a/messaging/infinispan-grpc-kafka/src/test/java/io/quarkus/qe/messaging/infinispan/InfinispanKafkaIT.java b/messaging/infinispan-grpc-kafka/src/test/java/io/quarkus/ts/messaging/infinispan/grpc/kafka/InfinispanKafkaIT.java
similarity index 97%
rename from messaging/infinispan-grpc-kafka/src/test/java/io/quarkus/qe/messaging/infinispan/InfinispanKafkaIT.java
rename to messaging/infinispan-grpc-kafka/src/test/java/io/quarkus/ts/messaging/infinispan/grpc/kafka/InfinispanKafkaIT.java
index 2c784727d..ebf9c55c0 100644
--- a/messaging/infinispan-grpc-kafka/src/test/java/io/quarkus/qe/messaging/infinispan/InfinispanKafkaIT.java
+++ b/messaging/infinispan-grpc-kafka/src/test/java/io/quarkus/ts/messaging/infinispan/grpc/kafka/InfinispanKafkaIT.java
@@ -1,4 +1,4 @@
-package io.quarkus.qe.messaging.infinispan;
+package io.quarkus.ts.messaging.infinispan.grpc.kafka;
import static io.restassured.RestAssured.get;
import static io.restassured.RestAssured.given;
@@ -13,7 +13,6 @@
import org.junit.jupiter.api.Tag;
import org.junit.jupiter.api.Test;
-import io.quarkus.qe.messaging.infinispan.books.Book;
import io.quarkus.test.bootstrap.InfinispanService;
import io.quarkus.test.bootstrap.KafkaService;
import io.quarkus.test.bootstrap.RestService;
@@ -22,6 +21,7 @@
import io.quarkus.test.services.KafkaContainer;
import io.quarkus.test.services.QuarkusApplication;
import io.quarkus.test.services.containers.model.KafkaVendor;
+import io.quarkus.ts.messaging.infinispan.grpc.kafka.books.Book;
import io.restassured.http.ContentType;
@QuarkusScenario
diff --git a/messaging/infinispan-grpc-kafka/src/test/java/io/quarkus/qe/messaging/infinispan/InfinispanKafkaSaslIT.java b/messaging/infinispan-grpc-kafka/src/test/java/io/quarkus/ts/messaging/infinispan/grpc/kafka/InfinispanKafkaSaslIT.java
similarity index 98%
rename from messaging/infinispan-grpc-kafka/src/test/java/io/quarkus/qe/messaging/infinispan/InfinispanKafkaSaslIT.java
rename to messaging/infinispan-grpc-kafka/src/test/java/io/quarkus/ts/messaging/infinispan/grpc/kafka/InfinispanKafkaSaslIT.java
index 8a2daa430..eba1cc905 100644
--- a/messaging/infinispan-grpc-kafka/src/test/java/io/quarkus/qe/messaging/infinispan/InfinispanKafkaSaslIT.java
+++ b/messaging/infinispan-grpc-kafka/src/test/java/io/quarkus/ts/messaging/infinispan/grpc/kafka/InfinispanKafkaSaslIT.java
@@ -1,4 +1,4 @@
-package io.quarkus.qe.messaging.infinispan;
+package io.quarkus.ts.messaging.infinispan.grpc.kafka;
import static io.restassured.RestAssured.get;
import static io.restassured.RestAssured.given;
diff --git a/messaging/kafka-producer/src/main/java/io/quarkus/ts/messaging/kafka/Application.java b/messaging/kafka-producer/src/main/java/io/quarkus/ts/messaging/kafka/producer/Application.java
similarity index 97%
rename from messaging/kafka-producer/src/main/java/io/quarkus/ts/messaging/kafka/Application.java
rename to messaging/kafka-producer/src/main/java/io/quarkus/ts/messaging/kafka/producer/Application.java
index f47d35b12..2c8e72e35 100644
--- a/messaging/kafka-producer/src/main/java/io/quarkus/ts/messaging/kafka/Application.java
+++ b/messaging/kafka-producer/src/main/java/io/quarkus/ts/messaging/kafka/producer/Application.java
@@ -1,4 +1,4 @@
-package io.quarkus.ts.messaging.kafka;
+package io.quarkus.ts.messaging.kafka.producer;
import javax.enterprise.context.ApplicationScoped;
import javax.enterprise.event.Observes;
diff --git a/messaging/kafka-producer/src/main/java/io/quarkus/ts/messaging/kafka/FailureHandler.java b/messaging/kafka-producer/src/main/java/io/quarkus/ts/messaging/kafka/producer/FailureHandler.java
similarity index 96%
rename from messaging/kafka-producer/src/main/java/io/quarkus/ts/messaging/kafka/FailureHandler.java
rename to messaging/kafka-producer/src/main/java/io/quarkus/ts/messaging/kafka/producer/FailureHandler.java
index 17f80aa7d..94ad2e19c 100644
--- a/messaging/kafka-producer/src/main/java/io/quarkus/ts/messaging/kafka/FailureHandler.java
+++ b/messaging/kafka-producer/src/main/java/io/quarkus/ts/messaging/kafka/producer/FailureHandler.java
@@ -1,4 +1,4 @@
-package io.quarkus.ts.messaging.kafka;
+package io.quarkus.ts.messaging.kafka.producer;
import javax.enterprise.context.ApplicationScoped;
diff --git a/messaging/kafka-producer/src/main/java/io/quarkus/ts/messaging/kafka/KafkaBlockingProducer.java b/messaging/kafka-producer/src/main/java/io/quarkus/ts/messaging/kafka/producer/KafkaBlockingProducer.java
similarity index 98%
rename from messaging/kafka-producer/src/main/java/io/quarkus/ts/messaging/kafka/KafkaBlockingProducer.java
rename to messaging/kafka-producer/src/main/java/io/quarkus/ts/messaging/kafka/producer/KafkaBlockingProducer.java
index bb9506ebd..8f4addb05 100644
--- a/messaging/kafka-producer/src/main/java/io/quarkus/ts/messaging/kafka/KafkaBlockingProducer.java
+++ b/messaging/kafka-producer/src/main/java/io/quarkus/ts/messaging/kafka/producer/KafkaBlockingProducer.java
@@ -1,4 +1,4 @@
-package io.quarkus.ts.messaging.kafka;
+package io.quarkus.ts.messaging.kafka.producer;
import java.util.UUID;
import java.util.concurrent.CompletableFuture;
diff --git a/messaging/kafka-producer/src/test/java/io/quarkus/ts/messaging/kafka/BlockingProducerIT.java b/messaging/kafka-producer/src/test/java/io/quarkus/ts/messaging/kafka/producer/BlockingProducerIT.java
similarity index 98%
rename from messaging/kafka-producer/src/test/java/io/quarkus/ts/messaging/kafka/BlockingProducerIT.java
rename to messaging/kafka-producer/src/test/java/io/quarkus/ts/messaging/kafka/producer/BlockingProducerIT.java
index ce3050d91..c1ac9843f 100644
--- a/messaging/kafka-producer/src/test/java/io/quarkus/ts/messaging/kafka/BlockingProducerIT.java
+++ b/messaging/kafka-producer/src/test/java/io/quarkus/ts/messaging/kafka/producer/BlockingProducerIT.java
@@ -1,4 +1,4 @@
-package io.quarkus.ts.messaging.kafka;
+package io.quarkus.ts.messaging.kafka.producer;
import static org.junit.jupiter.api.Assertions.assertTrue;
diff --git a/messaging/kafka-producer/src/test/java/io/quarkus/ts/messaging/kafka/CustomStrimziKafkaContainer.java b/messaging/kafka-producer/src/test/java/io/quarkus/ts/messaging/kafka/producer/CustomStrimziKafkaContainer.java
similarity index 98%
rename from messaging/kafka-producer/src/test/java/io/quarkus/ts/messaging/kafka/CustomStrimziKafkaContainer.java
rename to messaging/kafka-producer/src/test/java/io/quarkus/ts/messaging/kafka/producer/CustomStrimziKafkaContainer.java
index 207b27d5a..549f12cd0 100644
--- a/messaging/kafka-producer/src/test/java/io/quarkus/ts/messaging/kafka/CustomStrimziKafkaContainer.java
+++ b/messaging/kafka-producer/src/test/java/io/quarkus/ts/messaging/kafka/producer/CustomStrimziKafkaContainer.java
@@ -1,4 +1,4 @@
-package io.quarkus.ts.messaging.kafka;
+package io.quarkus.ts.messaging.kafka.producer;
import java.nio.charset.StandardCharsets;
import java.util.Collection;
diff --git a/messaging/kafka-streams-reactive-messaging/src/main/java/io/quarkus/ts/messaging/kafka/aggregator/model/LoginAggregation.java b/messaging/kafka-streams-reactive-messaging/src/main/java/io/quarkus/ts/messaging/kafka/reactive/streams/aggregator/model/LoginAggregation.java
similarity index 91%
rename from messaging/kafka-streams-reactive-messaging/src/main/java/io/quarkus/ts/messaging/kafka/aggregator/model/LoginAggregation.java
rename to messaging/kafka-streams-reactive-messaging/src/main/java/io/quarkus/ts/messaging/kafka/reactive/streams/aggregator/model/LoginAggregation.java
index 59ea6d97a..457e05923 100644
--- a/messaging/kafka-streams-reactive-messaging/src/main/java/io/quarkus/ts/messaging/kafka/aggregator/model/LoginAggregation.java
+++ b/messaging/kafka-streams-reactive-messaging/src/main/java/io/quarkus/ts/messaging/kafka/reactive/streams/aggregator/model/LoginAggregation.java
@@ -1,4 +1,4 @@
-package io.quarkus.ts.messaging.kafka.aggregator.model;
+package io.quarkus.ts.messaging.kafka.reactive.streams.aggregator.model;
import io.quarkus.runtime.annotations.RegisterForReflection;
diff --git a/messaging/kafka-streams-reactive-messaging/src/main/java/io/quarkus/ts/messaging/kafka/aggregator/model/LoginAttempt.java b/messaging/kafka-streams-reactive-messaging/src/main/java/io/quarkus/ts/messaging/kafka/reactive/streams/aggregator/model/LoginAttempt.java
similarity index 91%
rename from messaging/kafka-streams-reactive-messaging/src/main/java/io/quarkus/ts/messaging/kafka/aggregator/model/LoginAttempt.java
rename to messaging/kafka-streams-reactive-messaging/src/main/java/io/quarkus/ts/messaging/kafka/reactive/streams/aggregator/model/LoginAttempt.java
index 90ab53108..6c14b4e66 100644
--- a/messaging/kafka-streams-reactive-messaging/src/main/java/io/quarkus/ts/messaging/kafka/aggregator/model/LoginAttempt.java
+++ b/messaging/kafka-streams-reactive-messaging/src/main/java/io/quarkus/ts/messaging/kafka/reactive/streams/aggregator/model/LoginAttempt.java
@@ -1,4 +1,4 @@
-package io.quarkus.ts.messaging.kafka.aggregator.model;
+package io.quarkus.ts.messaging.kafka.reactive.streams.aggregator.model;
import io.quarkus.runtime.annotations.RegisterForReflection;
diff --git a/messaging/kafka-streams-reactive-messaging/src/main/java/io/quarkus/ts/messaging/kafka/aggregator/rest/AlertMonitor.java b/messaging/kafka-streams-reactive-messaging/src/main/java/io/quarkus/ts/messaging/kafka/reactive/streams/aggregator/rest/AlertMonitor.java
similarity index 78%
rename from messaging/kafka-streams-reactive-messaging/src/main/java/io/quarkus/ts/messaging/kafka/aggregator/rest/AlertMonitor.java
rename to messaging/kafka-streams-reactive-messaging/src/main/java/io/quarkus/ts/messaging/kafka/reactive/streams/aggregator/rest/AlertMonitor.java
index 60dd112a1..54ddbee15 100644
--- a/messaging/kafka-streams-reactive-messaging/src/main/java/io/quarkus/ts/messaging/kafka/aggregator/rest/AlertMonitor.java
+++ b/messaging/kafka-streams-reactive-messaging/src/main/java/io/quarkus/ts/messaging/kafka/reactive/streams/aggregator/rest/AlertMonitor.java
@@ -1,4 +1,4 @@
-package io.quarkus.ts.messaging.kafka.aggregator.rest;
+package io.quarkus.ts.messaging.kafka.reactive.streams.aggregator.rest;
import javax.inject.Inject;
import javax.ws.rs.GET;
@@ -10,7 +10,7 @@
import org.jboss.resteasy.annotations.SseElementType;
import org.reactivestreams.Publisher;
-import io.quarkus.ts.messaging.kafka.aggregator.streams.WindowedLoginDeniedStream;
+import io.quarkus.ts.messaging.kafka.reactive.streams.aggregator.streams.WindowedLoginDeniedStream;
@Path("/")
public class AlertMonitor {
diff --git a/messaging/kafka-streams-reactive-messaging/src/main/java/io/quarkus/ts/messaging/kafka/aggregator/streams/WindowedLoginDeniedStream.java b/messaging/kafka-streams-reactive-messaging/src/main/java/io/quarkus/ts/messaging/kafka/reactive/streams/aggregator/streams/WindowedLoginDeniedStream.java
similarity index 91%
rename from messaging/kafka-streams-reactive-messaging/src/main/java/io/quarkus/ts/messaging/kafka/aggregator/streams/WindowedLoginDeniedStream.java
rename to messaging/kafka-streams-reactive-messaging/src/main/java/io/quarkus/ts/messaging/kafka/reactive/streams/aggregator/streams/WindowedLoginDeniedStream.java
index 3eae4723c..385719520 100644
--- a/messaging/kafka-streams-reactive-messaging/src/main/java/io/quarkus/ts/messaging/kafka/aggregator/streams/WindowedLoginDeniedStream.java
+++ b/messaging/kafka-streams-reactive-messaging/src/main/java/io/quarkus/ts/messaging/kafka/reactive/streams/aggregator/streams/WindowedLoginDeniedStream.java
@@ -1,4 +1,4 @@
-package io.quarkus.ts.messaging.kafka.aggregator.streams;
+package io.quarkus.ts.messaging.kafka.reactive.streams.aggregator.streams;
import static javax.ws.rs.core.Response.Status.FORBIDDEN;
import static javax.ws.rs.core.Response.Status.UNAUTHORIZED;
@@ -22,8 +22,8 @@
import org.eclipse.microprofile.reactive.messaging.Outgoing;
import io.quarkus.kafka.client.serialization.JsonbSerde;
-import io.quarkus.ts.messaging.kafka.aggregator.model.LoginAggregation;
-import io.quarkus.ts.messaging.kafka.aggregator.model.LoginAttempt;
+import io.quarkus.ts.messaging.kafka.reactive.streams.aggregator.model.LoginAggregation;
+import io.quarkus.ts.messaging.kafka.reactive.streams.aggregator.model.LoginAttempt;
import io.smallrye.reactive.messaging.annotations.Broadcast;
@ApplicationScoped
diff --git a/messaging/kafka-streams-reactive-messaging/src/main/java/io/quarkus/ts/messaging/kafka/producer/EventsProducer.java b/messaging/kafka-streams-reactive-messaging/src/main/java/io/quarkus/ts/messaging/kafka/reactive/streams/producer/EventsProducer.java
similarity index 87%
rename from messaging/kafka-streams-reactive-messaging/src/main/java/io/quarkus/ts/messaging/kafka/producer/EventsProducer.java
rename to messaging/kafka-streams-reactive-messaging/src/main/java/io/quarkus/ts/messaging/kafka/reactive/streams/producer/EventsProducer.java
index f6b967be7..482f02f3f 100644
--- a/messaging/kafka-streams-reactive-messaging/src/main/java/io/quarkus/ts/messaging/kafka/producer/EventsProducer.java
+++ b/messaging/kafka-streams-reactive-messaging/src/main/java/io/quarkus/ts/messaging/kafka/reactive/streams/producer/EventsProducer.java
@@ -1,4 +1,4 @@
-package io.quarkus.ts.messaging.kafka.producer;
+package io.quarkus.ts.messaging.kafka.reactive.streams.producer;
import java.time.Duration;
import java.util.Base64;
@@ -10,8 +10,8 @@
import org.eclipse.microprofile.config.inject.ConfigProperty;
import org.eclipse.microprofile.reactive.messaging.Outgoing;
-import io.quarkus.ts.messaging.kafka.aggregator.model.LoginAttempt;
-import io.quarkus.ts.messaging.kafka.aggregator.streams.WindowedLoginDeniedStream;
+import io.quarkus.ts.messaging.kafka.reactive.streams.aggregator.model.LoginAttempt;
+import io.quarkus.ts.messaging.kafka.reactive.streams.aggregator.streams.WindowedLoginDeniedStream;
import io.smallrye.mutiny.Multi;
import io.smallrye.reactive.messaging.kafka.Record;
import io.vertx.core.json.Json;
diff --git a/messaging/kafka-streams-reactive-messaging/src/main/java/io/quarkus/ts/messaging/kafka/shutdown/SlowTopicConsumer.java b/messaging/kafka-streams-reactive-messaging/src/main/java/io/quarkus/ts/messaging/kafka/reactive/streams/shutdown/SlowTopicConsumer.java
similarity index 92%
rename from messaging/kafka-streams-reactive-messaging/src/main/java/io/quarkus/ts/messaging/kafka/shutdown/SlowTopicConsumer.java
rename to messaging/kafka-streams-reactive-messaging/src/main/java/io/quarkus/ts/messaging/kafka/reactive/streams/shutdown/SlowTopicConsumer.java
index a27caa27a..d1ed99e62 100644
--- a/messaging/kafka-streams-reactive-messaging/src/main/java/io/quarkus/ts/messaging/kafka/shutdown/SlowTopicConsumer.java
+++ b/messaging/kafka-streams-reactive-messaging/src/main/java/io/quarkus/ts/messaging/kafka/reactive/streams/shutdown/SlowTopicConsumer.java
@@ -1,4 +1,4 @@
-package io.quarkus.ts.messaging.kafka.shutdown;
+package io.quarkus.ts.messaging.kafka.reactive.streams.shutdown;
import java.util.concurrent.CompletionStage;
diff --git a/messaging/kafka-streams-reactive-messaging/src/main/java/io/quarkus/ts/messaging/kafka/shutdown/SlowTopicResource.java b/messaging/kafka-streams-reactive-messaging/src/main/java/io/quarkus/ts/messaging/kafka/reactive/streams/shutdown/SlowTopicResource.java
similarity index 89%
rename from messaging/kafka-streams-reactive-messaging/src/main/java/io/quarkus/ts/messaging/kafka/shutdown/SlowTopicResource.java
rename to messaging/kafka-streams-reactive-messaging/src/main/java/io/quarkus/ts/messaging/kafka/reactive/streams/shutdown/SlowTopicResource.java
index b784ce5d5..74dcbb417 100644
--- a/messaging/kafka-streams-reactive-messaging/src/main/java/io/quarkus/ts/messaging/kafka/shutdown/SlowTopicResource.java
+++ b/messaging/kafka-streams-reactive-messaging/src/main/java/io/quarkus/ts/messaging/kafka/reactive/streams/shutdown/SlowTopicResource.java
@@ -1,4 +1,4 @@
-package io.quarkus.ts.messaging.kafka.shutdown;
+package io.quarkus.ts.messaging.kafka.reactive.streams.shutdown;
import javax.inject.Inject;
import javax.ws.rs.POST;
diff --git a/messaging/kafka-streams-reactive-messaging/src/test/java/io/quarkus/ts/messaging/kafka/BaseKafkaStreamTest.java b/messaging/kafka-streams-reactive-messaging/src/test/java/io/quarkus/ts/messaging/kafka/reactive/streams/BaseKafkaStreamTest.java
similarity index 96%
rename from messaging/kafka-streams-reactive-messaging/src/test/java/io/quarkus/ts/messaging/kafka/BaseKafkaStreamTest.java
rename to messaging/kafka-streams-reactive-messaging/src/test/java/io/quarkus/ts/messaging/kafka/reactive/streams/BaseKafkaStreamTest.java
index 3e2c6b3f9..78d4e6983 100644
--- a/messaging/kafka-streams-reactive-messaging/src/test/java/io/quarkus/ts/messaging/kafka/BaseKafkaStreamTest.java
+++ b/messaging/kafka-streams-reactive-messaging/src/test/java/io/quarkus/ts/messaging/kafka/reactive/streams/BaseKafkaStreamTest.java
@@ -1,4 +1,4 @@
-package io.quarkus.ts.messaging.kafka;
+package io.quarkus.ts.messaging.kafka.reactive.streams;
import static org.junit.jupiter.api.Assertions.assertTrue;
diff --git a/messaging/kafka-streams-reactive-messaging/src/test/java/io/quarkus/ts/messaging/kafka/DevModeKafkaStreamIT.java b/messaging/kafka-streams-reactive-messaging/src/test/java/io/quarkus/ts/messaging/kafka/reactive/streams/DevModeKafkaStreamIT.java
similarity index 94%
rename from messaging/kafka-streams-reactive-messaging/src/test/java/io/quarkus/ts/messaging/kafka/DevModeKafkaStreamIT.java
rename to messaging/kafka-streams-reactive-messaging/src/test/java/io/quarkus/ts/messaging/kafka/reactive/streams/DevModeKafkaStreamIT.java
index 19dc34464..d39297809 100644
--- a/messaging/kafka-streams-reactive-messaging/src/test/java/io/quarkus/ts/messaging/kafka/DevModeKafkaStreamIT.java
+++ b/messaging/kafka-streams-reactive-messaging/src/test/java/io/quarkus/ts/messaging/kafka/reactive/streams/DevModeKafkaStreamIT.java
@@ -1,4 +1,4 @@
-package io.quarkus.ts.messaging.kafka;
+package io.quarkus.ts.messaging.kafka.reactive.streams;
import org.junit.jupiter.api.Tag;
import org.junit.jupiter.api.Test;
diff --git a/messaging/kafka-streams-reactive-messaging/src/test/java/io/quarkus/ts/messaging/kafka/DevModeRedPandaDevServiceUserExperienceIT.java b/messaging/kafka-streams-reactive-messaging/src/test/java/io/quarkus/ts/messaging/kafka/reactive/streams/DevModeRedPandaDevServiceUserExperienceIT.java
similarity index 96%
rename from messaging/kafka-streams-reactive-messaging/src/test/java/io/quarkus/ts/messaging/kafka/DevModeRedPandaDevServiceUserExperienceIT.java
rename to messaging/kafka-streams-reactive-messaging/src/test/java/io/quarkus/ts/messaging/kafka/reactive/streams/DevModeRedPandaDevServiceUserExperienceIT.java
index 4493c5372..c6af8a9c0 100644
--- a/messaging/kafka-streams-reactive-messaging/src/test/java/io/quarkus/ts/messaging/kafka/DevModeRedPandaDevServiceUserExperienceIT.java
+++ b/messaging/kafka-streams-reactive-messaging/src/test/java/io/quarkus/ts/messaging/kafka/reactive/streams/DevModeRedPandaDevServiceUserExperienceIT.java
@@ -1,4 +1,4 @@
-package io.quarkus.ts.messaging.kafka;
+package io.quarkus.ts.messaging.kafka.reactive.streams;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Tag;
diff --git a/messaging/kafka-streams-reactive-messaging/src/test/java/io/quarkus/ts/messaging/kafka/KafkaGratefulShutdownIT.java b/messaging/kafka-streams-reactive-messaging/src/test/java/io/quarkus/ts/messaging/kafka/reactive/streams/KafkaGratefulShutdownIT.java
similarity index 94%
rename from messaging/kafka-streams-reactive-messaging/src/test/java/io/quarkus/ts/messaging/kafka/KafkaGratefulShutdownIT.java
rename to messaging/kafka-streams-reactive-messaging/src/test/java/io/quarkus/ts/messaging/kafka/reactive/streams/KafkaGratefulShutdownIT.java
index d541424b3..c69de8e59 100644
--- a/messaging/kafka-streams-reactive-messaging/src/test/java/io/quarkus/ts/messaging/kafka/KafkaGratefulShutdownIT.java
+++ b/messaging/kafka-streams-reactive-messaging/src/test/java/io/quarkus/ts/messaging/kafka/reactive/streams/KafkaGratefulShutdownIT.java
@@ -1,4 +1,4 @@
-package io.quarkus.ts.messaging.kafka;
+package io.quarkus.ts.messaging.kafka.reactive.streams;
import static org.awaitility.Awaitility.await;
import static org.junit.jupiter.api.Assertions.assertTrue;
@@ -17,8 +17,8 @@
import io.quarkus.test.services.KafkaContainer;
import io.quarkus.test.services.QuarkusApplication;
import io.quarkus.test.services.containers.model.KafkaVendor;
-import io.quarkus.ts.messaging.kafka.shutdown.SlowTopicConsumer;
-import io.quarkus.ts.messaging.kafka.shutdown.SlowTopicResource;
+import io.quarkus.ts.messaging.kafka.reactive.streams.shutdown.SlowTopicConsumer;
+import io.quarkus.ts.messaging.kafka.reactive.streams.shutdown.SlowTopicResource;
@QuarkusScenario
@DisabledOnNative(reason = "Due to high native build execution time")
diff --git a/messaging/kafka-streams-reactive-messaging/src/test/java/io/quarkus/ts/messaging/kafka/OpenShiftAmqStreamsKafkaStreamIT.java b/messaging/kafka-streams-reactive-messaging/src/test/java/io/quarkus/ts/messaging/kafka/reactive/streams/OpenShiftAmqStreamsKafkaStreamIT.java
similarity index 95%
rename from messaging/kafka-streams-reactive-messaging/src/test/java/io/quarkus/ts/messaging/kafka/OpenShiftAmqStreamsKafkaStreamIT.java
rename to messaging/kafka-streams-reactive-messaging/src/test/java/io/quarkus/ts/messaging/kafka/reactive/streams/OpenShiftAmqStreamsKafkaStreamIT.java
index e7f5ba06c..c92296d59 100644
--- a/messaging/kafka-streams-reactive-messaging/src/test/java/io/quarkus/ts/messaging/kafka/OpenShiftAmqStreamsKafkaStreamIT.java
+++ b/messaging/kafka-streams-reactive-messaging/src/test/java/io/quarkus/ts/messaging/kafka/reactive/streams/OpenShiftAmqStreamsKafkaStreamIT.java
@@ -1,4 +1,4 @@
-package io.quarkus.ts.messaging.kafka;
+package io.quarkus.ts.messaging.kafka.reactive.streams;
import org.junit.jupiter.api.condition.EnabledIfSystemProperty;
diff --git a/messaging/kafka-streams-reactive-messaging/src/test/java/io/quarkus/ts/messaging/kafka/OpenShiftStrimziKafkaStreamIT.java b/messaging/kafka-streams-reactive-messaging/src/test/java/io/quarkus/ts/messaging/kafka/reactive/streams/OpenShiftStrimziKafkaStreamIT.java
similarity index 72%
rename from messaging/kafka-streams-reactive-messaging/src/test/java/io/quarkus/ts/messaging/kafka/OpenShiftStrimziKafkaStreamIT.java
rename to messaging/kafka-streams-reactive-messaging/src/test/java/io/quarkus/ts/messaging/kafka/reactive/streams/OpenShiftStrimziKafkaStreamIT.java
index e774f2889..801512279 100644
--- a/messaging/kafka-streams-reactive-messaging/src/test/java/io/quarkus/ts/messaging/kafka/OpenShiftStrimziKafkaStreamIT.java
+++ b/messaging/kafka-streams-reactive-messaging/src/test/java/io/quarkus/ts/messaging/kafka/reactive/streams/OpenShiftStrimziKafkaStreamIT.java
@@ -1,4 +1,4 @@
-package io.quarkus.ts.messaging.kafka;
+package io.quarkus.ts.messaging.kafka.reactive.streams;
import io.quarkus.test.scenarios.OpenShiftScenario;
diff --git a/messaging/kafka-streams-reactive-messaging/src/test/java/io/quarkus/ts/messaging/kafka/OperatorOpenShiftAmqStreamsKafkaStreamIT.java b/messaging/kafka-streams-reactive-messaging/src/test/java/io/quarkus/ts/messaging/kafka/reactive/streams/OperatorOpenShiftAmqStreamsKafkaStreamIT.java
similarity index 93%
rename from messaging/kafka-streams-reactive-messaging/src/test/java/io/quarkus/ts/messaging/kafka/OperatorOpenShiftAmqStreamsKafkaStreamIT.java
rename to messaging/kafka-streams-reactive-messaging/src/test/java/io/quarkus/ts/messaging/kafka/reactive/streams/OperatorOpenShiftAmqStreamsKafkaStreamIT.java
index c44abe1d8..16013361d 100644
--- a/messaging/kafka-streams-reactive-messaging/src/test/java/io/quarkus/ts/messaging/kafka/OperatorOpenShiftAmqStreamsKafkaStreamIT.java
+++ b/messaging/kafka-streams-reactive-messaging/src/test/java/io/quarkus/ts/messaging/kafka/reactive/streams/OperatorOpenShiftAmqStreamsKafkaStreamIT.java
@@ -1,4 +1,4 @@
-package io.quarkus.ts.messaging.kafka;
+package io.quarkus.ts.messaging.kafka.reactive.streams;
import io.quarkus.test.bootstrap.RestService;
import io.quarkus.test.scenarios.OpenShiftScenario;
diff --git a/messaging/kafka-streams-reactive-messaging/src/test/java/io/quarkus/ts/messaging/kafka/SslAlertMonitorIT.java b/messaging/kafka-streams-reactive-messaging/src/test/java/io/quarkus/ts/messaging/kafka/reactive/streams/SslAlertMonitorIT.java
similarity index 96%
rename from messaging/kafka-streams-reactive-messaging/src/test/java/io/quarkus/ts/messaging/kafka/SslAlertMonitorIT.java
rename to messaging/kafka-streams-reactive-messaging/src/test/java/io/quarkus/ts/messaging/kafka/reactive/streams/SslAlertMonitorIT.java
index 430a2218a..7b99b277e 100644
--- a/messaging/kafka-streams-reactive-messaging/src/test/java/io/quarkus/ts/messaging/kafka/SslAlertMonitorIT.java
+++ b/messaging/kafka-streams-reactive-messaging/src/test/java/io/quarkus/ts/messaging/kafka/reactive/streams/SslAlertMonitorIT.java
@@ -1,4 +1,4 @@
-package io.quarkus.ts.messaging.kafka;
+package io.quarkus.ts.messaging.kafka.reactive.streams;
import io.quarkus.test.bootstrap.KafkaService;
import io.quarkus.test.bootstrap.RestService;
diff --git a/messaging/kafka-streams-reactive-messaging/src/test/java/io/quarkus/ts/messaging/kafka/StrimziKafkaStreamIT.java b/messaging/kafka-streams-reactive-messaging/src/test/java/io/quarkus/ts/messaging/kafka/reactive/streams/StrimziKafkaStreamIT.java
similarity index 93%
rename from messaging/kafka-streams-reactive-messaging/src/test/java/io/quarkus/ts/messaging/kafka/StrimziKafkaStreamIT.java
rename to messaging/kafka-streams-reactive-messaging/src/test/java/io/quarkus/ts/messaging/kafka/reactive/streams/StrimziKafkaStreamIT.java
index e29e9cc39..2ad10671a 100644
--- a/messaging/kafka-streams-reactive-messaging/src/test/java/io/quarkus/ts/messaging/kafka/StrimziKafkaStreamIT.java
+++ b/messaging/kafka-streams-reactive-messaging/src/test/java/io/quarkus/ts/messaging/kafka/reactive/streams/StrimziKafkaStreamIT.java
@@ -1,4 +1,4 @@
-package io.quarkus.ts.messaging.kafka;
+package io.quarkus.ts.messaging.kafka.reactive.streams;
import io.quarkus.test.bootstrap.KafkaService;
import io.quarkus.test.bootstrap.RestService;
diff --git a/messaging/kafka-strimzi-avro-reactive-messaging/src/main/java/io/quarkus/ts/messaging/kafka/KStockPriceConsumer.java b/messaging/kafka-strimzi-avro-reactive-messaging/src/main/java/io/quarkus/ts/messaging/strimzi/kafka/reactive/KStockPriceConsumer.java
similarity index 89%
rename from messaging/kafka-strimzi-avro-reactive-messaging/src/main/java/io/quarkus/ts/messaging/kafka/KStockPriceConsumer.java
rename to messaging/kafka-strimzi-avro-reactive-messaging/src/main/java/io/quarkus/ts/messaging/strimzi/kafka/reactive/KStockPriceConsumer.java
index fbaab9450..9903d548a 100644
--- a/messaging/kafka-strimzi-avro-reactive-messaging/src/main/java/io/quarkus/ts/messaging/kafka/KStockPriceConsumer.java
+++ b/messaging/kafka-strimzi-avro-reactive-messaging/src/main/java/io/quarkus/ts/messaging/strimzi/kafka/reactive/KStockPriceConsumer.java
@@ -1,4 +1,4 @@
-package io.quarkus.ts.messaging.kafka;
+package io.quarkus.ts.messaging.strimzi.kafka.reactive;
import java.util.List;
import java.util.stream.Collectors;
@@ -8,6 +8,8 @@
import org.eclipse.microprofile.reactive.messaging.Incoming;
import org.eclipse.microprofile.reactive.messaging.Outgoing;
+import io.quarkus.ts.messaging.kafka.StockPrice;
+import io.quarkus.ts.messaging.kafka.status;
import io.smallrye.reactive.messaging.annotations.Broadcast;
import io.vertx.core.json.JsonObject;
diff --git a/messaging/kafka-strimzi-avro-reactive-messaging/src/main/java/io/quarkus/ts/messaging/kafka/KStockPriceProducer.java b/messaging/kafka-strimzi-avro-reactive-messaging/src/main/java/io/quarkus/ts/messaging/strimzi/kafka/reactive/KStockPriceProducer.java
similarity index 91%
rename from messaging/kafka-strimzi-avro-reactive-messaging/src/main/java/io/quarkus/ts/messaging/kafka/KStockPriceProducer.java
rename to messaging/kafka-strimzi-avro-reactive-messaging/src/main/java/io/quarkus/ts/messaging/strimzi/kafka/reactive/KStockPriceProducer.java
index 392870881..560c59ec4 100644
--- a/messaging/kafka-strimzi-avro-reactive-messaging/src/main/java/io/quarkus/ts/messaging/kafka/KStockPriceProducer.java
+++ b/messaging/kafka-strimzi-avro-reactive-messaging/src/main/java/io/quarkus/ts/messaging/strimzi/kafka/reactive/KStockPriceProducer.java
@@ -1,4 +1,4 @@
-package io.quarkus.ts.messaging.kafka;
+package io.quarkus.ts.messaging.strimzi.kafka.reactive;
import java.util.Random;
import java.util.function.BiConsumer;
@@ -13,6 +13,8 @@
import org.jboss.logging.Logger;
import io.quarkus.scheduler.Scheduled;
+import io.quarkus.ts.messaging.kafka.StockPrice;
+import io.quarkus.ts.messaging.kafka.status;
import io.smallrye.common.constraint.NotNull;
@ApplicationScoped
diff --git a/messaging/kafka-strimzi-avro-reactive-messaging/src/main/java/io/quarkus/ts/messaging/kafka/StockPriceDto.java b/messaging/kafka-strimzi-avro-reactive-messaging/src/main/java/io/quarkus/ts/messaging/strimzi/kafka/reactive/StockPriceDto.java
similarity index 78%
rename from messaging/kafka-strimzi-avro-reactive-messaging/src/main/java/io/quarkus/ts/messaging/kafka/StockPriceDto.java
rename to messaging/kafka-strimzi-avro-reactive-messaging/src/main/java/io/quarkus/ts/messaging/strimzi/kafka/reactive/StockPriceDto.java
index c2d2d42b5..a54ab0816 100644
--- a/messaging/kafka-strimzi-avro-reactive-messaging/src/main/java/io/quarkus/ts/messaging/kafka/StockPriceDto.java
+++ b/messaging/kafka-strimzi-avro-reactive-messaging/src/main/java/io/quarkus/ts/messaging/strimzi/kafka/reactive/StockPriceDto.java
@@ -1,4 +1,7 @@
-package io.quarkus.ts.messaging.kafka;
+package io.quarkus.ts.messaging.strimzi.kafka.reactive;
+
+import io.quarkus.ts.messaging.kafka.StockPrice;
+import io.quarkus.ts.messaging.kafka.status;
public class StockPriceDto {
private String id;
diff --git a/messaging/kafka-strimzi-avro-reactive-messaging/src/main/java/io/quarkus/ts/messaging/kafka/StockPriceEndpoint.java b/messaging/kafka-strimzi-avro-reactive-messaging/src/main/java/io/quarkus/ts/messaging/strimzi/kafka/reactive/StockPriceEndpoint.java
similarity index 93%
rename from messaging/kafka-strimzi-avro-reactive-messaging/src/main/java/io/quarkus/ts/messaging/kafka/StockPriceEndpoint.java
rename to messaging/kafka-strimzi-avro-reactive-messaging/src/main/java/io/quarkus/ts/messaging/strimzi/kafka/reactive/StockPriceEndpoint.java
index 0e31d666d..aeeac86d1 100644
--- a/messaging/kafka-strimzi-avro-reactive-messaging/src/main/java/io/quarkus/ts/messaging/kafka/StockPriceEndpoint.java
+++ b/messaging/kafka-strimzi-avro-reactive-messaging/src/main/java/io/quarkus/ts/messaging/strimzi/kafka/reactive/StockPriceEndpoint.java
@@ -1,4 +1,4 @@
-package io.quarkus.ts.messaging.kafka;
+package io.quarkus.ts.messaging.strimzi.kafka.reactive;
import java.util.List;
@@ -16,6 +16,8 @@
import org.jboss.resteasy.annotations.SseElementType;
import org.reactivestreams.Publisher;
+import io.quarkus.ts.messaging.kafka.StockPrice;
+
@Path("/stock-price")
public class StockPriceEndpoint {
diff --git a/messaging/kafka-strimzi-avro-reactive-messaging/src/test/java/io/quarkus/ts/messaging/kafka/BaseKafkaAvroGroupIdIT.java b/messaging/kafka-strimzi-avro-reactive-messaging/src/test/java/io/quarkus/ts/messaging/strimzi/kafka/reactive/BaseKafkaAvroGroupIdIT.java
similarity index 98%
rename from messaging/kafka-strimzi-avro-reactive-messaging/src/test/java/io/quarkus/ts/messaging/kafka/BaseKafkaAvroGroupIdIT.java
rename to messaging/kafka-strimzi-avro-reactive-messaging/src/test/java/io/quarkus/ts/messaging/strimzi/kafka/reactive/BaseKafkaAvroGroupIdIT.java
index efef8fb73..a6638aa14 100644
--- a/messaging/kafka-strimzi-avro-reactive-messaging/src/test/java/io/quarkus/ts/messaging/kafka/BaseKafkaAvroGroupIdIT.java
+++ b/messaging/kafka-strimzi-avro-reactive-messaging/src/test/java/io/quarkus/ts/messaging/strimzi/kafka/reactive/BaseKafkaAvroGroupIdIT.java
@@ -1,4 +1,4 @@
-package io.quarkus.ts.messaging.kafka;
+package io.quarkus.ts.messaging.strimzi.kafka.reactive;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertTrue;
diff --git a/messaging/kafka-strimzi-avro-reactive-messaging/src/test/java/io/quarkus/ts/messaging/kafka/BaseKafkaAvroIT.java b/messaging/kafka-strimzi-avro-reactive-messaging/src/test/java/io/quarkus/ts/messaging/strimzi/kafka/reactive/BaseKafkaAvroIT.java
similarity index 97%
rename from messaging/kafka-strimzi-avro-reactive-messaging/src/test/java/io/quarkus/ts/messaging/kafka/BaseKafkaAvroIT.java
rename to messaging/kafka-strimzi-avro-reactive-messaging/src/test/java/io/quarkus/ts/messaging/strimzi/kafka/reactive/BaseKafkaAvroIT.java
index 6c0dc32c5..f5dc19b88 100644
--- a/messaging/kafka-strimzi-avro-reactive-messaging/src/test/java/io/quarkus/ts/messaging/kafka/BaseKafkaAvroIT.java
+++ b/messaging/kafka-strimzi-avro-reactive-messaging/src/test/java/io/quarkus/ts/messaging/strimzi/kafka/reactive/BaseKafkaAvroIT.java
@@ -1,4 +1,4 @@
-package io.quarkus.ts.messaging.kafka;
+package io.quarkus.ts.messaging.strimzi.kafka.reactive;
import static org.junit.jupiter.api.Assertions.assertTrue;
diff --git a/messaging/kafka-strimzi-avro-reactive-messaging/src/test/java/io/quarkus/ts/messaging/kafka/DevModeApicurioDevServiceUserExperienceIT.java b/messaging/kafka-strimzi-avro-reactive-messaging/src/test/java/io/quarkus/ts/messaging/strimzi/kafka/reactive/DevModeApicurioDevServiceUserExperienceIT.java
similarity index 97%
rename from messaging/kafka-strimzi-avro-reactive-messaging/src/test/java/io/quarkus/ts/messaging/kafka/DevModeApicurioDevServiceUserExperienceIT.java
rename to messaging/kafka-strimzi-avro-reactive-messaging/src/test/java/io/quarkus/ts/messaging/strimzi/kafka/reactive/DevModeApicurioDevServiceUserExperienceIT.java
index 5dde466d0..c8a1764eb 100644
--- a/messaging/kafka-strimzi-avro-reactive-messaging/src/test/java/io/quarkus/ts/messaging/kafka/DevModeApicurioDevServiceUserExperienceIT.java
+++ b/messaging/kafka-strimzi-avro-reactive-messaging/src/test/java/io/quarkus/ts/messaging/strimzi/kafka/reactive/DevModeApicurioDevServiceUserExperienceIT.java
@@ -1,4 +1,4 @@
-package io.quarkus.ts.messaging.kafka;
+package io.quarkus.ts.messaging.strimzi.kafka.reactive;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Tag;
diff --git a/messaging/kafka-strimzi-avro-reactive-messaging/src/test/java/io/quarkus/ts/messaging/kafka/DevModeApicurioIT.java b/messaging/kafka-strimzi-avro-reactive-messaging/src/test/java/io/quarkus/ts/messaging/strimzi/kafka/reactive/DevModeApicurioIT.java
similarity index 90%
rename from messaging/kafka-strimzi-avro-reactive-messaging/src/test/java/io/quarkus/ts/messaging/kafka/DevModeApicurioIT.java
rename to messaging/kafka-strimzi-avro-reactive-messaging/src/test/java/io/quarkus/ts/messaging/strimzi/kafka/reactive/DevModeApicurioIT.java
index aa87594fd..a8b25e157 100644
--- a/messaging/kafka-strimzi-avro-reactive-messaging/src/test/java/io/quarkus/ts/messaging/kafka/DevModeApicurioIT.java
+++ b/messaging/kafka-strimzi-avro-reactive-messaging/src/test/java/io/quarkus/ts/messaging/strimzi/kafka/reactive/DevModeApicurioIT.java
@@ -1,4 +1,4 @@
-package io.quarkus.ts.messaging.kafka;
+package io.quarkus.ts.messaging.strimzi.kafka.reactive;
import org.junit.jupiter.api.Tag;
diff --git a/messaging/kafka-strimzi-avro-reactive-messaging/src/test/java/io/quarkus/ts/messaging/kafka/OpenShiftAmqStreamsKafkaAvroIT.java b/messaging/kafka-strimzi-avro-reactive-messaging/src/test/java/io/quarkus/ts/messaging/strimzi/kafka/reactive/OpenShiftAmqStreamsKafkaAvroIT.java
similarity index 95%
rename from messaging/kafka-strimzi-avro-reactive-messaging/src/test/java/io/quarkus/ts/messaging/kafka/OpenShiftAmqStreamsKafkaAvroIT.java
rename to messaging/kafka-strimzi-avro-reactive-messaging/src/test/java/io/quarkus/ts/messaging/strimzi/kafka/reactive/OpenShiftAmqStreamsKafkaAvroIT.java
index 1c5ecc0eb..3ea4f7173 100644
--- a/messaging/kafka-strimzi-avro-reactive-messaging/src/test/java/io/quarkus/ts/messaging/kafka/OpenShiftAmqStreamsKafkaAvroIT.java
+++ b/messaging/kafka-strimzi-avro-reactive-messaging/src/test/java/io/quarkus/ts/messaging/strimzi/kafka/reactive/OpenShiftAmqStreamsKafkaAvroIT.java
@@ -1,4 +1,4 @@
-package io.quarkus.ts.messaging.kafka;
+package io.quarkus.ts.messaging.strimzi.kafka.reactive;
import org.junit.jupiter.api.condition.EnabledIfSystemProperty;
diff --git a/messaging/kafka-strimzi-avro-reactive-messaging/src/test/java/io/quarkus/ts/messaging/kafka/OpenShiftStrimziKafkaAvroIT.java b/messaging/kafka-strimzi-avro-reactive-messaging/src/test/java/io/quarkus/ts/messaging/strimzi/kafka/reactive/OpenShiftStrimziKafkaAvroIT.java
similarity index 72%
rename from messaging/kafka-strimzi-avro-reactive-messaging/src/test/java/io/quarkus/ts/messaging/kafka/OpenShiftStrimziKafkaAvroIT.java
rename to messaging/kafka-strimzi-avro-reactive-messaging/src/test/java/io/quarkus/ts/messaging/strimzi/kafka/reactive/OpenShiftStrimziKafkaAvroIT.java
index 98f4d8222..853fde1c4 100644
--- a/messaging/kafka-strimzi-avro-reactive-messaging/src/test/java/io/quarkus/ts/messaging/kafka/OpenShiftStrimziKafkaAvroIT.java
+++ b/messaging/kafka-strimzi-avro-reactive-messaging/src/test/java/io/quarkus/ts/messaging/strimzi/kafka/reactive/OpenShiftStrimziKafkaAvroIT.java
@@ -1,4 +1,4 @@
-package io.quarkus.ts.messaging.kafka;
+package io.quarkus.ts.messaging.strimzi.kafka.reactive;
import io.quarkus.test.scenarios.OpenShiftScenario;
diff --git a/messaging/kafka-strimzi-avro-reactive-messaging/src/test/java/io/quarkus/ts/messaging/kafka/StrimziKafkaAvroGroupIdIT.java b/messaging/kafka-strimzi-avro-reactive-messaging/src/test/java/io/quarkus/ts/messaging/strimzi/kafka/reactive/StrimziKafkaAvroGroupIdIT.java
similarity index 96%
rename from messaging/kafka-strimzi-avro-reactive-messaging/src/test/java/io/quarkus/ts/messaging/kafka/StrimziKafkaAvroGroupIdIT.java
rename to messaging/kafka-strimzi-avro-reactive-messaging/src/test/java/io/quarkus/ts/messaging/strimzi/kafka/reactive/StrimziKafkaAvroGroupIdIT.java
index 8ddab8bc4..41280c159 100644
--- a/messaging/kafka-strimzi-avro-reactive-messaging/src/test/java/io/quarkus/ts/messaging/kafka/StrimziKafkaAvroGroupIdIT.java
+++ b/messaging/kafka-strimzi-avro-reactive-messaging/src/test/java/io/quarkus/ts/messaging/strimzi/kafka/reactive/StrimziKafkaAvroGroupIdIT.java
@@ -1,4 +1,4 @@
-package io.quarkus.ts.messaging.kafka;
+package io.quarkus.ts.messaging.strimzi.kafka.reactive;
import org.junit.jupiter.api.Tag;
diff --git a/messaging/kafka-strimzi-avro-reactive-messaging/src/test/java/io/quarkus/ts/messaging/kafka/StrimziKafkaAvroIT.java b/messaging/kafka-strimzi-avro-reactive-messaging/src/test/java/io/quarkus/ts/messaging/strimzi/kafka/reactive/StrimziKafkaAvroIT.java
similarity index 94%
rename from messaging/kafka-strimzi-avro-reactive-messaging/src/test/java/io/quarkus/ts/messaging/kafka/StrimziKafkaAvroIT.java
rename to messaging/kafka-strimzi-avro-reactive-messaging/src/test/java/io/quarkus/ts/messaging/strimzi/kafka/reactive/StrimziKafkaAvroIT.java
index 685fd3bf0..43bf6f87c 100644
--- a/messaging/kafka-strimzi-avro-reactive-messaging/src/test/java/io/quarkus/ts/messaging/kafka/StrimziKafkaAvroIT.java
+++ b/messaging/kafka-strimzi-avro-reactive-messaging/src/test/java/io/quarkus/ts/messaging/strimzi/kafka/reactive/StrimziKafkaAvroIT.java
@@ -1,4 +1,4 @@
-package io.quarkus.ts.messaging.kafka;
+package io.quarkus.ts.messaging.strimzi.kafka.reactive;
import io.quarkus.test.bootstrap.KafkaService;
import io.quarkus.test.bootstrap.RestService;
diff --git a/monitoring/microprofile-opentracing/src/main/java/io/quarkus/ts/microprofile/ClientResource.java b/monitoring/microprofile-opentracing/src/main/java/io/quarkus/ts/microprofile/opentracing/ClientResource.java
similarity index 95%
rename from monitoring/microprofile-opentracing/src/main/java/io/quarkus/ts/microprofile/ClientResource.java
rename to monitoring/microprofile-opentracing/src/main/java/io/quarkus/ts/microprofile/opentracing/ClientResource.java
index dc728d07a..edf06d32b 100644
--- a/monitoring/microprofile-opentracing/src/main/java/io/quarkus/ts/microprofile/ClientResource.java
+++ b/monitoring/microprofile-opentracing/src/main/java/io/quarkus/ts/microprofile/opentracing/ClientResource.java
@@ -1,4 +1,4 @@
-package io.quarkus.ts.microprofile;
+package io.quarkus.ts.microprofile.opentracing;
import java.util.concurrent.CompletionStage;
diff --git a/monitoring/microprofile-opentracing/src/main/java/io/quarkus/ts/microprofile/HelloClient.java b/monitoring/microprofile-opentracing/src/main/java/io/quarkus/ts/microprofile/opentracing/HelloClient.java
similarity index 95%
rename from monitoring/microprofile-opentracing/src/main/java/io/quarkus/ts/microprofile/HelloClient.java
rename to monitoring/microprofile-opentracing/src/main/java/io/quarkus/ts/microprofile/opentracing/HelloClient.java
index 1fde10d0c..4d01a0c74 100644
--- a/monitoring/microprofile-opentracing/src/main/java/io/quarkus/ts/microprofile/HelloClient.java
+++ b/monitoring/microprofile-opentracing/src/main/java/io/quarkus/ts/microprofile/opentracing/HelloClient.java
@@ -1,4 +1,4 @@
-package io.quarkus.ts.microprofile;
+package io.quarkus.ts.microprofile.opentracing;
import static java.util.concurrent.CompletableFuture.completedFuture;
diff --git a/monitoring/microprofile-opentracing/src/main/java/io/quarkus/ts/microprofile/HelloResource.java b/monitoring/microprofile-opentracing/src/main/java/io/quarkus/ts/microprofile/opentracing/HelloResource.java
similarity index 94%
rename from monitoring/microprofile-opentracing/src/main/java/io/quarkus/ts/microprofile/HelloResource.java
rename to monitoring/microprofile-opentracing/src/main/java/io/quarkus/ts/microprofile/opentracing/HelloResource.java
index 3bf19b016..bf0220177 100644
--- a/monitoring/microprofile-opentracing/src/main/java/io/quarkus/ts/microprofile/HelloResource.java
+++ b/monitoring/microprofile-opentracing/src/main/java/io/quarkus/ts/microprofile/opentracing/HelloResource.java
@@ -1,4 +1,4 @@
-package io.quarkus.ts.microprofile;
+package io.quarkus.ts.microprofile.opentracing;
import java.util.concurrent.CompletionStage;
diff --git a/monitoring/microprofile-opentracing/src/main/java/io/quarkus/ts/microprofile/HelloService.java b/monitoring/microprofile-opentracing/src/main/java/io/quarkus/ts/microprofile/opentracing/HelloService.java
similarity index 92%
rename from monitoring/microprofile-opentracing/src/main/java/io/quarkus/ts/microprofile/HelloService.java
rename to monitoring/microprofile-opentracing/src/main/java/io/quarkus/ts/microprofile/opentracing/HelloService.java
index cd0016d16..5e5d7e925 100644
--- a/monitoring/microprofile-opentracing/src/main/java/io/quarkus/ts/microprofile/HelloService.java
+++ b/monitoring/microprofile-opentracing/src/main/java/io/quarkus/ts/microprofile/opentracing/HelloService.java
@@ -1,4 +1,4 @@
-package io.quarkus.ts.microprofile;
+package io.quarkus.ts.microprofile.opentracing;
import java.util.concurrent.CompletionStage;
diff --git a/monitoring/microprofile-opentracing/src/main/resources/application.properties b/monitoring/microprofile-opentracing/src/main/resources/application.properties
index f47283cde..4f72cf7a2 100644
--- a/monitoring/microprofile-opentracing/src/main/resources/application.properties
+++ b/monitoring/microprofile-opentracing/src/main/resources/application.properties
@@ -5,4 +5,4 @@ quarkus.jaeger.sampler-type=const
quarkus.jaeger.sampler-param=1
quarkus.jaeger.endpoint=http://localhost:14268/api/traces
-io.quarkus.ts.microprofile.HelloClient/mp-rest/url=http://localhost:${quarkus.http.port}
\ No newline at end of file
+io.quarkus.ts.microprofile.opentracing.HelloClient/mp-rest/url=http://localhost:${quarkus.http.port}
\ No newline at end of file
diff --git a/monitoring/microprofile-opentracing/src/test/java/io/quarkus/ts/microprofile/MicroProfileIT.java b/monitoring/microprofile-opentracing/src/test/java/io/quarkus/ts/microprofile/opentracing/MicroProfileIT.java
similarity index 93%
rename from monitoring/microprofile-opentracing/src/test/java/io/quarkus/ts/microprofile/MicroProfileIT.java
rename to monitoring/microprofile-opentracing/src/test/java/io/quarkus/ts/microprofile/opentracing/MicroProfileIT.java
index 1eae67705..c2246ddfe 100644
--- a/monitoring/microprofile-opentracing/src/test/java/io/quarkus/ts/microprofile/MicroProfileIT.java
+++ b/monitoring/microprofile-opentracing/src/test/java/io/quarkus/ts/microprofile/opentracing/MicroProfileIT.java
@@ -1,4 +1,4 @@
-package io.quarkus.ts.microprofile;
+package io.quarkus.ts.microprofile.opentracing;
import static io.restassured.RestAssured.when;
import static org.awaitility.Awaitility.await;
@@ -75,9 +75,9 @@ public void verifyTracesInJaegerTest() {
.body("data", hasSize(EXPECTED_DATA_SIZE))
.body("data[0].spans", hasSize(EXPECTED_SPANS_SIZE))
.body("data[0].spans.operationName", hasItems(
- "GET:io.quarkus.ts.microprofile.ClientResource.get",
+ "GET:io.quarkus.ts.microprofile.opentracing.ClientResource.get",
"GET",
- "GET:io.quarkus.ts.microprofile.HelloResource.get"))
+ "GET:io.quarkus.ts.microprofile.opentracing.HelloResource.get"))
.body("data[0].spans.logs.fields.value.flatten()", hasItems(
"ClientResource called",
"HelloResource called",
@@ -85,7 +85,7 @@ public void verifyTracesInJaegerTest() {
"HelloService async processing"))
.body("data[0].spans.find { "
+
- "it.operationName == 'GET:io.quarkus.ts.microprofile.ClientResource.get' }.tags.collect"
+ "it.operationName == 'GET:io.quarkus.ts.microprofile.opentracing.ClientResource.get' }.tags.collect"
+
" { \"${it.key}=${it.value}\".toString() }",
hasItems(
@@ -104,7 +104,7 @@ public void verifyTracesInJaegerTest() {
"http.status_code=200"))
.body("data[0].spans.find { "
+
- "it.operationName == 'GET:io.quarkus.ts.microprofile.HelloResource.get' }.tags.collect "
+ "it.operationName == 'GET:io.quarkus.ts.microprofile.opentracing.HelloResource.get' }.tags.collect "
+
"{ \"${it.key}=${it.value}\".toString() }",
hasItems(
diff --git a/monitoring/microprofile-opentracing/src/test/java/io/quarkus/ts/microprofile/OpenShiftMicroProfileIT.java b/monitoring/microprofile-opentracing/src/test/java/io/quarkus/ts/microprofile/opentracing/OpenShiftMicroProfileIT.java
similarity index 90%
rename from monitoring/microprofile-opentracing/src/test/java/io/quarkus/ts/microprofile/OpenShiftMicroProfileIT.java
rename to monitoring/microprofile-opentracing/src/test/java/io/quarkus/ts/microprofile/opentracing/OpenShiftMicroProfileIT.java
index 172eb1ba7..95870c7e1 100644
--- a/monitoring/microprofile-opentracing/src/test/java/io/quarkus/ts/microprofile/OpenShiftMicroProfileIT.java
+++ b/monitoring/microprofile-opentracing/src/test/java/io/quarkus/ts/microprofile/opentracing/OpenShiftMicroProfileIT.java
@@ -1,4 +1,4 @@
-package io.quarkus.ts.microprofile;
+package io.quarkus.ts.microprofile.opentracing;
import io.quarkus.test.scenarios.OpenShiftScenario;
import io.quarkus.test.scenarios.annotations.DisabledOnQuarkusVersion;
diff --git a/monitoring/opentracing-reactive-grpc/src/main/java/io/quarkus/qe/ping/GrpcPingResource.java b/monitoring/opentracing-reactive-grpc/src/main/java/io/quarkus/ts/monitoring/opentracing/reactive/grpc/ping/GrpcPingResource.java
similarity index 80%
rename from monitoring/opentracing-reactive-grpc/src/main/java/io/quarkus/qe/ping/GrpcPingResource.java
rename to monitoring/opentracing-reactive-grpc/src/main/java/io/quarkus/ts/monitoring/opentracing/reactive/grpc/ping/GrpcPingResource.java
index 9fbea7e9a..9d298f307 100644
--- a/monitoring/opentracing-reactive-grpc/src/main/java/io/quarkus/qe/ping/GrpcPingResource.java
+++ b/monitoring/opentracing-reactive-grpc/src/main/java/io/quarkus/ts/monitoring/opentracing/reactive/grpc/ping/GrpcPingResource.java
@@ -1,4 +1,4 @@
-package io.quarkus.qe.ping;
+package io.quarkus.ts.monitoring.opentracing.reactive.grpc.ping;
import javax.inject.Inject;
import javax.ws.rs.GET;
@@ -9,7 +9,7 @@
import io.quarkus.example.PongRequest;
import io.quarkus.example.PongServiceGrpc;
import io.quarkus.grpc.GrpcClient;
-import io.quarkus.qe.traceable.TraceableResource;
+import io.quarkus.ts.monitoring.opentracing.reactive.grpc.traceable.TraceableResource;
@Path("/grpc-ping")
public class GrpcPingResource extends TraceableResource {
diff --git a/monitoring/opentracing-reactive-grpc/src/main/java/io/quarkus/qe/ping/PingResource.java b/monitoring/opentracing-reactive-grpc/src/main/java/io/quarkus/ts/monitoring/opentracing/reactive/grpc/ping/PingResource.java
similarity index 67%
rename from monitoring/opentracing-reactive-grpc/src/main/java/io/quarkus/qe/ping/PingResource.java
rename to monitoring/opentracing-reactive-grpc/src/main/java/io/quarkus/ts/monitoring/opentracing/reactive/grpc/ping/PingResource.java
index 973e08aa3..d19a63369 100644
--- a/monitoring/opentracing-reactive-grpc/src/main/java/io/quarkus/qe/ping/PingResource.java
+++ b/monitoring/opentracing-reactive-grpc/src/main/java/io/quarkus/ts/monitoring/opentracing/reactive/grpc/ping/PingResource.java
@@ -1,4 +1,4 @@
-package io.quarkus.qe.ping;
+package io.quarkus.ts.monitoring.opentracing.reactive.grpc.ping;
import javax.inject.Inject;
import javax.ws.rs.GET;
@@ -8,8 +8,8 @@
import org.eclipse.microprofile.rest.client.inject.RestClient;
-import io.quarkus.qe.ping.clients.PongClient;
-import io.quarkus.qe.traceable.TraceableResource;
+import io.quarkus.ts.monitoring.opentracing.reactive.grpc.ping.clients.PongClient;
+import io.quarkus.ts.monitoring.opentracing.reactive.grpc.traceable.TraceableResource;
@Path("/rest-ping")
public class PingResource extends TraceableResource {
diff --git a/monitoring/opentracing-reactive-grpc/src/main/java/io/quarkus/qe/ping/ReactivePingResource.java b/monitoring/opentracing-reactive-grpc/src/main/java/io/quarkus/ts/monitoring/opentracing/reactive/grpc/ping/ReactivePingResource.java
similarity index 70%
rename from monitoring/opentracing-reactive-grpc/src/main/java/io/quarkus/qe/ping/ReactivePingResource.java
rename to monitoring/opentracing-reactive-grpc/src/main/java/io/quarkus/ts/monitoring/opentracing/reactive/grpc/ping/ReactivePingResource.java
index c18f7936f..38fa3cf59 100644
--- a/monitoring/opentracing-reactive-grpc/src/main/java/io/quarkus/qe/ping/ReactivePingResource.java
+++ b/monitoring/opentracing-reactive-grpc/src/main/java/io/quarkus/ts/monitoring/opentracing/reactive/grpc/ping/ReactivePingResource.java
@@ -1,4 +1,4 @@
-package io.quarkus.qe.ping;
+package io.quarkus.ts.monitoring.opentracing.reactive.grpc.ping;
import javax.inject.Inject;
import javax.ws.rs.GET;
@@ -8,8 +8,8 @@
import org.eclipse.microprofile.rest.client.inject.RestClient;
-import io.quarkus.qe.ping.clients.ReactivePongClient;
-import io.quarkus.qe.traceable.TraceableResource;
+import io.quarkus.ts.monitoring.opentracing.reactive.grpc.ping.clients.ReactivePongClient;
+import io.quarkus.ts.monitoring.opentracing.reactive.grpc.traceable.TraceableResource;
import io.smallrye.mutiny.Uni;
@Path("/reactive-ping")
diff --git a/monitoring/opentracing-reactive-grpc/src/main/java/io/quarkus/qe/ping/ServerSentEventsPingResource.java b/monitoring/opentracing-reactive-grpc/src/main/java/io/quarkus/ts/monitoring/opentracing/reactive/grpc/ping/ServerSentEventsPingResource.java
similarity index 71%
rename from monitoring/opentracing-reactive-grpc/src/main/java/io/quarkus/qe/ping/ServerSentEventsPingResource.java
rename to monitoring/opentracing-reactive-grpc/src/main/java/io/quarkus/ts/monitoring/opentracing/reactive/grpc/ping/ServerSentEventsPingResource.java
index 1191d3481..156c13dd9 100644
--- a/monitoring/opentracing-reactive-grpc/src/main/java/io/quarkus/qe/ping/ServerSentEventsPingResource.java
+++ b/monitoring/opentracing-reactive-grpc/src/main/java/io/quarkus/ts/monitoring/opentracing/reactive/grpc/ping/ServerSentEventsPingResource.java
@@ -1,4 +1,4 @@
-package io.quarkus.qe.ping;
+package io.quarkus.ts.monitoring.opentracing.reactive.grpc.ping;
import javax.inject.Inject;
import javax.ws.rs.GET;
@@ -8,8 +8,8 @@
import org.eclipse.microprofile.rest.client.inject.RestClient;
-import io.quarkus.qe.ping.clients.ServerSentEventsPongClient;
-import io.quarkus.qe.traceable.TraceableResource;
+import io.quarkus.ts.monitoring.opentracing.reactive.grpc.ping.clients.ServerSentEventsPongClient;
+import io.quarkus.ts.monitoring.opentracing.reactive.grpc.traceable.TraceableResource;
import io.smallrye.mutiny.Multi;
@Path("/server-sent-events-ping")
diff --git a/monitoring/opentracing-reactive-grpc/src/main/java/io/quarkus/qe/ping/clients/PongClient.java b/monitoring/opentracing-reactive-grpc/src/main/java/io/quarkus/ts/monitoring/opentracing/reactive/grpc/ping/clients/PongClient.java
similarity index 81%
rename from monitoring/opentracing-reactive-grpc/src/main/java/io/quarkus/qe/ping/clients/PongClient.java
rename to monitoring/opentracing-reactive-grpc/src/main/java/io/quarkus/ts/monitoring/opentracing/reactive/grpc/ping/clients/PongClient.java
index bcfbacad2..304501d81 100644
--- a/monitoring/opentracing-reactive-grpc/src/main/java/io/quarkus/qe/ping/clients/PongClient.java
+++ b/monitoring/opentracing-reactive-grpc/src/main/java/io/quarkus/ts/monitoring/opentracing/reactive/grpc/ping/clients/PongClient.java
@@ -1,4 +1,4 @@
-package io.quarkus.qe.ping.clients;
+package io.quarkus.ts.monitoring.opentracing.reactive.grpc.ping.clients;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
diff --git a/monitoring/opentracing-reactive-grpc/src/main/java/io/quarkus/qe/ping/clients/ReactivePongClient.java b/monitoring/opentracing-reactive-grpc/src/main/java/io/quarkus/ts/monitoring/opentracing/reactive/grpc/ping/clients/ReactivePongClient.java
similarity index 83%
rename from monitoring/opentracing-reactive-grpc/src/main/java/io/quarkus/qe/ping/clients/ReactivePongClient.java
rename to monitoring/opentracing-reactive-grpc/src/main/java/io/quarkus/ts/monitoring/opentracing/reactive/grpc/ping/clients/ReactivePongClient.java
index 6315eb7a0..40b0d32c0 100644
--- a/monitoring/opentracing-reactive-grpc/src/main/java/io/quarkus/qe/ping/clients/ReactivePongClient.java
+++ b/monitoring/opentracing-reactive-grpc/src/main/java/io/quarkus/ts/monitoring/opentracing/reactive/grpc/ping/clients/ReactivePongClient.java
@@ -1,4 +1,4 @@
-package io.quarkus.qe.ping.clients;
+package io.quarkus.ts.monitoring.opentracing.reactive.grpc.ping.clients;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
diff --git a/monitoring/opentracing-reactive-grpc/src/main/java/io/quarkus/qe/ping/clients/ServerSentEventsPongClient.java b/monitoring/opentracing-reactive-grpc/src/main/java/io/quarkus/ts/monitoring/opentracing/reactive/grpc/ping/clients/ServerSentEventsPongClient.java
similarity index 85%
rename from monitoring/opentracing-reactive-grpc/src/main/java/io/quarkus/qe/ping/clients/ServerSentEventsPongClient.java
rename to monitoring/opentracing-reactive-grpc/src/main/java/io/quarkus/ts/monitoring/opentracing/reactive/grpc/ping/clients/ServerSentEventsPongClient.java
index e17504f6b..359d8fb20 100644
--- a/monitoring/opentracing-reactive-grpc/src/main/java/io/quarkus/qe/ping/clients/ServerSentEventsPongClient.java
+++ b/monitoring/opentracing-reactive-grpc/src/main/java/io/quarkus/ts/monitoring/opentracing/reactive/grpc/ping/clients/ServerSentEventsPongClient.java
@@ -1,4 +1,4 @@
-package io.quarkus.qe.ping.clients;
+package io.quarkus.ts.monitoring.opentracing.reactive.grpc.ping.clients;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
diff --git a/monitoring/opentracing-reactive-grpc/src/main/java/io/quarkus/qe/pong/GrpcPongResource.java b/monitoring/opentracing-reactive-grpc/src/main/java/io/quarkus/ts/monitoring/opentracing/reactive/grpc/pong/GrpcPongResource.java
similarity index 84%
rename from monitoring/opentracing-reactive-grpc/src/main/java/io/quarkus/qe/pong/GrpcPongResource.java
rename to monitoring/opentracing-reactive-grpc/src/main/java/io/quarkus/ts/monitoring/opentracing/reactive/grpc/pong/GrpcPongResource.java
index 6b14b39ee..9a8a98871 100644
--- a/monitoring/opentracing-reactive-grpc/src/main/java/io/quarkus/qe/pong/GrpcPongResource.java
+++ b/monitoring/opentracing-reactive-grpc/src/main/java/io/quarkus/ts/monitoring/opentracing/reactive/grpc/pong/GrpcPongResource.java
@@ -1,4 +1,4 @@
-package io.quarkus.qe.pong;
+package io.quarkus.ts.monitoring.opentracing.reactive.grpc.pong;
import javax.inject.Inject;
import javax.ws.rs.GET;
@@ -11,7 +11,7 @@
import io.quarkus.example.LastTraceIdRequest;
import io.quarkus.example.PongServiceGrpc;
import io.quarkus.grpc.GrpcClient;
-import io.quarkus.qe.traceable.TraceableResource;
+import io.quarkus.ts.monitoring.opentracing.reactive.grpc.traceable.TraceableResource;
@Path("/grpc-pong")
public class GrpcPongResource {
diff --git a/monitoring/opentracing-reactive-grpc/src/main/java/io/quarkus/qe/pong/GrpcPongService.java b/monitoring/opentracing-reactive-grpc/src/main/java/io/quarkus/ts/monitoring/opentracing/reactive/grpc/pong/GrpcPongService.java
similarity index 94%
rename from monitoring/opentracing-reactive-grpc/src/main/java/io/quarkus/qe/pong/GrpcPongService.java
rename to monitoring/opentracing-reactive-grpc/src/main/java/io/quarkus/ts/monitoring/opentracing/reactive/grpc/pong/GrpcPongService.java
index 52527e66d..63c9334b9 100644
--- a/monitoring/opentracing-reactive-grpc/src/main/java/io/quarkus/qe/pong/GrpcPongService.java
+++ b/monitoring/opentracing-reactive-grpc/src/main/java/io/quarkus/ts/monitoring/opentracing/reactive/grpc/pong/GrpcPongService.java
@@ -1,4 +1,4 @@
-package io.quarkus.qe.pong;
+package io.quarkus.ts.monitoring.opentracing.reactive.grpc.pong;
import org.jboss.logmanager.MDC;
diff --git a/monitoring/opentracing-reactive-grpc/src/main/java/io/quarkus/qe/pong/PongResource.java b/monitoring/opentracing-reactive-grpc/src/main/java/io/quarkus/ts/monitoring/opentracing/reactive/grpc/pong/PongResource.java
similarity index 67%
rename from monitoring/opentracing-reactive-grpc/src/main/java/io/quarkus/qe/pong/PongResource.java
rename to monitoring/opentracing-reactive-grpc/src/main/java/io/quarkus/ts/monitoring/opentracing/reactive/grpc/pong/PongResource.java
index 1e07bf6e5..daab170b2 100644
--- a/monitoring/opentracing-reactive-grpc/src/main/java/io/quarkus/qe/pong/PongResource.java
+++ b/monitoring/opentracing-reactive-grpc/src/main/java/io/quarkus/ts/monitoring/opentracing/reactive/grpc/pong/PongResource.java
@@ -1,11 +1,11 @@
-package io.quarkus.qe.pong;
+package io.quarkus.ts.monitoring.opentracing.reactive.grpc.pong;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
-import io.quarkus.qe.traceable.TraceableResource;
+import io.quarkus.ts.monitoring.opentracing.reactive.grpc.traceable.TraceableResource;
@Path("/rest-pong")
public class PongResource extends TraceableResource {
diff --git a/monitoring/opentracing-reactive-grpc/src/main/java/io/quarkus/qe/pong/ReactivePongResource.java b/monitoring/opentracing-reactive-grpc/src/main/java/io/quarkus/ts/monitoring/opentracing/reactive/grpc/pong/ReactivePongResource.java
similarity index 72%
rename from monitoring/opentracing-reactive-grpc/src/main/java/io/quarkus/qe/pong/ReactivePongResource.java
rename to monitoring/opentracing-reactive-grpc/src/main/java/io/quarkus/ts/monitoring/opentracing/reactive/grpc/pong/ReactivePongResource.java
index f38db9dbb..cb65abec8 100644
--- a/monitoring/opentracing-reactive-grpc/src/main/java/io/quarkus/qe/pong/ReactivePongResource.java
+++ b/monitoring/opentracing-reactive-grpc/src/main/java/io/quarkus/ts/monitoring/opentracing/reactive/grpc/pong/ReactivePongResource.java
@@ -1,11 +1,11 @@
-package io.quarkus.qe.pong;
+package io.quarkus.ts.monitoring.opentracing.reactive.grpc.pong;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
-import io.quarkus.qe.traceable.TraceableResource;
+import io.quarkus.ts.monitoring.opentracing.reactive.grpc.traceable.TraceableResource;
import io.smallrye.mutiny.Uni;
@Path("/reactive-pong")
diff --git a/monitoring/opentracing-reactive-grpc/src/main/java/io/quarkus/qe/pong/ServerSentEventsPongResource.java b/monitoring/opentracing-reactive-grpc/src/main/java/io/quarkus/ts/monitoring/opentracing/reactive/grpc/pong/ServerSentEventsPongResource.java
similarity index 73%
rename from monitoring/opentracing-reactive-grpc/src/main/java/io/quarkus/qe/pong/ServerSentEventsPongResource.java
rename to monitoring/opentracing-reactive-grpc/src/main/java/io/quarkus/ts/monitoring/opentracing/reactive/grpc/pong/ServerSentEventsPongResource.java
index e281e4e69..1289af881 100644
--- a/monitoring/opentracing-reactive-grpc/src/main/java/io/quarkus/qe/pong/ServerSentEventsPongResource.java
+++ b/monitoring/opentracing-reactive-grpc/src/main/java/io/quarkus/ts/monitoring/opentracing/reactive/grpc/pong/ServerSentEventsPongResource.java
@@ -1,11 +1,11 @@
-package io.quarkus.qe.pong;
+package io.quarkus.ts.monitoring.opentracing.reactive.grpc.pong;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
-import io.quarkus.qe.traceable.TraceableResource;
+import io.quarkus.ts.monitoring.opentracing.reactive.grpc.traceable.TraceableResource;
import io.smallrye.mutiny.Multi;
@Path("/server-sent-events-pong")
diff --git a/monitoring/opentracing-reactive-grpc/src/main/java/io/quarkus/qe/traceable/TraceableResource.java b/monitoring/opentracing-reactive-grpc/src/main/java/io/quarkus/ts/monitoring/opentracing/reactive/grpc/traceable/TraceableResource.java
similarity index 89%
rename from monitoring/opentracing-reactive-grpc/src/main/java/io/quarkus/qe/traceable/TraceableResource.java
rename to monitoring/opentracing-reactive-grpc/src/main/java/io/quarkus/ts/monitoring/opentracing/reactive/grpc/traceable/TraceableResource.java
index 9271ee83f..e9e7d80df 100644
--- a/monitoring/opentracing-reactive-grpc/src/main/java/io/quarkus/qe/traceable/TraceableResource.java
+++ b/monitoring/opentracing-reactive-grpc/src/main/java/io/quarkus/ts/monitoring/opentracing/reactive/grpc/traceable/TraceableResource.java
@@ -1,4 +1,4 @@
-package io.quarkus.qe.traceable;
+package io.quarkus.ts.monitoring.opentracing.reactive.grpc.traceable;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
diff --git a/monitoring/opentracing-reactive-grpc/src/main/resources/application.properties b/monitoring/opentracing-reactive-grpc/src/main/resources/application.properties
index 09cddfe72..04f4a96f9 100644
--- a/monitoring/opentracing-reactive-grpc/src/main/resources/application.properties
+++ b/monitoring/opentracing-reactive-grpc/src/main/resources/application.properties
@@ -5,14 +5,14 @@ quarkus.jaeger.sampler-param=1
quarkus.log.console.format=%d{HH:mm:ss} %-5p traceId=%X{traceId}, parentId=%X{parentId}, spanId=%X{spanId}, sampled=%X{sampled} [%c{2.}] (%t) %s%e%n
# RestClient
-io.quarkus.qe.ping.clients.PongClient/mp-rest/url=http://localhost:${quarkus.http.port}
-io.quarkus.qe.ping.clients.PongClient/mp-rest/scope=javax.inject.Singleton
+io.quarkus.ts.monitoring.opentracing.reactive.grpc.ping.clients.PongClient/mp-rest/url=http://localhost:${quarkus.http.port}
+io.quarkus.ts.monitoring.opentracing.reactive.grpc.ping.clients.PongClient/mp-rest/scope=javax.inject.Singleton
-io.quarkus.qe.ping.clients.ReactivePongClient/mp-rest/url=http://localhost:${quarkus.http.port}
-io.quarkus.qe.ping.clients.ReactivePongClient/mp-rest/scope=javax.inject.Singleton
+io.quarkus.ts.monitoring.opentracing.reactive.grpc.ping.clients.ReactivePongClient/mp-rest/url=http://localhost:${quarkus.http.port}
+io.quarkus.ts.monitoring.opentracing.reactive.grpc.ping.clients.ReactivePongClient/mp-rest/scope=javax.inject.Singleton
-io.quarkus.qe.ping.clients.ServerSentEventsPongClient/mp-rest/url=http://localhost:${quarkus.http.port}
-io.quarkus.qe.ping.clients.ServerSentEventsPongClient/mp-rest/scope=javax.inject.Singleton
+io.quarkus.ts.monitoring.opentracing.reactive.grpc.ping.clients.ServerSentEventsPongClient/mp-rest/url=http://localhost:${quarkus.http.port}
+io.quarkus.ts.monitoring.opentracing.reactive.grpc.ping.clients.ServerSentEventsPongClient/mp-rest/scope=javax.inject.Singleton
# gRPC
quarkus.grpc.clients.pong.host=localhost
\ No newline at end of file
diff --git a/monitoring/opentracing-reactive-grpc/src/test/java/io/quarkus/qe/AbstractPingPongResourceIT.java b/monitoring/opentracing-reactive-grpc/src/test/java/io/quarkus/ts/monitoring/opentracing/reactive/grpc/AbstractPingPongResourceIT.java
similarity index 97%
rename from monitoring/opentracing-reactive-grpc/src/test/java/io/quarkus/qe/AbstractPingPongResourceIT.java
rename to monitoring/opentracing-reactive-grpc/src/test/java/io/quarkus/ts/monitoring/opentracing/reactive/grpc/AbstractPingPongResourceIT.java
index c3954aef0..a6efaae59 100644
--- a/monitoring/opentracing-reactive-grpc/src/test/java/io/quarkus/qe/AbstractPingPongResourceIT.java
+++ b/monitoring/opentracing-reactive-grpc/src/test/java/io/quarkus/ts/monitoring/opentracing/reactive/grpc/AbstractPingPongResourceIT.java
@@ -1,4 +1,4 @@
-package io.quarkus.qe;
+package io.quarkus.ts.monitoring.opentracing.reactive.grpc;
import static io.restassured.RestAssured.given;
import static org.awaitility.Awaitility.await;
diff --git a/monitoring/opentracing-reactive-grpc/src/test/java/io/quarkus/qe/GrpcPingPongResourceIT.java b/monitoring/opentracing-reactive-grpc/src/test/java/io/quarkus/ts/monitoring/opentracing/reactive/grpc/GrpcPingPongResourceIT.java
similarity index 87%
rename from monitoring/opentracing-reactive-grpc/src/test/java/io/quarkus/qe/GrpcPingPongResourceIT.java
rename to monitoring/opentracing-reactive-grpc/src/test/java/io/quarkus/ts/monitoring/opentracing/reactive/grpc/GrpcPingPongResourceIT.java
index 552d052b7..da7bb1848 100644
--- a/monitoring/opentracing-reactive-grpc/src/test/java/io/quarkus/qe/GrpcPingPongResourceIT.java
+++ b/monitoring/opentracing-reactive-grpc/src/test/java/io/quarkus/ts/monitoring/opentracing/reactive/grpc/GrpcPingPongResourceIT.java
@@ -1,4 +1,4 @@
-package io.quarkus.qe;
+package io.quarkus.ts.monitoring.opentracing.reactive.grpc;
import org.junit.jupiter.api.Disabled;
diff --git a/monitoring/opentracing-reactive-grpc/src/test/java/io/quarkus/qe/ReactivePingPongResourceOpentracingIT.java b/monitoring/opentracing-reactive-grpc/src/test/java/io/quarkus/ts/monitoring/opentracing/reactive/grpc/ReactivePingPongResourceOpentracingIT.java
similarity index 80%
rename from monitoring/opentracing-reactive-grpc/src/test/java/io/quarkus/qe/ReactivePingPongResourceOpentracingIT.java
rename to monitoring/opentracing-reactive-grpc/src/test/java/io/quarkus/ts/monitoring/opentracing/reactive/grpc/ReactivePingPongResourceOpentracingIT.java
index e344f7680..297a33484 100644
--- a/monitoring/opentracing-reactive-grpc/src/test/java/io/quarkus/qe/ReactivePingPongResourceOpentracingIT.java
+++ b/monitoring/opentracing-reactive-grpc/src/test/java/io/quarkus/ts/monitoring/opentracing/reactive/grpc/ReactivePingPongResourceOpentracingIT.java
@@ -1,4 +1,4 @@
-package io.quarkus.qe;
+package io.quarkus.ts.monitoring.opentracing.reactive.grpc;
import io.quarkus.test.scenarios.QuarkusScenario;
diff --git a/monitoring/opentracing-reactive-grpc/src/test/java/io/quarkus/qe/RestPingPongResourceOpentracingIT.java b/monitoring/opentracing-reactive-grpc/src/test/java/io/quarkus/ts/monitoring/opentracing/reactive/grpc/RestPingPongResourceOpentracingIT.java
similarity index 79%
rename from monitoring/opentracing-reactive-grpc/src/test/java/io/quarkus/qe/RestPingPongResourceOpentracingIT.java
rename to monitoring/opentracing-reactive-grpc/src/test/java/io/quarkus/ts/monitoring/opentracing/reactive/grpc/RestPingPongResourceOpentracingIT.java
index 3ad75ea63..0ef01a505 100644
--- a/monitoring/opentracing-reactive-grpc/src/test/java/io/quarkus/qe/RestPingPongResourceOpentracingIT.java
+++ b/monitoring/opentracing-reactive-grpc/src/test/java/io/quarkus/ts/monitoring/opentracing/reactive/grpc/RestPingPongResourceOpentracingIT.java
@@ -1,4 +1,4 @@
-package io.quarkus.qe;
+package io.quarkus.ts.monitoring.opentracing.reactive.grpc;
import io.quarkus.test.scenarios.QuarkusScenario;
diff --git a/monitoring/opentracing-reactive-grpc/src/test/java/io/quarkus/qe/ServerSentEventsPingPongResourceOpentracingIT.java b/monitoring/opentracing-reactive-grpc/src/test/java/io/quarkus/ts/monitoring/opentracing/reactive/grpc/ServerSentEventsPingPongResourceOpentracingIT.java
similarity index 81%
rename from monitoring/opentracing-reactive-grpc/src/test/java/io/quarkus/qe/ServerSentEventsPingPongResourceOpentracingIT.java
rename to monitoring/opentracing-reactive-grpc/src/test/java/io/quarkus/ts/monitoring/opentracing/reactive/grpc/ServerSentEventsPingPongResourceOpentracingIT.java
index 47dd56285..ab3957f64 100644
--- a/monitoring/opentracing-reactive-grpc/src/test/java/io/quarkus/qe/ServerSentEventsPingPongResourceOpentracingIT.java
+++ b/monitoring/opentracing-reactive-grpc/src/test/java/io/quarkus/ts/monitoring/opentracing/reactive/grpc/ServerSentEventsPingPongResourceOpentracingIT.java
@@ -1,4 +1,4 @@
-package io.quarkus.qe;
+package io.quarkus.ts.monitoring.opentracing.reactive.grpc;
import io.quarkus.test.scenarios.QuarkusScenario;
diff --git a/nosql-db/mongodb-reactive/src/main/java/io/quarkus/ts/nosqldb/mongodb/AbstractReactiveMongoDao.java b/nosql-db/mongodb-reactive/src/main/java/io/quarkus/ts/nosqldb/mongodb/reactive/AbstractReactiveMongoDao.java
similarity index 95%
rename from nosql-db/mongodb-reactive/src/main/java/io/quarkus/ts/nosqldb/mongodb/AbstractReactiveMongoDao.java
rename to nosql-db/mongodb-reactive/src/main/java/io/quarkus/ts/nosqldb/mongodb/reactive/AbstractReactiveMongoDao.java
index b1adff9f3..d213aed16 100644
--- a/nosql-db/mongodb-reactive/src/main/java/io/quarkus/ts/nosqldb/mongodb/AbstractReactiveMongoDao.java
+++ b/nosql-db/mongodb-reactive/src/main/java/io/quarkus/ts/nosqldb/mongodb/reactive/AbstractReactiveMongoDao.java
@@ -1,4 +1,4 @@
-package io.quarkus.ts.nosqldb.mongodb;
+package io.quarkus.ts.nosqldb.mongodb.reactive;
import java.util.List;
import java.util.function.Function;
diff --git a/nosql-db/mongodb-reactive/src/main/java/io/quarkus/ts/nosqldb/mongodb/Fruit.java b/nosql-db/mongodb-reactive/src/main/java/io/quarkus/ts/nosqldb/mongodb/reactive/Fruit.java
similarity index 96%
rename from nosql-db/mongodb-reactive/src/main/java/io/quarkus/ts/nosqldb/mongodb/Fruit.java
rename to nosql-db/mongodb-reactive/src/main/java/io/quarkus/ts/nosqldb/mongodb/reactive/Fruit.java
index 6df33e9bc..af6b67cea 100644
--- a/nosql-db/mongodb-reactive/src/main/java/io/quarkus/ts/nosqldb/mongodb/Fruit.java
+++ b/nosql-db/mongodb-reactive/src/main/java/io/quarkus/ts/nosqldb/mongodb/reactive/Fruit.java
@@ -1,4 +1,4 @@
-package io.quarkus.ts.nosqldb.mongodb;
+package io.quarkus.ts.nosqldb.mongodb.reactive;
import java.util.Objects;
diff --git a/nosql-db/mongodb-reactive/src/main/java/io/quarkus/ts/nosqldb/mongodb/FruitBasket.java b/nosql-db/mongodb-reactive/src/main/java/io/quarkus/ts/nosqldb/mongodb/reactive/FruitBasket.java
similarity index 97%
rename from nosql-db/mongodb-reactive/src/main/java/io/quarkus/ts/nosqldb/mongodb/FruitBasket.java
rename to nosql-db/mongodb-reactive/src/main/java/io/quarkus/ts/nosqldb/mongodb/reactive/FruitBasket.java
index f1fa46be5..1cbaa3d41 100644
--- a/nosql-db/mongodb-reactive/src/main/java/io/quarkus/ts/nosqldb/mongodb/FruitBasket.java
+++ b/nosql-db/mongodb-reactive/src/main/java/io/quarkus/ts/nosqldb/mongodb/reactive/FruitBasket.java
@@ -1,4 +1,4 @@
-package io.quarkus.ts.nosqldb.mongodb;
+package io.quarkus.ts.nosqldb.mongodb.reactive;
import java.util.List;
import java.util.Objects;
diff --git a/nosql-db/mongodb-reactive/src/main/java/io/quarkus/ts/nosqldb/mongodb/MongoDaoInterface.java b/nosql-db/mongodb-reactive/src/main/java/io/quarkus/ts/nosqldb/mongodb/reactive/MongoDaoInterface.java
similarity index 61%
rename from nosql-db/mongodb-reactive/src/main/java/io/quarkus/ts/nosqldb/mongodb/MongoDaoInterface.java
rename to nosql-db/mongodb-reactive/src/main/java/io/quarkus/ts/nosqldb/mongodb/reactive/MongoDaoInterface.java
index 1c0c7f4a1..18b7662e2 100644
--- a/nosql-db/mongodb-reactive/src/main/java/io/quarkus/ts/nosqldb/mongodb/MongoDaoInterface.java
+++ b/nosql-db/mongodb-reactive/src/main/java/io/quarkus/ts/nosqldb/mongodb/reactive/MongoDaoInterface.java
@@ -1,4 +1,4 @@
-package io.quarkus.ts.nosqldb.mongodb;
+package io.quarkus.ts.nosqldb.mongodb.reactive;
public interface MongoDaoInterface {
String FRUIT_DB_NAME = "fruit";
diff --git a/nosql-db/mongodb-reactive/src/main/java/io/quarkus/ts/nosqldb/mongodb/ReactiveFruitBasketResource.java b/nosql-db/mongodb-reactive/src/main/java/io/quarkus/ts/nosqldb/mongodb/reactive/ReactiveFruitBasketResource.java
similarity index 95%
rename from nosql-db/mongodb-reactive/src/main/java/io/quarkus/ts/nosqldb/mongodb/ReactiveFruitBasketResource.java
rename to nosql-db/mongodb-reactive/src/main/java/io/quarkus/ts/nosqldb/mongodb/reactive/ReactiveFruitBasketResource.java
index 98454490f..057c4b125 100644
--- a/nosql-db/mongodb-reactive/src/main/java/io/quarkus/ts/nosqldb/mongodb/ReactiveFruitBasketResource.java
+++ b/nosql-db/mongodb-reactive/src/main/java/io/quarkus/ts/nosqldb/mongodb/reactive/ReactiveFruitBasketResource.java
@@ -1,4 +1,4 @@
-package io.quarkus.ts.nosqldb.mongodb;
+package io.quarkus.ts.nosqldb.mongodb.reactive;
import java.util.List;
diff --git a/nosql-db/mongodb-reactive/src/main/java/io/quarkus/ts/nosqldb/mongodb/ReactiveFruitBasketService.java b/nosql-db/mongodb-reactive/src/main/java/io/quarkus/ts/nosqldb/mongodb/reactive/ReactiveFruitBasketService.java
similarity index 95%
rename from nosql-db/mongodb-reactive/src/main/java/io/quarkus/ts/nosqldb/mongodb/ReactiveFruitBasketService.java
rename to nosql-db/mongodb-reactive/src/main/java/io/quarkus/ts/nosqldb/mongodb/reactive/ReactiveFruitBasketService.java
index aea2cc525..178093937 100644
--- a/nosql-db/mongodb-reactive/src/main/java/io/quarkus/ts/nosqldb/mongodb/ReactiveFruitBasketService.java
+++ b/nosql-db/mongodb-reactive/src/main/java/io/quarkus/ts/nosqldb/mongodb/reactive/ReactiveFruitBasketService.java
@@ -1,4 +1,4 @@
-package io.quarkus.ts.nosqldb.mongodb;
+package io.quarkus.ts.nosqldb.mongodb.reactive;
import java.util.List;
diff --git a/nosql-db/mongodb-reactive/src/main/java/io/quarkus/ts/nosqldb/mongodb/ReactiveFruitResource.java b/nosql-db/mongodb-reactive/src/main/java/io/quarkus/ts/nosqldb/mongodb/reactive/ReactiveFruitResource.java
similarity index 93%
rename from nosql-db/mongodb-reactive/src/main/java/io/quarkus/ts/nosqldb/mongodb/ReactiveFruitResource.java
rename to nosql-db/mongodb-reactive/src/main/java/io/quarkus/ts/nosqldb/mongodb/reactive/ReactiveFruitResource.java
index 0b478ae0a..00370c16e 100644
--- a/nosql-db/mongodb-reactive/src/main/java/io/quarkus/ts/nosqldb/mongodb/ReactiveFruitResource.java
+++ b/nosql-db/mongodb-reactive/src/main/java/io/quarkus/ts/nosqldb/mongodb/reactive/ReactiveFruitResource.java
@@ -1,4 +1,4 @@
-package io.quarkus.ts.nosqldb.mongodb;
+package io.quarkus.ts.nosqldb.mongodb.reactive;
import java.util.List;
diff --git a/nosql-db/mongodb-reactive/src/main/java/io/quarkus/ts/nosqldb/mongodb/ReactiveFruitService.java b/nosql-db/mongodb-reactive/src/main/java/io/quarkus/ts/nosqldb/mongodb/reactive/ReactiveFruitService.java
similarity index 92%
rename from nosql-db/mongodb-reactive/src/main/java/io/quarkus/ts/nosqldb/mongodb/ReactiveFruitService.java
rename to nosql-db/mongodb-reactive/src/main/java/io/quarkus/ts/nosqldb/mongodb/reactive/ReactiveFruitService.java
index d78147f22..9f54e73e3 100644
--- a/nosql-db/mongodb-reactive/src/main/java/io/quarkus/ts/nosqldb/mongodb/ReactiveFruitService.java
+++ b/nosql-db/mongodb-reactive/src/main/java/io/quarkus/ts/nosqldb/mongodb/reactive/ReactiveFruitService.java
@@ -1,4 +1,4 @@
-package io.quarkus.ts.nosqldb.mongodb;
+package io.quarkus.ts.nosqldb.mongodb.reactive;
import java.util.List;
diff --git a/nosql-db/mongodb-reactive/src/test/java/io/quarkus/ts/nosqldb/mongodb/AbstractMongoDbIT.java b/nosql-db/mongodb-reactive/src/test/java/io/quarkus/ts/nosqldb/mongodb/reactive/AbstractMongoDbIT.java
similarity index 99%
rename from nosql-db/mongodb-reactive/src/test/java/io/quarkus/ts/nosqldb/mongodb/AbstractMongoDbIT.java
rename to nosql-db/mongodb-reactive/src/test/java/io/quarkus/ts/nosqldb/mongodb/reactive/AbstractMongoDbIT.java
index d40e53969..17c445994 100644
--- a/nosql-db/mongodb-reactive/src/test/java/io/quarkus/ts/nosqldb/mongodb/AbstractMongoDbIT.java
+++ b/nosql-db/mongodb-reactive/src/test/java/io/quarkus/ts/nosqldb/mongodb/reactive/AbstractMongoDbIT.java
@@ -1,4 +1,4 @@
-package io.quarkus.ts.nosqldb.mongodb;
+package io.quarkus.ts.nosqldb.mongodb.reactive;
import static org.assertj.core.api.Assertions.assertThat;
diff --git a/nosql-db/mongodb-reactive/src/test/java/io/quarkus/ts/nosqldb/mongodb/MongoDbIT.java b/nosql-db/mongodb-reactive/src/test/java/io/quarkus/ts/nosqldb/mongodb/reactive/MongoDbIT.java
similarity index 93%
rename from nosql-db/mongodb-reactive/src/test/java/io/quarkus/ts/nosqldb/mongodb/MongoDbIT.java
rename to nosql-db/mongodb-reactive/src/test/java/io/quarkus/ts/nosqldb/mongodb/reactive/MongoDbIT.java
index 08e20fc98..a9d4f6f69 100644
--- a/nosql-db/mongodb-reactive/src/test/java/io/quarkus/ts/nosqldb/mongodb/MongoDbIT.java
+++ b/nosql-db/mongodb-reactive/src/test/java/io/quarkus/ts/nosqldb/mongodb/reactive/MongoDbIT.java
@@ -1,4 +1,4 @@
-package io.quarkus.ts.nosqldb.mongodb;
+package io.quarkus.ts.nosqldb.mongodb.reactive;
import io.quarkus.test.bootstrap.MongoDbService;
import io.quarkus.test.bootstrap.RestService;
diff --git a/nosql-db/mongodb-reactive/src/test/java/io/quarkus/ts/nosqldb/mongodb/OpenShiftMongoDbIT.java b/nosql-db/mongodb-reactive/src/test/java/io/quarkus/ts/nosqldb/mongodb/reactive/OpenShiftMongoDbIT.java
similarity index 93%
rename from nosql-db/mongodb-reactive/src/test/java/io/quarkus/ts/nosqldb/mongodb/OpenShiftMongoDbIT.java
rename to nosql-db/mongodb-reactive/src/test/java/io/quarkus/ts/nosqldb/mongodb/reactive/OpenShiftMongoDbIT.java
index 1b4fbd262..c408c4a41 100644
--- a/nosql-db/mongodb-reactive/src/test/java/io/quarkus/ts/nosqldb/mongodb/OpenShiftMongoDbIT.java
+++ b/nosql-db/mongodb-reactive/src/test/java/io/quarkus/ts/nosqldb/mongodb/reactive/OpenShiftMongoDbIT.java
@@ -1,4 +1,4 @@
-package io.quarkus.ts.nosqldb.mongodb;
+package io.quarkus.ts.nosqldb.mongodb.reactive;
import io.quarkus.test.bootstrap.MongoDbService;
import io.quarkus.test.bootstrap.RestService;
diff --git a/pom.xml b/pom.xml
index 01d372fed..934047f4b 100644
--- a/pom.xml
+++ b/pom.xml
@@ -207,7 +207,6 @@
${ts.global.s2i.quarkus.native.builder.image}
quay.io/keycloak/keycloak:16.1.0
- registry.access.redhat.com/redhat-sso-7/sso73-openshift
docker.io/library/postgres:13.6
docker.io/bitnami/elasticsearch:7.17.2
@@ -217,7 +216,6 @@
docker.io/library/mysql:8.0
registry.access.redhat.com/rhscl/mysql-80-rhel7
docker.io/library/mariadb:10.6
- registry.access.redhat.com/rhscl/mariadb-102-rhel7
mcr.microsoft.com/mssql/rhel/server:2019-latest
docker.io/gvenzl/oracle-xe:21-slim
quay.io/quarkusqeteam/db2:11.5.7.0
@@ -444,6 +442,7 @@
security/keycloak-multitenant
security/keycloak-oidc-client-basic
security/keycloak-oidc-client-extended
+ security/keycloak-oidc-client-reactive
security/vertx-jwt
security/oidc-client-mutual-tls
@@ -637,10 +636,11 @@
true
- registry.redhat.io/rh-sso-7/sso75-openshift-rhel8
+ registry.redhat.io/rh-sso-7/sso75-openshift-rhel8
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-27-rhel7
1.7.0
diff --git a/properties/src/main/java/io/quarkus/qe/properties/GreetingResource.java b/properties/src/main/java/io/quarkus/ts/properties/GreetingResource.java
similarity index 89%
rename from properties/src/main/java/io/quarkus/qe/properties/GreetingResource.java
rename to properties/src/main/java/io/quarkus/ts/properties/GreetingResource.java
index db658f480..8e8a78032 100644
--- a/properties/src/main/java/io/quarkus/qe/properties/GreetingResource.java
+++ b/properties/src/main/java/io/quarkus/ts/properties/GreetingResource.java
@@ -1,4 +1,4 @@
-package io.quarkus.qe.properties;
+package io.quarkus.ts.properties;
import java.util.List;
import java.util.stream.Collectors;
@@ -12,9 +12,9 @@
import org.eclipse.microprofile.config.Config;
import org.eclipse.microprofile.config.inject.ConfigProperty;
-import io.quarkus.qe.properties.config.AntagonistConfiguration;
-import io.quarkus.qe.properties.config.ProtagonistConfiguration;
-import io.quarkus.qe.properties.converter.KrustyEmail;
+import io.quarkus.ts.properties.config.AntagonistConfiguration;
+import io.quarkus.ts.properties.config.ProtagonistConfiguration;
+import io.quarkus.ts.properties.converter.KrustyEmail;
@Path("/hello")
public class GreetingResource {
diff --git a/properties/src/main/java/io/quarkus/qe/properties/bulk/BindMapsUsingConfigValueResource.java b/properties/src/main/java/io/quarkus/ts/properties/bulk/BindMapsUsingConfigValueResource.java
similarity index 94%
rename from properties/src/main/java/io/quarkus/qe/properties/bulk/BindMapsUsingConfigValueResource.java
rename to properties/src/main/java/io/quarkus/ts/properties/bulk/BindMapsUsingConfigValueResource.java
index 783bfbe74..7b945beff 100644
--- a/properties/src/main/java/io/quarkus/qe/properties/bulk/BindMapsUsingConfigValueResource.java
+++ b/properties/src/main/java/io/quarkus/ts/properties/bulk/BindMapsUsingConfigValueResource.java
@@ -1,4 +1,4 @@
-package io.quarkus.qe.properties.bulk;
+package io.quarkus.ts.properties.bulk;
import java.util.Map;
diff --git a/properties/src/main/java/io/quarkus/qe/properties/bulk/BulkOfPropertiesConfiguration.java b/properties/src/main/java/io/quarkus/ts/properties/bulk/BulkOfPropertiesConfiguration.java
similarity index 95%
rename from properties/src/main/java/io/quarkus/qe/properties/bulk/BulkOfPropertiesConfiguration.java
rename to properties/src/main/java/io/quarkus/ts/properties/bulk/BulkOfPropertiesConfiguration.java
index 8b1d963da..4159b395b 100644
--- a/properties/src/main/java/io/quarkus/qe/properties/bulk/BulkOfPropertiesConfiguration.java
+++ b/properties/src/main/java/io/quarkus/ts/properties/bulk/BulkOfPropertiesConfiguration.java
@@ -1,4 +1,4 @@
-package io.quarkus.qe.properties.bulk;
+package io.quarkus.ts.properties.bulk;
import org.eclipse.microprofile.config.inject.ConfigProperties;
import org.eclipse.microprofile.config.inject.ConfigProperty;
diff --git a/properties/src/main/java/io/quarkus/qe/properties/bulk/BulkOfPropertiesResource.java b/properties/src/main/java/io/quarkus/ts/properties/bulk/BulkOfPropertiesResource.java
similarity index 97%
rename from properties/src/main/java/io/quarkus/qe/properties/bulk/BulkOfPropertiesResource.java
rename to properties/src/main/java/io/quarkus/ts/properties/bulk/BulkOfPropertiesResource.java
index d696069fc..33dce604d 100644
--- a/properties/src/main/java/io/quarkus/qe/properties/bulk/BulkOfPropertiesResource.java
+++ b/properties/src/main/java/io/quarkus/ts/properties/bulk/BulkOfPropertiesResource.java
@@ -1,4 +1,4 @@
-package io.quarkus.qe.properties.bulk;
+package io.quarkus.ts.properties.bulk;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
diff --git a/properties/src/main/java/io/quarkus/qe/properties/bulk/ConfigValueResource.java b/properties/src/main/java/io/quarkus/ts/properties/bulk/ConfigValueResource.java
similarity index 95%
rename from properties/src/main/java/io/quarkus/qe/properties/bulk/ConfigValueResource.java
rename to properties/src/main/java/io/quarkus/ts/properties/bulk/ConfigValueResource.java
index 73599a0f9..917f4e07e 100644
--- a/properties/src/main/java/io/quarkus/qe/properties/bulk/ConfigValueResource.java
+++ b/properties/src/main/java/io/quarkus/ts/properties/bulk/ConfigValueResource.java
@@ -1,4 +1,4 @@
-package io.quarkus.qe.properties.bulk;
+package io.quarkus.ts.properties.bulk;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
diff --git a/properties/src/main/java/io/quarkus/qe/properties/config/AntagonistConfiguration.java b/properties/src/main/java/io/quarkus/ts/properties/config/AntagonistConfiguration.java
similarity index 87%
rename from properties/src/main/java/io/quarkus/qe/properties/config/AntagonistConfiguration.java
rename to properties/src/main/java/io/quarkus/ts/properties/config/AntagonistConfiguration.java
index a737b790c..42970803e 100644
--- a/properties/src/main/java/io/quarkus/qe/properties/config/AntagonistConfiguration.java
+++ b/properties/src/main/java/io/quarkus/ts/properties/config/AntagonistConfiguration.java
@@ -1,4 +1,4 @@
-package io.quarkus.qe.properties.config;
+package io.quarkus.ts.properties.config;
import io.smallrye.config.ConfigMapping;
diff --git a/properties/src/main/java/io/quarkus/qe/properties/config/ProtagonistConfiguration.java b/properties/src/main/java/io/quarkus/ts/properties/config/ProtagonistConfiguration.java
similarity index 86%
rename from properties/src/main/java/io/quarkus/qe/properties/config/ProtagonistConfiguration.java
rename to properties/src/main/java/io/quarkus/ts/properties/config/ProtagonistConfiguration.java
index 4dbfe8168..0c918b677 100644
--- a/properties/src/main/java/io/quarkus/qe/properties/config/ProtagonistConfiguration.java
+++ b/properties/src/main/java/io/quarkus/ts/properties/config/ProtagonistConfiguration.java
@@ -1,9 +1,9 @@
-package io.quarkus.qe.properties.config;
+package io.quarkus.ts.properties.config;
import javax.inject.Inject;
import javax.inject.Singleton;
-import io.quarkus.qe.properties.config.interfaces.ProtagonistConfigurable;
+import io.quarkus.ts.properties.config.interfaces.ProtagonistConfigurable;
@Singleton
public class ProtagonistConfiguration {
diff --git a/properties/src/main/java/io/quarkus/qe/properties/config/interfaces/IBiography.java b/properties/src/main/java/io/quarkus/ts/properties/config/interfaces/IBiography.java
similarity index 74%
rename from properties/src/main/java/io/quarkus/qe/properties/config/interfaces/IBiography.java
rename to properties/src/main/java/io/quarkus/ts/properties/config/interfaces/IBiography.java
index 623b57a59..4fde99912 100644
--- a/properties/src/main/java/io/quarkus/qe/properties/config/interfaces/IBiography.java
+++ b/properties/src/main/java/io/quarkus/ts/properties/config/interfaces/IBiography.java
@@ -1,4 +1,4 @@
-package io.quarkus.qe.properties.config.interfaces;
+package io.quarkus.ts.properties.config.interfaces;
import org.eclipse.microprofile.config.inject.ConfigProperty;
diff --git a/properties/src/main/java/io/quarkus/qe/properties/config/interfaces/ProtagonistConfigurable.java b/properties/src/main/java/io/quarkus/ts/properties/config/interfaces/ProtagonistConfigurable.java
similarity index 90%
rename from properties/src/main/java/io/quarkus/qe/properties/config/interfaces/ProtagonistConfigurable.java
rename to properties/src/main/java/io/quarkus/ts/properties/config/interfaces/ProtagonistConfigurable.java
index 6e4e7491b..3334fec83 100644
--- a/properties/src/main/java/io/quarkus/qe/properties/config/interfaces/ProtagonistConfigurable.java
+++ b/properties/src/main/java/io/quarkus/ts/properties/config/interfaces/ProtagonistConfigurable.java
@@ -1,4 +1,4 @@
-package io.quarkus.qe.properties.config.interfaces;
+package io.quarkus.ts.properties.config.interfaces;
import org.eclipse.microprofile.config.inject.ConfigProperty;
diff --git a/properties/src/main/java/io/quarkus/qe/properties/configmapping/ConfigMappingResource.java b/properties/src/main/java/io/quarkus/ts/properties/configmapping/ConfigMappingResource.java
similarity index 96%
rename from properties/src/main/java/io/quarkus/qe/properties/configmapping/ConfigMappingResource.java
rename to properties/src/main/java/io/quarkus/ts/properties/configmapping/ConfigMappingResource.java
index 9a3537be1..4ebd06933 100644
--- a/properties/src/main/java/io/quarkus/qe/properties/configmapping/ConfigMappingResource.java
+++ b/properties/src/main/java/io/quarkus/ts/properties/configmapping/ConfigMappingResource.java
@@ -1,4 +1,4 @@
-package io.quarkus.qe.properties.configmapping;
+package io.quarkus.ts.properties.configmapping;
import javax.inject.Inject;
import javax.ws.rs.GET;
diff --git a/properties/src/main/java/io/quarkus/qe/properties/configmapping/PersonInterface.java b/properties/src/main/java/io/quarkus/ts/properties/configmapping/PersonInterface.java
similarity index 81%
rename from properties/src/main/java/io/quarkus/qe/properties/configmapping/PersonInterface.java
rename to properties/src/main/java/io/quarkus/ts/properties/configmapping/PersonInterface.java
index c00671858..25e14b35c 100644
--- a/properties/src/main/java/io/quarkus/qe/properties/configmapping/PersonInterface.java
+++ b/properties/src/main/java/io/quarkus/ts/properties/configmapping/PersonInterface.java
@@ -1,4 +1,4 @@
-package io.quarkus.qe.properties.configmapping;
+package io.quarkus.ts.properties.configmapping;
import java.util.Map;
diff --git a/properties/src/main/java/io/quarkus/qe/properties/converter/CustomEmailConverter.java b/properties/src/main/java/io/quarkus/ts/properties/converter/CustomEmailConverter.java
similarity index 87%
rename from properties/src/main/java/io/quarkus/qe/properties/converter/CustomEmailConverter.java
rename to properties/src/main/java/io/quarkus/ts/properties/converter/CustomEmailConverter.java
index 935c0024a..b5dbaa693 100644
--- a/properties/src/main/java/io/quarkus/qe/properties/converter/CustomEmailConverter.java
+++ b/properties/src/main/java/io/quarkus/ts/properties/converter/CustomEmailConverter.java
@@ -1,4 +1,4 @@
-package io.quarkus.qe.properties.converter;
+package io.quarkus.ts.properties.converter;
import org.eclipse.microprofile.config.spi.Converter;
diff --git a/properties/src/main/java/io/quarkus/qe/properties/converter/KrustyEmail.java b/properties/src/main/java/io/quarkus/ts/properties/converter/KrustyEmail.java
similarity index 81%
rename from properties/src/main/java/io/quarkus/qe/properties/converter/KrustyEmail.java
rename to properties/src/main/java/io/quarkus/ts/properties/converter/KrustyEmail.java
index 1628e243f..144fcdf78 100644
--- a/properties/src/main/java/io/quarkus/qe/properties/converter/KrustyEmail.java
+++ b/properties/src/main/java/io/quarkus/ts/properties/converter/KrustyEmail.java
@@ -1,4 +1,4 @@
-package io.quarkus.qe.properties.converter;
+package io.quarkus.ts.properties.converter;
public class KrustyEmail {
diff --git a/properties/src/main/java/io/quarkus/qe/properties/providers/CustomConfigSource.java b/properties/src/main/java/io/quarkus/ts/properties/providers/CustomConfigSource.java
similarity index 96%
rename from properties/src/main/java/io/quarkus/qe/properties/providers/CustomConfigSource.java
rename to properties/src/main/java/io/quarkus/ts/properties/providers/CustomConfigSource.java
index 1fb020bf3..3a0568f93 100644
--- a/properties/src/main/java/io/quarkus/qe/properties/providers/CustomConfigSource.java
+++ b/properties/src/main/java/io/quarkus/ts/properties/providers/CustomConfigSource.java
@@ -1,4 +1,4 @@
-package io.quarkus.qe.properties.providers;
+package io.quarkus.ts.properties.providers;
import java.io.FileNotFoundException;
import java.io.IOException;
diff --git a/properties/src/main/resources/META-INF/services/org.eclipse.microprofile.config.spi.ConfigSource b/properties/src/main/resources/META-INF/services/org.eclipse.microprofile.config.spi.ConfigSource
index a38b02d40..67e25300b 100644
--- a/properties/src/main/resources/META-INF/services/org.eclipse.microprofile.config.spi.ConfigSource
+++ b/properties/src/main/resources/META-INF/services/org.eclipse.microprofile.config.spi.ConfigSource
@@ -1 +1 @@
-io.quarkus.qe.properties.providers.CustomConfigSource
\ No newline at end of file
+io.quarkus.ts.properties.providers.CustomConfigSource
\ No newline at end of file
diff --git a/properties/src/main/resources/META-INF/services/org.eclipse.microprofile.config.spi.Converter b/properties/src/main/resources/META-INF/services/org.eclipse.microprofile.config.spi.Converter
index b9d7ae1dd..7bebb5797 100644
--- a/properties/src/main/resources/META-INF/services/org.eclipse.microprofile.config.spi.Converter
+++ b/properties/src/main/resources/META-INF/services/org.eclipse.microprofile.config.spi.Converter
@@ -1 +1 @@
-io.quarkus.qe.properties.converter.CustomEmailConverter
\ No newline at end of file
+io.quarkus.ts.properties.converter.CustomEmailConverter
\ No newline at end of file
diff --git a/properties/src/test/java/io/quarkus/qe/properties/bulk/BindMapsUsingConfigValueIT.java b/properties/src/test/java/io/quarkus/ts/properties/bulk/BindMapsUsingConfigValueIT.java
similarity index 96%
rename from properties/src/test/java/io/quarkus/qe/properties/bulk/BindMapsUsingConfigValueIT.java
rename to properties/src/test/java/io/quarkus/ts/properties/bulk/BindMapsUsingConfigValueIT.java
index 0d5d7a3b3..d408a41b4 100644
--- a/properties/src/test/java/io/quarkus/qe/properties/bulk/BindMapsUsingConfigValueIT.java
+++ b/properties/src/test/java/io/quarkus/ts/properties/bulk/BindMapsUsingConfigValueIT.java
@@ -1,4 +1,4 @@
-package io.quarkus.qe.properties.bulk;
+package io.quarkus.ts.properties.bulk;
import static io.restassured.RestAssured.given;
import static org.hamcrest.CoreMatchers.is;
diff --git a/properties/src/test/java/io/quarkus/qe/properties/bulk/BulkOfPropertiesIT.java b/properties/src/test/java/io/quarkus/ts/properties/bulk/BulkOfPropertiesIT.java
similarity index 98%
rename from properties/src/test/java/io/quarkus/qe/properties/bulk/BulkOfPropertiesIT.java
rename to properties/src/test/java/io/quarkus/ts/properties/bulk/BulkOfPropertiesIT.java
index 4db02d147..aa888d161 100644
--- a/properties/src/test/java/io/quarkus/qe/properties/bulk/BulkOfPropertiesIT.java
+++ b/properties/src/test/java/io/quarkus/ts/properties/bulk/BulkOfPropertiesIT.java
@@ -1,4 +1,4 @@
-package io.quarkus.qe.properties.bulk;
+package io.quarkus.ts.properties.bulk;
import static io.restassured.RestAssured.given;
import static org.hamcrest.CoreMatchers.is;
diff --git a/properties/src/test/java/io/quarkus/qe/properties/bulk/ConfigValueIT.java b/properties/src/test/java/io/quarkus/ts/properties/bulk/ConfigValueIT.java
similarity index 96%
rename from properties/src/test/java/io/quarkus/qe/properties/bulk/ConfigValueIT.java
rename to properties/src/test/java/io/quarkus/ts/properties/bulk/ConfigValueIT.java
index 78482c109..ce5dbe9ae 100644
--- a/properties/src/test/java/io/quarkus/qe/properties/bulk/ConfigValueIT.java
+++ b/properties/src/test/java/io/quarkus/ts/properties/bulk/ConfigValueIT.java
@@ -1,4 +1,4 @@
-package io.quarkus.qe.properties.bulk;
+package io.quarkus.ts.properties.bulk;
import static io.restassured.RestAssured.given;
import static org.hamcrest.CoreMatchers.containsString;
diff --git a/properties/src/test/java/io/quarkus/qe/properties/config/VariousConfigurationSourcesIT.java b/properties/src/test/java/io/quarkus/ts/properties/config/VariousConfigurationSourcesIT.java
similarity index 98%
rename from properties/src/test/java/io/quarkus/qe/properties/config/VariousConfigurationSourcesIT.java
rename to properties/src/test/java/io/quarkus/ts/properties/config/VariousConfigurationSourcesIT.java
index e0b2622cb..012b6cebe 100644
--- a/properties/src/test/java/io/quarkus/qe/properties/config/VariousConfigurationSourcesIT.java
+++ b/properties/src/test/java/io/quarkus/ts/properties/config/VariousConfigurationSourcesIT.java
@@ -1,4 +1,4 @@
-package io.quarkus.qe.properties.config;
+package io.quarkus.ts.properties.config;
import static io.restassured.RestAssured.given;
import static org.hamcrest.CoreMatchers.containsString;
diff --git a/properties/src/test/java/io/quarkus/qe/properties/configmapping/ConfigMappingResourceIT.java b/properties/src/test/java/io/quarkus/ts/properties/configmapping/ConfigMappingResourceIT.java
similarity index 97%
rename from properties/src/test/java/io/quarkus/qe/properties/configmapping/ConfigMappingResourceIT.java
rename to properties/src/test/java/io/quarkus/ts/properties/configmapping/ConfigMappingResourceIT.java
index aeb591300..a2c5cd765 100644
--- a/properties/src/test/java/io/quarkus/qe/properties/configmapping/ConfigMappingResourceIT.java
+++ b/properties/src/test/java/io/quarkus/ts/properties/configmapping/ConfigMappingResourceIT.java
@@ -1,4 +1,4 @@
-package io.quarkus.qe.properties.configmapping;
+package io.quarkus.ts.properties.configmapping;
import static io.restassured.RestAssured.given;
import static org.hamcrest.CoreMatchers.is;
diff --git a/properties/src/test/java/io/quarkus/qe/properties/consul/ConsulConfigSourceIT.java b/properties/src/test/java/io/quarkus/ts/properties/consul/ConsulConfigSourceIT.java
similarity index 98%
rename from properties/src/test/java/io/quarkus/qe/properties/consul/ConsulConfigSourceIT.java
rename to properties/src/test/java/io/quarkus/ts/properties/consul/ConsulConfigSourceIT.java
index 3c7d99d67..249bac702 100644
--- a/properties/src/test/java/io/quarkus/qe/properties/consul/ConsulConfigSourceIT.java
+++ b/properties/src/test/java/io/quarkus/ts/properties/consul/ConsulConfigSourceIT.java
@@ -1,4 +1,4 @@
-package io.quarkus.qe.properties.consul;
+package io.quarkus.ts.properties.consul;
import static io.quarkus.test.utils.AwaitilityUtils.untilAsserted;
import static org.junit.jupiter.api.Assertions.assertEquals;
diff --git a/properties/src/test/java/io/quarkus/qe/properties/consul/OpenShiftConsulConfigSourceIT.java b/properties/src/test/java/io/quarkus/ts/properties/consul/OpenShiftConsulConfigSourceIT.java
similarity index 78%
rename from properties/src/test/java/io/quarkus/qe/properties/consul/OpenShiftConsulConfigSourceIT.java
rename to properties/src/test/java/io/quarkus/ts/properties/consul/OpenShiftConsulConfigSourceIT.java
index 0ac8113bd..19c45f03e 100644
--- a/properties/src/test/java/io/quarkus/qe/properties/consul/OpenShiftConsulConfigSourceIT.java
+++ b/properties/src/test/java/io/quarkus/ts/properties/consul/OpenShiftConsulConfigSourceIT.java
@@ -1,4 +1,4 @@
-package io.quarkus.qe.properties.consul;
+package io.quarkus.ts.properties.consul;
import io.quarkus.test.scenarios.OpenShiftScenario;
diff --git a/properties/src/test/java/io/quarkus/qe/properties/toggle/BaseToggleablePropertiesIT.java b/properties/src/test/java/io/quarkus/ts/properties/toggle/BaseToggleablePropertiesIT.java
similarity index 97%
rename from properties/src/test/java/io/quarkus/qe/properties/toggle/BaseToggleablePropertiesIT.java
rename to properties/src/test/java/io/quarkus/ts/properties/toggle/BaseToggleablePropertiesIT.java
index 10d2629c2..5e56fa618 100644
--- a/properties/src/test/java/io/quarkus/qe/properties/toggle/BaseToggleablePropertiesIT.java
+++ b/properties/src/test/java/io/quarkus/ts/properties/toggle/BaseToggleablePropertiesIT.java
@@ -1,4 +1,4 @@
-package io.quarkus.qe.properties.toggle;
+package io.quarkus.ts.properties.toggle;
import java.time.Duration;
diff --git a/properties/src/test/java/io/quarkus/qe/properties/toggle/ToggleablePropertiesOnDevModeIT.java b/properties/src/test/java/io/quarkus/ts/properties/toggle/ToggleablePropertiesOnDevModeIT.java
similarity index 95%
rename from properties/src/test/java/io/quarkus/qe/properties/toggle/ToggleablePropertiesOnDevModeIT.java
rename to properties/src/test/java/io/quarkus/ts/properties/toggle/ToggleablePropertiesOnDevModeIT.java
index e31ae0eb8..1994bd732 100644
--- a/properties/src/test/java/io/quarkus/qe/properties/toggle/ToggleablePropertiesOnDevModeIT.java
+++ b/properties/src/test/java/io/quarkus/ts/properties/toggle/ToggleablePropertiesOnDevModeIT.java
@@ -1,4 +1,4 @@
-package io.quarkus.qe.properties.toggle;
+package io.quarkus.ts.properties.toggle;
import io.quarkus.test.bootstrap.DevModeQuarkusService;
import io.quarkus.test.scenarios.QuarkusScenario;
diff --git a/properties/src/test/java/io/quarkus/qe/properties/toggle/ToggleablePropertiesOnJvmModeIT.java b/properties/src/test/java/io/quarkus/ts/properties/toggle/ToggleablePropertiesOnJvmModeIT.java
similarity index 94%
rename from properties/src/test/java/io/quarkus/qe/properties/toggle/ToggleablePropertiesOnJvmModeIT.java
rename to properties/src/test/java/io/quarkus/ts/properties/toggle/ToggleablePropertiesOnJvmModeIT.java
index 7ce9ef5fd..18a6509f0 100644
--- a/properties/src/test/java/io/quarkus/qe/properties/toggle/ToggleablePropertiesOnJvmModeIT.java
+++ b/properties/src/test/java/io/quarkus/ts/properties/toggle/ToggleablePropertiesOnJvmModeIT.java
@@ -1,4 +1,4 @@
-package io.quarkus.qe.properties.toggle;
+package io.quarkus.ts.properties.toggle;
import io.quarkus.test.bootstrap.RestService;
import io.quarkus.test.scenarios.QuarkusScenario;
diff --git a/properties/src/test/java/io/quarkus/qe/properties/toggle/ToggleableServices.java b/properties/src/test/java/io/quarkus/ts/properties/toggle/ToggleableServices.java
similarity index 95%
rename from properties/src/test/java/io/quarkus/qe/properties/toggle/ToggleableServices.java
rename to properties/src/test/java/io/quarkus/ts/properties/toggle/ToggleableServices.java
index d0fe7513a..4558efdc9 100644
--- a/properties/src/test/java/io/quarkus/qe/properties/toggle/ToggleableServices.java
+++ b/properties/src/test/java/io/quarkus/ts/properties/toggle/ToggleableServices.java
@@ -1,4 +1,4 @@
-package io.quarkus.qe.properties.toggle;
+package io.quarkus.ts.properties.toggle;
public enum ToggleableServices {
SWAGGER("Swagger", "/q/swagger-ui", "quarkus.swagger-ui.enable"),
diff --git a/quarkus-cli/src/test/java/io/quarkus/ts/quarkus/cli/QuarkusCliCreateJvmApplicationIT.java b/quarkus-cli/src/test/java/io/quarkus/ts/quarkus/cli/QuarkusCliCreateJvmApplicationIT.java
index e272341bd..d78d727f4 100644
--- a/quarkus-cli/src/test/java/io/quarkus/ts/quarkus/cli/QuarkusCliCreateJvmApplicationIT.java
+++ b/quarkus-cli/src/test/java/io/quarkus/ts/quarkus/cli/QuarkusCliCreateJvmApplicationIT.java
@@ -47,6 +47,7 @@
@DisabledIfSystemProperty(named = "profile.id", matches = "native", disabledReason = "Only for JVM verification")
public class QuarkusCliCreateJvmApplicationIT {
+ static final String RESTEASY_REACTIVE_EXTENSION = "quarkus-resteasy-reactive";
static final String RESTEASY_EXTENSION = "quarkus-resteasy";
static final String SMALLRYE_HEALTH_EXTENSION = "quarkus-smallrye-health";
static final String SPRING_WEB_EXTENSION = "quarkus-spring-web";
@@ -55,6 +56,7 @@ public class QuarkusCliCreateJvmApplicationIT {
static final String DOCKER_FOLDER = "/src/main/docker";
static final String JDK_11 = "11";
static final String JDK_17 = "17";
+ static final String JDK_18 = "18";
static final String DOCKERFILE_JVM = "Dockerfile.jvm";
@Inject
@@ -103,6 +105,14 @@ public void shouldCreateAnApplicationForcingJavaVersion17() {
assertDockerJavaVersion(getFileFromApplication(app, DOCKER_FOLDER, DOCKERFILE_JVM), JDK_17);
}
+ @Test
+ public void quarkusCreatedWithJava18ShouldUseJava17() {
+ CreateApplicationRequest args = defaultWithFixedStream().withExtraArgs("--java=" + JDK_18);
+ QuarkusCliRestService app = cliClient.createApplication("app", args);
+ assertExpectedJavaVersion(getFileFromApplication(app, ROOT_FOLDER, "pom.xml"), JDK_17);
+ assertDockerJavaVersion(getFileFromApplication(app, DOCKER_FOLDER, DOCKERFILE_JVM), JDK_17);
+ }
+
@Tag("QUARKUS-1071")
@Test
@DisabledOnQuarkusVersion(version = ".*redhat.*", reason = "Do not run on productized bits - https://issues.redhat.com/browse/QUARKUS-1740")
@@ -206,6 +216,29 @@ public void shouldAddAndRemoveExtensions() {
untilAsserted(() -> app.given().get("/q/health").then().statusCode(HttpStatus.SC_NOT_FOUND));
}
+ @Tag("https://github.com/quarkusio/quarkus/issues/25184")
+ @Test
+ public void shouldKeepUsingTheSameQuarkusVersionAfterReload() {
+ // Generate application using old community version
+ QuarkusCliRestService app = cliClient.createApplication("app", defaults()
+ .withPlatformBom("io.quarkus:quarkus-bom:2.7.0.Final")
+ .withExtensions(SMALLRYE_HEALTH_EXTENSION, RESTEASY_REACTIVE_EXTENSION));
+
+ // Make sure version and groupId from the TS run is used
+ app.withProperty(QuarkusProperties.PLATFORM_GROUP_ID.getPropertyKey(), QuarkusProperties.PLATFORM_GROUP_ID.get());
+ app.withProperty(QuarkusProperties.PLATFORM_VERSION.getPropertyKey(), QuarkusProperties.getVersion());
+
+ app.start();
+ untilAsserted(() -> app.given().get("/q/health").then().statusCode(HttpStatus.SC_OK));
+
+ Result result = app.removeExtension(SMALLRYE_HEALTH_EXTENSION);
+ assertTrue(result.isSuccessful(), SMALLRYE_HEALTH_EXTENSION + " was not uninstalled. Output: " + result.getOutput());
+
+ // Make sure application reloads properly without BUILD FAILURE of maven execution
+ // and no "Hot deployment of the application is not supported when updating the Quarkus version" message in logs
+ untilAsserted(() -> app.given().get("/q/health").then().statusCode(HttpStatus.SC_NOT_FOUND));
+ }
+
@Tag("QUARKUS-1255")
@Test
public void shouldCreateJacocoReportsFromApplicationOnJvm() {
diff --git a/qute/multimodule/qute-api/src/main/java/io/quarkus/qe/qute/api/AlertMessages.java b/qute/multimodule/qute-api/src/main/java/io/quarkus/ts/qute/api/AlertMessages.java
similarity index 89%
rename from qute/multimodule/qute-api/src/main/java/io/quarkus/qe/qute/api/AlertMessages.java
rename to qute/multimodule/qute-api/src/main/java/io/quarkus/ts/qute/api/AlertMessages.java
index 40487fd2c..9bdd338b5 100644
--- a/qute/multimodule/qute-api/src/main/java/io/quarkus/qe/qute/api/AlertMessages.java
+++ b/qute/multimodule/qute-api/src/main/java/io/quarkus/ts/qute/api/AlertMessages.java
@@ -1,4 +1,4 @@
-package io.quarkus.qe.qute.api;
+package io.quarkus.ts.qute.api;
import io.quarkus.qute.i18n.Message;
import io.quarkus.qute.i18n.MessageBundle;
diff --git a/qute/multimodule/qute-api/src/main/java/io/quarkus/qe/qute/api/MyQuteMessages.java b/qute/multimodule/qute-api/src/main/java/io/quarkus/ts/qute/api/MyQuteMessages.java
similarity index 88%
rename from qute/multimodule/qute-api/src/main/java/io/quarkus/qe/qute/api/MyQuteMessages.java
rename to qute/multimodule/qute-api/src/main/java/io/quarkus/ts/qute/api/MyQuteMessages.java
index c376f30ae..7c9b8a83b 100644
--- a/qute/multimodule/qute-api/src/main/java/io/quarkus/qe/qute/api/MyQuteMessages.java
+++ b/qute/multimodule/qute-api/src/main/java/io/quarkus/ts/qute/api/MyQuteMessages.java
@@ -1,4 +1,4 @@
-package io.quarkus.qe.qute.api;
+package io.quarkus.ts.qute.api;
import io.quarkus.qute.i18n.Message;
import io.quarkus.qute.i18n.MessageBundle;
diff --git a/qute/multimodule/qute-api/src/main/java/io/quarkus/qe/qute/api/MyQuteResource.java b/qute/multimodule/qute-api/src/main/java/io/quarkus/ts/qute/api/MyQuteResource.java
similarity index 98%
rename from qute/multimodule/qute-api/src/main/java/io/quarkus/qe/qute/api/MyQuteResource.java
rename to qute/multimodule/qute-api/src/main/java/io/quarkus/ts/qute/api/MyQuteResource.java
index d930fb036..d02068b25 100644
--- a/qute/multimodule/qute-api/src/main/java/io/quarkus/qe/qute/api/MyQuteResource.java
+++ b/qute/multimodule/qute-api/src/main/java/io/quarkus/ts/qute/api/MyQuteResource.java
@@ -1,4 +1,4 @@
-package io.quarkus.qe.qute.api;
+package io.quarkus.ts.qute.api;
import static java.util.Objects.requireNonNull;
diff --git a/qute/multimodule/qute-test/src/test/java/io/quarkus/qe/qute/LocalizedMessagesIT.java b/qute/multimodule/qute-test/src/test/java/io/quarkus/ts/qute/test/LocalizedMessagesIT.java
similarity index 97%
rename from qute/multimodule/qute-test/src/test/java/io/quarkus/qe/qute/LocalizedMessagesIT.java
rename to qute/multimodule/qute-test/src/test/java/io/quarkus/ts/qute/test/LocalizedMessagesIT.java
index 1194aca31..43f2f6706 100644
--- a/qute/multimodule/qute-test/src/test/java/io/quarkus/qe/qute/LocalizedMessagesIT.java
+++ b/qute/multimodule/qute-test/src/test/java/io/quarkus/ts/qute/test/LocalizedMessagesIT.java
@@ -1,4 +1,4 @@
-package io.quarkus.qe.qute;
+package io.quarkus.ts.qute.test;
import static io.restassured.RestAssured.given;
import static org.hamcrest.CoreMatchers.containsString;
diff --git a/scheduling/quartz/src/main/java/io/quarkus/qe/scheduling/quartz/basic/AnnotationScheduledCounter.java b/scheduling/quartz/src/main/java/io/quarkus/ts/scheduling/quartz/basic/AnnotationScheduledCounter.java
similarity index 84%
rename from scheduling/quartz/src/main/java/io/quarkus/qe/scheduling/quartz/basic/AnnotationScheduledCounter.java
rename to scheduling/quartz/src/main/java/io/quarkus/ts/scheduling/quartz/basic/AnnotationScheduledCounter.java
index 04adde627..673953fb4 100644
--- a/scheduling/quartz/src/main/java/io/quarkus/qe/scheduling/quartz/basic/AnnotationScheduledCounter.java
+++ b/scheduling/quartz/src/main/java/io/quarkus/ts/scheduling/quartz/basic/AnnotationScheduledCounter.java
@@ -1,11 +1,11 @@
-package io.quarkus.qe.scheduling.quartz.basic;
+package io.quarkus.ts.scheduling.quartz.basic;
import javax.annotation.PostConstruct;
import javax.enterprise.context.ApplicationScoped;
import javax.inject.Inject;
-import io.quarkus.qe.scheduling.quartz.basic.services.CounterService;
import io.quarkus.scheduler.Scheduled;
+import io.quarkus.ts.scheduling.quartz.basic.services.CounterService;
@ApplicationScoped
public class AnnotationScheduledCounter {
diff --git a/scheduling/quartz/src/main/java/io/quarkus/qe/scheduling/quartz/basic/CountResource.java b/scheduling/quartz/src/main/java/io/quarkus/ts/scheduling/quartz/basic/CountResource.java
similarity index 93%
rename from scheduling/quartz/src/main/java/io/quarkus/qe/scheduling/quartz/basic/CountResource.java
rename to scheduling/quartz/src/main/java/io/quarkus/ts/scheduling/quartz/basic/CountResource.java
index f972c2e23..3ab4cee42 100644
--- a/scheduling/quartz/src/main/java/io/quarkus/qe/scheduling/quartz/basic/CountResource.java
+++ b/scheduling/quartz/src/main/java/io/quarkus/ts/scheduling/quartz/basic/CountResource.java
@@ -1,4 +1,4 @@
-package io.quarkus.qe.scheduling.quartz.basic;
+package io.quarkus.ts.scheduling.quartz.basic;
import javax.inject.Inject;
import javax.ws.rs.GET;
diff --git a/scheduling/quartz/src/main/java/io/quarkus/qe/scheduling/quartz/basic/ManuallyScheduledCounter.java b/scheduling/quartz/src/main/java/io/quarkus/ts/scheduling/quartz/basic/ManuallyScheduledCounter.java
similarity index 94%
rename from scheduling/quartz/src/main/java/io/quarkus/qe/scheduling/quartz/basic/ManuallyScheduledCounter.java
rename to scheduling/quartz/src/main/java/io/quarkus/ts/scheduling/quartz/basic/ManuallyScheduledCounter.java
index 907cbb95d..bd67eaf95 100644
--- a/scheduling/quartz/src/main/java/io/quarkus/qe/scheduling/quartz/basic/ManuallyScheduledCounter.java
+++ b/scheduling/quartz/src/main/java/io/quarkus/ts/scheduling/quartz/basic/ManuallyScheduledCounter.java
@@ -1,4 +1,4 @@
-package io.quarkus.qe.scheduling.quartz.basic;
+package io.quarkus.ts.scheduling.quartz.basic;
import javax.annotation.PostConstruct;
import javax.enterprise.context.ApplicationScoped;
@@ -17,9 +17,9 @@
import org.quartz.Trigger;
import org.quartz.TriggerBuilder;
-import io.quarkus.qe.scheduling.quartz.basic.services.CounterService;
import io.quarkus.runtime.Startup;
import io.quarkus.runtime.annotations.RegisterForReflection;
+import io.quarkus.ts.scheduling.quartz.basic.services.CounterService;
@Startup
@ApplicationScoped
diff --git a/scheduling/quartz/src/main/java/io/quarkus/qe/scheduling/quartz/basic/services/CounterService.java b/scheduling/quartz/src/main/java/io/quarkus/ts/scheduling/quartz/basic/services/CounterService.java
similarity index 91%
rename from scheduling/quartz/src/main/java/io/quarkus/qe/scheduling/quartz/basic/services/CounterService.java
rename to scheduling/quartz/src/main/java/io/quarkus/ts/scheduling/quartz/basic/services/CounterService.java
index 0ebaef6c2..e38991abf 100644
--- a/scheduling/quartz/src/main/java/io/quarkus/qe/scheduling/quartz/basic/services/CounterService.java
+++ b/scheduling/quartz/src/main/java/io/quarkus/ts/scheduling/quartz/basic/services/CounterService.java
@@ -1,4 +1,4 @@
-package io.quarkus.qe.scheduling.quartz.basic.services;
+package io.quarkus.ts.scheduling.quartz.basic.services;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
diff --git a/scheduling/quartz/src/main/java/io/quarkus/qe/scheduling/quartz/failover/AnnotationScheduledJob.java b/scheduling/quartz/src/main/java/io/quarkus/ts/scheduling/quartz/failover/AnnotationScheduledJob.java
similarity index 91%
rename from scheduling/quartz/src/main/java/io/quarkus/qe/scheduling/quartz/failover/AnnotationScheduledJob.java
rename to scheduling/quartz/src/main/java/io/quarkus/ts/scheduling/quartz/failover/AnnotationScheduledJob.java
index ff25a01dc..eefa33c5c 100644
--- a/scheduling/quartz/src/main/java/io/quarkus/qe/scheduling/quartz/failover/AnnotationScheduledJob.java
+++ b/scheduling/quartz/src/main/java/io/quarkus/ts/scheduling/quartz/failover/AnnotationScheduledJob.java
@@ -1,4 +1,4 @@
-package io.quarkus.qe.scheduling.quartz.failover;
+package io.quarkus.ts.scheduling.quartz.failover;
import javax.enterprise.context.ApplicationScoped;
import javax.inject.Inject;
diff --git a/scheduling/quartz/src/main/java/io/quarkus/qe/scheduling/quartz/failover/ExecutionEntity.java b/scheduling/quartz/src/main/java/io/quarkus/ts/scheduling/quartz/failover/ExecutionEntity.java
similarity index 80%
rename from scheduling/quartz/src/main/java/io/quarkus/qe/scheduling/quartz/failover/ExecutionEntity.java
rename to scheduling/quartz/src/main/java/io/quarkus/ts/scheduling/quartz/failover/ExecutionEntity.java
index 809d5ddb1..29717eaca 100644
--- a/scheduling/quartz/src/main/java/io/quarkus/qe/scheduling/quartz/failover/ExecutionEntity.java
+++ b/scheduling/quartz/src/main/java/io/quarkus/ts/scheduling/quartz/failover/ExecutionEntity.java
@@ -1,4 +1,4 @@
-package io.quarkus.qe.scheduling.quartz.failover;
+package io.quarkus.ts.scheduling.quartz.failover;
import javax.persistence.Entity;
diff --git a/scheduling/quartz/src/main/java/io/quarkus/qe/scheduling/quartz/failover/ExecutionService.java b/scheduling/quartz/src/main/java/io/quarkus/ts/scheduling/quartz/failover/ExecutionService.java
similarity index 90%
rename from scheduling/quartz/src/main/java/io/quarkus/qe/scheduling/quartz/failover/ExecutionService.java
rename to scheduling/quartz/src/main/java/io/quarkus/ts/scheduling/quartz/failover/ExecutionService.java
index d81ca86fe..7bd3ed536 100644
--- a/scheduling/quartz/src/main/java/io/quarkus/qe/scheduling/quartz/failover/ExecutionService.java
+++ b/scheduling/quartz/src/main/java/io/quarkus/ts/scheduling/quartz/failover/ExecutionService.java
@@ -1,4 +1,4 @@
-package io.quarkus.qe.scheduling.quartz.failover;
+package io.quarkus.ts.scheduling.quartz.failover;
import java.time.Instant;
diff --git a/scheduling/quartz/src/main/java/io/quarkus/qe/scheduling/quartz/failover/ExecutionsResource.java b/scheduling/quartz/src/main/java/io/quarkus/ts/scheduling/quartz/failover/ExecutionsResource.java
similarity index 87%
rename from scheduling/quartz/src/main/java/io/quarkus/qe/scheduling/quartz/failover/ExecutionsResource.java
rename to scheduling/quartz/src/main/java/io/quarkus/ts/scheduling/quartz/failover/ExecutionsResource.java
index 7f1a4e741..5b42c48d8 100644
--- a/scheduling/quartz/src/main/java/io/quarkus/qe/scheduling/quartz/failover/ExecutionsResource.java
+++ b/scheduling/quartz/src/main/java/io/quarkus/ts/scheduling/quartz/failover/ExecutionsResource.java
@@ -1,4 +1,4 @@
-package io.quarkus.qe.scheduling.quartz.failover;
+package io.quarkus.ts.scheduling.quartz.failover;
import java.util.List;
diff --git a/scheduling/quartz/src/test/java/io/quarkus/qe/scheduling/quartz/AnnotationScheduledJobsMySqlQuartzIT.java b/scheduling/quartz/src/test/java/io/quarkus/ts/scheduling/quartz/AnnotationScheduledJobsMySqlQuartzIT.java
similarity index 95%
rename from scheduling/quartz/src/test/java/io/quarkus/qe/scheduling/quartz/AnnotationScheduledJobsMySqlQuartzIT.java
rename to scheduling/quartz/src/test/java/io/quarkus/ts/scheduling/quartz/AnnotationScheduledJobsMySqlQuartzIT.java
index ba09d021c..65d8f8ece 100644
--- a/scheduling/quartz/src/test/java/io/quarkus/qe/scheduling/quartz/AnnotationScheduledJobsMySqlQuartzIT.java
+++ b/scheduling/quartz/src/test/java/io/quarkus/ts/scheduling/quartz/AnnotationScheduledJobsMySqlQuartzIT.java
@@ -1,4 +1,4 @@
-package io.quarkus.qe.scheduling.quartz;
+package io.quarkus.ts.scheduling.quartz;
import static org.junit.jupiter.api.Assertions.assertEquals;
@@ -8,10 +8,10 @@
import org.awaitility.Awaitility;
import org.junit.jupiter.api.Test;
-import io.quarkus.qe.scheduling.quartz.failover.ExecutionEntity;
import io.quarkus.test.bootstrap.RestService;
import io.quarkus.test.scenarios.QuarkusScenario;
import io.quarkus.test.services.QuarkusApplication;
+import io.quarkus.ts.scheduling.quartz.failover.ExecutionEntity;
@QuarkusScenario
public class AnnotationScheduledJobsMySqlQuartzIT extends BaseMySqlQuartzIT {
diff --git a/scheduling/quartz/src/test/java/io/quarkus/qe/scheduling/quartz/BaseMySqlQuartzIT.java b/scheduling/quartz/src/test/java/io/quarkus/ts/scheduling/quartz/BaseMySqlQuartzIT.java
similarity index 91%
rename from scheduling/quartz/src/test/java/io/quarkus/qe/scheduling/quartz/BaseMySqlQuartzIT.java
rename to scheduling/quartz/src/test/java/io/quarkus/ts/scheduling/quartz/BaseMySqlQuartzIT.java
index 16adef8d8..18fd507d3 100644
--- a/scheduling/quartz/src/test/java/io/quarkus/qe/scheduling/quartz/BaseMySqlQuartzIT.java
+++ b/scheduling/quartz/src/test/java/io/quarkus/ts/scheduling/quartz/BaseMySqlQuartzIT.java
@@ -1,4 +1,4 @@
-package io.quarkus.qe.scheduling.quartz;
+package io.quarkus.ts.scheduling.quartz;
import io.quarkus.test.bootstrap.MySqlService;
import io.quarkus.test.services.Container;
diff --git a/scheduling/quartz/src/test/java/io/quarkus/qe/scheduling/quartz/BasicMySqlQuartzIT.java b/scheduling/quartz/src/test/java/io/quarkus/ts/scheduling/quartz/BasicMySqlQuartzIT.java
similarity index 97%
rename from scheduling/quartz/src/test/java/io/quarkus/qe/scheduling/quartz/BasicMySqlQuartzIT.java
rename to scheduling/quartz/src/test/java/io/quarkus/ts/scheduling/quartz/BasicMySqlQuartzIT.java
index 4de894e67..aebd0b235 100644
--- a/scheduling/quartz/src/test/java/io/quarkus/qe/scheduling/quartz/BasicMySqlQuartzIT.java
+++ b/scheduling/quartz/src/test/java/io/quarkus/ts/scheduling/quartz/BasicMySqlQuartzIT.java
@@ -1,4 +1,4 @@
-package io.quarkus.qe.scheduling.quartz;
+package io.quarkus.ts.scheduling.quartz;
import static org.junit.jupiter.api.Assertions.assertTrue;
diff --git a/scheduling/quartz/src/test/java/io/quarkus/qe/scheduling/quartz/OpenShiftBasicQuartzIT.java b/scheduling/quartz/src/test/java/io/quarkus/ts/scheduling/quartz/OpenShiftBasicQuartzIT.java
similarity index 77%
rename from scheduling/quartz/src/test/java/io/quarkus/qe/scheduling/quartz/OpenShiftBasicQuartzIT.java
rename to scheduling/quartz/src/test/java/io/quarkus/ts/scheduling/quartz/OpenShiftBasicQuartzIT.java
index 7adbc5a05..c8daea55a 100644
--- a/scheduling/quartz/src/test/java/io/quarkus/qe/scheduling/quartz/OpenShiftBasicQuartzIT.java
+++ b/scheduling/quartz/src/test/java/io/quarkus/ts/scheduling/quartz/OpenShiftBasicQuartzIT.java
@@ -1,4 +1,4 @@
-package io.quarkus.qe.scheduling.quartz;
+package io.quarkus.ts.scheduling.quartz;
import io.quarkus.test.scenarios.OpenShiftScenario;
diff --git a/security/bouncycastle-fips/bcFipsJsse/src/main/java/io/quarkus/ts/security/bouncycastle/fips/BouncyCastleFipsJsseEndpoint.java b/security/bouncycastle-fips/bcFipsJsse/src/main/java/io/quarkus/ts/security/bouncycastle/fips/jsse/BouncyCastleFipsJsseEndpoint.java
similarity index 93%
rename from security/bouncycastle-fips/bcFipsJsse/src/main/java/io/quarkus/ts/security/bouncycastle/fips/BouncyCastleFipsJsseEndpoint.java
rename to security/bouncycastle-fips/bcFipsJsse/src/main/java/io/quarkus/ts/security/bouncycastle/fips/jsse/BouncyCastleFipsJsseEndpoint.java
index 82db0b261..22402b79b 100644
--- a/security/bouncycastle-fips/bcFipsJsse/src/main/java/io/quarkus/ts/security/bouncycastle/fips/BouncyCastleFipsJsseEndpoint.java
+++ b/security/bouncycastle-fips/bcFipsJsse/src/main/java/io/quarkus/ts/security/bouncycastle/fips/jsse/BouncyCastleFipsJsseEndpoint.java
@@ -1,4 +1,4 @@
-package io.quarkus.ts.security.bouncycastle.fips;
+package io.quarkus.ts.security.bouncycastle.fips.jsse;
import java.security.Security;
import java.security.Signature;
diff --git a/security/bouncycastle-fips/bcFipsJsse/src/test/java/io/quarkus/ts/security/bouncycastle/fips/BouncyCastleFipsJsseIT.java b/security/bouncycastle-fips/bcFipsJsse/src/test/java/io/quarkus/ts/security/bouncycastle/fips/jsse/BouncyCastleFipsJsseIT.java
similarity index 98%
rename from security/bouncycastle-fips/bcFipsJsse/src/test/java/io/quarkus/ts/security/bouncycastle/fips/BouncyCastleFipsJsseIT.java
rename to security/bouncycastle-fips/bcFipsJsse/src/test/java/io/quarkus/ts/security/bouncycastle/fips/jsse/BouncyCastleFipsJsseIT.java
index 46d58d160..745a88203 100644
--- a/security/bouncycastle-fips/bcFipsJsse/src/test/java/io/quarkus/ts/security/bouncycastle/fips/BouncyCastleFipsJsseIT.java
+++ b/security/bouncycastle-fips/bcFipsJsse/src/test/java/io/quarkus/ts/security/bouncycastle/fips/jsse/BouncyCastleFipsJsseIT.java
@@ -1,4 +1,4 @@
-package io.quarkus.ts.security.bouncycastle.fips;
+package io.quarkus.ts.security.bouncycastle.fips.jsse;
import static org.hamcrest.CoreMatchers.containsString;
import static org.hamcrest.MatcherAssert.assertThat;
diff --git a/security/jwt/pom.xml b/security/jwt/pom.xml
index f4f75ed61..b98ba9ca7 100644
--- a/security/jwt/pom.xml
+++ b/security/jwt/pom.xml
@@ -22,7 +22,6 @@
io.quarkus
quarkus-smallrye-jwt-build
- test
diff --git a/security/jwt/src/main/java/io/quarkus/ts/security/jwt/GenerateJwtResource.java b/security/jwt/src/main/java/io/quarkus/ts/security/jwt/GenerateJwtResource.java
new file mode 100644
index 000000000..3850ee899
--- /dev/null
+++ b/security/jwt/src/main/java/io/quarkus/ts/security/jwt/GenerateJwtResource.java
@@ -0,0 +1,75 @@
+package io.quarkus.ts.security.jwt;
+
+import java.security.KeyPair;
+import java.security.KeyPairGenerator;
+import java.security.NoSuchAlgorithmException;
+import java.security.PrivateKey;
+import java.util.Collections;
+import java.util.Date;
+import java.util.Objects;
+import java.util.Set;
+import java.util.concurrent.TimeUnit;
+
+import javax.annotation.security.PermitAll;
+import javax.ws.rs.Consumes;
+import javax.ws.rs.POST;
+import javax.ws.rs.Path;
+import javax.ws.rs.Produces;
+import javax.ws.rs.QueryParam;
+import javax.ws.rs.core.MediaType;
+
+import io.smallrye.jwt.build.Jwt;
+import io.smallrye.jwt.build.JwtClaimsBuilder;
+
+@Path("/login")
+public class GenerateJwtResource {
+
+ public enum Invalidity {
+ WRONG_ISSUER,
+ WRONG_DATE,
+ WRONG_KEY
+ }
+
+ private static final String DEFAULT_ISSUER = "https://my.auth.server/";
+ private static final int TEN = 10;
+
+ @POST
+ @Path("/jwt")
+ @PermitAll
+ @Consumes(MediaType.TEXT_PLAIN)
+ @Produces(MediaType.TEXT_PLAIN)
+ public String login(@QueryParam("invalidity") String invalidity, String body) throws NoSuchAlgorithmException {
+ Date now = new Date();
+ Date expiration = new Date(TimeUnit.SECONDS.toMillis(TEN) + now.getTime());
+ String issuer = DEFAULT_ISSUER;
+ if (invalidity.equalsIgnoreCase(Invalidity.WRONG_ISSUER.name())) {
+ issuer = "https://wrong/";
+ }
+
+ if (invalidity.equalsIgnoreCase(Invalidity.WRONG_DATE.name())) {
+ now = new Date(now.getTime() - TimeUnit.DAYS.toMillis(TEN));
+ expiration = new Date(now.getTime() - TimeUnit.DAYS.toMillis(TEN));
+ }
+
+ PrivateKey privateKey = null;
+ if (invalidity.equalsIgnoreCase(Invalidity.WRONG_KEY.name())) {
+ KeyPairGenerator keyPairGenerator = KeyPairGenerator.getInstance("RSA");
+ KeyPair keyPair = keyPairGenerator.generateKeyPair();
+ privateKey = keyPair.getPrivate();
+ }
+
+ JwtClaimsBuilder jwtbuilder = Jwt.issuer(issuer)
+ .expiresAt(expiration.getTime())
+ .issuedAt(now.getTime())
+ .subject("test_subject_at_example_com")
+ .groups(Set.of(body))
+ .claim("upn", "test-subject@example.com")
+ .claim("roleMappings", Collections.singletonMap("admin", "superuser"));
+
+ if (!Objects.isNull(privateKey)) {
+ return jwtbuilder.jws().sign(privateKey);
+ }
+
+ return jwtbuilder.sign();
+ }
+}
diff --git a/security/jwt/src/main/resources/application.properties b/security/jwt/src/main/resources/application.properties
index 1f51d0e46..622caede7 100644
--- a/security/jwt/src/main/resources/application.properties
+++ b/security/jwt/src/main/resources/application.properties
@@ -1,3 +1,4 @@
+smallrye.jwt.sign.key.location=private-key.pem
mp.jwt.verify.publickey.location=public-key.pem
mp.jwt.verify.issuer=https://my.auth.server/
smallrye.jwt.expiration.grace=120
diff --git a/security/jwt/src/test/resources/private-key.pem b/security/jwt/src/main/resources/private-key.pem
similarity index 100%
rename from security/jwt/src/test/resources/private-key.pem
rename to security/jwt/src/main/resources/private-key.pem
diff --git a/security/jwt/src/test/java/io/quarkus/ts/security/jwt/BaseJwtSecurityIT.java b/security/jwt/src/test/java/io/quarkus/ts/security/jwt/BaseJwtSecurityIT.java
index 0dae1645b..373428a09 100644
--- a/security/jwt/src/test/java/io/quarkus/ts/security/jwt/BaseJwtSecurityIT.java
+++ b/security/jwt/src/test/java/io/quarkus/ts/security/jwt/BaseJwtSecurityIT.java
@@ -1,43 +1,27 @@
package io.quarkus.ts.security.jwt;
+import static io.quarkus.ts.security.jwt.GenerateJwtResource.Invalidity;
+import static io.restassured.RestAssured.given;
import static org.hamcrest.Matchers.equalTo;
import static org.junit.jupiter.api.Assertions.assertNotNull;
-import java.nio.charset.Charset;
-import java.nio.file.Files;
-import java.nio.file.Paths;
-import java.security.KeyFactory;
-import java.security.KeyPair;
import java.security.KeyPairGenerator;
import java.security.NoSuchAlgorithmException;
-import java.security.interfaces.RSAPrivateKey;
-import java.security.spec.PKCS8EncodedKeySpec;
-import java.util.Collections;
-import java.util.Date;
-import java.util.Set;
-import java.util.concurrent.TimeUnit;
-import java.util.function.Supplier;
+import java.util.Objects;
import org.apache.http.HttpStatus;
-import org.jboss.logging.Logger;
-import org.jose4j.base64url.internal.apache.commons.codec.binary.Base64;
import org.junit.jupiter.api.Test;
import io.restassured.http.ContentType;
import io.restassured.specification.RequestSpecification;
-import io.smallrye.jwt.algorithm.SignatureAlgorithm;
-import io.smallrye.jwt.build.Jwt;
public abstract class BaseJwtSecurityIT {
- private static final Logger LOG = Logger.getLogger(BaseJwtSecurityIT.class);
-
- private static final int TEN = 10;
- private static final int NINETY = 90;
+ private static final String EMPTY_GROUP = "";
@Test
- public void securedEveryoneNoGroup() throws Exception {
- givenWithToken(createToken())
+ public void securedEveryoneNoGroup() {
+ givenWithToken(createToken(EMPTY_GROUP))
.get("/secured/everyone")
.then()
.statusCode(HttpStatus.SC_OK)
@@ -47,7 +31,7 @@ public void securedEveryoneNoGroup() throws Exception {
}
@Test
- public void securedEveryoneViewGroup() throws Exception {
+ public void securedEveryoneViewGroup() {
givenWithToken(createToken("view"))
.get("/secured/everyone")
.then()
@@ -58,7 +42,7 @@ public void securedEveryoneViewGroup() throws Exception {
}
@Test
- public void securedEveryoneAdminGroup() throws Exception {
+ public void securedEveryoneAdminGroup() {
givenWithToken(createToken("admin"))
.get("/secured/everyone")
.then()
@@ -69,39 +53,39 @@ public void securedEveryoneAdminGroup() throws Exception {
}
@Test
- public void securedEveryoneWrongIssuer() throws Exception {
- givenWithToken(createToken(Invalidity.WRONG_ISSUER))
+ public void securedEveryoneWrongIssuer() {
+ givenWithToken(createToken(Invalidity.WRONG_ISSUER, EMPTY_GROUP))
.get("/secured/everyone")
.then()
.statusCode(HttpStatus.SC_UNAUTHORIZED);
}
@Test
- public void securedEveryoneWrongDate() throws Exception {
- givenWithToken(createToken(Invalidity.WRONG_DATE))
+ public void securedEveryoneWrongDate() {
+ givenWithToken(createToken(Invalidity.WRONG_DATE, EMPTY_GROUP))
.get("/secured/everyone")
.then()
.statusCode(HttpStatus.SC_UNAUTHORIZED);
}
@Test
- public void securedEveryoneWrongKey() throws Exception {
- givenWithToken(createToken(Invalidity.WRONG_KEY))
+ public void securedEveryoneWrongKey() {
+ givenWithToken(createToken(Invalidity.WRONG_KEY, EMPTY_GROUP))
.get("/secured/everyone")
.then()
.statusCode(HttpStatus.SC_UNAUTHORIZED);
}
@Test
- public void securedAdminNoGroup() throws Exception {
- givenWithToken(createToken())
+ public void securedAdminNoGroup() {
+ givenWithToken(createToken(EMPTY_GROUP))
.get("/secured/admin")
.then()
.statusCode(HttpStatus.SC_FORBIDDEN);
}
@Test
- public void securedAdminViewGroup() throws Exception {
+ public void securedAdminViewGroup() {
givenWithToken(createToken("view"))
.get("/secured/admin")
.then()
@@ -109,7 +93,7 @@ public void securedAdminViewGroup() throws Exception {
}
@Test
- public void securedAdminAdminGroup() throws Exception {
+ public void securedAdminAdminGroup() {
givenWithToken(createToken("admin"))
.get("/secured/admin")
.then()
@@ -118,15 +102,15 @@ public void securedAdminAdminGroup() throws Exception {
}
@Test
- public void securedNoOneNoGroup() throws Exception {
- givenWithToken(createToken())
+ public void securedNoOneNoGroup() {
+ givenWithToken(createToken(EMPTY_GROUP))
.get("/secured/noone")
.then()
.statusCode(HttpStatus.SC_FORBIDDEN);
}
@Test
- public void securedNoOneViewGroup() throws Exception {
+ public void securedNoOneViewGroup() {
givenWithToken(createToken("view"))
.get("/secured/noone")
.then()
@@ -134,7 +118,7 @@ public void securedNoOneViewGroup() throws Exception {
}
@Test
- public void securedNoOneAdminGroup() throws Exception {
+ public void securedNoOneAdminGroup() {
givenWithToken(createToken("admin"))
.get("/secured/noone")
.then()
@@ -142,8 +126,8 @@ public void securedNoOneAdminGroup() throws Exception {
}
@Test
- public void permittedCorrectToken() throws Exception {
- givenWithToken(createToken())
+ public void permittedCorrectToken() {
+ givenWithToken(createToken(EMPTY_GROUP))
.get("/permitted")
.then()
.statusCode(HttpStatus.SC_OK)
@@ -151,32 +135,32 @@ public void permittedCorrectToken() throws Exception {
}
@Test
- public void permittedWrongIssuer() throws Exception {
- givenWithToken(createToken(Invalidity.WRONG_ISSUER))
+ public void permittedWrongIssuer() {
+ givenWithToken(createToken(Invalidity.WRONG_ISSUER, EMPTY_GROUP))
.get("/permitted")
.then()
.statusCode(HttpStatus.SC_UNAUTHORIZED); // in Thorntail, this is 200, but both approaches are likely valid
}
@Test
- public void permittedWrongDate() throws Exception {
- givenWithToken(createToken(Invalidity.WRONG_DATE))
+ public void permittedWrongDate() {
+ givenWithToken(createToken(Invalidity.WRONG_DATE, EMPTY_GROUP))
.get("/permitted")
.then()
.statusCode(HttpStatus.SC_UNAUTHORIZED); // in Thorntail, this is 200, but both approaches are likely valid
}
@Test
- public void permittedWrongKey() throws Exception {
- givenWithToken(createToken(Invalidity.WRONG_KEY))
+ public void permittedWrongKey() {
+ givenWithToken(createToken(Invalidity.WRONG_KEY, EMPTY_GROUP))
.get("/permitted")
.then()
.statusCode(HttpStatus.SC_UNAUTHORIZED); // in Thorntail, this is 200, but both approaches are likely valid
}
@Test
- public void deniedCorrectToken() throws Exception {
- givenWithToken(createToken())
+ public void deniedCorrectToken() {
+ givenWithToken(createToken(EMPTY_GROUP))
.get("/denied")
.then()
.statusCode(HttpStatus.SC_FORBIDDEN);
@@ -184,7 +168,7 @@ public void deniedCorrectToken() throws Exception {
@Test
public void mixedConstrained() throws Exception {
- givenWithToken(createToken())
+ givenWithToken(createToken(EMPTY_GROUP))
.get("/mixed/constrained")
.then()
.statusCode(HttpStatus.SC_OK)
@@ -193,7 +177,7 @@ public void mixedConstrained() throws Exception {
@Test
public void mixedUnconstrained() throws Exception {
- givenWithToken(createToken())
+ givenWithToken(createToken(EMPTY_GROUP))
.get("/mixed/unconstrained")
.then()
.statusCode(HttpStatus.SC_FORBIDDEN); // quarkus.security.deny-unannotated-members=true
@@ -273,13 +257,7 @@ public void parameterizedPathsViewAdminGroup() throws Exception {
@Test
public void tokenExpirationGracePeriod() throws Exception {
- Supplier clock = () -> {
- Date now = new Date();
- now = new Date(now.getTime() - TimeUnit.SECONDS.toMillis(NINETY));
- return now;
- };
-
- givenWithToken(createToken(clock, null, "admin"))
+ givenWithToken(createToken("admin"))
.get("/secured/admin")
.then()
.statusCode(HttpStatus.SC_OK)
@@ -288,64 +266,17 @@ public void tokenExpirationGracePeriod() throws Exception {
protected abstract RequestSpecification givenWithToken(String token);
- private static RSAPrivateKey loadPrivateKey() throws Exception {
- String key = new String(Files.readAllBytes(Paths.get("target/test-classes/private-key.pem")), Charset.defaultCharset());
-
- String privateKeyPEM = key
- .replace("-----BEGIN PRIVATE KEY-----", "")
- .replaceAll(System.lineSeparator(), "")
- .replace("-----END PRIVATE KEY-----", "");
-
- byte[] encoded = Base64.decodeBase64(privateKeyPEM);
-
- KeyFactory keyFactory = KeyFactory.getInstance("RSA");
- PKCS8EncodedKeySpec keySpec = new PKCS8EncodedKeySpec(encoded);
- return (RSAPrivateKey) keyFactory.generatePrivate(keySpec);
- }
-
- private enum Invalidity {
- WRONG_ISSUER,
- WRONG_DATE,
- WRONG_KEY
- }
-
- private static String createToken(String... groups) throws Exception {
- return createToken(Date::new, null, groups);
- }
-
- private static String createToken(Invalidity invalidity, String... groups) throws Exception {
- return createToken(Date::new, invalidity, groups);
+ private static String createToken(String group) {
+ return createToken(null, group);
}
- private static String createToken(Supplier clock, Invalidity invalidity, String... groups)
- throws Exception {
- String issuer = "https://my.auth.server/";
- if (invalidity == Invalidity.WRONG_ISSUER) {
- issuer = "https://wrong/";
- }
-
- Date now = clock.get();
- Date expiration = new Date(TimeUnit.SECONDS.toMillis(TEN) + now.getTime());
- if (invalidity == Invalidity.WRONG_DATE) {
- now = new Date(now.getTime() - TimeUnit.DAYS.toMillis(TEN));
- expiration = new Date(now.getTime() - TimeUnit.DAYS.toMillis(TEN));
- }
-
- RSAPrivateKey privateKey = loadPrivateKey();
- if (invalidity == Invalidity.WRONG_KEY) {
- KeyPairGenerator keyPairGenerator = KeyPairGenerator.getInstance("RSA");
- KeyPair keyPair = keyPairGenerator.generateKeyPair();
- privateKey = (RSAPrivateKey) keyPair.getPrivate();
- }
-
- return Jwt.issuer(issuer)
- .expiresAt(expiration.getTime())
- .issuedAt(now.getTime())
- .subject("test_subject_at_example_com")
- .groups(Set.of(groups))
- .claim("upn", "test-subject@example.com")
- .claim("roleMappings", Collections.singletonMap("admin", "superuser"))
- .jws().algorithm(SignatureAlgorithm.RS256).sign(privateKey);
+ private static String createToken(Invalidity invalidity, String group) {
+ return given()
+ .body(group)
+ .when()
+ .post("/login/jwt?invalidity=" + (Objects.isNull(invalidity) ? "" : invalidity.name())).then()
+ .statusCode(200)
+ .extract().body().asString();
}
@Test
diff --git a/security/keycloak-authz-classic/src/test/java/io/quarkus/ts/security/keycloak/authz/OpenShiftRhSso73AuthzSecurityIT.java b/security/keycloak-authz-classic/src/test/java/io/quarkus/ts/security/keycloak/authz/OpenShiftRhSso73AuthzSecurityIT.java
deleted file mode 100644
index 5f930a954..000000000
--- a/security/keycloak-authz-classic/src/test/java/io/quarkus/ts/security/keycloak/authz/OpenShiftRhSso73AuthzSecurityIT.java
+++ /dev/null
@@ -1,33 +0,0 @@
-package io.quarkus.ts.security.keycloak.authz;
-
-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.QuarkusApplication;
-
-@OpenShiftScenario
-public class OpenShiftRhSso73AuthzSecurityIT extends BaseAuthzSecurityIT {
-
- static final int KEYCLOAK_PORT = 8080;
-
- @Container(image = "${rhsso.73.image}", expectedLog = "Http management interface listening", port = KEYCLOAK_PORT)
- static KeycloakService keycloak = new KeycloakService(REALM_DEFAULT)
- .withProperty("SSO_IMPORT_FILE", "resource::/keycloak-realm.json");
-
- @QuarkusApplication
- static RestService app = new RestService()
- .withProperty("quarkus.oidc.auth-server-url", () -> keycloak.getRealmUrl())
- .withProperty("quarkus.oidc.client-id", CLIENT_ID_DEFAULT)
- .withProperty("quarkus.oidc.credentials.secret", CLIENT_SECRET_DEFAULT);
-
- @Override
- protected KeycloakService getKeycloak() {
- return keycloak;
- }
-
- @Override
- protected RestService getApp() {
- return app;
- }
-}
diff --git a/security/keycloak-authz-classic/src/test/java/io/quarkus/ts/security/keycloak/authz/OpenShiftRhSso75AuthzSecurityIT.java b/security/keycloak-authz-classic/src/test/java/io/quarkus/ts/security/keycloak/authz/OpenShiftRhSsoAuthzSecurityIT.java
similarity index 85%
rename from security/keycloak-authz-classic/src/test/java/io/quarkus/ts/security/keycloak/authz/OpenShiftRhSso75AuthzSecurityIT.java
rename to security/keycloak-authz-classic/src/test/java/io/quarkus/ts/security/keycloak/authz/OpenShiftRhSsoAuthzSecurityIT.java
index 40f9b69d2..45de67e30 100644
--- a/security/keycloak-authz-classic/src/test/java/io/quarkus/ts/security/keycloak/authz/OpenShiftRhSso75AuthzSecurityIT.java
+++ b/security/keycloak-authz-classic/src/test/java/io/quarkus/ts/security/keycloak/authz/OpenShiftRhSsoAuthzSecurityIT.java
@@ -10,11 +10,11 @@
@OpenShiftScenario
@EnabledIfSystemProperty(named = "ts.redhat.registry.enabled", matches = "true")
-public class OpenShiftRhSso75AuthzSecurityIT extends BaseAuthzSecurityIT {
+public class OpenShiftRhSsoAuthzSecurityIT extends BaseAuthzSecurityIT {
static final int KEYCLOAK_PORT = 8080;
- @Container(image = "${rhsso.75.image}", expectedLog = "Http management interface listening", port = KEYCLOAK_PORT)
+ @Container(image = "${rhsso.image}", expectedLog = "Http management interface listening", port = KEYCLOAK_PORT)
static KeycloakService keycloak = new KeycloakService(REALM_DEFAULT)
.withProperty("SSO_IMPORT_FILE", "resource::/keycloak-realm.json");
diff --git a/security/keycloak-authz-reactive/src/main/java/io/quarkus/ts/security/keycloak/authz/AdminResource.java b/security/keycloak-authz-reactive/src/main/java/io/quarkus/ts/security/keycloak/authz/reactive/AdminResource.java
similarity index 93%
rename from security/keycloak-authz-reactive/src/main/java/io/quarkus/ts/security/keycloak/authz/AdminResource.java
rename to security/keycloak-authz-reactive/src/main/java/io/quarkus/ts/security/keycloak/authz/reactive/AdminResource.java
index 01e99f8e8..aa40498d7 100644
--- a/security/keycloak-authz-reactive/src/main/java/io/quarkus/ts/security/keycloak/authz/AdminResource.java
+++ b/security/keycloak-authz-reactive/src/main/java/io/quarkus/ts/security/keycloak/authz/reactive/AdminResource.java
@@ -1,4 +1,4 @@
-package io.quarkus.ts.security.keycloak.authz;
+package io.quarkus.ts.security.keycloak.authz.reactive;
import javax.inject.Inject;
import javax.ws.rs.GET;
diff --git a/security/keycloak-authz-reactive/src/main/java/io/quarkus/ts/security/keycloak/authz/UserAdvancedResource.java b/security/keycloak-authz-reactive/src/main/java/io/quarkus/ts/security/keycloak/authz/reactive/UserAdvancedResource.java
similarity index 86%
rename from security/keycloak-authz-reactive/src/main/java/io/quarkus/ts/security/keycloak/authz/UserAdvancedResource.java
rename to security/keycloak-authz-reactive/src/main/java/io/quarkus/ts/security/keycloak/authz/reactive/UserAdvancedResource.java
index 8a11bea57..b3af8ee26 100644
--- a/security/keycloak-authz-reactive/src/main/java/io/quarkus/ts/security/keycloak/authz/UserAdvancedResource.java
+++ b/security/keycloak-authz-reactive/src/main/java/io/quarkus/ts/security/keycloak/authz/reactive/UserAdvancedResource.java
@@ -1,4 +1,4 @@
-package io.quarkus.ts.security.keycloak.authz;
+package io.quarkus.ts.security.keycloak.authz.reactive;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
diff --git a/security/keycloak-authz-reactive/src/main/java/io/quarkus/ts/security/keycloak/authz/UserDetailsResource.java b/security/keycloak-authz-reactive/src/main/java/io/quarkus/ts/security/keycloak/authz/reactive/UserDetailsResource.java
similarity index 93%
rename from security/keycloak-authz-reactive/src/main/java/io/quarkus/ts/security/keycloak/authz/UserDetailsResource.java
rename to security/keycloak-authz-reactive/src/main/java/io/quarkus/ts/security/keycloak/authz/reactive/UserDetailsResource.java
index 106ead273..8a048d0b9 100644
--- a/security/keycloak-authz-reactive/src/main/java/io/quarkus/ts/security/keycloak/authz/UserDetailsResource.java
+++ b/security/keycloak-authz-reactive/src/main/java/io/quarkus/ts/security/keycloak/authz/reactive/UserDetailsResource.java
@@ -1,4 +1,4 @@
-package io.quarkus.ts.security.keycloak.authz;
+package io.quarkus.ts.security.keycloak.authz.reactive;
import javax.inject.Inject;
import javax.ws.rs.Consumes;
diff --git a/security/keycloak-authz-reactive/src/main/java/io/quarkus/ts/security/keycloak/authz/UserResource.java b/security/keycloak-authz-reactive/src/main/java/io/quarkus/ts/security/keycloak/authz/reactive/UserResource.java
similarity index 93%
rename from security/keycloak-authz-reactive/src/main/java/io/quarkus/ts/security/keycloak/authz/UserResource.java
rename to security/keycloak-authz-reactive/src/main/java/io/quarkus/ts/security/keycloak/authz/reactive/UserResource.java
index 4270e15c3..682e2a894 100644
--- a/security/keycloak-authz-reactive/src/main/java/io/quarkus/ts/security/keycloak/authz/UserResource.java
+++ b/security/keycloak-authz-reactive/src/main/java/io/quarkus/ts/security/keycloak/authz/reactive/UserResource.java
@@ -1,4 +1,4 @@
-package io.quarkus.ts.security.keycloak.authz;
+package io.quarkus.ts.security.keycloak.authz.reactive;
import javax.inject.Inject;
import javax.ws.rs.GET;
diff --git a/security/keycloak-authz-reactive/src/test/java/io/quarkus/ts/security/keycloak/authz/OpenShiftRhSso73AuthzSecurityIT.java b/security/keycloak-authz-reactive/src/test/java/io/quarkus/ts/security/keycloak/authz/OpenShiftRhSso73AuthzSecurityIT.java
deleted file mode 100644
index 5f930a954..000000000
--- a/security/keycloak-authz-reactive/src/test/java/io/quarkus/ts/security/keycloak/authz/OpenShiftRhSso73AuthzSecurityIT.java
+++ /dev/null
@@ -1,33 +0,0 @@
-package io.quarkus.ts.security.keycloak.authz;
-
-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.QuarkusApplication;
-
-@OpenShiftScenario
-public class OpenShiftRhSso73AuthzSecurityIT extends BaseAuthzSecurityIT {
-
- static final int KEYCLOAK_PORT = 8080;
-
- @Container(image = "${rhsso.73.image}", expectedLog = "Http management interface listening", port = KEYCLOAK_PORT)
- static KeycloakService keycloak = new KeycloakService(REALM_DEFAULT)
- .withProperty("SSO_IMPORT_FILE", "resource::/keycloak-realm.json");
-
- @QuarkusApplication
- static RestService app = new RestService()
- .withProperty("quarkus.oidc.auth-server-url", () -> keycloak.getRealmUrl())
- .withProperty("quarkus.oidc.client-id", CLIENT_ID_DEFAULT)
- .withProperty("quarkus.oidc.credentials.secret", CLIENT_SECRET_DEFAULT);
-
- @Override
- protected KeycloakService getKeycloak() {
- return keycloak;
- }
-
- @Override
- protected RestService getApp() {
- return app;
- }
-}
diff --git a/security/keycloak-authz-reactive/src/test/java/io/quarkus/ts/security/keycloak/authz/BaseAuthzSecurityIT.java b/security/keycloak-authz-reactive/src/test/java/io/quarkus/ts/security/keycloak/authz/reactive/BaseAuthzSecurityIT.java
similarity index 98%
rename from security/keycloak-authz-reactive/src/test/java/io/quarkus/ts/security/keycloak/authz/BaseAuthzSecurityIT.java
rename to security/keycloak-authz-reactive/src/test/java/io/quarkus/ts/security/keycloak/authz/reactive/BaseAuthzSecurityIT.java
index 9f8f9756f..c58012071 100644
--- a/security/keycloak-authz-reactive/src/test/java/io/quarkus/ts/security/keycloak/authz/BaseAuthzSecurityIT.java
+++ b/security/keycloak-authz-reactive/src/test/java/io/quarkus/ts/security/keycloak/authz/reactive/BaseAuthzSecurityIT.java
@@ -1,4 +1,4 @@
-package io.quarkus.ts.security.keycloak.authz;
+package io.quarkus.ts.security.keycloak.authz.reactive;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.Matchers.equalTo;
diff --git a/security/keycloak-authz-reactive/src/test/java/io/quarkus/ts/security/keycloak/authz/KeycloakAuthzSecurityIT.java b/security/keycloak-authz-reactive/src/test/java/io/quarkus/ts/security/keycloak/authz/reactive/KeycloakAuthzSecurityIT.java
similarity index 95%
rename from security/keycloak-authz-reactive/src/test/java/io/quarkus/ts/security/keycloak/authz/KeycloakAuthzSecurityIT.java
rename to security/keycloak-authz-reactive/src/test/java/io/quarkus/ts/security/keycloak/authz/reactive/KeycloakAuthzSecurityIT.java
index 570f71b6b..733af3908 100644
--- a/security/keycloak-authz-reactive/src/test/java/io/quarkus/ts/security/keycloak/authz/KeycloakAuthzSecurityIT.java
+++ b/security/keycloak-authz-reactive/src/test/java/io/quarkus/ts/security/keycloak/authz/reactive/KeycloakAuthzSecurityIT.java
@@ -1,4 +1,4 @@
-package io.quarkus.ts.security.keycloak.authz;
+package io.quarkus.ts.security.keycloak.authz.reactive;
import io.quarkus.test.bootstrap.KeycloakService;
import io.quarkus.test.bootstrap.RestService;
diff --git a/security/keycloak-authz-reactive/src/test/java/io/quarkus/ts/security/keycloak/authz/OpenShiftRhSso75AuthzSecurityIT.java b/security/keycloak-authz-reactive/src/test/java/io/quarkus/ts/security/keycloak/authz/reactive/OpenShiftRhSsoAuthzSecurityIT.java
similarity index 81%
rename from security/keycloak-authz-reactive/src/test/java/io/quarkus/ts/security/keycloak/authz/OpenShiftRhSso75AuthzSecurityIT.java
rename to security/keycloak-authz-reactive/src/test/java/io/quarkus/ts/security/keycloak/authz/reactive/OpenShiftRhSsoAuthzSecurityIT.java
index 40f9b69d2..3e30fd831 100644
--- a/security/keycloak-authz-reactive/src/test/java/io/quarkus/ts/security/keycloak/authz/OpenShiftRhSso75AuthzSecurityIT.java
+++ b/security/keycloak-authz-reactive/src/test/java/io/quarkus/ts/security/keycloak/authz/reactive/OpenShiftRhSsoAuthzSecurityIT.java
@@ -1,4 +1,4 @@
-package io.quarkus.ts.security.keycloak.authz;
+package io.quarkus.ts.security.keycloak.authz.reactive;
import org.junit.jupiter.api.condition.EnabledIfSystemProperty;
@@ -10,11 +10,11 @@
@OpenShiftScenario
@EnabledIfSystemProperty(named = "ts.redhat.registry.enabled", matches = "true")
-public class OpenShiftRhSso75AuthzSecurityIT extends BaseAuthzSecurityIT {
+public class OpenShiftRhSsoAuthzSecurityIT extends BaseAuthzSecurityIT {
static final int KEYCLOAK_PORT = 8080;
- @Container(image = "${rhsso.75.image}", expectedLog = "Http management interface listening", port = KEYCLOAK_PORT)
+ @Container(image = "${rhsso.image}", expectedLog = "Http management interface listening", port = KEYCLOAK_PORT)
static KeycloakService keycloak = new KeycloakService(REALM_DEFAULT)
.withProperty("SSO_IMPORT_FILE", "resource::/keycloak-realm.json");
diff --git a/security/keycloak-jwt/src/test/java/io/quarkus/ts/security/keycloak/jwt/OpenShiftRhSso73OidcJwtSecurityIT.java b/security/keycloak-jwt/src/test/java/io/quarkus/ts/security/keycloak/jwt/OpenShiftRhSso73OidcJwtSecurityIT.java
deleted file mode 100644
index e0d505d2c..000000000
--- a/security/keycloak-jwt/src/test/java/io/quarkus/ts/security/keycloak/jwt/OpenShiftRhSso73OidcJwtSecurityIT.java
+++ /dev/null
@@ -1,32 +0,0 @@
-package io.quarkus.ts.security.keycloak.jwt;
-
-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.QuarkusApplication;
-
-@OpenShiftScenario
-public class OpenShiftRhSso73OidcJwtSecurityIT extends BaseOidcJwtSecurityIT {
-
- static final int KEYCLOAK_PORT = 8080;
-
- @Container(image = "${rhsso.73.image}", expectedLog = "Http management interface listening", port = KEYCLOAK_PORT)
- static KeycloakService keycloak = new KeycloakService(REALM_DEFAULT)
- .withProperty("SSO_IMPORT_FILE", "resource::/keycloak-realm.json");
-
- @QuarkusApplication
- static RestService app = new RestService()
- .withProperty("quarkus.oidc.auth-server-url", keycloak::getRealmUrl)
- .withProperty("quarkus.oidc.client-id", CLIENT_ID_DEFAULT);
-
- @Override
- protected KeycloakService getKeycloak() {
- return keycloak;
- }
-
- @Override
- protected RestService getApp() {
- return app;
- }
-}
diff --git a/security/keycloak-jwt/src/test/java/io/quarkus/ts/security/keycloak/jwt/OpenShiftRhSso75OidcJwtSecurityIT.java b/security/keycloak-jwt/src/test/java/io/quarkus/ts/security/keycloak/jwt/OpenShiftRhSsoOidcJwtSecurityIT.java
similarity index 84%
rename from security/keycloak-jwt/src/test/java/io/quarkus/ts/security/keycloak/jwt/OpenShiftRhSso75OidcJwtSecurityIT.java
rename to security/keycloak-jwt/src/test/java/io/quarkus/ts/security/keycloak/jwt/OpenShiftRhSsoOidcJwtSecurityIT.java
index 8a76d684d..ab8d0f850 100644
--- a/security/keycloak-jwt/src/test/java/io/quarkus/ts/security/keycloak/jwt/OpenShiftRhSso75OidcJwtSecurityIT.java
+++ b/security/keycloak-jwt/src/test/java/io/quarkus/ts/security/keycloak/jwt/OpenShiftRhSsoOidcJwtSecurityIT.java
@@ -10,11 +10,11 @@
@OpenShiftScenario
@EnabledIfSystemProperty(named = "ts.redhat.registry.enabled", matches = "true")
-public class OpenShiftRhSso75OidcJwtSecurityIT extends BaseOidcJwtSecurityIT {
+public class OpenShiftRhSsoOidcJwtSecurityIT extends BaseOidcJwtSecurityIT {
static final int KEYCLOAK_PORT = 8080;
- @Container(image = "${rhsso.75.image}", expectedLog = "Http management interface listening", port = KEYCLOAK_PORT)
+ @Container(image = "${rhsso.image}", expectedLog = "Http management interface listening", port = KEYCLOAK_PORT)
static KeycloakService keycloak = new KeycloakService(REALM_DEFAULT)
.withProperty("SSO_IMPORT_FILE", "resource::/keycloak-realm.json");
diff --git a/security/keycloak-multitenant/src/test/java/io/quarkus/ts/security/keycloak/multitenant/OpenShiftRhSso73MultiTenantSecurityIT.java b/security/keycloak-multitenant/src/test/java/io/quarkus/ts/security/keycloak/multitenant/OpenShiftRhSso73MultiTenantSecurityIT.java
deleted file mode 100644
index 015447096..000000000
--- a/security/keycloak-multitenant/src/test/java/io/quarkus/ts/security/keycloak/multitenant/OpenShiftRhSso73MultiTenantSecurityIT.java
+++ /dev/null
@@ -1,31 +0,0 @@
-package io.quarkus.ts.security.keycloak.multitenant;
-
-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.QuarkusApplication;
-
-@OpenShiftScenario
-public class OpenShiftRhSso73MultiTenantSecurityIT extends BaseMultiTenantSecurityIT {
-
- static final int KEYCLOAK_PORT = 8080;
-
- @Container(image = "${rhsso.73.image}", expectedLog = "Http management interface listening", port = KEYCLOAK_PORT)
- static KeycloakService keycloak = new KeycloakService(REALM_DEFAULT)
- .withProperty("SSO_IMPORT_FILE", "resource::/keycloak-realm.json");
-
- @QuarkusApplication
- static RestService app = new RestService()
- .withProperty("quarkus.oidc.auth-server-url", () -> keycloak.getRealmUrl());
-
- @Override
- protected KeycloakService getKeycloak() {
- return keycloak;
- }
-
- @Override
- protected RestService getApp() {
- return app;
- }
-}
diff --git a/security/keycloak-multitenant/src/test/java/io/quarkus/ts/security/keycloak/multitenant/OpenShiftRhSso75MultiTenantSecurityIT.java b/security/keycloak-multitenant/src/test/java/io/quarkus/ts/security/keycloak/multitenant/OpenShiftRhSsoMultiTenantSecurityIT.java
similarity index 82%
rename from security/keycloak-multitenant/src/test/java/io/quarkus/ts/security/keycloak/multitenant/OpenShiftRhSso75MultiTenantSecurityIT.java
rename to security/keycloak-multitenant/src/test/java/io/quarkus/ts/security/keycloak/multitenant/OpenShiftRhSsoMultiTenantSecurityIT.java
index a23cb8f6a..0a4fcdd1a 100644
--- a/security/keycloak-multitenant/src/test/java/io/quarkus/ts/security/keycloak/multitenant/OpenShiftRhSso75MultiTenantSecurityIT.java
+++ b/security/keycloak-multitenant/src/test/java/io/quarkus/ts/security/keycloak/multitenant/OpenShiftRhSsoMultiTenantSecurityIT.java
@@ -10,11 +10,11 @@
@OpenShiftScenario
@EnabledIfSystemProperty(named = "ts.redhat.registry.enabled", matches = "true")
-public class OpenShiftRhSso75MultiTenantSecurityIT extends BaseMultiTenantSecurityIT {
+public class OpenShiftRhSsoMultiTenantSecurityIT extends BaseMultiTenantSecurityIT {
static final int KEYCLOAK_PORT = 8080;
- @Container(image = "${rhsso.75.image}", expectedLog = "Http management interface listening", port = KEYCLOAK_PORT)
+ @Container(image = "${rhsso.image}", expectedLog = "Http management interface listening", port = KEYCLOAK_PORT)
static KeycloakService keycloak = new KeycloakService(REALM_DEFAULT)
.withProperty("SSO_IMPORT_FILE", "resource::/keycloak-realm.json");
diff --git a/security/keycloak-oauth2/src/main/java/io/quarkus/ts/security/AdminResource.java b/security/keycloak-oauth2/src/main/java/io/quarkus/ts/security/keycloak/oauth2/AdminResource.java
similarity index 91%
rename from security/keycloak-oauth2/src/main/java/io/quarkus/ts/security/AdminResource.java
rename to security/keycloak-oauth2/src/main/java/io/quarkus/ts/security/keycloak/oauth2/AdminResource.java
index a2e2b1ba8..ec9862139 100644
--- a/security/keycloak-oauth2/src/main/java/io/quarkus/ts/security/AdminResource.java
+++ b/security/keycloak-oauth2/src/main/java/io/quarkus/ts/security/keycloak/oauth2/AdminResource.java
@@ -1,4 +1,4 @@
-package io.quarkus.ts.security;
+package io.quarkus.ts.security.keycloak.oauth2;
import javax.annotation.security.RolesAllowed;
import javax.inject.Inject;
diff --git a/security/keycloak-oauth2/src/main/java/io/quarkus/ts/security/UserResource.java b/security/keycloak-oauth2/src/main/java/io/quarkus/ts/security/keycloak/oauth2/UserResource.java
similarity index 91%
rename from security/keycloak-oauth2/src/main/java/io/quarkus/ts/security/UserResource.java
rename to security/keycloak-oauth2/src/main/java/io/quarkus/ts/security/keycloak/oauth2/UserResource.java
index 03f81fa8b..8b4f020ec 100644
--- a/security/keycloak-oauth2/src/main/java/io/quarkus/ts/security/UserResource.java
+++ b/security/keycloak-oauth2/src/main/java/io/quarkus/ts/security/keycloak/oauth2/UserResource.java
@@ -1,4 +1,4 @@
-package io.quarkus.ts.security;
+package io.quarkus.ts.security.keycloak.oauth2;
import javax.annotation.security.RolesAllowed;
import javax.inject.Inject;
diff --git a/security/keycloak-oauth2/src/test/java/io/quarkus/ts/security/OpenShiftRhSso73Oauth2SecurityIT.java b/security/keycloak-oauth2/src/test/java/io/quarkus/ts/security/OpenShiftRhSso73Oauth2SecurityIT.java
deleted file mode 100644
index caae08136..000000000
--- a/security/keycloak-oauth2/src/test/java/io/quarkus/ts/security/OpenShiftRhSso73Oauth2SecurityIT.java
+++ /dev/null
@@ -1,32 +0,0 @@
-package io.quarkus.ts.security;
-
-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.QuarkusApplication;
-
-@OpenShiftScenario
-public class OpenShiftRhSso73Oauth2SecurityIT extends BaseOauth2SecurityIT {
-
- static final int KEYCLOAK_PORT = 8080;
-
- @Container(image = "${rhsso.73.image}", expectedLog = "Http management interface listening", port = KEYCLOAK_PORT)
- static KeycloakService keycloak = new KeycloakService(REALM_DEFAULT)
- .withProperty("SSO_IMPORT_FILE", "resource::/keycloak-realm.json");
-
- @QuarkusApplication
- static RestService app = new RestService()
- .withProperty("quarkus.oauth2.introspection-url",
- () -> keycloak.getRealmUrl() + "/protocol/openid-connect/token/introspect");
-
- @Override
- protected KeycloakService getKeycloak() {
- return keycloak;
- }
-
- @Override
- protected RestService getApp() {
- return app;
- }
-}
diff --git a/security/keycloak-oauth2/src/test/java/io/quarkus/ts/security/BaseOauth2SecurityIT.java b/security/keycloak-oauth2/src/test/java/io/quarkus/ts/security/keycloak/oauth2/BaseOauth2SecurityIT.java
similarity index 98%
rename from security/keycloak-oauth2/src/test/java/io/quarkus/ts/security/BaseOauth2SecurityIT.java
rename to security/keycloak-oauth2/src/test/java/io/quarkus/ts/security/keycloak/oauth2/BaseOauth2SecurityIT.java
index fcddf4ee1..a768f64f5 100644
--- a/security/keycloak-oauth2/src/test/java/io/quarkus/ts/security/BaseOauth2SecurityIT.java
+++ b/security/keycloak-oauth2/src/test/java/io/quarkus/ts/security/keycloak/oauth2/BaseOauth2SecurityIT.java
@@ -1,4 +1,4 @@
-package io.quarkus.ts.security;
+package io.quarkus.ts.security.keycloak.oauth2;
import static org.hamcrest.Matchers.equalTo;
diff --git a/security/keycloak-oauth2/src/test/java/io/quarkus/ts/security/KeycloakOauth2SecurityIT.java b/security/keycloak-oauth2/src/test/java/io/quarkus/ts/security/keycloak/oauth2/KeycloakOauth2SecurityIT.java
similarity index 96%
rename from security/keycloak-oauth2/src/test/java/io/quarkus/ts/security/KeycloakOauth2SecurityIT.java
rename to security/keycloak-oauth2/src/test/java/io/quarkus/ts/security/keycloak/oauth2/KeycloakOauth2SecurityIT.java
index b78569a23..dd1ed2f45 100644
--- a/security/keycloak-oauth2/src/test/java/io/quarkus/ts/security/KeycloakOauth2SecurityIT.java
+++ b/security/keycloak-oauth2/src/test/java/io/quarkus/ts/security/keycloak/oauth2/KeycloakOauth2SecurityIT.java
@@ -1,4 +1,4 @@
-package io.quarkus.ts.security;
+package io.quarkus.ts.security.keycloak.oauth2;
import io.quarkus.test.bootstrap.KeycloakService;
import io.quarkus.test.bootstrap.RestService;
diff --git a/security/keycloak-oauth2/src/test/java/io/quarkus/ts/security/OpenShiftRhSso75Oauth2SecurityIT.java b/security/keycloak-oauth2/src/test/java/io/quarkus/ts/security/keycloak/oauth2/OpenShiftRhSsoOauth2SecurityIT.java
similarity index 80%
rename from security/keycloak-oauth2/src/test/java/io/quarkus/ts/security/OpenShiftRhSso75Oauth2SecurityIT.java
rename to security/keycloak-oauth2/src/test/java/io/quarkus/ts/security/keycloak/oauth2/OpenShiftRhSsoOauth2SecurityIT.java
index d6e9ab2aa..b5c45e077 100644
--- a/security/keycloak-oauth2/src/test/java/io/quarkus/ts/security/OpenShiftRhSso75Oauth2SecurityIT.java
+++ b/security/keycloak-oauth2/src/test/java/io/quarkus/ts/security/keycloak/oauth2/OpenShiftRhSsoOauth2SecurityIT.java
@@ -1,4 +1,4 @@
-package io.quarkus.ts.security;
+package io.quarkus.ts.security.keycloak.oauth2;
import org.junit.jupiter.api.condition.EnabledIfSystemProperty;
@@ -10,11 +10,11 @@
@OpenShiftScenario
@EnabledIfSystemProperty(named = "ts.redhat.registry.enabled", matches = "true")
-public class OpenShiftRhSso75Oauth2SecurityIT extends BaseOauth2SecurityIT {
+public class OpenShiftRhSsoOauth2SecurityIT extends BaseOauth2SecurityIT {
static final int KEYCLOAK_PORT = 8080;
- @Container(image = "${rhsso.75.image}", expectedLog = "Http management interface listening", port = KEYCLOAK_PORT)
+ @Container(image = "${rhsso.image}", expectedLog = "Http management interface listening", port = KEYCLOAK_PORT)
static KeycloakService keycloak = new KeycloakService(REALM_DEFAULT)
.withProperty("SSO_IMPORT_FILE", "resource::/keycloak-realm.json");
diff --git a/security/keycloak-oidc-client-basic/src/test/java/io/quarkus/ts/security/keycloak/oidcclient/basic/OpenShiftRhSso73OidcClientSecurityIT.java b/security/keycloak-oidc-client-basic/src/test/java/io/quarkus/ts/security/keycloak/oidcclient/basic/OpenShiftRhSso73OidcClientSecurityIT.java
deleted file mode 100644
index 28ea28e1a..000000000
--- a/security/keycloak-oidc-client-basic/src/test/java/io/quarkus/ts/security/keycloak/oidcclient/basic/OpenShiftRhSso73OidcClientSecurityIT.java
+++ /dev/null
@@ -1,31 +0,0 @@
-package io.quarkus.ts.security.keycloak.oidcclient.basic;
-
-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.QuarkusApplication;
-
-@OpenShiftScenario
-public class OpenShiftRhSso73OidcClientSecurityIT extends BaseOidcClientSecurityIT {
-
- static final int KEYCLOAK_PORT = 8080;
-
- @Container(image = "${rhsso.73.image}", expectedLog = "Http management interface listening", port = KEYCLOAK_PORT)
- static KeycloakService keycloak = new KeycloakService(REALM_DEFAULT)
- .withProperty("SSO_IMPORT_FILE", "resource::/keycloak-realm.json");
-
- @QuarkusApplication
- static RestService app = new RestService()
- .withProperty("quarkus.oidc.auth-server-url", () -> keycloak.getRealmUrl());
-
- @Override
- protected KeycloakService getKeycloak() {
- return keycloak;
- }
-
- @Override
- protected RestService getApp() {
- return app;
- }
-}
diff --git a/security/keycloak-oidc-client-basic/src/test/java/io/quarkus/ts/security/keycloak/oidcclient/basic/OpenShiftRhSso75OidcClientSecurityIT.java b/security/keycloak-oidc-client-basic/src/test/java/io/quarkus/ts/security/keycloak/oidcclient/basic/OpenShiftRhSsoOidcClientSecurityIT.java
similarity index 83%
rename from security/keycloak-oidc-client-basic/src/test/java/io/quarkus/ts/security/keycloak/oidcclient/basic/OpenShiftRhSso75OidcClientSecurityIT.java
rename to security/keycloak-oidc-client-basic/src/test/java/io/quarkus/ts/security/keycloak/oidcclient/basic/OpenShiftRhSsoOidcClientSecurityIT.java
index b1df4fe9d..e9d2e0580 100644
--- a/security/keycloak-oidc-client-basic/src/test/java/io/quarkus/ts/security/keycloak/oidcclient/basic/OpenShiftRhSso75OidcClientSecurityIT.java
+++ b/security/keycloak-oidc-client-basic/src/test/java/io/quarkus/ts/security/keycloak/oidcclient/basic/OpenShiftRhSsoOidcClientSecurityIT.java
@@ -10,11 +10,11 @@
@OpenShiftScenario
@EnabledIfSystemProperty(named = "ts.redhat.registry.enabled", matches = "true")
-public class OpenShiftRhSso75OidcClientSecurityIT extends BaseOidcClientSecurityIT {
+public class OpenShiftRhSsoOidcClientSecurityIT extends BaseOidcClientSecurityIT {
static final int KEYCLOAK_PORT = 8080;
- @Container(image = "${rhsso.75.image}", expectedLog = "Http management interface listening", port = KEYCLOAK_PORT)
+ @Container(image = "${rhsso.image}", expectedLog = "Http management interface listening", port = KEYCLOAK_PORT)
static KeycloakService keycloak = new KeycloakService(REALM_DEFAULT)
.withProperty("SSO_IMPORT_FILE", "resource::/keycloak-realm.json");
diff --git a/security/keycloak-oidc-client-reactive/pom.xml b/security/keycloak-oidc-client-reactive/pom.xml
new file mode 100644
index 000000000..37e812004
--- /dev/null
+++ b/security/keycloak-oidc-client-reactive/pom.xml
@@ -0,0 +1,59 @@
+
+
+ 4.0.0
+
+ io.quarkus.ts.qe
+ parent
+ 1.0.0-SNAPSHOT
+ ../..
+
+ security-keycloak-oidc-client-reactive
+ jar
+ Quarkus QE TS: Security: Keycloak + OIDC Client Reactive
+
+
+ io.quarkus
+ quarkus-resteasy-reactive-jackson
+
+
+ io.quarkus
+ quarkus-oidc
+
+
+ io.quarkus
+ quarkus-oidc-client-reactive-filter
+
+
+ io.quarkus.qe
+ quarkus-test-service-keycloak
+ test
+
+
+
+
+
+ skip-tests-on-windows
+
+
+ windows
+
+
+
+
+
+ maven-surefire-plugin
+
+ true
+
+
+
+ maven-failsafe-plugin
+
+ true
+
+
+
+
+
+
+
diff --git a/security/keycloak-oidc-client-reactive/src/main/java/io/quarkus/ts/security/keycloak/oidcclient/reactive/RequestHeadersClient.java b/security/keycloak-oidc-client-reactive/src/main/java/io/quarkus/ts/security/keycloak/oidcclient/reactive/RequestHeadersClient.java
new file mode 100644
index 000000000..7abf0baec
--- /dev/null
+++ b/security/keycloak-oidc-client-reactive/src/main/java/io/quarkus/ts/security/keycloak/oidcclient/reactive/RequestHeadersClient.java
@@ -0,0 +1,24 @@
+package io.quarkus.ts.security.keycloak.oidcclient.reactive;
+
+import java.util.List;
+
+import javax.ws.rs.GET;
+import javax.ws.rs.Path;
+import javax.ws.rs.Produces;
+import javax.ws.rs.core.MediaType;
+
+import org.eclipse.microprofile.rest.client.annotation.RegisterProvider;
+import org.eclipse.microprofile.rest.client.inject.RegisterRestClient;
+
+import io.quarkus.oidc.client.reactive.filter.OidcClientRequestReactiveFilter;
+import io.smallrye.mutiny.Uni;
+
+@RegisterRestClient
+@RegisterProvider(OidcClientRequestReactiveFilter.class)
+@Path("/request-headers")
+public interface RequestHeadersClient {
+ @GET
+ @Path("/authorization")
+ @Produces(MediaType.APPLICATION_JSON)
+ Uni> getAuthorizationHeaders();
+}
diff --git a/security/keycloak-oidc-client-reactive/src/main/java/io/quarkus/ts/security/keycloak/oidcclient/reactive/RequestHeadersClientResource.java b/security/keycloak-oidc-client-reactive/src/main/java/io/quarkus/ts/security/keycloak/oidcclient/reactive/RequestHeadersClientResource.java
new file mode 100644
index 000000000..ff15f60c9
--- /dev/null
+++ b/security/keycloak-oidc-client-reactive/src/main/java/io/quarkus/ts/security/keycloak/oidcclient/reactive/RequestHeadersClientResource.java
@@ -0,0 +1,28 @@
+package io.quarkus.ts.security.keycloak.oidcclient.reactive;
+
+import java.util.List;
+
+import javax.inject.Inject;
+import javax.ws.rs.GET;
+import javax.ws.rs.Path;
+import javax.ws.rs.Produces;
+import javax.ws.rs.core.MediaType;
+
+import org.eclipse.microprofile.rest.client.inject.RestClient;
+
+import io.smallrye.mutiny.Uni;
+
+@Path("/client-request-headers")
+public class RequestHeadersClientResource {
+
+ @Inject
+ @RestClient
+ RequestHeadersClient client;
+
+ @GET
+ @Path("/authorization-repeatedly")
+ @Produces(MediaType.APPLICATION_JSON)
+ public Uni> getAuthorizationHeadersRepeatedly() {
+ return client.getAuthorizationHeaders().repeat().atMost(2).collect().last();
+ }
+}
diff --git a/security/keycloak-oidc-client-reactive/src/main/java/io/quarkus/ts/security/keycloak/oidcclient/reactive/RequestHeadersResource.java b/security/keycloak-oidc-client-reactive/src/main/java/io/quarkus/ts/security/keycloak/oidcclient/reactive/RequestHeadersResource.java
new file mode 100644
index 000000000..726bff4c7
--- /dev/null
+++ b/security/keycloak-oidc-client-reactive/src/main/java/io/quarkus/ts/security/keycloak/oidcclient/reactive/RequestHeadersResource.java
@@ -0,0 +1,24 @@
+package io.quarkus.ts.security.keycloak.oidcclient.reactive;
+
+import java.util.List;
+
+import javax.ws.rs.GET;
+import javax.ws.rs.Path;
+import javax.ws.rs.Produces;
+import javax.ws.rs.core.HttpHeaders;
+import javax.ws.rs.core.MediaType;
+
+import io.smallrye.mutiny.Uni;
+
+@Path("/request-headers")
+public class RequestHeadersResource {
+
+ public static final String AUTHORIZATION_HEADER = "Authorization";
+
+ @GET
+ @Path("/authorization")
+ @Produces(MediaType.APPLICATION_JSON)
+ public Uni> getAuthorizationHeaders(HttpHeaders httpHeaders) {
+ return Uni.createFrom().item(httpHeaders.getRequestHeader(AUTHORIZATION_HEADER));
+ }
+}
diff --git a/security/keycloak-oidc-client-reactive/src/main/resources/application.properties b/security/keycloak-oidc-client-reactive/src/main/resources/application.properties
new file mode 100644
index 000000000..1f5eba831
--- /dev/null
+++ b/security/keycloak-oidc-client-reactive/src/main/resources/application.properties
@@ -0,0 +1,21 @@
+# Security
+quarkus.oidc.auth-server-url=http://localhost:8180/auth/realms/test-realm
+quarkus.oidc.client-id=test-application-client
+quarkus.oidc.credentials.secret=test-application-client-secret
+
+# OIDC Client Configuration
+quarkus.oidc-client.auth-server-url=${quarkus.oidc.auth-server-url}
+quarkus.oidc-client.client-id=test-application-client
+quarkus.oidc-client.credentials.secret=test-application-client-secret
+
+## Normal User Password
+quarkus.oidc-client.normal-user.auth-server-url=${quarkus.oidc.auth-server-url}
+quarkus.oidc-client.normal-user.client-id=test-application-client
+quarkus.oidc-client.normal-user.credentials.secret=test-application-client-secret
+quarkus.oidc-client.normal-user.grant.type=password
+quarkus.oidc-client.normal-user.grant-options.password.username=test-normal-user
+quarkus.oidc-client.normal-user.grant-options.password.password=test-normal-user
+
+# RestClient
+quarkus.rest-client."io.quarkus.ts.security.keycloak.oidcclient.reactive.RequestHeadersClient".url=http://localhost:${quarkus.http.port}
+quarkus.rest-client."io.quarkus.ts.security.keycloak.oidcclient.reactive.RequestHeadersClient".scope=javax.inject.Singleton
diff --git a/security/keycloak-oidc-client-reactive/src/test/java/io/quarkus/ts/security/keycloak/oidcclient/reactive/RequestHeadersIT.java b/security/keycloak-oidc-client-reactive/src/test/java/io/quarkus/ts/security/keycloak/oidcclient/reactive/RequestHeadersIT.java
new file mode 100644
index 000000000..a2902e9a7
--- /dev/null
+++ b/security/keycloak-oidc-client-reactive/src/test/java/io/quarkus/ts/security/keycloak/oidcclient/reactive/RequestHeadersIT.java
@@ -0,0 +1,47 @@
+package io.quarkus.ts.security.keycloak.oidcclient.reactive;
+
+import static io.restassured.RestAssured.given;
+
+import java.util.List;
+
+import org.apache.http.HttpStatus;
+import org.junit.jupiter.api.Assertions;
+import org.junit.jupiter.api.Test;
+
+import io.quarkus.test.bootstrap.KeycloakService;
+import io.quarkus.test.bootstrap.RestService;
+import io.quarkus.test.scenarios.QuarkusScenario;
+import io.quarkus.test.services.Container;
+import io.quarkus.test.services.QuarkusApplication;
+import io.restassured.http.ContentType;
+import io.restassured.response.Response;
+
+@QuarkusScenario
+public class RequestHeadersIT {
+
+ static final String REALM_DEFAULT = "test-realm";
+ static final int KEYCLOAK_PORT = 8080;
+
+ //TODO Remove workaround after Keycloak is fixed https://github.com/keycloak/keycloak/issues/9916
+ @Container(image = "${keycloak.image}", expectedLog = "Http management interface listening", port = KEYCLOAK_PORT)
+ static KeycloakService keycloak = new KeycloakService("/keycloak-realm.json", REALM_DEFAULT)
+ .withProperty("JAVA_OPTS", "-Dcom.redhat.fips=false");
+
+ @QuarkusApplication
+ static RestService app = new RestService()
+ .withProperty("quarkus.oidc.auth-server-url", () -> keycloak.getRealmUrl());
+
+ @Test
+ public void authorizationHeaderDoesNotRepeat() {
+ final Response response = given()
+ .when()
+ .get("/client-request-headers/authorization-repeatedly")
+ .then()
+ .statusCode(HttpStatus.SC_OK)
+ .contentType(ContentType.JSON)
+ .extract()
+ .response();
+ final List