private static Comparator<String> newVersionComparator() { return new VersionStringComparator(); } }
if (!VersionStringComparator.isValidVersionString(thisVersion)) { if (!VersionStringComparator.isValidVersionString(otherVersion)) { if (!VersionStringComparator.isValidVersionString(otherVersion)) { return 1; if (VersionStringComparator.isSnapshotVersion(thisVersion) && VersionStringComparator.isSnapshotVersion(otherVersion)) { final int comparison = new VersionStringComparator().compare(thisVersion, otherVersion); if (comparison == 0) { return this.getDateInstalled().compareTo(otherPlugin.getDateInstalled()); return new VersionStringComparator().compare(thisVersion, otherVersion);
private boolean pluginVersionIsAcceptable(final Plugin plugin, final Map<String, String> minimumPluginVersions) { final String pluginKey = plugin.getKey(); final String rawMinimumVersion = minimumPluginVersions.get(pluginKey); if (null == rawMinimumVersion) { // fine, no minimum given return true; } final String cleanMinimumVersion = cleanVersionString(rawMinimumVersion); // Rather than replicate some of the validation login in VersionStringComparator, let it validate and handle errors try { // Actually compare versions final PluginInformation pluginInformation = plugin.getPluginInformation(); final String pluginVersion = cleanVersionString((pluginInformation != null) ? pluginInformation.getVersion() : null); final VersionStringComparator versionStringComparator = new VersionStringComparator(); return versionStringComparator.compare(pluginVersion, cleanMinimumVersion) >= 0; } catch (IllegalArgumentException e_ia) { log.warn("Cannot compare minimum version '{}' for plugin {}: {}", rawMinimumVersion, plugin, e_ia.getMessage()); // accept the plugin if something goes wrong return true; } }
TreeSet<String> keys = new TreeSet<>(new VersionStringComparator());
TreeMap<String, String> data = new TreeMap<>(new VersionStringComparator());