static VersionInfo parseVersionInfo(String str) throws ParseException {
        Map<String, String> map = Util.parseMap(str);
        VersionInfo.Builder vib = new VersionInfo.Builder();

        for (Map.Entry<String, String> entry: map.entrySet()) {
            switch (entry.getKey()) {
                case "major" -> vib.withMajor(map.get(entry.getKey()));
                case "minor" -> vib.withMinor(map.get(entry.getKey()));
                case "gitVersion" -> vib.withGitVersion(map.get(entry.getKey()));
                case "gitCommit" -> vib.withGitCommit(map.get(entry.getKey()));
                case "gitTreeState" -> vib.withGitTreeState(map.get(entry.getKey()));
                case "buildDate" -> vib.withBuildDate(map.get(entry.getKey()));
                case "goVersion" -> vib.withGoVersion(map.get(entry.getKey()));
                case "compiler" -> vib.withCompiler(map.get(entry.getKey()));
                case "platform" -> vib.withPlatform(map.get(entry.getKey()));
                default -> LOGGER.warn("Unknown key {} found", entry.getKey());
            }
        }

        return vib.build();
    }
@Test
    public void versionInfoFromMap(VertxTestContext context) throws ParseException {
        String version = """
                major=1
                minor=16
                gitVersion=v1.16.2
                gitCommit=c97fe5036ef3df2967d086711e6c0c405941e14b
                gitTreeState=clean
                buildDate=2019-10-15T19:09:08Z
                goVersion=go1.12.10
                compiler=gc
                platform=linux/amd64""";

        VersionInfo vi = PlatformFeaturesAvailability.parseVersionInfo(version);

        context.verify(() -> {
            assertThat(vi.getMajor(), is("1"));
            assertThat(vi.getMinor(), is("16"));
        });
        context.completeNow();
    }