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);