package com.revolsys.comparator; import java.util.Comparator; import com.revolsys.util.MathUtil; public class VersionComparator implements Comparator<String> { @Override public int compare(final String version1, final String version2) { final double[] parts1 = MathUtil.toDoubleArraySplit(version1, "\\."); final double[] parts2 = MathUtil.toDoubleArraySplit(version2, "\\."); for (int i = 0; i < Math.max(parts1.length, parts2.length); i++) { double v1 = 0; if (i < parts1.length) { v1 = parts1[i]; } double v2 = 0; if (i < parts2.length) { v2 = parts2[i]; } final int partCompare = Double.compare(v1, v2); if (partCompare != 0) { return partCompare; } } return 0; } }