From 4799ce1efd9b469c0522c021ba5836af60f09e68 Mon Sep 17 00:00:00 2001 From: Steve Hawkins Date: Thu, 19 Oct 2023 15:27:33 -0400 Subject: [PATCH] fix: allows --version to work closes #23783 --- .../keycloak/quarkus/runtime/cli/Picocli.java | 3 ++ .../keycloak/it/cli/dist/VersionDistTest.java | 38 +++++++++++++++++++ 2 files changed, 41 insertions(+) create mode 100644 quarkus/tests/integration/src/test/java/org/keycloak/it/cli/dist/VersionDistTest.java diff --git a/quarkus/runtime/src/main/java/org/keycloak/quarkus/runtime/cli/Picocli.java b/quarkus/runtime/src/main/java/org/keycloak/quarkus/runtime/cli/Picocli.java index cdc8fb2138f2..bf7ecd2cfdf9 100644 --- a/quarkus/runtime/src/main/java/org/keycloak/quarkus/runtime/cli/Picocli.java +++ b/quarkus/runtime/src/main/java/org/keycloak/quarkus/runtime/cli/Picocli.java @@ -138,6 +138,9 @@ private static boolean shouldSkipRebuild(List cliArgs) { } public static boolean requiresReAugmentation(CommandLine cmdCommand) { + if (cmdCommand == null) { + return false; // possible if using --version or the user made a mistake + } if (hasConfigChanges(cmdCommand)) { if (!ConfigArgsConfigSource.getAllCliArgs().contains(StartDev.NAME) && "dev".equals(getConfig().getOptionalValue("kc.profile", String.class).orElse(null))) { return false; diff --git a/quarkus/tests/integration/src/test/java/org/keycloak/it/cli/dist/VersionDistTest.java b/quarkus/tests/integration/src/test/java/org/keycloak/it/cli/dist/VersionDistTest.java new file mode 100644 index 000000000000..ac82e2031877 --- /dev/null +++ b/quarkus/tests/integration/src/test/java/org/keycloak/it/cli/dist/VersionDistTest.java @@ -0,0 +1,38 @@ +/* + * Copyright 2021 Red Hat, Inc. and/or its affiliates + * and other contributors as indicated by the @author tags. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.keycloak.it.cli.dist; + +import io.quarkus.test.junit.main.Launch; +import io.quarkus.test.junit.main.LaunchResult; + +import org.junit.jupiter.api.Test; +import org.keycloak.it.junit5.extension.DistributionTest; + +import static org.junit.jupiter.api.Assertions.assertTrue; + +@DistributionTest +public class VersionDistTest { + + @Test + @Launch({ "--version" }) + void failNoTls(LaunchResult result) { + assertTrue(result.getOutput().contains("Keycloak ") && result.getOutput().contains("JVM: "), + () -> "The Output:\n" + result.getOutput() + "doesn't contains the expected string."); + } + +}