You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@brooklyn.apache.org by ge...@apache.org on 2017/06/06 12:25:30 UTC

[10/17] brooklyn-server git commit: utils for working with VersionedName better

utils for working with VersionedName better


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

Branch: refs/heads/master
Commit: 3cf028a6aa811696ddb60d3e55a746de4a40ff3d
Parents: bb7c04d
Author: Alex Heneveld <al...@cloudsoftcorp.com>
Authored: Mon Jun 5 11:23:23 2017 +0100
Committer: Alex Heneveld <al...@cloudsoftcorp.com>
Committed: Mon Jun 5 11:23:23 2017 +0100

----------------------------------------------------------------------
 .../coerce/CommonAdaptorTypeCoercions.java      |  2 +-
 .../brooklyn/util/osgi/VersionedName.java       |  7 ++++
 .../brooklyn/util/osgi/VersionedNameTest.java   | 43 ++++++++++++++++++++
 3 files changed, 51 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/3cf028a6/utils/common/src/main/java/org/apache/brooklyn/util/javalang/coerce/CommonAdaptorTypeCoercions.java
----------------------------------------------------------------------
diff --git a/utils/common/src/main/java/org/apache/brooklyn/util/javalang/coerce/CommonAdaptorTypeCoercions.java b/utils/common/src/main/java/org/apache/brooklyn/util/javalang/coerce/CommonAdaptorTypeCoercions.java
index 03745e6..2bc2a98 100644
--- a/utils/common/src/main/java/org/apache/brooklyn/util/javalang/coerce/CommonAdaptorTypeCoercions.java
+++ b/utils/common/src/main/java/org/apache/brooklyn/util/javalang/coerce/CommonAdaptorTypeCoercions.java
@@ -41,8 +41,8 @@ import org.apache.brooklyn.util.exceptions.Exceptions;
 import org.apache.brooklyn.util.net.Cidr;
 import org.apache.brooklyn.util.net.Networking;
 import org.apache.brooklyn.util.net.UserAndHostAndPort;
-import org.apache.brooklyn.util.text.Strings;
 import org.apache.brooklyn.util.text.StringEscapes.JavaStringEscapes;
+import org.apache.brooklyn.util.text.Strings;
 import org.apache.brooklyn.util.time.Duration;
 import org.apache.brooklyn.util.time.Time;
 import org.apache.brooklyn.util.yaml.Yamls;

http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/3cf028a6/utils/common/src/main/java/org/apache/brooklyn/util/osgi/VersionedName.java
----------------------------------------------------------------------
diff --git a/utils/common/src/main/java/org/apache/brooklyn/util/osgi/VersionedName.java b/utils/common/src/main/java/org/apache/brooklyn/util/osgi/VersionedName.java
index 2d89be2..5807904 100644
--- a/utils/common/src/main/java/org/apache/brooklyn/util/osgi/VersionedName.java
+++ b/utils/common/src/main/java/org/apache/brooklyn/util/osgi/VersionedName.java
@@ -76,4 +76,11 @@ public class VersionedName {
         return Objects.equal(symbolicName, o.symbolicName) && Objects.equal(version, o.version);
     }
 
+    public static VersionedName fromString(String nameOptionalColonVersion) {
+        if (nameOptionalColonVersion==null) return null;
+        int colon = nameOptionalColonVersion.indexOf(':');
+        if (colon<0) throw new IllegalArgumentException("Versioned name '"+nameOptionalColonVersion+"' must be of form 'name:version'");
+        return new VersionedName(nameOptionalColonVersion.substring(0, colon), Version.parseVersion(nameOptionalColonVersion.substring(colon+1)));
+    }
+
 }

http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/3cf028a6/utils/common/src/test/java/org/apache/brooklyn/util/osgi/VersionedNameTest.java
----------------------------------------------------------------------
diff --git a/utils/common/src/test/java/org/apache/brooklyn/util/osgi/VersionedNameTest.java b/utils/common/src/test/java/org/apache/brooklyn/util/osgi/VersionedNameTest.java
new file mode 100644
index 0000000..c838258
--- /dev/null
+++ b/utils/common/src/test/java/org/apache/brooklyn/util/osgi/VersionedNameTest.java
@@ -0,0 +1,43 @@
+/*
+ * Copyright 2016 The Apache Software Foundation.
+ *
+ * Licensed 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 org.apache.brooklyn.util.osgi;
+
+import org.apache.brooklyn.util.javalang.coerce.TypeCoercerExtensible;
+import org.osgi.framework.Version;
+import org.testng.Assert;
+import org.testng.annotations.Test;
+
+public class VersionedNameTest {
+    
+    @Test
+    public void testVersionedNameFromString() {
+        VersionedName foo1 = new VersionedName("foo", new Version("1.0"));
+        Assert.assertEquals(foo1, VersionedName.fromString("foo:1.0"));
+        Assert.assertEquals(foo1, TypeCoercerExtensible.newDefault().coerce("foo:1.0", VersionedName.class));
+    }
+    
+    @Test(expectedExceptions=IllegalArgumentException.class)
+    public void testDoesNotAcceptInvalidVersions() {
+        Assert.assertEquals(new VersionedName("foo", new Version("1.0.0.alpha")), VersionedName.fromString("foo:1.0-alpha"));
+    }
+    
+    @Test
+    public void testManuallyCorrectingVersion() {
+        Assert.assertEquals(new VersionedName("foo", new Version("1.0.0.alpha")), VersionedName.fromString("foo:"+
+            OsgiUtils.toOsgiVersion("1.0-alpha")));
+    }
+
+}