This is an automated email from the ASF dual-hosted git repository. skygo pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/netbeans.git
The following commit(s) were added to refs/heads/master by this push: new 11c53a7 allow more dot separated digit for version scheme (#3057) 11c53a7 is described below commit 11c53a793ca6f7d22d110fca6a09bf9a407dda0b Author: Eric Barboni <sk...@apache.org> AuthorDate: Fri Jul 16 17:31:11 2021 +0200 allow more dot separated digit for version scheme (#3057) * allow more dot separated digit for version scheme use SpecificationVersion --- .../modules/autoupdate/pluginimporter/Installer.java | 5 ++++- .../src/org/netbeans/upgrade/AutoUpgrade.java | 12 ++++++++---- .../unit/src/org/netbeans/upgrade/AutoUpgradeTest.java | 16 ++++++++++++++-- 3 files changed, 26 insertions(+), 7 deletions(-) diff --git a/nb/autoupdate.pluginimporter/src/org/netbeans/modules/autoupdate/pluginimporter/Installer.java b/nb/autoupdate.pluginimporter/src/org/netbeans/modules/autoupdate/pluginimporter/Installer.java index 1bb9660..410f9fa 100644 --- a/nb/autoupdate.pluginimporter/src/org/netbeans/modules/autoupdate/pluginimporter/Installer.java +++ b/nb/autoupdate.pluginimporter/src/org/netbeans/modules/autoupdate/pluginimporter/Installer.java @@ -19,6 +19,7 @@ package org.netbeans.modules.autoupdate.pluginimporter; import java.io.File; +import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; import java.util.Comparator; @@ -35,6 +36,7 @@ import org.netbeans.api.autoupdate.UpdateUnitProvider; import org.netbeans.api.autoupdate.UpdateUnitProviderFactory; import org.openide.filesystems.FileUtil; import org.openide.modules.ModuleInstall; +import org.openide.modules.SpecificationVersion; import org.openide.util.NbBundle; import org.openide.util.NbPreferences; import org.openide.util.RequestProcessor; @@ -52,7 +54,8 @@ public class Installer extends ModuleInstall { private static final Logger LOG = Logger.getLogger (Installer.class.getName ()); // XXX: copy from o.n.upgrader - private static final Comparator<String> APACHE_VERSION_COMPARATOR = (v1, v2) -> Float.compare(Float.parseFloat(v1), Float.parseFloat(v2)); + + private static final Comparator<String> APACHE_VERSION_COMPARATOR = (v1, v2) -> new SpecificationVersion(v1).compareTo(new SpecificationVersion(v2)); private static final List<String> APACHE_VERSION_TO_CHECK = Arrays.asList(NbBundle.getMessage(Installer.class, "apachenetbeanspreviousversion").split(",")).stream().sorted(APACHE_VERSION_COMPARATOR.reversed()).collect(Collectors.toList()); private static final List<String> VERSION_TO_CHECK = Arrays.asList (".netbeans/7.1.2", ".netbeans/7.1.1", ".netbeans/7.1", ".netbeans/7.0", ".netbeans/6.9"); //NOI18N diff --git a/nb/o.n.upgrader/src/org/netbeans/upgrade/AutoUpgrade.java b/nb/o.n.upgrader/src/org/netbeans/upgrade/AutoUpgrade.java index bf6e9e3..790887a 100644 --- a/nb/o.n.upgrader/src/org/netbeans/upgrade/AutoUpgrade.java +++ b/nb/o.n.upgrader/src/org/netbeans/upgrade/AutoUpgrade.java @@ -23,6 +23,7 @@ import java.awt.event.KeyEvent; import java.beans.PropertyVetoException; import java.io.*; import java.net.URL; +import java.util.ArrayList; import java.util.Arrays; import java.util.Comparator; import java.util.Iterator; @@ -42,6 +43,7 @@ import org.openide.filesystems.LocalFileSystem; import org.openide.filesystems.MultiFileSystem; import org.openide.filesystems.XMLFileSystem; import org.openide.modules.InstalledFileLocator; +import org.openide.modules.SpecificationVersion; import org.openide.util.NbBundle; import org.openide.util.Utilities; import org.xml.sax.SAXException; @@ -91,13 +93,15 @@ public final class AutoUpgrade { // the order of VERSION_TO_CHECK here defines the precedence of imports // the first one will be choosen for import - final static private List<String> VERSION_TO_CHECK = - Arrays.asList (new String[] { ".netbeans/7.1.2", ".netbeans/7.1.1", ".netbeans/7.1", ".netbeans/7.0", ".netbeans/6.9" });//NOI18N + private static final List<String> VERSION_TO_CHECK = + Arrays.asList ( ".netbeans/7.1.2", ".netbeans/7.1.1", ".netbeans/7.1", ".netbeans/7.0", ".netbeans/6.9" );//NOI18N // userdir on OS specific root of userdir (see issue 196075) static final List<String> PRE_APACHE_NEWER_VERSION_TO_CHECK = Arrays.asList ("8.2", "8.1", "8.0.2", "8.0.1", "8.0", "7.4", "7.3.1", "7.3", "7.2.1", "7.2"); //NOI18N - private static final Comparator<String> APACHE_VERSION_COMPARATOR = (v1, v2) -> Float.compare(Float.parseFloat(v1), Float.parseFloat(v2)); + // XXX: copy to autoupgrade.pluginimporter + + static final Comparator<String> APACHE_VERSION_COMPARATOR = (v1, v2) -> new SpecificationVersion(v1).compareTo(new SpecificationVersion(v2)); static final List<String> APACHE_VERSION_TO_CHECK = Arrays.asList(NbBundle.getMessage(AutoUpgrade.class, "apachenetbeanspreviousversion").split(",")).stream().sorted(APACHE_VERSION_COMPARATOR.reversed()).collect(Collectors.toList()); @@ -118,7 +122,7 @@ public final class AutoUpgrade { return null; } - static private File checkPrevious (final List<String> versionsToCheck) { + private static File checkPrevious (final List<String> versionsToCheck) { String userHome = System.getProperty ("user.home"); // NOI18N File sourceFolder = null; diff --git a/nb/o.n.upgrader/test/unit/src/org/netbeans/upgrade/AutoUpgradeTest.java b/nb/o.n.upgrader/test/unit/src/org/netbeans/upgrade/AutoUpgradeTest.java index cd0f79b..98ab86b 100644 --- a/nb/o.n.upgrader/test/unit/src/org/netbeans/upgrade/AutoUpgradeTest.java +++ b/nb/o.n.upgrader/test/unit/src/org/netbeans/upgrade/AutoUpgradeTest.java @@ -20,9 +20,10 @@ package org.netbeans.upgrade; import java.io.File; import java.net.URL; - +import java.util.Arrays; +import java.util.List; +import java.util.stream.Collectors; import org.openide.filesystems.FileObject; - import org.openide.filesystems.FileSystem; import org.openide.filesystems.FileUtil; import org.openide.filesystems.LocalFileSystem; @@ -87,4 +88,15 @@ public final class AutoUpgradeTest extends org.netbeans.junit.NbTestCase { assertNotNull(newFooBarFO); assertEquals(attrValue, newFooBarFO.getAttribute(attrName)); } + + public void testComparatorUpgrade() throws Exception { + // verify version ordering + List<String> versions = Arrays.asList("12.3,12.4,8.0,12.4.301".split(",")).stream().sorted(AutoUpgrade.APACHE_VERSION_COMPARATOR.reversed()).collect(Collectors.toList()); + assertEquals(4,versions.size()); + assertEquals("12.4.301",versions.get(0)); + assertEquals("12.4",versions.get(1)); + assertEquals("12.3",versions.get(2)); + assertEquals("8.0",versions.get(3)); + } + } --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@netbeans.apache.org For additional commands, e-mail: commits-h...@netbeans.apache.org For further information about the NetBeans mailing lists, visit: https://cwiki.apache.org/confluence/display/NETBEANS/Mailing+lists