diff --git a/http/http-advanced-reactive/pom.xml b/http/http-advanced-reactive/pom.xml
index 091978bde4..6e7311b8e7 100644
--- a/http/http-advanced-reactive/pom.xml
+++ b/http/http-advanced-reactive/pom.xml
@@ -94,5 +94,9 @@
commons-io
commons-io
+
+ com.aayushatharva.brotli4j
+ brotli4j
+
diff --git a/http/http-advanced-reactive/src/main/java/io/quarkus/ts/http/advanced/reactive/Brotli4JHttpServerConfig.java b/http/http-advanced-reactive/src/main/java/io/quarkus/ts/http/advanced/reactive/Brotli4JHttpServerConfig.java
new file mode 100644
index 0000000000..10f30facaf
--- /dev/null
+++ b/http/http-advanced-reactive/src/main/java/io/quarkus/ts/http/advanced/reactive/Brotli4JHttpServerConfig.java
@@ -0,0 +1,28 @@
+package io.quarkus.ts.http.advanced.reactive;
+
+import jakarta.enterprise.context.ApplicationScoped;
+
+import io.netty.handler.codec.compression.BrotliOptions;
+import io.netty.handler.codec.compression.StandardCompressionOptions;
+import io.quarkus.vertx.http.HttpServerOptionsCustomizer;
+import io.vertx.core.http.HttpServerOptions;
+
+@ApplicationScoped
+public class Brotli4JHttpServerConfig implements HttpServerOptionsCustomizer {
+ // It depends on compression level that we want to apply, in this case we use level 4, but we won't test the level compression features.
+ private static final int compressionLevel = 4;
+
+ @Override
+ public void customizeHttpServer(HttpServerOptions options) {
+ options.addCompressor(getBrotliOptions(compressionLevel));
+ }
+
+ @Override
+ public void customizeHttpsServer(HttpServerOptions options) {
+ options.addCompressor(getBrotliOptions(compressionLevel));
+ }
+
+ private static BrotliOptions getBrotliOptions(int compressionLevel) {
+ return StandardCompressionOptions.brotli();
+ }
+}
diff --git a/http/http-advanced-reactive/src/main/java/io/quarkus/ts/http/advanced/reactive/Brotli4JResource.java b/http/http-advanced-reactive/src/main/java/io/quarkus/ts/http/advanced/reactive/Brotli4JResource.java
new file mode 100644
index 0000000000..f3b86be282
--- /dev/null
+++ b/http/http-advanced-reactive/src/main/java/io/quarkus/ts/http/advanced/reactive/Brotli4JResource.java
@@ -0,0 +1,66 @@
+package io.quarkus.ts.http.advanced.reactive;
+
+import java.util.HashMap;
+
+import jakarta.inject.Inject;
+import jakarta.ws.rs.GET;
+import jakarta.ws.rs.POST;
+import jakarta.ws.rs.Path;
+import jakarta.ws.rs.Produces;
+import jakarta.ws.rs.core.MediaType;
+
+@Path("/compression")
+public class Brotli4JResource {
+
+ public final static String DEFAULT_TEXT_PLAIN = "In life, you have to trust that every little bit helps. As you know," +
+ " every small step forward counts." +
+ " It's the accumulation of these efforts that ultimately leads to success." +
+ " So, don't underestimate the power of persistence and determination in achieving your dreams";
+
+ @Inject
+ Brotli4JRestMock brotli4JRestMock;
+
+ @GET
+ @Path("/brotli/json")
+ @Produces(MediaType.APPLICATION_JSON)
+ public HashMap jsonHttpCompressionResponse() {
+ return brotli4JRestMock.returnResponse(Brotli4JRestMock.ResponseType.JSON);
+ }
+
+ @GET
+ @Path("/brotli/xml")
+ @Produces(MediaType.APPLICATION_XML)
+ public String xmlHttpCompressionResponse() {
+ return brotli4JRestMock.returnResponse(Brotli4JRestMock.ResponseType.XML).get("xml").toString();
+ }
+
+ @POST
+ @Path("/decompression")
+ @Produces(MediaType.TEXT_PLAIN)
+ public String decompressionHttpResponse(byte[] compressedData) {
+ String decompressedData = new String(compressedData);
+ return decompressedData;
+ }
+
+ @GET
+ @Path("/default/text")
+ @Produces(MediaType.TEXT_PLAIN)
+ public String textPlainDefaultHttpCompressionResponse() {
+ return DEFAULT_TEXT_PLAIN;
+ }
+
+ @GET
+ @Path("/text")
+ @Produces(MediaType.TEXT_PLAIN)
+ public String textPlainHttpCompressionResponse() {
+ return brotli4JRestMock.returnTextPlainResponse(Brotli4JRestMock.ResponseType.TEXT);
+ }
+
+ @GET
+ @Path("/text/big")
+ @Produces(MediaType.TEXT_PLAIN)
+ public String textPlainBigHttpCompressionResponse() {
+ return brotli4JRestMock.returnTextPlainResponse(Brotli4JRestMock.ResponseType.BIG_TEXT);
+ }
+
+}
diff --git a/http/http-advanced-reactive/src/main/java/io/quarkus/ts/http/advanced/reactive/Brotli4JRestMock.java b/http/http-advanced-reactive/src/main/java/io/quarkus/ts/http/advanced/reactive/Brotli4JRestMock.java
new file mode 100644
index 0000000000..70960772ee
--- /dev/null
+++ b/http/http-advanced-reactive/src/main/java/io/quarkus/ts/http/advanced/reactive/Brotli4JRestMock.java
@@ -0,0 +1,120 @@
+package io.quarkus.ts.http.advanced.reactive;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.nio.charset.StandardCharsets;
+import java.util.HashMap;
+import java.util.Scanner;
+
+import jakarta.annotation.PostConstruct;
+import jakarta.enterprise.context.ApplicationScoped;
+
+import org.jboss.logging.Logger;
+
+import com.fasterxml.jackson.core.exc.StreamReadException;
+import com.fasterxml.jackson.core.type.TypeReference;
+import com.fasterxml.jackson.databind.DatabindException;
+import com.fasterxml.jackson.databind.ObjectMapper;
+
+@ApplicationScoped
+public class Brotli4JRestMock {
+
+ private static final Logger LOGGER = Logger.getLogger(Brotli4JRestMock.class);
+
+ private static HashMap jsonResponse = null;
+ private static HashMap xmlResponse = null;
+
+ private String textResponse = "";
+ private String bigTextResponse = "";
+
+ private final ObjectMapper objectMapper;
+ private final String textPlainFilePath;
+ private final String jsonFilePath;
+ private final String xmlFilePath;
+ private final String textBigPlainFilePath;
+
+ public Brotli4JRestMock(ObjectMapper objectMapper) {
+ this.objectMapper = objectMapper;
+ this.textPlainFilePath = "/sample.txt";
+ this.jsonFilePath = "/sample.json";
+ this.xmlFilePath = "/sample.xml";
+ this.textBigPlainFilePath = "/big_sample.txt";
+ }
+
+ @PostConstruct
+ public void init() {
+ loadJsonFile(jsonFilePath);
+ loadXmlResponse(xmlFilePath);
+ textResponse = loadTextData(textPlainFilePath);
+ bigTextResponse = loadTextData(textBigPlainFilePath);
+ }
+
+ private void loadJsonFile(String jsonFilePath) {
+ try (InputStream inputStream = getClass().getResourceAsStream(jsonFilePath)) {
+ assert inputStream != null;
+ byte[] bytes = inputStream.readAllBytes();
+ jsonResponse = objectMapper.readValue(bytes, new TypeReference<>() {
+ });
+ } catch (StreamReadException | DatabindException e) {
+ LOGGER.error("Error occurred while deserializing JSON file: " + e.getMessage());
+ } catch (IOException e) {
+ LOGGER.error("Error occurred while reading the JSON file: " + e.getMessage());
+ }
+ }
+
+ private void loadXmlResponse(String xmlFilePath) {
+ try (InputStream inputStream = getClass().getResourceAsStream(xmlFilePath)) {
+ assert inputStream != null;
+ Scanner scanner = new Scanner(inputStream, StandardCharsets.UTF_8);
+ StringBuilder stringBuilder = new StringBuilder();
+ while (scanner.hasNextLine()) {
+ stringBuilder.append(scanner.nextLine()).append("\n");
+ }
+ xmlResponse = new HashMap<>();
+ xmlResponse.put("xml", stringBuilder.toString());
+ } catch (IOException e) {
+ throw new RuntimeException("Error loading XML response", e);
+ }
+ }
+
+ public HashMap returnResponse(ResponseType type) {
+ if (type == ResponseType.JSON) {
+ return jsonResponse;
+ } else if (type == ResponseType.XML) {
+ return xmlResponse;
+ } else {
+ throw new IllegalArgumentException("Invalid response type: " + type);
+ }
+ }
+
+ public String loadTextData(String filePath) {
+ try (InputStream inputStream = getClass().getResourceAsStream(filePath)) {
+ if (inputStream != null) {
+ byte[] textData = inputStream.readAllBytes();
+ return new String(textData, StandardCharsets.UTF_8);
+ } else {
+ throw new IOException("File not found: " + filePath);
+ }
+ } catch (IOException e) {
+ throw new RuntimeException("Error loading text data from file: " + filePath, e);
+ }
+ }
+
+ public String returnTextPlainResponse(ResponseType type) {
+ if (type == ResponseType.TEXT) {
+ return textResponse;
+ } else if (type == ResponseType.BIG_TEXT) {
+ return bigTextResponse;
+ } else {
+ throw new IllegalArgumentException("Invalid response type: " + type);
+ }
+ }
+
+ public enum ResponseType {
+ JSON,
+ XML,
+ TEXT,
+ BIG_TEXT
+ }
+
+}
diff --git a/http/http-advanced-reactive/src/main/resources/big_sample.txt b/http/http-advanced-reactive/src/main/resources/big_sample.txt
new file mode 100644
index 0000000000..7af2211568
--- /dev/null
+++ b/http/http-advanced-reactive/src/main/resources/big_sample.txt
@@ -0,0 +1,376 @@
+Here is the text file, rewritten with more details:
+
+This file contains exactly 76936 bytes of text. It is a simple and convenient way for you to acquire a file that is close to 76936 bytes in size. The file serves as a useful tool for testing, calibrating, or verifying the performance of systems or software that are designed to handle files of a certain size.
+
+You are free to use this file for any purpose you like, as long as you adhere to the terms of the license included at the end of this file. You may use the file for personal or commercial purposes, and you may modify the contents of the file to suit your needs. However, you may not distribute any modified versions of the file without our permission.
+
+This file contains exactly 76936 bytes of text. It is a simple and convenient way for you to acquire a file that is close to 76936 bytes in size. The file serves as a useful tool for testing, calibrating, or verifying the performance of systems or software that are designed to handle files of a certain size.
+
+You are free to use this file for any purpose you like, as long as you adhere to the terms of the license included at the end of this file. You may use the file for personal or commercial purposes, and you may modify the contents of the file to suit your needs. However, you may not distribute any modified versions of the file without our permission.
+This file contains exactly 76936 bytes of text. It is a simple and convenient way for you to acquire a file that is close to 76936 bytes in size. The file serves as a useful tool for testing, calibrating, or verifying the performance of systems or software that are designed to handle files of a certain size.
+
+You are free to use this file for any purpose you like, as long as you adhere to the terms of the license included at the end of this file. You may use the file for personal or commercial purposes, and you may modify the contents of the file to suit your needs. However, you may not distribute any modified versions of the file without our permission.
+This file contains exactly 76936 bytes of text. It is a simple and convenient way for you to acquire a file that is close to 76936 bytes in size. The file serves as a useful tool for testing, calibrating, or verifying the performance of systems or software that are designed to handle files of a certain size.
+
+You are free to use this file for any purpose you like, as long as you adhere to the terms of the license included at the end of this file. You may use the file for personal or commercial purposes, and you may modify the contents of the file to suit your needs. However, you may not distribute any modified versions of the file without our permission.
+This file contains exactly 76936 bytes of text. It is a simple and convenient way for you to acquire a file that is close to 76936 bytes in size. The file serves as a useful tool for testing, calibrating, or verifying the performance of systems or software that are designed to handle files of a certain size.
+
+You are free to use this file for any purpose you like, as long as you adhere to the terms of the license included at the end of this file. You may use the file for personal or commercial purposes, and you may modify the contents of the file to suit your needs. However, you may not distribute any modified versions of the file without our permission.
+This file contains exactly 76936 bytes of text. It is a simple and convenient way for you to acquire a file that is close to 76936 bytes in size. The file serves as a useful tool for testing, calibrating, or verifying the performance of systems or software that are designed to handle files of a certain size.
+
+You are free to use this file for any purpose you like, as long as you adhere to the terms of the license included at the end of this file. You may use the file for personal or commercial purposes, and you may modify the contents of the file to suit your needs. However, you may not distribute any modified versions of the file without our permission.
+This file contains exactly 76936 bytes of text. It is a simple and convenient way for you to acquire a file that is close to 76936 bytes in size. The file serves as a useful tool for testing, calibrating, or verifying the performance of systems or software that are designed to handle files of a certain size.
+
+You are free to use this file for any purpose you like, as long as you adhere to the terms of the license included at the end of this file. You may use the file for personal or commercial purposes, and you may modify the contents of the file to suit your needs. However, you may not distribute any modified versions of the file without our permission.
+This file contains exactly 76936 bytes of text. It is a simple and convenient way for you to acquire a file that is close to 76936 bytes in size. The file serves as a useful tool for testing, calibrating, or verifying the performance of systems or software that are designed to handle files of a certain size.
+
+You are free to use this file for any purpose you like, as long as you adhere to the terms of the license included at the end of this file. You may use the file for personal or commercial purposes, and you may modify the contents of the file to suit your needs. However, you may not distribute any modified versions of the file without our permission.
+This file contains exactly 76936 bytes of text. It is a simple and convenient way for you to acquire a file that is close to 76936 bytes in size. The file serves as a useful tool for testing, calibrating, or verifying the performance of systems or software that are designed to handle files of a certain size.
+
+You are free to use this file for any purpose you like, as long as you adhere to the terms of the license included at the end of this file. You may use the file for personal or commercial purposes, and you may modify the contents of the file to suit your needs. However, you may not distribute any modified versions of the file without our permission.
+This file contains exactly 76936 bytes of text. It is a simple and convenient way for you to acquire a file that is close to 76936 bytes in size. The file serves as a useful tool for testing, calibrating, or verifying the performance of systems or software that are designed to handle files of a certain size.
+
+You are free to use this file for any purpose you like, as long as you adhere to the terms of the license included at the end of this file. You may use the file for personal or commercial purposes, and you may modify the contents of the file to suit your needs. However, you may not distribute any modified versions of the file without our permission.
+This file contains exactly 76936 bytes of text. It is a simple and convenient way for you to acquire a file that is close to 76936 bytes in size. The file serves as a useful tool for testing, calibrating, or verifying the performance of systems or software that are designed to handle files of a certain size.
+
+You are free to use this file for any purpose you like, as long as you adhere to the terms of the license included at the end of this file. You may use the file for personal or commercial purposes, and you may modify the contents of the file to suit your needs. However, you may not distribute any modified versions of the file without our permission.
+This file contains exactly 76936 bytes of text. It is a simple and convenient way for you to acquire a file that is close to 76936 bytes in size. The file serves as a useful tool for testing, calibrating, or verifying the performance of systems or software that are designed to handle files of a certain size.
+
+You are free to use this file for any purpose you like, as long as you adhere to the terms of the license included at the end of this file. You may use the file for personal or commercial purposes, and you may modify the contents of the file to suit your needs. However, you may not distribute any modified versions of the file without our permission.
+This file contains exactly 76936 bytes of text. It is a simple and convenient way for you to acquire a file that is close to 76936 bytes in size. The file serves as a useful tool for testing, calibrating, or verifying the performance of systems or software that are designed to handle files of a certain size.
+You are free to use this file for any purpose you like, as long as you adhere to the terms of the license included at the end of this file. You may use the file for personal or commercial purposes, and you may modify the contents of the file to suit your needs. However, you may not distribute any modified versions of the file without our permission.
+This file contains exactly 76936 bytes of text. It is a simple and convenient way for you to acquire a file that is close to 76936 bytes in size. The file serves as a useful tool for testing, calibrating, or verifying the performance of systems or software that are designed to handle files of a certain size.
+You are free to use this file for any purpose you like, as long as you adhere to the terms of the license included at the end of this file. You may use the file for personal or commercial purposes, and you may modify the contents of the file to suit your needs. However, you may not distribute any modified versions of the file without our permission.
+This file contains exactly 76936 bytes of text. It is a simple and convenient way for you to acquire a file that is close to 76936 bytes in size. The file serves as a useful tool for testing, calibrating, or verifying the performance of systems or software that are designed to handle files of a certain size.
+
+
+Here is the text file, rewritten with more details:
+
+This file contains exactly 76936 bytes of text. It is a simple and convenient way for you to acquire a file that is close to 76936 bytes in size. The file serves as a useful tool for testing, calibrating, or verifying the performance of systems or software that are designed to handle files of a certain size.
+
+You are free to use this file for any purpose you like, as long as you adhere to the terms of the license included at the end of this file. You may use the file for personal or commercial purposes, and you may modify the contents of the file to suit your needs. However, you may not distribute any modified versions of the file without our permission.
+
+This file contains exactly 76936 bytes of text. It is a simple and convenient way for you to acquire a file that is close to 76936 bytes in size. The file serves as a useful tool for testing, calibrating, or verifying the performance of systems or software that are designed to handle files of a certain size.
+
+You are free to use this file for any purpose you like, as long as you adhere to the terms of the license included at the end of this file. You may use the file for personal or commercial purposes, and you may modify the contents of the file to suit your needs. However, you may not distribute any modified versions of the file without our permission.
+This file contains exactly 76936 bytes of text. It is a simple and convenient way for you to acquire a file that is close to 76936 bytes in size. The file serves as a useful tool for testing, calibrating, or verifying the performance of systems or software that are designed to handle files of a certain size.
+
+You are free to use this file for any purpose you like, as long as you adhere to the terms of the license included at the end of this file. You may use the file for personal or commercial purposes, and you may modify the contents of the file to suit your needs. However, you may not distribute any modified versions of the file without our permission.
+This file contains exactly 76936 bytes of text. It is a simple and convenient way for you to acquire a file that is close to 76936 bytes in size. The file serves as a useful tool for testing, calibrating, or verifying the performance of systems or software that are designed to handle files of a certain size.
+
+You are free to use this file for any purpose you like, as long as you adhere to the terms of the license included at the end of this file. You may use the file for personal or commercial purposes, and you may modify the contents of the file to suit your needs. However, you may not distribute any modified versions of the file without our permission.
+This file contains exactly 76936 bytes of text. It is a simple and convenient way for you to acquire a file that is close to 76936 bytes in size. The file serves as a useful tool for testing, calibrating, or verifying the performance of systems or software that are designed to handle files of a certain size.
+
+You are free to use this file for any purpose you like, as long as you adhere to the terms of the license included at the end of this file. You may use the file for personal or commercial purposes, and you may modify the contents of the file to suit your needs. However, you may not distribute any modified versions of the file without our permission.
+This file contains exactly 76936 bytes of text. It is a simple and convenient way for you to acquire a file that is close to 76936 bytes in size. The file serves as a useful tool for testing, calibrating, or verifying the performance of systems or software that are designed to handle files of a certain size.
+
+You are free to use this file for any purpose you like, as long as you adhere to the terms of the license included at the end of this file. You may use the file for personal or commercial purposes, and you may modify the contents of the file to suit your needs. However, you may not distribute any modified versions of the file without our permission.
+This file contains exactly 76936 bytes of text. It is a simple and convenient way for you to acquire a file that is close to 76936 bytes in size. The file serves as a useful tool for testing, calibrating, or verifying the performance of systems or software that are designed to handle files of a certain size.
+
+You are free to use this file for any purpose you like, as long as you adhere to the terms of the license included at the end of this file. You may use the file for personal or commercial purposes, and you may modify the contents of the file to suit your needs. However, you may not distribute any modified versions of the file without our permission.
+This file contains exactly 76936 bytes of text. It is a simple and convenient way for you to acquire a file that is close to 76936 bytes in size. The file serves as a useful tool for testing, calibrating, or verifying the performance of systems or software that are designed to handle files of a certain size.
+
+You are free to use this file for any purpose you like, as long as you adhere to the terms of the license included at the end of this file. You may use the file for personal or commercial purposes, and you may modify the contents of the file to suit your needs. However, you may not distribute any modified versions of the file without our permission.
+This file contains exactly 76936 bytes of text. It is a simple and convenient way for you to acquire a file that is close to 76936 bytes in size. The file serves as a useful tool for testing, calibrating, or verifying the performance of systems or software that are designed to handle files of a certain size.
+
+You are free to use this file for any purpose you like, as long as you adhere to the terms of the license included at the end of this file. You may use the file for personal or commercial purposes, and you may modify the contents of the file to suit your needs. However, you may not distribute any modified versions of the file without our permission.
+This file contains exactly 76936 bytes of text. It is a simple and convenient way for you to acquire a file that is close to 76936 bytes in size. The file serves as a useful tool for testing, calibrating, or verifying the performance of systems or software that are designed to handle files of a certain size.
+
+You are free to use this file for any purpose you like, as long as you adhere to the terms of the license included at the end of this file. You may use the file for personal or commercial purposes, and you may modify the contents of the file to suit your needs. However, you may not distribute any modified versions of the file without our permission.
+This file contains exactly 76936 bytes of text. It is a simple and convenient way for you to acquire a file that is close to 76936 bytes in size. The file serves as a useful tool for testing, calibrating, or verifying the performance of systems or software that are designed to handle files of a certain size.
+
+You are free to use this file for any purpose you like, as long as you adhere to the terms of the license included at the end of this file. You may use the file for personal or commercial purposes, and you may modify the contents of the file to suit your needs. However, you may not distribute any modified versions of the file without our permission.
+This file contains exactly 76936 bytes of text. It is a simple and convenient way for you to acquire a file that is close to 76936 bytes in size. The file serves as a useful tool for testing, calibrating, or verifying the performance of systems or software that are designed to handle files of a certain size.
+
+You are free to use this file for any purpose you like, as long as you adhere to the terms of the license included at the end of this file. You may use the file for personal or commercial purposes, and you may modify the contents of the file to suit your needs. However, you may not distribute any modified versions of the file without our permission.
+This file contains exactly 76936 bytes of text. It is a simple and convenient way for you to acquire a file that is close to 76936 bytes in size. The file serves as a useful tool for testing, calibrating, or verifying the performance of systems or software that are designed to handle files of a certain size.
+You are free to use this file for any purpose you like, as long as you adhere to the terms of the license included at the end of this file. You may use the file for personal or commercial purposes, and you may modify the contents of the file to suit your needs. However, you may not distribute any modified versions of the file without our permission.
+This file contains exactly 76936 bytes of text. It is a simple and convenient way for you to acquire a file that is close to 76936 bytes in size. The file serves as a useful tool for testing, calibrating, or verifying the performance of systems or software that are designed to handle files of a certain size.
+You are free to use this file for any purpose you like, as long as you adhere to the terms of the license included at the end of this file. You may use the file for personal or commercial purposes, and you may modify the contents of the file to suit your needs. However, you may not distribute any modified versions of the file without our permission.
+This file contains exactly 76936 bytes of text. It is a simple and convenient way for you to acquire a file that is close to 76936 bytes in size. The file serves as a useful tool for testing, calibrating, or verifying the performance of systems or software that are designed to handle files of a certain size.
+
+
+
+Here is the text file, rewritten with more details:
+
+This file contains exactly 76936 bytes of text. It is a simple and convenient way for you to acquire a file that is close to 76936 bytes in size. The file serves as a useful tool for testing, calibrating, or verifying the performance of systems or software that are designed to handle files of a certain size.
+
+You are free to use this file for any purpose you like, as long as you adhere to the terms of the license included at the end of this file. You may use the file for personal or commercial purposes, and you may modify the contents of the file to suit your needs. However, you may not distribute any modified versions of the file without our permission.
+
+This file contains exactly 76936 bytes of text. It is a simple and convenient way for you to acquire a file that is close to 76936 bytes in size. The file serves as a useful tool for testing, calibrating, or verifying the performance of systems or software that are designed to handle files of a certain size.
+
+You are free to use this file for any purpose you like, as long as you adhere to the terms of the license included at the end of this file. You may use the file for personal or commercial purposes, and you may modify the contents of the file to suit your needs. However, you may not distribute any modified versions of the file without our permission.
+This file contains exactly 76936 bytes of text. It is a simple and convenient way for you to acquire a file that is close to 76936 bytes in size. The file serves as a useful tool for testing, calibrating, or verifying the performance of systems or software that are designed to handle files of a certain size.
+
+You are free to use this file for any purpose you like, as long as you adhere to the terms of the license included at the end of this file. You may use the file for personal or commercial purposes, and you may modify the contents of the file to suit your needs. However, you may not distribute any modified versions of the file without our permission.
+This file contains exactly 76936 bytes of text. It is a simple and convenient way for you to acquire a file that is close to 76936 bytes in size. The file serves as a useful tool for testing, calibrating, or verifying the performance of systems or software that are designed to handle files of a certain size.
+
+You are free to use this file for any purpose you like, as long as you adhere to the terms of the license included at the end of this file. You may use the file for personal or commercial purposes, and you may modify the contents of the file to suit your needs. However, you may not distribute any modified versions of the file without our permission.
+This file contains exactly 76936 bytes of text. It is a simple and convenient way for you to acquire a file that is close to 76936 bytes in size. The file serves as a useful tool for testing, calibrating, or verifying the performance of systems or software that are designed to handle files of a certain size.
+
+You are free to use this file for any purpose you like, as long as you adhere to the terms of the license included at the end of this file. You may use the file for personal or commercial purposes, and you may modify the contents of the file to suit your needs. However, you may not distribute any modified versions of the file without our permission.
+This file contains exactly 76936 bytes of text. It is a simple and convenient way for you to acquire a file that is close to 76936 bytes in size. The file serves as a useful tool for testing, calibrating, or verifying the performance of systems or software that are designed to handle files of a certain size.
+
+You are free to use this file for any purpose you like, as long as you adhere to the terms of the license included at the end of this file. You may use the file for personal or commercial purposes, and you may modify the contents of the file to suit your needs. However, you may not distribute any modified versions of the file without our permission.
+This file contains exactly 76936 bytes of text. It is a simple and convenient way for you to acquire a file that is close to 76936 bytes in size. The file serves as a useful tool for testing, calibrating, or verifying the performance of systems or software that are designed to handle files of a certain size.
+
+You are free to use this file for any purpose you like, as long as you adhere to the terms of the license included at the end of this file. You may use the file for personal or commercial purposes, and you may modify the contents of the file to suit your needs. However, you may not distribute any modified versions of the file without our permission.
+This file contains exactly 76936 bytes of text. It is a simple and convenient way for you to acquire a file that is close to 76936 bytes in size. The file serves as a useful tool for testing, calibrating, or verifying the performance of systems or software that are designed to handle files of a certain size.
+
+You are free to use this file for any purpose you like, as long as you adhere to the terms of the license included at the end of this file. You may use the file for personal or commercial purposes, and you may modify the contents of the file to suit your needs. However, you may not distribute any modified versions of the file without our permission.
+This file contains exactly 76936 bytes of text. It is a simple and convenient way for you to acquire a file that is close to 76936 bytes in size. The file serves as a useful tool for testing, calibrating, or verifying the performance of systems or software that are designed to handle files of a certain size.
+
+You are free to use this file for any purpose you like, as long as you adhere to the terms of the license included at the end of this file. You may use the file for personal or commercial purposes, and you may modify the contents of the file to suit your needs. However, you may not distribute any modified versions of the file without our permission.
+This file contains exactly 76936 bytes of text. It is a simple and convenient way for you to acquire a file that is close to 76936 bytes in size. The file serves as a useful tool for testing, calibrating, or verifying the performance of systems or software that are designed to handle files of a certain size.
+
+You are free to use this file for any purpose you like, as long as you adhere to the terms of the license included at the end of this file. You may use the file for personal or commercial purposes, and you may modify the contents of the file to suit your needs. However, you may not distribute any modified versions of the file without our permission.
+This file contains exactly 76936 bytes of text. It is a simple and convenient way for you to acquire a file that is close to 76936 bytes in size. The file serves as a useful tool for testing, calibrating, or verifying the performance of systems or software that are designed to handle files of a certain size.
+
+You are free to use this file for any purpose you like, as long as you adhere to the terms of the license included at the end of this file. You may use the file for personal or commercial purposes, and you may modify the contents of the file to suit your needs. However, you may not distribute any modified versions of the file without our permission.
+This file contains exactly 76936 bytes of text. It is a simple and convenient way for you to acquire a file that is close to 76936 bytes in size. The file serves as a useful tool for testing, calibrating, or verifying the performance of systems or software that are designed to handle files of a certain size.
+
+You are free to use this file for any purpose you like, as long as you adhere to the terms of the license included at the end of this file. You may use the file for personal or commercial purposes, and you may modify the contents of the file to suit your needs. However, you may not distribute any modified versions of the file without our permission.
+This file contains exactly 76936 bytes of text. It is a simple and convenient way for you to acquire a file that is close to 76936 bytes in size. The file serves as a useful tool for testing, calibrating, or verifying the performance of systems or software that are designed to handle files of a certain size.
+You are free to use this file for any purpose you like, as long as you adhere to the terms of the license included at the end of this file. You may use the file for personal or commercial purposes, and you may modify the contents of the file to suit your needs. However, you may not distribute any modified versions of the file without our permission.
+This file contains exactly 76936 bytes of text. It is a simple and convenient way for you to acquire a file that is close to 76936 bytes in size. The file serves as a useful tool for testing, calibrating, or verifying the performance of systems or software that are designed to handle files of a certain size.
+You are free to use this file for any purpose you like, as long as you adhere to the terms of the license included at the end of this file. You may use the file for personal or commercial purposes, and you may modify the contents of the file to suit your needs. However, you may not distribute any modified versions of the file without our permission.
+This file contains exactly 76936 bytes of text. It is a simple and convenient way for you to acquire a file that is close to 76936 bytes in size. The file serves as a useful tool for testing, calibrating, or verifying the performance of systems or software that are designed to handle files of a certain size.
+
+
+
+Here is the text file, rewritten with more details:
+
+This file contains exactly 76936 bytes of text. It is a simple and convenient way for you to acquire a file that is close to 76936 bytes in size. The file serves as a useful tool for testing, calibrating, or verifying the performance of systems or software that are designed to handle files of a certain size.
+
+You are free to use this file for any purpose you like, as long as you adhere to the terms of the license included at the end of this file. You may use the file for personal or commercial purposes, and you may modify the contents of the file to suit your needs. However, you may not distribute any modified versions of the file without our permission.
+
+This file contains exactly 76936 bytes of text. It is a simple and convenient way for you to acquire a file that is close to 76936 bytes in size. The file serves as a useful tool for testing, calibrating, or verifying the performance of systems or software that are designed to handle files of a certain size.
+
+You are free to use this file for any purpose you like, as long as you adhere to the terms of the license included at the end of this file. You may use the file for personal or commercial purposes, and you may modify the contents of the file to suit your needs. However, you may not distribute any modified versions of the file without our permission.
+This file contains exactly 76936 bytes of text. It is a simple and convenient way for you to acquire a file that is close to 76936 bytes in size. The file serves as a useful tool for testing, calibrating, or verifying the performance of systems or software that are designed to handle files of a certain size.
+
+You are free to use this file for any purpose you like, as long as you adhere to the terms of the license included at the end of this file. You may use the file for personal or commercial purposes, and you may modify the contents of the file to suit your needs. However, you may not distribute any modified versions of the file without our permission.
+This file contains exactly 76936 bytes of text. It is a simple and convenient way for you to acquire a file that is close to 76936 bytes in size. The file serves as a useful tool for testing, calibrating, or verifying the performance of systems or software that are designed to handle files of a certain size.
+
+You are free to use this file for any purpose you like, as long as you adhere to the terms of the license included at the end of this file. You may use the file for personal or commercial purposes, and you may modify the contents of the file to suit your needs. However, you may not distribute any modified versions of the file without our permission.
+This file contains exactly 76936 bytes of text. It is a simple and convenient way for you to acquire a file that is close to 76936 bytes in size. The file serves as a useful tool for testing, calibrating, or verifying the performance of systems or software that are designed to handle files of a certain size.
+
+You are free to use this file for any purpose you like, as long as you adhere to the terms of the license included at the end of this file. You may use the file for personal or commercial purposes, and you may modify the contents of the file to suit your needs. However, you may not distribute any modified versions of the file without our permission.
+This file contains exactly 76936 bytes of text. It is a simple and convenient way for you to acquire a file that is close to 76936 bytes in size. The file serves as a useful tool for testing, calibrating, or verifying the performance of systems or software that are designed to handle files of a certain size.
+
+You are free to use this file for any purpose you like, as long as you adhere to the terms of the license included at the end of this file. You may use the file for personal or commercial purposes, and you may modify the contents of the file to suit your needs. However, you may not distribute any modified versions of the file without our permission.
+This file contains exactly 76936 bytes of text. It is a simple and convenient way for you to acquire a file that is close to 76936 bytes in size. The file serves as a useful tool for testing, calibrating, or verifying the performance of systems or software that are designed to handle files of a certain size.
+
+You are free to use this file for any purpose you like, as long as you adhere to the terms of the license included at the end of this file. You may use the file for personal or commercial purposes, and you may modify the contents of the file to suit your needs. However, you may not distribute any modified versions of the file without our permission.
+This file contains exactly 76936 bytes of text. It is a simple and convenient way for you to acquire a file that is close to 76936 bytes in size. The file serves as a useful tool for testing, calibrating, or verifying the performance of systems or software that are designed to handle files of a certain size.
+
+You are free to use this file for any purpose you like, as long as you adhere to the terms of the license included at the end of this file. You may use the file for personal or commercial purposes, and you may modify the contents of the file to suit your needs. However, you may not distribute any modified versions of the file without our permission.
+This file contains exactly 76936 bytes of text. It is a simple and convenient way for you to acquire a file that is close to 76936 bytes in size. The file serves as a useful tool for testing, calibrating, or verifying the performance of systems or software that are designed to handle files of a certain size.
+
+You are free to use this file for any purpose you like, as long as you adhere to the terms of the license included at the end of this file. You may use the file for personal or commercial purposes, and you may modify the contents of the file to suit your needs. However, you may not distribute any modified versions of the file without our permission.
+This file contains exactly 76936 bytes of text. It is a simple and convenient way for you to acquire a file that is close to 76936 bytes in size. The file serves as a useful tool for testing, calibrating, or verifying the performance of systems or software that are designed to handle files of a certain size.
+
+You are free to use this file for any purpose you like, as long as you adhere to the terms of the license included at the end of this file. You may use the file for personal or commercial purposes, and you may modify the contents of the file to suit your needs. However, you may not distribute any modified versions of the file without our permission.
+This file contains exactly 76936 bytes of text. It is a simple and convenient way for you to acquire a file that is close to 76936 bytes in size. The file serves as a useful tool for testing, calibrating, or verifying the performance of systems or software that are designed to handle files of a certain size.
+
+You are free to use this file for any purpose you like, as long as you adhere to the terms of the license included at the end of this file. You may use the file for personal or commercial purposes, and you may modify the contents of the file to suit your needs. However, you may not distribute any modified versions of the file without our permission.
+This file contains exactly 76936 bytes of text. It is a simple and convenient way for you to acquire a file that is close to 76936 bytes in size. The file serves as a useful tool for testing, calibrating, or verifying the performance of systems or software that are designed to handle files of a certain size.
+
+You are free to use this file for any purpose you like, as long as you adhere to the terms of the license included at the end of this file. You may use the file for personal or commercial purposes, and you may modify the contents of the file to suit your needs. However, you may not distribute any modified versions of the file without our permission.
+This file contains exactly 76936 bytes of text. It is a simple and convenient way for you to acquire a file that is close to 76936 bytes in size. The file serves as a useful tool for testing, calibrating, or verifying the performance of systems or software that are designed to handle files of a certain size.
+You are free to use this file for any purpose you like, as long as you adhere to the terms of the license included at the end of this file. You may use the file for personal or commercial purposes, and you may modify the contents of the file to suit your needs. However, you may not distribute any modified versions of the file without our permission.
+This file contains exactly 76936 bytes of text. It is a simple and convenient way for you to acquire a file that is close to 76936 bytes in size. The file serves as a useful tool for testing, calibrating, or verifying the performance of systems or software that are designed to handle files of a certain size.
+You are free to use this file for any purpose you like, as long as you adhere to the terms of the license included at the end of this file. You may use the file for personal or commercial purposes, and you may modify the contents of the file to suit your needs. However, you may not distribute any modified versions of the file without our permission.
+This file contains exactly 76936 bytes of text. It is a simple and convenient way for you to acquire a file that is close to 76936 bytes in size. The file serves as a useful tool for testing, calibrating, or verifying the performance of systems or software that are designed to handle files of a certain size.
+
+
+
+Here is the text file, rewritten with more details:
+
+This file contains exactly 76936 bytes of text. It is a simple and convenient way for you to acquire a file that is close to 76936 bytes in size. The file serves as a useful tool for testing, calibrating, or verifying the performance of systems or software that are designed to handle files of a certain size.
+
+You are free to use this file for any purpose you like, as long as you adhere to the terms of the license included at the end of this file. You may use the file for personal or commercial purposes, and you may modify the contents of the file to suit your needs. However, you may not distribute any modified versions of the file without our permission.
+
+This file contains exactly 76936 bytes of text. It is a simple and convenient way for you to acquire a file that is close to 76936 bytes in size. The file serves as a useful tool for testing, calibrating, or verifying the performance of systems or software that are designed to handle files of a certain size.
+
+You are free to use this file for any purpose you like, as long as you adhere to the terms of the license included at the end of this file. You may use the file for personal or commercial purposes, and you may modify the contents of the file to suit your needs. However, you may not distribute any modified versions of the file without our permission.
+This file contains exactly 76936 bytes of text. It is a simple and convenient way for you to acquire a file that is close to 76936 bytes in size. The file serves as a useful tool for testing, calibrating, or verifying the performance of systems or software that are designed to handle files of a certain size.
+
+You are free to use this file for any purpose you like, as long as you adhere to the terms of the license included at the end of this file. You may use the file for personal or commercial purposes, and you may modify the contents of the file to suit your needs. However, you may not distribute any modified versions of the file without our permission.
+This file contains exactly 76936 bytes of text. It is a simple and convenient way for you to acquire a file that is close to 76936 bytes in size. The file serves as a useful tool for testing, calibrating, or verifying the performance of systems or software that are designed to handle files of a certain size.
+
+You are free to use this file for any purpose you like, as long as you adhere to the terms of the license included at the end of this file. You may use the file for personal or commercial purposes, and you may modify the contents of the file to suit your needs. However, you may not distribute any modified versions of the file without our permission.
+This file contains exactly 76936 bytes of text. It is a simple and convenient way for you to acquire a file that is close to 76936 bytes in size. The file serves as a useful tool for testing, calibrating, or verifying the performance of systems or software that are designed to handle files of a certain size.
+
+You are free to use this file for any purpose you like, as long as you adhere to the terms of the license included at the end of this file. You may use the file for personal or commercial purposes, and you may modify the contents of the file to suit your needs. However, you may not distribute any modified versions of the file without our permission.
+This file contains exactly 76936 bytes of text. It is a simple and convenient way for you to acquire a file that is close to 76936 bytes in size. The file serves as a useful tool for testing, calibrating, or verifying the performance of systems or software that are designed to handle files of a certain size.
+
+You are free to use this file for any purpose you like, as long as you adhere to the terms of the license included at the end of this file. You may use the file for personal or commercial purposes, and you may modify the contents of the file to suit your needs. However, you may not distribute any modified versions of the file without our permission.
+This file contains exactly 76936 bytes of text. It is a simple and convenient way for you to acquire a file that is close to 76936 bytes in size. The file serves as a useful tool for testing, calibrating, or verifying the performance of systems or software that are designed to handle files of a certain size.
+
+You are free to use this file for any purpose you like, as long as you adhere to the terms of the license included at the end of this file. You may use the file for personal or commercial purposes, and you may modify the contents of the file to suit your needs. However, you may not distribute any modified versions of the file without our permission.
+This file contains exactly 76936 bytes of text. It is a simple and convenient way for you to acquire a file that is close to 76936 bytes in size. The file serves as a useful tool for testing, calibrating, or verifying the performance of systems or software that are designed to handle files of a certain size.
+
+You are free to use this file for any purpose you like, as long as you adhere to the terms of the license included at the end of this file. You may use the file for personal or commercial purposes, and you may modify the contents of the file to suit your needs. However, you may not distribute any modified versions of the file without our permission.
+This file contains exactly 76936 bytes of text. It is a simple and convenient way for you to acquire a file that is close to 76936 bytes in size. The file serves as a useful tool for testing, calibrating, or verifying the performance of systems or software that are designed to handle files of a certain size.
+
+You are free to use this file for any purpose you like, as long as you adhere to the terms of the license included at the end of this file. You may use the file for personal or commercial purposes, and you may modify the contents of the file to suit your needs. However, you may not distribute any modified versions of the file without our permission.
+This file contains exactly 76936 bytes of text. It is a simple and convenient way for you to acquire a file that is close to 76936 bytes in size. The file serves as a useful tool for testing, calibrating, or verifying the performance of systems or software that are designed to handle files of a certain size.
+
+You are free to use this file for any purpose you like, as long as you adhere to the terms of the license included at the end of this file. You may use the file for personal or commercial purposes, and you may modify the contents of the file to suit your needs. However, you may not distribute any modified versions of the file without our permission.
+This file contains exactly 76936 bytes of text. It is a simple and convenient way for you to acquire a file that is close to 76936 bytes in size. The file serves as a useful tool for testing, calibrating, or verifying the performance of systems or software that are designed to handle files of a certain size.
+
+You are free to use this file for any purpose you like, as long as you adhere to the terms of the license included at the end of this file. You may use the file for personal or commercial purposes, and you may modify the contents of the file to suit your needs. However, you may not distribute any modified versions of the file without our permission.
+This file contains exactly 76936 bytes of text. It is a simple and convenient way for you to acquire a file that is close to 76936 bytes in size. The file serves as a useful tool for testing, calibrating, or verifying the performance of systems or software that are designed to handle files of a certain size.
+
+You are free to use this file for any purpose you like, as long as you adhere to the terms of the license included at the end of this file. You may use the file for personal or commercial purposes, and you may modify the contents of the file to suit your needs. However, you may not distribute any modified versions of the file without our permission.
+This file contains exactly 76936 bytes of text. It is a simple and convenient way for you to acquire a file that is close to 76936 bytes in size. The file serves as a useful tool for testing, calibrating, or verifying the performance of systems or software that are designed to handle files of a certain size.
+You are free to use this file for any purpose you like, as long as you adhere to the terms of the license included at the end of this file. You may use the file for personal or commercial purposes, and you may modify the contents of the file to suit your needs. However, you may not distribute any modified versions of the file without our permission.
+This file contains exactly 76936 bytes of text. It is a simple and convenient way for you to acquire a file that is close to 76936 bytes in size. The file serves as a useful tool for testing, calibrating, or verifying the performance of systems or software that are designed to handle files of a certain size.
+You are free to use this file for any purpose you like, as long as you adhere to the terms of the license included at the end of this file. You may use the file for personal or commercial purposes, and you may modify the contents of the file to suit your needs. However, you may not distribute any modified versions of the file without our permission.
+This file contains exactly 76936 bytes of text. It is a simple and convenient way for you to acquire a file that is close to 76936 bytes in size. The file serves as a useful tool for testing, calibrating, or verifying the performance of systems or software that are designed to handle files of a certain size.
+
+
+
+Here is the text file, rewritten with more details:
+
+This file contains exactly 76936 bytes of text. It is a simple and convenient way for you to acquire a file that is close to 76936 bytes in size. The file serves as a useful tool for testing, calibrating, or verifying the performance of systems or software that are designed to handle files of a certain size.
+
+You are free to use this file for any purpose you like, as long as you adhere to the terms of the license included at the end of this file. You may use the file for personal or commercial purposes, and you may modify the contents of the file to suit your needs. However, you may not distribute any modified versions of the file without our permission.
+
+This file contains exactly 76936 bytes of text. It is a simple and convenient way for you to acquire a file that is close to 76936 bytes in size. The file serves as a useful tool for testing, calibrating, or verifying the performance of systems or software that are designed to handle files of a certain size.
+
+You are free to use this file for any purpose you like, as long as you adhere to the terms of the license included at the end of this file. You may use the file for personal or commercial purposes, and you may modify the contents of the file to suit your needs. However, you may not distribute any modified versions of the file without our permission.
+This file contains exactly 76936 bytes of text. It is a simple and convenient way for you to acquire a file that is close to 76936 bytes in size. The file serves as a useful tool for testing, calibrating, or verifying the performance of systems or software that are designed to handle files of a certain size.
+
+You are free to use this file for any purpose you like, as long as you adhere to the terms of the license included at the end of this file. You may use the file for personal or commercial purposes, and you may modify the contents of the file to suit your needs. However, you may not distribute any modified versions of the file without our permission.
+This file contains exactly 76936 bytes of text. It is a simple and convenient way for you to acquire a file that is close to 76936 bytes in size. The file serves as a useful tool for testing, calibrating, or verifying the performance of systems or software that are designed to handle files of a certain size.
+
+You are free to use this file for any purpose you like, as long as you adhere to the terms of the license included at the end of this file. You may use the file for personal or commercial purposes, and you may modify the contents of the file to suit your needs. However, you may not distribute any modified versions of the file without our permission.
+This file contains exactly 76936 bytes of text. It is a simple and convenient way for you to acquire a file that is close to 76936 bytes in size. The file serves as a useful tool for testing, calibrating, or verifying the performance of systems or software that are designed to handle files of a certain size.
+
+You are free to use this file for any purpose you like, as long as you adhere to the terms of the license included at the end of this file. You may use the file for personal or commercial purposes, and you may modify the contents of the file to suit your needs. However, you may not distribute any modified versions of the file without our permission.
+This file contains exactly 76936 bytes of text. It is a simple and convenient way for you to acquire a file that is close to 76936 bytes in size. The file serves as a useful tool for testing, calibrating, or verifying the performance of systems or software that are designed to handle files of a certain size.
+
+You are free to use this file for any purpose you like, as long as you adhere to the terms of the license included at the end of this file. You may use the file for personal or commercial purposes, and you may modify the contents of the file to suit your needs. However, you may not distribute any modified versions of the file without our permission.
+This file contains exactly 76936 bytes of text. It is a simple and convenient way for you to acquire a file that is close to 76936 bytes in size. The file serves as a useful tool for testing, calibrating, or verifying the performance of systems or software that are designed to handle files of a certain size.
+
+You are free to use this file for any purpose you like, as long as you adhere to the terms of the license included at the end of this file. You may use the file for personal or commercial purposes, and you may modify the contents of the file to suit your needs. However, you may not distribute any modified versions of the file without our permission.
+This file contains exactly 76936 bytes of text. It is a simple and convenient way for you to acquire a file that is close to 76936 bytes in size. The file serves as a useful tool for testing, calibrating, or verifying the performance of systems or software that are designed to handle files of a certain size.
+
+You are free to use this file for any purpose you like, as long as you adhere to the terms of the license included at the end of this file. You may use the file for personal or commercial purposes, and you may modify the contents of the file to suit your needs. However, you may not distribute any modified versions of the file without our permission.
+This file contains exactly 76936 bytes of text. It is a simple and convenient way for you to acquire a file that is close to 76936 bytes in size. The file serves as a useful tool for testing, calibrating, or verifying the performance of systems or software that are designed to handle files of a certain size.
+
+You are free to use this file for any purpose you like, as long as you adhere to the terms of the license included at the end of this file. You may use the file for personal or commercial purposes, and you may modify the contents of the file to suit your needs. However, you may not distribute any modified versions of the file without our permission.
+This file contains exactly 76936 bytes of text. It is a simple and convenient way for you to acquire a file that is close to 76936 bytes in size. The file serves as a useful tool for testing, calibrating, or verifying the performance of systems or software that are designed to handle files of a certain size.
+
+You are free to use this file for any purpose you like, as long as you adhere to the terms of the license included at the end of this file. You may use the file for personal or commercial purposes, and you may modify the contents of the file to suit your needs. However, you may not distribute any modified versions of the file without our permission.
+This file contains exactly 76936 bytes of text. It is a simple and convenient way for you to acquire a file that is close to 76936 bytes in size. The file serves as a useful tool for testing, calibrating, or verifying the performance of systems or software that are designed to handle files of a certain size.
+
+You are free to use this file for any purpose you like, as long as you adhere to the terms of the license included at the end of this file. You may use the file for personal or commercial purposes, and you may modify the contents of the file to suit your needs. However, you may not distribute any modified versions of the file without our permission.
+This file contains exactly 76936 bytes of text. It is a simple and convenient way for you to acquire a file that is close to 76936 bytes in size. The file serves as a useful tool for testing, calibrating, or verifying the performance of systems or software that are designed to handle files of a certain size.
+
+You are free to use this file for any purpose you like, as long as you adhere to the terms of the license included at the end of this file. You may use the file for personal or commercial purposes, and you may modify the contents of the file to suit your needs. However, you may not distribute any modified versions of the file without our permission.
+This file contains exactly 76936 bytes of text. It is a simple and convenient way for you to acquire a file that is close to 76936 bytes in size. The file serves as a useful tool for testing, calibrating, or verifying the performance of systems or software that are designed to handle files of a certain size.
+You are free to use this file for any purpose you like, as long as you adhere to the terms of the license included at the end of this file. You may use the file for personal or commercial purposes, and you may modify the contents of the file to suit your needs. However, you may not distribute any modified versions of the file without our permission.
+This file contains exactly 76936 bytes of text. It is a simple and convenient way for you to acquire a file that is close to 76936 bytes in size. The file serves as a useful tool for testing, calibrating, or verifying the performance of systems or software that are designed to handle files of a certain size.
+You are free to use this file for any purpose you like, as long as you adhere to the terms of the license included at the end of this file. You may use the file for personal or commercial purposes, and you may modify the contents of the file to suit your needs. However, you may not distribute any modified versions of the file without our permission.
+This file contains exactly 76936 bytes of text. It is a simple and convenient way for you to acquire a file that is close to 76936 bytes in size. The file serves as a useful tool for testing, calibrating, or verifying the performance of systems or software that are designed to handle files of a certain size.
+
+
+
+Here is the text file, rewritten with more details:
+
+This file contains exactly 76936 bytes of text. It is a simple and convenient way for you to acquire a file that is close to 76936 bytes in size. The file serves as a useful tool for testing, calibrating, or verifying the performance of systems or software that are designed to handle files of a certain size.
+
+You are free to use this file for any purpose you like, as long as you adhere to the terms of the license included at the end of this file. You may use the file for personal or commercial purposes, and you may modify the contents of the file to suit your needs. However, you may not distribute any modified versions of the file without our permission.
+
+This file contains exactly 76936 bytes of text. It is a simple and convenient way for you to acquire a file that is close to 76936 bytes in size. The file serves as a useful tool for testing, calibrating, or verifying the performance of systems or software that are designed to handle files of a certain size.
+
+You are free to use this file for any purpose you like, as long as you adhere to the terms of the license included at the end of this file. You may use the file for personal or commercial purposes, and you may modify the contents of the file to suit your needs. However, you may not distribute any modified versions of the file without our permission.
+This file contains exactly 76936 bytes of text. It is a simple and convenient way for you to acquire a file that is close to 76936 bytes in size. The file serves as a useful tool for testing, calibrating, or verifying the performance of systems or software that are designed to handle files of a certain size.
+
+You are free to use this file for any purpose you like, as long as you adhere to the terms of the license included at the end of this file. You may use the file for personal or commercial purposes, and you may modify the contents of the file to suit your needs. However, you may not distribute any modified versions of the file without our permission.
+This file contains exactly 76936 bytes of text. It is a simple and convenient way for you to acquire a file that is close to 76936 bytes in size. The file serves as a useful tool for testing, calibrating, or verifying the performance of systems or software that are designed to handle files of a certain size.
+
+You are free to use this file for any purpose you like, as long as you adhere to the terms of the license included at the end of this file. You may use the file for personal or commercial purposes, and you may modify the contents of the file to suit your needs. However, you may not distribute any modified versions of the file without our permission.
+This file contains exactly 76936 bytes of text. It is a simple and convenient way for you to acquire a file that is close to 76936 bytes in size. The file serves as a useful tool for testing, calibrating, or verifying the performance of systems or software that are designed to handle files of a certain size.
+
+You are free to use this file for any purpose you like, as long as you adhere to the terms of the license included at the end of this file. You may use the file for personal or commercial purposes, and you may modify the contents of the file to suit your needs. However, you may not distribute any modified versions of the file without our permission.
+This file contains exactly 76936 bytes of text. It is a simple and convenient way for you to acquire a file that is close to 76936 bytes in size. The file serves as a useful tool for testing, calibrating, or verifying the performance of systems or software that are designed to handle files of a certain size.
+
+You are free to use this file for any purpose you like, as long as you adhere to the terms of the license included at the end of this file. You may use the file for personal or commercial purposes, and you may modify the contents of the file to suit your needs. However, you may not distribute any modified versions of the file without our permission.
+This file contains exactly 76936 bytes of text. It is a simple and convenient way for you to acquire a file that is close to 76936 bytes in size. The file serves as a useful tool for testing, calibrating, or verifying the performance of systems or software that are designed to handle files of a certain size.
+
+You are free to use this file for any purpose you like, as long as you adhere to the terms of the license included at the end of this file. You may use the file for personal or commercial purposes, and you may modify the contents of the file to suit your needs. However, you may not distribute any modified versions of the file without our permission.
+This file contains exactly 76936 bytes of text. It is a simple and convenient way for you to acquire a file that is close to 76936 bytes in size. The file serves as a useful tool for testing, calibrating, or verifying the performance of systems or software that are designed to handle files of a certain size.
+
+You are free to use this file for any purpose you like, as long as you adhere to the terms of the license included at the end of this file. You may use the file for personal or commercial purposes, and you may modify the contents of the file to suit your needs. However, you may not distribute any modified versions of the file without our permission.
+This file contains exactly 76936 bytes of text. It is a simple and convenient way for you to acquire a file that is close to 76936 bytes in size. The file serves as a useful tool for testing, calibrating, or verifying the performance of systems or software that are designed to handle files of a certain size.
+
+You are free to use this file for any purpose you like, as long as you adhere to the terms of the license included at the end of this file. You may use the file for personal or commercial purposes, and you may modify the contents of the file to suit your needs. However, you may not distribute any modified versions of the file without our permission.
+This file contains exactly 76936 bytes of text. It is a simple and convenient way for you to acquire a file that is close to 76936 bytes in size. The file serves as a useful tool for testing, calibrating, or verifying the performance of systems or software that are designed to handle files of a certain size.
+
+You are free to use this file for any purpose you like, as long as you adhere to the terms of the license included at the end of this file. You may use the file for personal or commercial purposes, and you may modify the contents of the file to suit your needs. However, you may not distribute any modified versions of the file without our permission.
+This file contains exactly 76936 bytes of text. It is a simple and convenient way for you to acquire a file that is close to 76936 bytes in size. The file serves as a useful tool for testing, calibrating, or verifying the performance of systems or software that are designed to handle files of a certain size.
+
+You are free to use this file for any purpose you like, as long as you adhere to the terms of the license included at the end of this file. You may use the file for personal or commercial purposes, and you may modify the contents of the file to suit your needs. However, you may not distribute any modified versions of the file without our permission.
+This file contains exactly 76936 bytes of text. It is a simple and convenient way for you to acquire a file that is close to 76936 bytes in size. The file serves as a useful tool for testing, calibrating, or verifying the performance of systems or software that are designed to handle files of a certain size.
+
+You are free to use this file for any purpose you like, as long as you adhere to the terms of the license included at the end of this file. You may use the file for personal or commercial purposes, and you may modify the contents of the file to suit your needs. However, you may not distribute any modified versions of the file without our permission.
+This file contains exactly 76936 bytes of text. It is a simple and convenient way for you to acquire a file that is close to 76936 bytes in size. The file serves as a useful tool for testing, calibrating, or verifying the performance of systems or software that are designed to handle files of a certain size.
+You are free to use this file for any purpose you like, as long as you adhere to the terms of the license included at the end of this file. You may use the file for personal or commercial purposes, and you may modify the contents of the file to suit your needs. However, you may not distribute any modified versions of the file without our permission.
+This file contains exactly 76936 bytes of text. It is a simple and convenient way for you to acquire a file that is close to 76936 bytes in size. The file serves as a useful tool for testing, calibrating, or verifying the performance of systems or software that are designed to handle files of a certain size.
+You are free to use this file for any purpose you like, as long as you adhere to the terms of the license included at the end of this file. You may use the file for personal or commercial purposes, and you may modify the contents of the file to suit your needs. However, you may not distribute any modified versions of the file without our permission.
+This file contains exactly 76936 bytes of text. It is a simple and convenient way for you to acquire a file that is close to 76936 bytes in size. The file serves as a useful tool for testing, calibrating, or verifying the performance of systems or software that are designed to handle files of a certain size.
+
+
+
+Here is the text file, rewritten with more details:
+
+This file contains exactly 76936 bytes of text. It is a simple and convenient way for you to acquire a file that is close to 76936 bytes in size. The file serves as a useful tool for testing, calibrating, or verifying the performance of systems or software that are designed to handle files of a certain size.
+
+You are free to use this file for any purpose you like, as long as you adhere to the terms of the license included at the end of this file. You may use the file for personal or commercial purposes, and you may modify the contents of the file to suit your needs. However, you may not distribute any modified versions of the file without our permission.
+
+This file contains exactly 76936 bytes of text. It is a simple and convenient way for you to acquire a file that is close to 76936 bytes in size. The file serves as a useful tool for testing, calibrating, or verifying the performance of systems or software that are designed to handle files of a certain size.
+
+You are free to use this file for any purpose you like, as long as you adhere to the terms of the license included at the end of this file. You may use the file for personal or commercial purposes, and you may modify the contents of the file to suit your needs. However, you may not distribute any modified versions of the file without our permission.
+This file contains exactly 76936 bytes of text. It is a simple and convenient way for you to acquire a file that is close to 76936 bytes in size. The file serves as a useful tool for testing, calibrating, or verifying the performance of systems or software that are designed to handle files of a certain size.
+
+You are free to use this file for any purpose you like, as long as you adhere to the terms of the license included at the end of this file. You may use the file for personal or commercial purposes, and you may modify the contents of the file to suit your needs. However, you may not distribute any modified versions of the file without our permission.
+This file contains exactly 76936 bytes of text. It is a simple and convenient way for you to acquire a file that is close to 76936 bytes in size. The file serves as a useful tool for testing, calibrating, or verifying the performance of systems or software that are designed to handle files of a certain size.
+
+You are free to use this file for any purpose you like, as long as you adhere to the terms of the license included at the end of this file. You may use the file for personal or commercial purposes, and you may modify the contents of the file to suit your needs. However, you may not distribute any modified versions of the file without our permission.
+This file contains exactly 76936 bytes of text. It is a simple and convenient way for you to acquire a file that is close to 76936 bytes in size. The file serves as a useful tool for testing, calibrating, or verifying the performance of systems or software that are designed to handle files of a certain size.
+
+You are free to use this file for any purpose you like, as long as you adhere to the terms of the license included at the end of this file. You may use the file for personal or commercial purposes, and you may modify the contents of the file to suit your needs. However, you may not distribute any modified versions of the file without our permission.
+This file contains exactly 76936 bytes of text. It is a simple and convenient way for you to acquire a file that is close to 76936 bytes in size. The file serves as a useful tool for testing, calibrating, or verifying the performance of systems or software that are designed to handle files of a certain size.
+
+You are free to use this file for any purpose you like, as long as you adhere to the terms of the license included at the end of this file. You may use the file for personal or commercial purposes, and you may modify the contents of the file to suit your needs. However, you may not distribute any modified versions of the file without our permission.
+This file contains exactly 76936 bytes of text. It is a simple and convenient way for you to acquire a file that is close to 76936 bytes in size. The file serves as a useful tool for testing, calibrating, or verifying the performance of systems or software that are designed to handle files of a certain size.
+
+You are free to use this file for any purpose you like, as long as you adhere to the terms of the license included at the end of this file. You may use the file for personal or commercial purposes, and you may modify the contents of the file to suit your needs. However, you may not distribute any modified versions of the file without our permission.
+This file contains exactly 76936 bytes of text. It is a simple and convenient way for you to acquire a file that is close to 76936 bytes in size. The file serves as a useful tool for testing, calibrating, or verifying the performance of systems or software that are designed to handle files of a certain size.
+
+You are free to use this file for any purpose you like, as long as you adhere to the terms of the license included at the end of this file. You may use the file for personal or commercial purposes, and you may modify the contents of the file to suit your needs. However, you may not distribute any modified versions of the file without our permission.
+This file contains exactly 76936 bytes of text. It is a simple and convenient way for you to acquire a file that is close to 76936 bytes in size. The file serves as a useful tool for testing, calibrating, or verifying the performance of systems or software that are designed to handle files of a certain size.
+
+You are free to use this file for any purpose you like, as long as you adhere to the terms of the license included at the end of this file. You may use the file for personal or commercial purposes, and you may modify the contents of the file to suit your needs. However, you may not distribute any modified versions of the file without our permission.
+This file contains exactly 76936 bytes of text. It is a simple and convenient way for you to acquire a file that is close to 76936 bytes in size. The file serves as a useful tool for testing, calibrating, or verifying the performance of systems or software that are designed to handle files of a certain size.
+
+You are free to use this file for any purpose you like, as long as you adhere to the terms of the license included at the end of this file. You may use the file for personal or commercial purposes, and you may modify the contents of the file to suit your needs. However, you may not distribute any modified versions of the file without our permission.
+This file contains exactly 76936 bytes of text. It is a simple and convenient way for you to acquire a file that is close to 76936 bytes in size. The file serves as a useful tool for testing, calibrating, or verifying the performance of systems or software that are designed to handle files of a certain size.
+
+You are free to use this file for any purpose you like, as long as you adhere to the terms of the license included at the end of this file. You may use the file for personal or commercial purposes, and you may modify the contents of the file to suit your needs. However, you may not distribute any modified versions of the file without our permission.
+This file contains exactly 76936 bytes of text. It is a simple and convenient way for you to acquire a file that is close to 76936 bytes in size. The file serves as a useful tool for testing, calibrating, or verifying the performance of systems or software that are designed to handle files of a certain size.
+
+You are free to use this file for any purpose you like, as long as you adhere to the terms of the license included at the end of this file. You may use the file for personal or commercial purposes, and you may modify the contents of the file to suit your needs. However, you may not distribute any modified versions of the file without our permission.
+This file contains exactly 76936 bytes of text. It is a simple and convenient way for you to acquire a file that is close to 76936 bytes in size. The file serves as a useful tool for testing, calibrating, or verifying the performance of systems or software that are designed to handle files of a certain size.
+You are free to use this file for any purpose you like, as long as you adhere to the terms of the license included at the end of this file. You may use the file for personal or commercial purposes, and you may modify the contents of the file to suit your needs. However, you may not distribute any modified versions of the file without our permission.
+This file contains exactly 76936 bytes of text. It is a simple and convenient way for you to acquire a file that is close to 76936 bytes in size. The file serves as a useful tool for testing, calibrating, or verifying the performance of systems or software that are designed to handle files of a certain size.
+You are free to use this file for any purpose you like, as long as you adhere to the terms of the license included at the end of this file. You may use the file for personal or commercial purposes, and you may modify the contents of the file to suit your needs. However, you may not distribute any modified versions of the file without our permission.
+This file contains exactly 76936 bytes of text. It is a simple and convenient way for you to acquire a file that is close to 76936 bytes in size. The file serves as a useful tool for testing, calibrating, or verifying the performance of systems or software that are designed to handle files of a certain size.
+
+
+
+
diff --git a/http/http-advanced-reactive/src/main/resources/sample.json b/http/http-advanced-reactive/src/main/resources/sample.json
new file mode 100644
index 0000000000..8abe9d0d4a
--- /dev/null
+++ b/http/http-advanced-reactive/src/main/resources/sample.json
@@ -0,0 +1,22 @@
+{
+ "glossary": {
+ "title": "example glossary",
+ "GlossDiv": {
+ "title": "Hello from a JSON sample",
+ "GlossList": {
+ "GlossEntry": {
+ "ID": "SGML",
+ "SortAs": "SGML",
+ "GlossTerm": "Standard Generalized Markup Language",
+ "Acronym": "SGML",
+ "Abbrev": "ISO 8879:1986",
+ "GlossDef": {
+ "para": "A meta-markup language, used to create markup languages such as DocBook.",
+ "GlossSeeAlso": ["GML", "XML"]
+ },
+ "GlossSee": "markup"
+ }
+ }
+ }
+ }
+}
diff --git a/http/http-advanced-reactive/src/main/resources/sample.txt b/http/http-advanced-reactive/src/main/resources/sample.txt
new file mode 100644
index 0000000000..d0d7776ea9
--- /dev/null
+++ b/http/http-advanced-reactive/src/main/resources/sample.txt
@@ -0,0 +1,2 @@
+Lorem ipsum dolor sit amet, consectetur adipiscing elit. Etiam elementum suscipit augue, eu laoreet arcu feugiat congue. Aenean vestibulum, massa eu vestibulum maximus, urna libero aliquet nisl, eget sodales elit mauris dignissim turpis. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Integer id accumsan libero. Pellentesque tincidunt, tellus et posuere tempor, nibh dolor fermentum odio, et feugiat turpis nunc eu est. Donec egestas maximus nisl, consequat fermentum dolor pharetra eu. Donec quam urna, hendrerit quis ullamcorper eget, consectetur et purus. Donec sed nisi lorem. Ut enim mi, molestie non felis nec, lacinia feugiat risus. Vestibulum finibus justo non aliquet lobortis.
+Nulla ut mauris a libero finibus porta eu id sapien. Phasellus nulla nisi, consectetur vel sodales quis, lobortis vitae lacus. Etiam in diam convallis, commodo tellus ac, finibus sapien. Integer hendrerit, sem ut aliquam faucibus, massa ipsum molestie tellus, et posuere arcu nisi sit amet metus. Nulla nunc elit, semper non arcu quis, consequat mollis massa. Donec ultricies pulvinar elit, in malesuada felis tincidunt eleifend. Cras vehicula felis enim, sit amet porta diam faucibus non. Nullam semper porttitor nibh, in suscipit massa aliquet vitae. Quisque vestibulum tortor tempus sollicitudin sollicitudin. Cras pulvinar consequat ligula, in cursus libero fermentum eget. Cras odio ligula, pulvinar mattis condimentum ac, dictum finibus nunc. Cras sit amet elementum felis, et congue dui. Integer hendrerit placerat sem at imperdiet.
\ No newline at end of file
diff --git a/http/http-advanced-reactive/src/main/resources/sample.xml b/http/http-advanced-reactive/src/main/resources/sample.xml
new file mode 100644
index 0000000000..e0bdad1691
--- /dev/null
+++ b/http/http-advanced-reactive/src/main/resources/sample.xml
@@ -0,0 +1,211 @@
+
+
+
+ Empire Burlesque
+ Bob Dylan
+ USA
+ Columbia
+ 10.90
+ 1985
+
+
+ Hide your heart
+ Bonnie Tyler
+ UK
+ CBS Records
+ 9.90
+ 1988
+
+
+ Greatest Hits
+ Dolly Parton
+ USA
+ RCA
+ 9.90
+ 1982
+
+
+ Still got the blues
+ Gary Moore
+ UK
+ Virgin records
+ 10.20
+ 1990
+
+
+ Eros
+ Eros Ramazzotti
+ EU
+ BMG
+ 9.90
+ 1997
+
+
+ One night only
+ Bee Gees
+ UK
+ Polydor
+ 10.90
+ 1998
+
+
+ Sylvias Mother
+ Dr.Hook
+ UK
+ CBS
+ 8.10
+ 1973
+
+
+ Maggie May
+ Rod Stewart
+ UK
+ Pickwick
+ 8.50
+ 1990
+
+
+ Romanza
+ Andrea Bocelli
+ EU
+ Polydor
+ 10.80
+ 1996
+
+
+ When a man loves a woman
+ Percy Sledge
+ USA
+ Atlantic
+ 8.70
+ 1987
+
+
+ Black angel
+ Savage Rose
+ EU
+ Mega
+ 10.90
+ 1995
+
+
+ 1999 Grammy Nominees
+ Many
+ USA
+ Grammy
+ 10.20
+ 1999
+
+
+ For the good times
+ Kenny Rogers
+ UK
+ Mucik Master
+ 8.70
+ 1995
+
+
+ Big Willie style
+ Will Smith
+ USA
+ Columbia
+ 9.90
+ 1997
+
+
+ Tupelo Honey
+ Van Morrison
+ UK
+ Polydor
+ 8.20
+ 1971
+
+
+ Soulsville
+ Jorn Hoel
+ Norway
+ WEA
+ 7.90
+ 1996
+
+
+ The very best of
+ Cat Stevens
+ UK
+ Island
+ 8.90
+ 1990
+
+
+ Stop
+ Sam Brown
+ UK
+ A and M
+ 8.90
+ 1988
+
+
+ Bridge of Spies
+ T'Pau
+ UK
+ Siren
+ 7.90
+ 1987
+
+
+ Private Dancer
+ Tina Turner
+ UK
+ Capitol
+ 8.90
+ 1983
+
+
+ Midt om natten
+ Kim Larsen
+ EU
+ Medley
+ 7.80
+ 1983
+
+
+ Pavarotti Gala Concert
+ Luciano Pavarotti
+ UK
+ DECCA
+ 9.90
+ 1991
+
+
+ The dock of the bay
+ Otis Redding
+ USA
+ Stax Records
+ 7.90
+ 1968
+
+
+ Picture book
+ Simply Red
+ EU
+ Elektra
+ 7.20
+ 1985
+
+
+ Red
+ The Communards
+ UK
+ London
+ 7.80
+ 1987
+
+
+ Unchain my heart
+ Joe Cocker
+ USA
+ EMI
+ 8.20
+ 1987
+
+
diff --git a/http/http-advanced-reactive/src/test/java/io/quarkus/ts/http/advanced/reactive/Brotli4JHttpIT.java b/http/http-advanced-reactive/src/test/java/io/quarkus/ts/http/advanced/reactive/Brotli4JHttpIT.java
new file mode 100644
index 0000000000..cf708d5be8
--- /dev/null
+++ b/http/http-advanced-reactive/src/test/java/io/quarkus/ts/http/advanced/reactive/Brotli4JHttpIT.java
@@ -0,0 +1,149 @@
+package io.quarkus.ts.http.advanced.reactive;
+
+import static org.hamcrest.MatcherAssert.assertThat;
+import static org.hamcrest.Matchers.containsString;
+import static org.hamcrest.Matchers.is;
+import static org.hamcrest.Matchers.nullValue;
+import static org.junit.jupiter.api.Assertions.assertTrue;
+
+import java.io.IOException;
+import java.io.InputStream;
+
+import jakarta.ws.rs.core.HttpHeaders;
+import jakarta.ws.rs.core.MediaType;
+
+import org.junit.jupiter.api.Tag;
+import org.junit.jupiter.api.Test;
+
+import com.fasterxml.jackson.databind.JsonNode;
+import com.fasterxml.jackson.databind.ObjectMapper;
+
+import io.quarkus.test.bootstrap.RestService;
+import io.quarkus.test.scenarios.QuarkusScenario;
+import io.quarkus.test.services.QuarkusApplication;
+import io.quarkus.test.utils.FileUtils;
+import io.restassured.response.Response;
+
+@Tag("QQE-378")
+@QuarkusScenario
+public class Brotli4JHttpIT {
+ @QuarkusApplication(classes = { Brotli4JHttpServerConfig.class, Brotli4JResource.class,
+ Brotli4JRestMock.class }, properties = "compression.properties")
+ static RestService app = new RestService();
+
+ private final static String DEFAULT_TEXT_PLAIN = Brotli4JResource.DEFAULT_TEXT_PLAIN;
+
+ final static int CONTENT_LENGTH_DEFAULT_TEXT_PLAIN = DEFAULT_TEXT_PLAIN.length();
+
+ private final static String JSON_CONTENT = "Hello from a JSON sample";
+
+ private final static String BROTLI_ENCODING = "br";
+
+ @Test
+ public void checkTextPlainDefaultWithoutBrotli4JEncoding() {
+ app.given()
+ .get("/compression/default/text")
+ .then()
+ .statusCode(200)
+ .and()
+ .header(HttpHeaders.CONTENT_LENGTH, String.valueOf(CONTENT_LENGTH_DEFAULT_TEXT_PLAIN))
+ .header(HttpHeaders.CONTENT_ENCODING, nullValue())
+ .body(is(DEFAULT_TEXT_PLAIN)).log().all();
+ }
+
+ @Test
+ public void checkTextPlainWithtBrotli4J() {
+ int textPlainDataLenght = calculateTextLength("/sample.txt");
+ assertBrotli4JCompression("/compression/text", MediaType.TEXT_PLAIN, BROTLI_ENCODING, BROTLI_ENCODING,
+ textPlainDataLenght);
+ }
+
+ @Test
+ public void checkBigTextPlainWithtBrotli4J() {
+ int textPlainDataLenght = calculateTextLength("/big_sample.txt");
+ assertBrotli4JCompression("/compression/text/big", MediaType.TEXT_PLAIN, BROTLI_ENCODING, BROTLI_ENCODING,
+ textPlainDataLenght);
+ }
+
+ @Test
+ public void checkXmlBrotli4JCompression() {
+ int originalXMLLength = calculateXmlLength();
+ assertBrotli4JCompression("/compression/brotli/xml", MediaType.APPLICATION_XML, BROTLI_ENCODING, BROTLI_ENCODING,
+ originalXMLLength);
+ }
+
+ @Test
+ public void checkJsonBrotli4JCompression() throws IOException {
+ int originalJsonLength = calculateOriginalJsonLength();
+ assertBrotli4JCompression("/compression/brotli/json", MediaType.APPLICATION_JSON, BROTLI_ENCODING, BROTLI_ENCODING,
+ originalJsonLength);
+ }
+
+ @Test
+ public void checkCompressedAndDecompressedWithQuarkus() {
+ testCompressedAndDecompressed("/compression/default/text", DEFAULT_TEXT_PLAIN);
+ }
+
+ @Test
+ public void checkCompressedAndDecompressedJSONWithQuarkus() {
+ testCompressedAndDecompressed("/compression/brotli/json", JSON_CONTENT);
+ }
+
+ @Test
+ public void checkCompressedAndDecompressedXMLWithQuarkus() {
+ testCompressedAndDecompressed("/compression/brotli/xml", "Bob Dylan");
+ }
+
+ public void assertBrotli4JCompression(String path, String contentHeaderType, String acceptHeaderEncoding,
+ String expectedHeaderContentEncoding, int originalContentLength) {
+ Response response = app.given()
+ .when()
+ .contentType(contentHeaderType)
+ .header(HttpHeaders.ACCEPT_ENCODING, acceptHeaderEncoding)
+ .get(path)
+ .then()
+ .statusCode(200)
+ .header(HttpHeaders.CONTENT_ENCODING, expectedHeaderContentEncoding)
+ .extract().response();
+ byte[] responseBody = response.getBody().asByteArray();
+ int compressedContentLength = responseBody.length;
+ assertTrue(compressedContentLength < originalContentLength);
+ }
+
+ private void testCompressedAndDecompressed(String compressionPath, String contentExpected) {
+ Response response = app.given()
+ .header(HttpHeaders.ACCEPT_ENCODING, BROTLI_ENCODING)
+ .get(compressionPath)
+ .then()
+ .statusCode(200)
+ .header(HttpHeaders.CONTENT_ENCODING, BROTLI_ENCODING)
+ .extract().response();
+ byte[] compressedBytes = response.asByteArray();
+
+ Response decompressionResponse = app.given()
+ .header(HttpHeaders.CONTENT_ENCODING, BROTLI_ENCODING)
+ .body(compressedBytes)
+ .post("/compression/decompression")
+ .then()
+ .statusCode(200)
+ .extract().response();
+ assertThat(decompressionResponse.asString(), containsString(contentExpected));
+ }
+
+ private int calculateOriginalJsonLength() throws IOException {
+ try (InputStream inputStream = getClass().getResourceAsStream("/sample.json")) {
+ ObjectMapper objectMapper = new ObjectMapper();
+ JsonNode jsonNode = objectMapper.readTree(inputStream);
+ String jsonString = objectMapper.writeValueAsString(jsonNode);
+ return jsonString.getBytes().length;
+ }
+ }
+
+ private int calculateXmlLength() {
+ return FileUtils.loadFile("/sample.xml").length();
+ }
+
+ private int calculateTextLength(String fileName) {
+ return FileUtils.loadFile(fileName).length();
+ }
+}
diff --git a/http/http-advanced-reactive/src/test/java/io/quarkus/ts/http/advanced/reactive/DevModeBrotli4JHttpIT.java b/http/http-advanced-reactive/src/test/java/io/quarkus/ts/http/advanced/reactive/DevModeBrotli4JHttpIT.java
new file mode 100644
index 0000000000..837c4922e5
--- /dev/null
+++ b/http/http-advanced-reactive/src/test/java/io/quarkus/ts/http/advanced/reactive/DevModeBrotli4JHttpIT.java
@@ -0,0 +1,44 @@
+package io.quarkus.ts.http.advanced.reactive;
+
+import static io.quarkus.ts.http.advanced.reactive.Brotli4JHttpIT.CONTENT_LENGTH_DEFAULT_TEXT_PLAIN;
+import static io.quarkus.ts.http.advanced.reactive.Brotli4JResource.DEFAULT_TEXT_PLAIN;
+import static org.hamcrest.MatcherAssert.assertThat;
+import static org.hamcrest.Matchers.equalTo;
+import static org.hamcrest.Matchers.is;
+import static org.hamcrest.Matchers.nullValue;
+
+import jakarta.ws.rs.core.HttpHeaders;
+import jakarta.ws.rs.core.MediaType;
+
+import org.junit.jupiter.api.Test;
+
+import io.quarkus.test.bootstrap.DevModeQuarkusService;
+import io.quarkus.test.scenarios.QuarkusScenario;
+import io.quarkus.test.services.DevModeQuarkusApplication;
+import io.restassured.response.Response;
+
+@QuarkusScenario
+public class DevModeBrotli4JHttpIT {
+ private static final String COMPRESSION_ENABLED_PROPERTY = "quarkus.http.enable-compression";
+ @DevModeQuarkusApplication(classes = { Brotli4JHttpServerConfig.class, Brotli4JResource.class,
+ Brotli4JRestMock.class }, properties = "compression.properties")
+ static DevModeQuarkusService app = (DevModeQuarkusService) new DevModeQuarkusService()
+ .withProperty(COMPRESSION_ENABLED_PROPERTY, "false");
+
+ @Test
+ public void disableCompression() {
+ Response response = app.given()
+ .when()
+ .contentType(MediaType.TEXT_PLAIN)
+ .header(HttpHeaders.ACCEPT_ENCODING, "br")
+ .get("/compression/default/text")
+ .then()
+ .statusCode(200)
+ .header(HttpHeaders.CONTENT_LENGTH, String.valueOf(CONTENT_LENGTH_DEFAULT_TEXT_PLAIN))
+ .header(HttpHeaders.CONTENT_ENCODING, nullValue())
+ .body(is(DEFAULT_TEXT_PLAIN))
+ .extract().response();
+ assertThat("Body length should not be less than CONTENT_LENGTH_DEFAULT_TEXT_PLAIN",
+ response.body().asString().length(), equalTo(CONTENT_LENGTH_DEFAULT_TEXT_PLAIN));
+ }
+}
diff --git a/http/http-advanced-reactive/src/test/java/io/quarkus/ts/http/advanced/reactive/OpenShiftBrotli4JIT.java b/http/http-advanced-reactive/src/test/java/io/quarkus/ts/http/advanced/reactive/OpenShiftBrotli4JIT.java
new file mode 100644
index 0000000000..4ec62d43e7
--- /dev/null
+++ b/http/http-advanced-reactive/src/test/java/io/quarkus/ts/http/advanced/reactive/OpenShiftBrotli4JIT.java
@@ -0,0 +1,9 @@
+package io.quarkus.ts.http.advanced.reactive;
+
+import io.quarkus.test.scenarios.OpenShiftScenario;
+import io.quarkus.test.scenarios.annotations.DisabledOnNative;
+
+@DisabledOnNative(reason = "Because of https://github.com/quarkusio/quarkus/issues/40533")
+@OpenShiftScenario
+public class OpenShiftBrotli4JIT extends Brotli4JHttpIT {
+}
diff --git a/http/http-advanced-reactive/src/test/resources/compression.properties b/http/http-advanced-reactive/src/test/resources/compression.properties
new file mode 100644
index 0000000000..3f33473375
--- /dev/null
+++ b/http/http-advanced-reactive/src/test/resources/compression.properties
@@ -0,0 +1,6 @@
+pl-container-request-filter.enabled=false
+quarkus.oidc.enabled=false
+quarkus.http.enable-compression=true
+quarkus.http.enable-decompression=true
+quarkus.http.compress-media-types=application/json,text/plain,application/xml
+quarkus.native.resources.includes=sample.txt,sample.json,sample.xml,big_sample.txt