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")));
+ }
+
+}