Merge pull request #64 from caskdata/feature/TEPHRA-111-improve-version-parsing
(TEPHRA-111) Improve version string parsing to cater for the forth nu…
diff --git a/pom.xml b/pom.xml
index f308b6a..e53da6c 100644
--- a/pom.xml
+++ b/pom.xml
@@ -99,7 +99,7 @@
<hadoop.version>2.2.0</hadoop.version>
<hbase96.version>0.96.2-hadoop2</hbase96.version>
<hbase98.version>0.98.11-hadoop2</hbase98.version>
- <hbase10.version>1.0.1</hbase10.version>
+ <hbase10.version>1.0.1.1</hbase10.version>
<hbase10cdh.version>1.0.0-cdh5.4.2</hbase10cdh.version>
<junit.version>4.11</junit.version>
<slf4j.version>1.7.5</slf4j.version>
diff --git a/tephra-core/src/main/java/co/cask/tephra/util/HBaseVersion.java b/tephra-core/src/main/java/co/cask/tephra/util/HBaseVersion.java
index 8ecdfa3..a01ba98 100644
--- a/tephra-core/src/main/java/co/cask/tephra/util/HBaseVersion.java
+++ b/tephra-core/src/main/java/co/cask/tephra/util/HBaseVersion.java
@@ -118,24 +118,27 @@
/**
* Utility class to parse apart version number components. The version string provided is expected to be in
- * the format: major[.minor[.patch][-classifier][-SNAPSHOT]
+ * the format: major[.minor[.patch[.last]][-classifier][-SNAPSHOT]
*
* <p>Only the major version number is actually required.</p>
*/
public static class VersionNumber {
private static final Pattern PATTERN =
- Pattern.compile("(\\d+)(\\.(\\d+))?(\\.(\\d+))?(\\-(?!SNAPSHOT)([^\\-]+))?(\\-SNAPSHOT)?");
+ Pattern.compile("(\\d+)(\\.(\\d+))?(\\.(\\d+))?(\\.(\\d+))?(\\-(?!SNAPSHOT)([^\\-]+))?(\\-SNAPSHOT)?");
private Integer major;
private Integer minor;
private Integer patch;
+ private Integer last;
private String classifier;
private boolean snapshot;
- private VersionNumber(Integer major, Integer minor, Integer patch, String classifier, boolean snapshot) {
+ private VersionNumber(Integer major, Integer minor, Integer patch, Integer last,
+ String classifier, boolean snapshot) {
this.major = major;
this.minor = minor;
this.patch = patch;
+ this.last = last;
this.classifier = classifier;
this.snapshot = snapshot;
}
@@ -152,6 +155,10 @@
return patch;
}
+ public Integer getLast() {
+ return last;
+ }
+
public String getClassifier() {
return classifier;
}
@@ -166,11 +173,13 @@
String majorString = matcher.group(1);
String minorString = matcher.group(3);
String patchString = matcher.group(5);
- String classifier = matcher.group(7);
- String snapshotString = matcher.group(8);
+ String last = matcher.group(7);
+ String classifier = matcher.group(9);
+ String snapshotString = matcher.group(10);
return new VersionNumber(new Integer(majorString),
minorString != null ? new Integer(minorString) : null,
patchString != null ? new Integer(patchString) : null,
+ last != null ? new Integer(last) : null,
classifier,
"-SNAPSHOT".equals(snapshotString));
}