You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jclouds.apache.org by an...@apache.org on 2013/05/21 19:49:50 UTC

git commit: JCLOUDS-75: Support '-incubating' release versions

Updated Branches:
  refs/heads/master a18557635 -> 653c946ec


JCLOUDS-75: Support '-incubating' release versions


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

Branch: refs/heads/master
Commit: 653c946ec2b8c51a0ab4e4e7e6d2f6cff9f457e6
Parents: a185576
Author: Andrew Phillips <an...@apache.org>
Authored: Tue May 21 00:05:22 2013 -0400
Committer: Andrew Phillips <an...@apache.org>
Committed: Tue May 21 13:49:31 2013 -0400

----------------------------------------------------------------------
 core/src/main/java/org/jclouds/JcloudsVersion.java |    8 ++++-
 .../test/java/org/jclouds/JcloudsVersionTest.java  |   22 +++++++++++++++
 2 files changed, 28 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-jclouds/blob/653c946e/core/src/main/java/org/jclouds/JcloudsVersion.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/jclouds/JcloudsVersion.java b/core/src/main/java/org/jclouds/JcloudsVersion.java
index 731eb08..f23118e 100644
--- a/core/src/main/java/org/jclouds/JcloudsVersion.java
+++ b/core/src/main/java/org/jclouds/JcloudsVersion.java
@@ -38,9 +38,13 @@ public class JcloudsVersion {
     static final String VERSION_RESOURCE_FILE = "META-INF/maven/org.apache.jclouds/jclouds-core/pom.properties";
     private static final String VERSION_PROPERTY_NAME = "version";
 
-    // x.y.z or x.y.z-alpha.n or x.y.z-beta.n or x.y.z-rc.n or x.y.z-SNAPSHOT - see http://semver.org
+    /*
+     * x.y.z or x.y.z-incubating or x.y.z-alpha.n or x.y.z-beta.n or x.y.z-rc.n or x.y.z-SNAPSHOT -
+     * see http://semver.org. Note that x.y.z-incubating does *not* meet the 
+     * semver criteria for a *release* version.
+     */
     private static final Pattern SEMANTIC_VERSION_PATTERN =
-        Pattern.compile("(\\d+)\\.(\\d+)\\.(\\d+)(?:-(alpha|beta|rc)\\.(\\d+)|-SNAPSHOT)?");
+        Pattern.compile("(\\d+)\\.(\\d+)\\.(\\d+)(?:-(alpha|beta|rc)\\.(\\d+)|-incubating|-SNAPSHOT)?");
     private static final String ALPHA_VERSION_IDENTIFIER = "alpha";
     private static final String BETA_VERSION_IDENTIFIER = "beta";
 

http://git-wip-us.apache.org/repos/asf/incubator-jclouds/blob/653c946e/core/src/test/java/org/jclouds/JcloudsVersionTest.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/org/jclouds/JcloudsVersionTest.java b/core/src/test/java/org/jclouds/JcloudsVersionTest.java
index f6b095e..320a19d 100644
--- a/core/src/test/java/org/jclouds/JcloudsVersionTest.java
+++ b/core/src/test/java/org/jclouds/JcloudsVersionTest.java
@@ -68,6 +68,16 @@ public class JcloudsVersionTest {
         new JcloudsVersion("1.2.3-rc.4-SNAPSHOT");
     }
 
+    @Test(expectedExceptions = { IllegalArgumentException.class })
+    public void testFailsIfIncubatingSnapshot() {
+        new JcloudsVersion("1.2.3-incubating-SNAPSHOT");
+    }
+
+    @Test(expectedExceptions = { IllegalArgumentException.class })
+    public void testFailsIfNumberedIncubating() {
+        new JcloudsVersion("1.2.3-incubating.1");
+    }
+
     @Test
     public void testExtractsVersionFromResourceFile() {
         JcloudsVersion version = new JcloudsVersion();
@@ -99,9 +109,21 @@ public class JcloudsVersionTest {
         JcloudsVersion version = new JcloudsVersion("1.2.3");
         assertFalse(version.alpha, "Expected non-alpha");
         assertFalse(version.beta, "Expected non-beta");
+        assertFalse(version.releaseCandidate, "Expected non-release candidate");
         assertNull(version.alphaVersion);
         assertNull(version.betaVersion);
+        assertNull(version.releaseCandidateVersion);
+    }
+
+    @Test
+    public void testSupportsIncubatingReleaseVersion() {
+        // *not* a semver-compliant release version!
+        JcloudsVersion version = new JcloudsVersion("1.2.3-incubating");
+        assertFalse(version.alpha, "Expected non-alpha");
+        assertFalse(version.beta, "Expected non-beta");
         assertFalse(version.releaseCandidate, "Expected non-release candidate");
+        assertNull(version.alphaVersion);
+        assertNull(version.betaVersion);
         assertNull(version.releaseCandidateVersion);
     }