From d5f567008165689460ffd525f08b096edeff7ff4 Mon Sep 17 00:00:00 2001 From: Mark Paluch Date: Wed, 13 Jul 2022 10:45:58 +0200 Subject: [PATCH] Add command to list Java runtimes. Closes #217 --- .../release/infra/InfrastructureCommands.java | 23 +++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/release-tools/src/main/java/org/springframework/data/release/infra/InfrastructureCommands.java b/release-tools/src/main/java/org/springframework/data/release/infra/InfrastructureCommands.java index d1bb0b1..d07c0dc 100644 --- a/release-tools/src/main/java/org/springframework/data/release/infra/InfrastructureCommands.java +++ b/release-tools/src/main/java/org/springframework/data/release/infra/InfrastructureCommands.java @@ -22,16 +22,21 @@ import lombok.experimental.FieldDefaults; import java.io.IOException; import java.nio.file.Files; import java.nio.file.Paths; +import java.util.List; + +import org.bouncycastle.util.Strings; import org.springframework.data.release.CliComponent; import org.springframework.data.release.TimedCommand; import org.springframework.data.release.git.GitOperations; +import org.springframework.data.release.io.JavaRuntimes; import org.springframework.data.release.model.Projects; import org.springframework.data.release.model.TrainIteration; import org.springframework.data.release.utils.Logger; import org.springframework.shell.core.annotation.CliCommand; import org.springframework.shell.core.annotation.CliOption; import org.springframework.shell.support.table.Table; +import org.springframework.shell.support.table.TableHeader; /** * Shell commands for dependency management. @@ -48,6 +53,24 @@ public class InfrastructureCommands extends TimedCommand { InfrastructureOperations infra; Logger logger; + @CliCommand(value = "infra jdk list") + public Table listJdkVersions() { + + List jdks = JavaRuntimes.getJdks(); + StringBuilder builder = new StringBuilder("Available Java versions" + Strings.lineSeparator()); + + Table table = new Table(); + table.addHeader(1, new TableHeader("Version", 15)); + table.addHeader(2, new TableHeader("Vendor", 20)); + table.addHeader(3, new TableHeader("Home")); + + for (JavaRuntimes.JdkInstallation jdk : jdks) { + table.addRow(jdk.getVersion().toString(), jdk.getImplementor(), jdk.getHome().toString()); + } + + return table; + } + @CliCommand(value = "infra maven check") public void check(@CliOption(key = "", mandatory = true) TrainIteration iteration, @CliOption(key = "all", mandatory = false) Boolean reportAll) throws IOException {