You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@brooklyn.apache.org by al...@apache.org on 2014/11/20 18:01:04 UTC

[1/4] incubator-brooklyn git commit: Fix OSGi no_version, so it’s a valid OSGi version number

Repository: incubator-brooklyn
Updated Branches:
  refs/heads/master 068de703a -> 0f50c58b6


Fix OSGi no_version, so it’s a valid OSGi version number

- 0.0.0_SNAPSHOT is not a valid OSGi version.
  It needs to be 0.0.0.SNAPSHOT.
  This is important for when one passes in
  “my.symbolic.name:0.0.0.SNAPSHOT”, rather than expecting them
  to pass an illegal OSGi version.


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

Branch: refs/heads/master
Commit: e84b5853f1ffc3e85ac9dfc8952d351b4abbc524
Parents: 6933be6
Author: Aled Sage <al...@gmail.com>
Authored: Tue Nov 18 23:21:14 2014 +0000
Committer: Aled Sage <al...@gmail.com>
Committed: Thu Nov 20 15:26:02 2014 +0000

----------------------------------------------------------------------
 .../catalog/internal/BasicBrooklynCatalog.java         |  2 +-
 .../catalog/internal/CatalogItemComparatorTest.java    | 13 +++++++++++--
 .../camp/brooklyn/catalog/CatalogYamlEntityTest.java   |  4 ++--
 usage/jsgui/src/main/webapp/assets/js/model/entity.js  |  2 +-
 4 files changed, 15 insertions(+), 6 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/e84b5853/core/src/main/java/brooklyn/catalog/internal/BasicBrooklynCatalog.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/brooklyn/catalog/internal/BasicBrooklynCatalog.java b/core/src/main/java/brooklyn/catalog/internal/BasicBrooklynCatalog.java
index 3a46f8b..0e26b5f 100644
--- a/core/src/main/java/brooklyn/catalog/internal/BasicBrooklynCatalog.java
+++ b/core/src/main/java/brooklyn/catalog/internal/BasicBrooklynCatalog.java
@@ -73,7 +73,7 @@ import com.google.common.collect.Iterables;
 
 public class BasicBrooklynCatalog implements BrooklynCatalog {
     private static final String POLICIES_KEY = "brooklyn.policies";
-    public static final String NO_VERSION = "0.0.0_SNAPSHOT";
+    public static final String NO_VERSION = "0.0.0.SNAPSHOT";
 
     private static final Logger log = LoggerFactory.getLogger(BasicBrooklynCatalog.class);
 

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/e84b5853/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 fc4d261..dffd32b 100644
--- a/core/src/test/java/brooklyn/catalog/internal/CatalogItemComparatorTest.java
+++ b/core/src/test/java/brooklyn/catalog/internal/CatalogItemComparatorTest.java
@@ -34,15 +34,24 @@ public class CatalogItemComparatorTest {
         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.2", 1);
         compare("0.0.1-qual", "0.0.1_qual", 0);
+        compare("0.0.1.qual", "0.0.1.qual", 0);
         compare("0.0.1", "0.0.2-SNAPSHOT", -1);
+        compare("0.0.1", "0.0.2.SNAPSHOT", -1);
         compare("0.0.0_SNAPSHOT", "0.0.1-SNAPSHOT-20141111114709760", 1);
+        compare("0.0.0.SNAPSHOT", "0.0.1.SNAPSHOT-20141111114709760", 1);
         compare("2.0", "2.0.1-BUILD", 1);
+        compare("2.0", "2.0.1.BUILD", 1);
         compare("2.0.1", "2.0-BUILD", -1);
+        compare("2.0.1", "2.0.0.BUILD", -1);
         compare("2.0", "2.0-BUILD", -1);
+        // Note not true for .qualifier: compare("2.0", "2.0.0.BUILD", -1);
         compare("2.1", "2.0-BUILD", -1);
+        compare("2.1", "2.0.0.BUILD", -1);
         compare("1", "1.3", 1);
         compare("1-beta", "1-rc2", 1);
+        // Note not true for .qualifier: compare("1.0.0.beta", "1.0.0.rc2", 1);
         compare("1-beta1", "1-beta10", 1);
 
         compare(STABLE, "10.5", -1);
@@ -51,8 +60,8 @@ public class CatalogItemComparatorTest {
         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("10.5.8-rc2", "10.5.8-rc3", 1) ;
+        compare("10.5.8-rc2", "10.5.8-rc1", -1);
 
         compare(STABLE, RC2, -1);
 

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/e84b5853/usage/camp/src/test/java/io/brooklyn/camp/brooklyn/catalog/CatalogYamlEntityTest.java
----------------------------------------------------------------------
diff --git a/usage/camp/src/test/java/io/brooklyn/camp/brooklyn/catalog/CatalogYamlEntityTest.java b/usage/camp/src/test/java/io/brooklyn/camp/brooklyn/catalog/CatalogYamlEntityTest.java
index a980fc4..fe09586 100644
--- a/usage/camp/src/test/java/io/brooklyn/camp/brooklyn/catalog/CatalogYamlEntityTest.java
+++ b/usage/camp/src/test/java/io/brooklyn/camp/brooklyn/catalog/CatalogYamlEntityTest.java
@@ -63,8 +63,8 @@ public class CatalogYamlEntityTest extends AbstractYamlTest {
             "services:",
             "- type: " + SIMPLE_ENTITY_TYPE);
         CatalogItem<?, ?> catalogItem = mgmt().getCatalog().getCatalogItem(id, BrooklynCatalog.DEFAULT_VERSION);
-        assertEquals(catalogItem.getVersion(), "0.0.0_SNAPSHOT");
-        mgmt().getCatalog().deleteCatalogItem(id, "0.0.0_SNAPSHOT");
+        assertEquals(catalogItem.getVersion(), "0.0.0.SNAPSHOT");
+        mgmt().getCatalog().deleteCatalogItem(id, "0.0.0.SNAPSHOT");
     }
 
     @Test

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/e84b5853/usage/jsgui/src/main/webapp/assets/js/model/entity.js
----------------------------------------------------------------------
diff --git a/usage/jsgui/src/main/webapp/assets/js/model/entity.js b/usage/jsgui/src/main/webapp/assets/js/model/entity.js
index 18e1773..fc83743 100644
--- a/usage/jsgui/src/main/webapp/assets/js/model/entity.js
+++ b/usage/jsgui/src/main/webapp/assets/js/model/entity.js
@@ -31,7 +31,7 @@ define(["underscore", "backbone"], function (_, Backbone) {
         getVersionedAttr: function(name) {
             var attr = this.get(name);
             var version = this.get('version');
-            if (version && version != '0.0.0_SNAPSHOT') {
+            if (version && version != '0.0.0.SNAPSHOT') {
                 return attr + ':' + version;
             } else {
                 return attr;


[2/4] incubator-brooklyn git commit: Fix + test Osgis.parseOsgiIdentifier

Posted by al...@apache.org.
Fix + test Osgis.parseOsgiIdentifier


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

Branch: refs/heads/master
Commit: 6933be6ef9ef408fde948052e9799a74c0096a71
Parents: 068de70
Author: Aled Sage <al...@gmail.com>
Authored: Tue Nov 18 23:18:50 2014 +0000
Committer: Aled Sage <al...@gmail.com>
Committed: Thu Nov 20 15:26:02 2014 +0000

----------------------------------------------------------------------
 .../src/main/java/brooklyn/util/osgi/Osgis.java | 33 +++++++++++-----
 .../test/java/brooklyn/util/osgi/OsgisTest.java | 41 ++++++++++++++++++++
 2 files changed, 64 insertions(+), 10 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/6933be6e/core/src/main/java/brooklyn/util/osgi/Osgis.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/brooklyn/util/osgi/Osgis.java b/core/src/main/java/brooklyn/util/osgi/Osgis.java
index c6c9d9a..4fe25f9 100644
--- a/core/src/main/java/brooklyn/util/osgi/Osgis.java
+++ b/core/src/main/java/brooklyn/util/osgi/Osgis.java
@@ -74,6 +74,7 @@ import brooklyn.util.time.Time;
 
 import com.google.common.annotations.Beta;
 import com.google.common.base.Joiner;
+import com.google.common.base.Objects;
 import com.google.common.base.Predicate;
 import com.google.common.base.Predicates;
 import com.google.common.base.Stopwatch;
@@ -93,8 +94,8 @@ public class Osgis {
     private static final Set<String> SYSTEM_BUNDLES = MutableSet.of();
 
     public static class VersionedName {
-        private String symbolicName;
-        private Version version;
+        private final String symbolicName;
+        private final Version version;
         public VersionedName(Bundle b) {
             this.symbolicName = b.getSymbolicName();
             this.version = b.getVersion();
@@ -112,12 +113,22 @@ public class Osgis {
         public boolean equals(String sn, Version v) {
             return symbolicName.equals(sn) && (version == null && v == null || version != null && version.equals(v));
         }
-        protected String getSymbolicName() {
+        public String getSymbolicName() {
             return symbolicName;
         }
-        protected Version getVersion() {
+        public Version getVersion() {
             return version;
         }
+        @Override
+        public int hashCode() {
+            return Objects.hashCode(symbolicName, version);
+        }
+        @Override
+        public boolean equals(Object other) {
+            if (!(other instanceof VersionedName)) return false;
+            VersionedName o = (VersionedName) other;
+            return Objects.equal(symbolicName, o.symbolicName) && Objects.equal(version, o.version);
+        }
     }
     
     public static class BundleFinder {
@@ -610,8 +621,8 @@ public class Osgis {
     }
 
     /** Takes a string which might be of the form "symbolic-name" or "symbolic-name:version" (or something else entirely)
-     * and returns an array of 1 or 2 string items being the symbolic name or symbolic name and version if possible
-     * (or returning {@link Maybe#absent()} if not, with a suitable error message). */
+     * and returns a VersionedName. The versionedName.getVersion() will be null if if there was no version in the input
+     * (or returning {@link Maybe#absent()} if not valid, with a suitable error message). */
     public static Maybe<VersionedName> parseOsgiIdentifier(String symbolicNameOptionalWithVersion) {
         if (Strings.isBlank(symbolicNameOptionalWithVersion))
             return Maybe.absent("OSGi identifier is blank");
@@ -621,10 +632,12 @@ public class Osgis {
             return Maybe.absent("OSGi identifier has too many parts; max one ':' symbol");
         
         Version v = null;
-        try {
-            v = Version.parseVersion(parts[1]);
-        } catch (IllegalArgumentException e) {
-            return Maybe.absent("OSGi identifier has invalid version string");
+        if (parts.length == 2) {
+            try {
+                v = Version.parseVersion(parts[1]);
+            } catch (IllegalArgumentException e) {
+                return Maybe.absent("OSGi identifier has invalid version string ("+e.getMessage()+")");
+            }
         }
         
         return Maybe.of(new VersionedName(parts[0], v));

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/6933be6e/core/src/test/java/brooklyn/util/osgi/OsgisTest.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/brooklyn/util/osgi/OsgisTest.java b/core/src/test/java/brooklyn/util/osgi/OsgisTest.java
new file mode 100644
index 0000000..49f8017
--- /dev/null
+++ b/core/src/test/java/brooklyn/util/osgi/OsgisTest.java
@@ -0,0 +1,41 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package brooklyn.util.osgi;
+
+import static org.testng.Assert.assertEquals;
+import static org.testng.Assert.assertFalse;
+
+import org.osgi.framework.Version;
+import org.testng.annotations.Test;
+
+import brooklyn.util.osgi.Osgis.VersionedName;
+
+public class OsgisTest {
+
+    @Test
+    public void testParseOsgiIdentifier() throws Exception {
+        assertEquals(Osgis.parseOsgiIdentifier("a.b").get(), new VersionedName("a.b", null));
+        assertEquals(Osgis.parseOsgiIdentifier("a.b:0.1.2").get(), new VersionedName("a.b", Version.parseVersion("0.1.2")));
+        assertEquals(Osgis.parseOsgiIdentifier("a.b:0.0.0.SNAPSHOT").get(), new VersionedName("a.b", Version.parseVersion("0.0.0.SNAPSHOT")));
+        assertFalse(Osgis.parseOsgiIdentifier("a.b:0.notanumber.2").isPresent()); // invalid version
+        assertFalse(Osgis.parseOsgiIdentifier("a.b:0.1.2:3.4.5").isPresent());    // too many colons
+        assertFalse(Osgis.parseOsgiIdentifier("a.b:0.0.0_SNAPSHOT").isPresent()); // invalid version
+        assertFalse(Osgis.parseOsgiIdentifier("").isPresent());
+    }
+}


[3/4] incubator-brooklyn git commit: Add test for CatalogResource.getEntity(entityId)

Posted by al...@apache.org.
Add test for CatalogResource.getEntity(entityId)

- The id could be in the form symbolicName or symbolicName:version
  If the latter, then parse it.


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

Branch: refs/heads/master
Commit: 7888f828425646d588f7e2c7ae214ea955a32898
Parents: e84b585
Author: Aled Sage <al...@gmail.com>
Authored: Tue Nov 18 23:22:00 2014 +0000
Committer: Aled Sage <al...@gmail.com>
Committed: Thu Nov 20 16:59:25 2014 +0000

----------------------------------------------------------------------
 .../brooklyn/rest/resources/CatalogResourceTest.java   | 13 +++++++++++++
 1 file changed, 13 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/7888f828/usage/rest-server/src/test/java/brooklyn/rest/resources/CatalogResourceTest.java
----------------------------------------------------------------------
diff --git a/usage/rest-server/src/test/java/brooklyn/rest/resources/CatalogResourceTest.java b/usage/rest-server/src/test/java/brooklyn/rest/resources/CatalogResourceTest.java
index 5eae763..8e358e1 100644
--- a/usage/rest-server/src/test/java/brooklyn/rest/resources/CatalogResourceTest.java
+++ b/usage/rest-server/src/test/java/brooklyn/rest/resources/CatalogResourceTest.java
@@ -194,6 +194,19 @@ public class CatalogResourceTest extends BrooklynRestResourceTest {
   }
 
   @Test
+  @Deprecated
+  //If we move to using a yaml catalog item, the details will be of the wrapping app,
+  //not of the entity itself, so the test won't make sense any more.
+  public void testGetCatalogEntityPlusVersionDetails() {
+      CatalogEntitySummary details = client().resource(
+              URI.create("/v1/catalog/entities/brooklyn.entity.nosql.redis.RedisStore:0.0.0.SNAPSHOT"))
+              .get(CatalogEntitySummary.class);
+      assertTrue(details.toString().contains("redis.port"), "expected more config, only got: "+details);
+      String expectedIconUrl = "/v1/catalog/icon/" + details.getSymbolicName() + "/" + details.getVersion();
+      assertEquals(details.getIconUrl(), expectedIconUrl, "expected brooklyn URL for icon image ("+expectedIconUrl+"), but got: "+details.getIconUrl());
+  }
+
+  @Test
   public void testGetCatalogEntityIconDetails() throws IOException {
       String catalogItemId = "testGetCatalogEntityIconDetails";
       addTestCatalogItem(catalogItemId);


[4/4] incubator-brooklyn git commit: This closes #346

Posted by al...@apache.org.
This closes #346


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

Branch: refs/heads/master
Commit: 0f50c58b678e7a7a53768f03ef4824cddc1fdb86
Parents: 068de70 7888f82
Author: Aled Sage <al...@gmail.com>
Authored: Thu Nov 20 17:00:50 2014 +0000
Committer: Aled Sage <al...@gmail.com>
Committed: Thu Nov 20 17:00:50 2014 +0000

----------------------------------------------------------------------
 .../catalog/internal/BasicBrooklynCatalog.java  |  2 +-
 .../src/main/java/brooklyn/util/osgi/Osgis.java | 33 +++++++++++-----
 .../internal/CatalogItemComparatorTest.java     | 13 ++++++-
 .../test/java/brooklyn/util/osgi/OsgisTest.java | 41 ++++++++++++++++++++
 .../brooklyn/catalog/CatalogYamlEntityTest.java |  4 +-
 .../src/main/webapp/assets/js/model/entity.js   |  2 +-
 .../rest/resources/CatalogResourceTest.java     | 13 +++++++
 7 files changed, 92 insertions(+), 16 deletions(-)
----------------------------------------------------------------------