From b7d3958a589c8a14cfff7dd14a99112e4a313be0 Mon Sep 17 00:00:00 2001 From: Michael Edgar Date: Thu, 14 May 2026 16:48:55 -0400 Subject: [PATCH] Bump Quarkus LTS from 3.27 to 3.33, project updates Signed-off-by: Michael Edgar --- .../ConsoleAuthenticationMechanism.java | 8 ++---- .../api/support/TrustedTlsConfiguration.java | 5 ++++ .../console/api/GroupsResourceIT.java | 28 +++++++++++++++---- .../console/api/TopicsResourceIT.java | 27 ++++++++++++++---- pom.xml | 12 +++++++- .../TestBucketExtensionContext.java | 13 ++++----- 6 files changed, 69 insertions(+), 24 deletions(-) diff --git a/api/src/main/java/com/github/streamshub/console/api/security/ConsoleAuthenticationMechanism.java b/api/src/main/java/com/github/streamshub/console/api/security/ConsoleAuthenticationMechanism.java index 195150aa7..8f974a08a 100644 --- a/api/src/main/java/com/github/streamshub/console/api/security/ConsoleAuthenticationMechanism.java +++ b/api/src/main/java/com/github/streamshub/console/api/security/ConsoleAuthenticationMechanism.java @@ -169,11 +169,7 @@ public Uni sendChallenge(RoutingContext context) { var response = context.response(); response.setStatusCode(challengeData.status); - - if (challengeData.headerName != null) { - response.headers().set(challengeData.headerName, challengeData.headerContent); - } - + challengeData.getHeaders().forEach(response.headers()::set); response.headers().set(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_JSON); try { @@ -479,7 +475,7 @@ public PayloadChallengeData(int status, CharSequence headerName, String headerCo } public PayloadChallengeData(ChallengeData data, Object payload) { - super(data.status, data.headerName, data.headerContent); + super(data.status, data.getHeaders()); this.payload = payload; } } diff --git a/api/src/main/java/com/github/streamshub/console/api/support/TrustedTlsConfiguration.java b/api/src/main/java/com/github/streamshub/console/api/support/TrustedTlsConfiguration.java index 09cd508e4..0ef57d43a 100644 --- a/api/src/main/java/com/github/streamshub/console/api/support/TrustedTlsConfiguration.java +++ b/api/src/main/java/com/github/streamshub/console/api/support/TrustedTlsConfiguration.java @@ -203,5 +203,10 @@ public Optional alias() { public Optional provider() { return Optional.empty(); } + + @Override + public Optional> certDirs() { + return Optional.empty(); + } } } diff --git a/api/src/test/java/com/github/streamshub/console/api/GroupsResourceIT.java b/api/src/test/java/com/github/streamshub/console/api/GroupsResourceIT.java index 3c5693857..7335941d8 100644 --- a/api/src/test/java/com/github/streamshub/console/api/GroupsResourceIT.java +++ b/api/src/test/java/com/github/streamshub/console/api/GroupsResourceIT.java @@ -1,7 +1,10 @@ package com.github.streamshub.console.api; +import java.io.IOException; import java.io.StringReader; import java.net.URI; +import java.nio.charset.StandardCharsets; +import java.util.Arrays; import java.util.Collection; import java.util.HashMap; import java.util.List; @@ -11,7 +14,9 @@ import java.util.concurrent.CompletableFuture; import java.util.concurrent.TimeUnit; import java.util.function.Function; +import java.util.function.Predicate; import java.util.stream.IntStream; +import java.util.stream.Stream; import jakarta.inject.Inject; import jakarta.json.Json; @@ -46,8 +51,9 @@ import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.junit.jupiter.params.ParameterizedTest; -import org.junit.jupiter.params.provider.CsvFileSource; +import org.junit.jupiter.params.provider.Arguments; import org.junit.jupiter.params.provider.CsvSource; +import org.junit.jupiter.params.provider.MethodSource; import org.mockito.Mockito; import org.mockito.stubbing.Answer; import org.skyscreamer.jsonassert.JSONAssert; @@ -841,11 +847,23 @@ void testPatchConsumerGroupWithNoSuchGroup() { } } + static Stream testPatchConsumerGroupWithInvalidRequestCases() throws IOException { + try (var stream = GroupsResourceIT.class.getResourceAsStream("/patchConsumerGroup-invalid-requests.txt")) { + String text = new String(stream.readAllBytes(), StandardCharsets.UTF_8); + return Arrays.stream(text.split("@")) + .filter(Predicate.not(String::isBlank)) + .map(rec -> rec.split("\\|")) + .map(elements -> Arguments.of( + elements[0].strip(), + elements[1].strip(), + Status.valueOf(elements[2].strip()), + elements[3].strip() + )); + } + } + @ParameterizedTest - @CsvFileSource( - delimiter = '|', - lineSeparator = "@\n", - resources = { "/patchConsumerGroup-invalid-requests.txt" }) + @MethodSource("testPatchConsumerGroupWithInvalidRequestCases") void testPatchConsumerGroupWithInvalidRequest(String label, String requestBody, Status responseStatus, String expectedResponse) throws JSONException { diff --git a/api/src/test/java/com/github/streamshub/console/api/TopicsResourceIT.java b/api/src/test/java/com/github/streamshub/console/api/TopicsResourceIT.java index 7b72f59a8..1c1ade735 100644 --- a/api/src/test/java/com/github/streamshub/console/api/TopicsResourceIT.java +++ b/api/src/test/java/com/github/streamshub/console/api/TopicsResourceIT.java @@ -1,10 +1,13 @@ package com.github.streamshub.console.api; +import java.io.IOException; import java.io.StringReader; import java.net.URI; +import java.nio.charset.StandardCharsets; import java.time.Duration; import java.time.Instant; import java.time.temporal.ChronoUnit; +import java.util.Arrays; import java.util.Collection; import java.util.Collections; import java.util.HashMap; @@ -17,6 +20,7 @@ import java.util.concurrent.CompletableFuture; import java.util.concurrent.TimeUnit; import java.util.function.Function; +import java.util.function.Predicate; import java.util.logging.Level; import java.util.stream.Collectors; import java.util.stream.IntStream; @@ -75,8 +79,9 @@ import org.junit.jupiter.api.TestInfo; import org.junit.jupiter.params.ParameterizedTest; import org.junit.jupiter.params.aggregator.AggregateWith; -import org.junit.jupiter.params.provider.CsvFileSource; +import org.junit.jupiter.params.provider.Arguments; import org.junit.jupiter.params.provider.CsvSource; +import org.junit.jupiter.params.provider.MethodSource; import org.mockito.Mockito; import org.mockito.stubbing.Answer; import org.skyscreamer.jsonassert.JSONAssert; @@ -2145,11 +2150,23 @@ void testPatchTopicWithValidateOnly() { .body("data.attributes.configs.'retention.ms'.value", is("300000")); } + static Stream testPatchTopicWithInvalidRequestCases() throws IOException { + try (var stream = TopicsResourceIT.class.getResourceAsStream("/patchTopic-invalid-requests.txt")) { + String text = new String(stream.readAllBytes(), StandardCharsets.UTF_8); + return Arrays.stream(text.split("@")) + .filter(Predicate.not(String::isBlank)) + .map(rec -> rec.split("\\|")) + .map(elements -> Arguments.of( + elements[0].strip(), + elements[1].strip(), + Status.valueOf(elements[2].strip()), + elements[3].strip() + )); + } + } + @ParameterizedTest - @CsvFileSource( - delimiter = '|', - lineSeparator = "@\n", - resources = { "/patchTopic-invalid-requests.txt" }) + @MethodSource("testPatchTopicWithInvalidRequestCases") void testPatchTopicWithInvalidRequest(String label, String requestBody, Status responseStatus, String expectedResponse) throws JSONException { diff --git a/pom.xml b/pom.xml index 5e0dbe8c2..2762d1af1 100644 --- a/pom.xml +++ b/pom.xml @@ -16,7 +16,7 @@ quarkus-bom io.quarkus.platform - 3.27.3.1 + 3.33.1.1 1.0.0 0.17.1 3.2.4 @@ -116,11 +116,21 @@ kiota-http-jdk ${kiota-http-jdk.version} + + io.apicurio + apicurio-registry-java-sdk + ${apicurio-registry.version} + io.apicurio apicurio-registry-java-sdk-common ${apicurio-registry.version} + + io.apicurio + apicurio-registry-serde-common + ${apicurio-registry.version} + io.apicurio apicurio-registry-serde-kafka-common diff --git a/systemtests/src/main/java/com/github/streamshub/systemtests/interfaces/TestBucketExtensionContext.java b/systemtests/src/main/java/com/github/streamshub/systemtests/interfaces/TestBucketExtensionContext.java index 5adeff004..55c0b2687 100644 --- a/systemtests/src/main/java/com/github/streamshub/systemtests/interfaces/TestBucketExtensionContext.java +++ b/systemtests/src/main/java/com/github/streamshub/systemtests/interfaces/TestBucketExtensionContext.java @@ -4,7 +4,6 @@ import org.junit.jupiter.api.TestInstance; import org.junit.jupiter.api.extension.ExecutableInvoker; import org.junit.jupiter.api.extension.ExtensionContext; -import org.junit.jupiter.api.extension.MediaType; import org.junit.jupiter.api.extension.TestInstances; import org.junit.jupiter.api.function.ThrowingConsumer; import org.junit.jupiter.api.parallel.ExecutionMode; @@ -151,7 +150,7 @@ public Optional getConfigurationParameter(String key) { } @Override - public Optional getConfigurationParameter(String key, Function transformer) { + public Optional getConfigurationParameter(String key, Function transformer) { return delegate.getConfigurationParameter(key, transformer); } @@ -170,11 +169,6 @@ public void publishReportEntry(String value) { delegate.publishReportEntry(value); } - @Override - public void publishFile(String name, MediaType mediaType, ThrowingConsumer action) { - delegate.publishFile(name, mediaType, action); - } - @Override public void publishDirectory(String name, ThrowingConsumer action) { delegate.publishDirectory(name, action); @@ -199,4 +193,9 @@ public ExecutionMode getExecutionMode() { public ExecutableInvoker getExecutableInvoker() { return delegate.getExecutableInvoker(); } + + @Override + public void publishFile(String name, org.junit.jupiter.api.MediaType mediaType, ThrowingConsumer action) { + delegate.publishFile(name, mediaType, action); + } } \ No newline at end of file