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

Reply via email to