You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@brooklyn.apache.org by he...@apache.org on 2014/11/15 19:50:10 UTC

[1/3] incubator-brooklyn git commit: Fix catalog item ordering for determining the latest stable.

Repository: incubator-brooklyn
Updated Branches:
  refs/heads/master 5d9708615 -> de1d8bcc0


Fix catalog item ordering for determining the latest stable.

Prefer 2.3.0 over 2.3.0-build, 2.3.0-rc10 over 2.3.0-rc1


Project: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/commit/9a36702a
Tree: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/tree/9a36702a
Diff: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/diff/9a36702a

Branch: refs/heads/master
Commit: 9a36702adedd30afb9b0b0e944fcf0f5e37032f5
Parents: 5d97086
Author: Svetoslav Neykov <sv...@cloudsoftcorp.com>
Authored: Sat Nov 15 20:18:17 2014 +0200
Committer: Svetoslav Neykov <sv...@cloudsoftcorp.com>
Committed: Sat Nov 15 20:19:43 2014 +0200

----------------------------------------------------------------------
 .../catalog/internal/CatalogItemComparator.java | 48 ++++++++++++++++----
 .../internal/CatalogItemComparatorTest.java     | 44 ++++++++++++++----
 .../util/text/NaturalOrderComparatorTest.java   | 26 ++++++++++-
 3 files changed, 98 insertions(+), 20 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/9a36702a/core/src/main/java/brooklyn/catalog/internal/CatalogItemComparator.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/brooklyn/catalog/internal/CatalogItemComparator.java b/core/src/main/java/brooklyn/catalog/internal/CatalogItemComparator.java
index 5d1e108..d3e91c4 100644
--- a/core/src/main/java/brooklyn/catalog/internal/CatalogItemComparator.java
+++ b/core/src/main/java/brooklyn/catalog/internal/CatalogItemComparator.java
@@ -18,11 +18,17 @@
  */
 package brooklyn.catalog.internal;
 
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collection;
 import java.util.Comparator;
 
 import brooklyn.catalog.CatalogItem;
+import brooklyn.util.text.NaturalOrderComparator;
 
 /**
+ * Largest version first order.
+ * 
  * When using the comparator to sort - first using symbolicName
  * and if equal puts larger versions first, snapshots at the back.
  */
@@ -43,8 +49,8 @@ public class CatalogItemComparator implements Comparator<CatalogItem<?, ?>> {
             boolean isV1Snapshot = v1.toUpperCase().contains(SNAPSHOT);
             boolean isV2Snapshot = v2.toUpperCase().contains(SNAPSHOT);
             if (isV1Snapshot == isV2Snapshot) {
-                String[] v1Parts = v1.split("[^\\d]", 4);
-                String[] v2Parts = v2.split("[^\\d]", 4);
+                String[] v1Parts = split(v1);
+                String[] v2Parts = split(v2);
                 return -compare(v1Parts, v2Parts);
             } else if (isV1Snapshot) {
                 return 1;
@@ -54,14 +60,32 @@ public class CatalogItemComparator implements Comparator<CatalogItem<?, ?>> {
         }
     }
 
+    private String[] split(String v) {
+        Collection<String> parts = new ArrayList<String>();
+        int startPos = 0;
+        int delimPos;
+        while ((delimPos = v.indexOf('.', startPos)) != -1) {
+            String part = v.substring(startPos, delimPos);
+            if (parse(part) != -1) {
+                parts.add(part);
+            } else {
+                break;
+            }
+            startPos = delimPos+1;
+        }
+        String remaining = v.substring(startPos);
+        parts.addAll(Arrays.asList(remaining.split("[^\\d]", 2)));
+        return parts.toArray(new String[parts.size()]);
+    }
+
     private int compare(String[] v1Parts, String[] v2Parts) {
         int len = Math.max(v1Parts.length, v2Parts.length);
         for (int i = 0; i < len; i++) {
             if (i == v1Parts.length) {
-                return -1;
+                return isNumber(v2Parts[i]) ? -1 : 1;
             }
             if (i == v2Parts.length) {
-                return 1;
+                return isNumber(v1Parts[i]) ? 1 : -1;
             }
 
             String p1 = v1Parts[i];
@@ -73,19 +97,25 @@ public class CatalogItemComparator implements Comparator<CatalogItem<?, ?>> {
                     return compare(n1, n2);
                 }
             } else if (n1 == -1 && n2 != -1) {
-                return 1;
-            } else if (n1 != -1 && n2 == -1) {
                 return -1;
+            } else if (n1 != -1 && n2 == -1) {
+                return 1;
             } else {
-                int cmp = p1.compareTo(p2);
-                if (cmp != 0) {
-                    return cmp;
+                int cmp = NaturalOrderComparator.INSTANCE.compare(p1, p2);
+                if (cmp < 0) {
+                    return -1;
+                } else if (cmp > 0) {
+                    return 1;
                 }
             }
         }
         return 0;
     }
 
+    private boolean isNumber(String v) {
+        return parse(v) != -1;
+    }
+
     //Replace with Integer.compare in J7
     private int compare(int n1, int n2) {
         if (n1 == n2) {

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/9a36702a/core/src/test/java/brooklyn/catalog/internal/CatalogItemComparatorTest.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/brooklyn/catalog/internal/CatalogItemComparatorTest.java b/core/src/test/java/brooklyn/catalog/internal/CatalogItemComparatorTest.java
index 56ee998..fc4d261 100644
--- a/core/src/test/java/brooklyn/catalog/internal/CatalogItemComparatorTest.java
+++ b/core/src/test/java/brooklyn/catalog/internal/CatalogItemComparatorTest.java
@@ -19,25 +19,51 @@
 package brooklyn.catalog.internal;
 
 import static org.testng.Assert.assertEquals;
+import static org.testng.Assert.assertTrue;
 
 import org.testng.annotations.Test;
 
 import brooklyn.catalog.CatalogItem;
 
 public class CatalogItemComparatorTest {
+    private static final String RC2 = "10.5.8-rc2";
+    private static final String STABLE = "10.5.8";
 
     @Test
     public void testComparison() {
+        compare("0.0.1", "0.0.2", 1);
+        compare("0.0.2", "0.0.1", -1);
+        compare("0.0.1-qual", "0.0.2", 1);
+        compare("0.0.1-qual", "0.0.1_qual", 0);
+        compare("0.0.1", "0.0.2-SNAPSHOT", -1);
+        compare("0.0.0_SNAPSHOT", "0.0.1-SNAPSHOT-20141111114709760", 1);
+        compare("2.0", "2.0.1-BUILD", 1);
+        compare("2.0.1", "2.0-BUILD", -1);
+        compare("2.0", "2.0-BUILD", -1);
+        compare("2.1", "2.0-BUILD", -1);
+        compare("1", "1.3", 1);
+        compare("1-beta", "1-rc2", 1);
+        compare("1-beta1", "1-beta10", 1);
+
+        compare(STABLE, "10.5", -1);
+        compare(STABLE, STABLE, 0);
+
+        compare(STABLE, "10.6", 1);
+        compare(STABLE, "10.5.8.1", 1);
+
+        compare(RC2, "10.5.8-rc3", 1) ;
+        compare(RC2, "10.5.8-rc1", -1);
+
+        compare(STABLE, RC2, -1);
+
+        CatalogItemComparator cmp = CatalogItemComparator.INSTANCE;
+        assertTrue(cmp.compare(v(RC2), v("10.5.8-beta1")) == cmp.compare(v(RC2), v("10.5.8-beta3")));
+    }
+    
+    private void compare(String v1, String v2, int expected) {
         CatalogItemComparator cmp = CatalogItemComparator.INSTANCE;
-        assertEquals(cmp.compare(v("0.0.1"), v("0.0.2")), 1);
-        assertEquals(cmp.compare(v("0.0.2"), v("0.0.1")), -1);
-        assertEquals(cmp.compare(v("0.0.1-qual"), v("0.0.2")), 1);
-        assertEquals(cmp.compare(v("0.0.1-qual"), v("0.0.1_qual")), 0);
-        assertEquals(cmp.compare(v("0.0.1"), v("0.0.2-SNAPSHOT")), -1);
-        assertEquals(cmp.compare(v("0.0.0_SNAPSHOT"), v("0.0.1-SNAPSHOT-20141111114709760")), 1);
-        assertEquals(cmp.compare(v("2.0"), v("2.0.1-BUILD")), 1);
-        assertEquals(cmp.compare(v("2.0"), v("2.0-BUILD")), 1);
-        assertEquals(cmp.compare(v("2.1"), v("2.0-BUILD")), -1);
+        assertEquals(cmp.compare(v(v1), v(v2)), expected);
+        assertEquals(cmp.compare(v(v2), v(v1)), -expected);
     }
     
     private CatalogItem<?, ?> v(String version) {

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/9a36702a/utils/common/src/test/java/brooklyn/util/text/NaturalOrderComparatorTest.java
----------------------------------------------------------------------
diff --git a/utils/common/src/test/java/brooklyn/util/text/NaturalOrderComparatorTest.java b/utils/common/src/test/java/brooklyn/util/text/NaturalOrderComparatorTest.java
index 51597d4..6c109cf 100644
--- a/utils/common/src/test/java/brooklyn/util/text/NaturalOrderComparatorTest.java
+++ b/utils/common/src/test/java/brooklyn/util/text/NaturalOrderComparatorTest.java
@@ -28,6 +28,7 @@ public class NaturalOrderComparatorTest {
     public static final NaturalOrderComparator noc = new NaturalOrderComparator();
     
     ComparableVersion v = new ComparableVersion("10.5.8");
+    ComparableVersion v_rc2 = new ComparableVersion("10.5.8-rc2");
     
     @Test
     public void testBasicOnes() {
@@ -38,7 +39,14 @@ public class NaturalOrderComparatorTest {
         Assert.assertTrue(v.isLessThanAndNotEqualTo("10.6"));
         Assert.assertTrue(v.isLessThanOrEqualTo("10.5.8"));
         Assert.assertFalse(v.isLessThanAndNotEqualTo("10.5.8"));
-
+        
+        Assert.assertTrue(v.isLessThanAndNotEqualTo("10.5.8.1"));
+        
+        Assert.assertTrue(v_rc2.isLessThanAndNotEqualTo("10.5.8-rc3")) ;
+        Assert.assertTrue(v_rc2.isGreaterThanAndNotEqualTo("10.5.8-rc1"));
+        
+        Assert.assertTrue(v_rc2.isGreaterThanAndNotEqualTo("10.5.8-beta1")==v_rc2.isGreaterThanAndNotEqualTo("10.5.8-beta3"));
+        
         Assert.assertTrue(v.isInRange("[10.5,10.6)"));
         Assert.assertFalse(v.isInRange("[10.5,10.5.8)"));
         Assert.assertTrue(v.isInRange("[10.5,)"));
@@ -56,4 +64,18 @@ public class NaturalOrderComparatorTest {
     @Test(expectedExceptions={IllegalArgumentException.class})
     public void testError3() { v.isInRange("[10.5]"); }
 
-}
+    @Test(groups="WIP", enabled=false)
+    public void testUnderscoreDoesNotChangeMeaningOfNumberInNoc() {
+        // why??
+        Assert.assertTrue(noc.compare("0.0.0_SNAPSHOT", "0.0.1-SNAPSHOT-20141111114709760") < 0);
+
+        Assert.assertTrue(v.isGreaterThanAndNotEqualTo(v_rc2.version));
+        Assert.assertTrue(v_rc2.isLessThanAndNotEqualTo(v.version));
+    }
+    
+    @Test(groups="WIP", enabled=false)
+    public void testUnderscoreDoesNotChangeMeaningOfNumberInOurWorld() {
+        Assert.assertTrue(new ComparableVersion("0.0.0_SNAPSHOT").isLessThanAndNotEqualTo("0.0.1-SNAPSHOT-20141111114709760"));
+    }
+
+}
\ No newline at end of file


[3/3] incubator-brooklyn git commit: This closes #335

Posted by he...@apache.org.
This closes #335


Project: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/commit/de1d8bcc
Tree: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/tree/de1d8bcc
Diff: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/diff/de1d8bcc

Branch: refs/heads/master
Commit: de1d8bcc0b4675842d9c531bf38fe5612cdfbd82
Parents: a4712e7 9a36702
Author: Alex Heneveld <al...@cloudsoftcorp.com>
Authored: Sat Nov 15 18:49:57 2014 +0000
Committer: Alex Heneveld <al...@cloudsoftcorp.com>
Committed: Sat Nov 15 18:49:57 2014 +0000

----------------------------------------------------------------------
 .../catalog/internal/CatalogItemComparator.java | 48 ++++++++++++++++----
 .../internal/CatalogItemComparatorTest.java     | 44 ++++++++++++++----
 .../util/text/NaturalOrderComparatorTest.java   | 26 ++++++++++-
 3 files changed, 98 insertions(+), 20 deletions(-)
----------------------------------------------------------------------



[2/3] incubator-brooklyn git commit: fix hardcoded parameter in test

Posted by he...@apache.org.
fix hardcoded parameter in test


Project: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/commit/a4712e7e
Tree: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/tree/a4712e7e
Diff: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/diff/a4712e7e

Branch: refs/heads/master
Commit: a4712e7ecdf913f7dcde2e09c627b6af8b774c9d
Parents: 5d97086
Author: Alex Heneveld <al...@cloudsoftcorp.com>
Authored: Sat Nov 15 18:49:13 2014 +0000
Committer: Alex Heneveld <al...@cloudsoftcorp.com>
Committed: Sat Nov 15 18:49:13 2014 +0000

----------------------------------------------------------------------
 .../entity/webapp/AbstractWebAppFixtureIntegrationTest.java        | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/a4712e7e/software/webapp/src/test/java/brooklyn/entity/webapp/AbstractWebAppFixtureIntegrationTest.java
----------------------------------------------------------------------
diff --git a/software/webapp/src/test/java/brooklyn/entity/webapp/AbstractWebAppFixtureIntegrationTest.java b/software/webapp/src/test/java/brooklyn/entity/webapp/AbstractWebAppFixtureIntegrationTest.java
index cbfb436..8704379 100644
--- a/software/webapp/src/test/java/brooklyn/entity/webapp/AbstractWebAppFixtureIntegrationTest.java
+++ b/software/webapp/src/test/java/brooklyn/entity/webapp/AbstractWebAppFixtureIntegrationTest.java
@@ -161,7 +161,7 @@ public abstract class AbstractWebAppFixtureIntegrationTest {
         File file = File.createTempFile("test", "keystore");
         FileOutputStream fos = new FileOutputStream(file);
         try {
-            ks.store(fos, "mypass".toCharArray());
+            ks.store(fos, password.toCharArray());
             return file;
         } finally {
             Streams.closeQuietly(fos);