Comparator version()

in src/main/java/org/apache/maven/plugins/toolchain/jdk/ToolchainDiscoverer.java [365:387]


    Comparator<ToolchainModel> version() {
        return comparing((ToolchainModel tc) -> tc.getProvides().getProperty(VERSION), (v1, v2) -> {
                    String[] a = v1.split("\\.");
                    String[] b = v2.split("\\.");
                    int length = Math.min(a.length, b.length);
                    for (int i = 0; i < length; i++) {
                        String oa = a[i];
                        String ob = b[i];
                        if (!Objects.equals(oa, ob)) {
                            // A null element is less than a non-null element
                            if (oa == null || ob == null) {
                                return oa == null ? -1 : 1;
                            }
                            int v = oa.compareTo(ob);
                            if (v != 0) {
                                return v;
                            }
                        }
                    }
                    return a.length - b.length;
                })
                .reversed();
    }