public static VersionNumber create(String versionString) throws ParseException { Matcher matcher = PATTERN.matcher(versionString); if (matcher.matches()) { String majorString = matcher.group(1); String minorString = matcher.group(3); String patchString = matcher.group(5); 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)); } throw new ParseException( "Input string did not match expected pattern: major[.minor[.patch]][-classifier][-SNAPSHOT]", 0); } }
@Test public void testVersionNumber() throws Exception { HBaseVersion.VersionNumber ver = HBaseVersion.VersionNumber.create("1"); assertVersionNumber(ver, 1, null, null, null, false); ver = HBaseVersion.VersionNumber.create("1-SNAPSHOT"); assertVersionNumber(ver, 1, null, null, null, true); ver = HBaseVersion.VersionNumber.create("1-foo"); assertVersionNumber(ver, 1, null, null, "foo", false); ver = HBaseVersion.VersionNumber.create("1-foo-SNAPSHOT"); assertVersionNumber(ver, 1, null, null, "foo", true); ver = HBaseVersion.VersionNumber.create("10.0"); assertVersionNumber(ver, 10, 0, null, null, false); ver = HBaseVersion.VersionNumber.create("10.0-bar"); assertVersionNumber(ver, 10, 0, null, "bar", false); ver = HBaseVersion.VersionNumber.create("3.2.1"); assertVersionNumber(ver, 3, 2, 1, null, false); ver = HBaseVersion.VersionNumber.create("3.2.1-SNAPSHOT"); assertVersionNumber(ver, 3, 2, 1, null, true); ver = HBaseVersion.VersionNumber.create("3.2.1-baz"); assertVersionNumber(ver, 3, 2, 1, "baz", false); ver = HBaseVersion.VersionNumber.create("3.2.1-baz1.2.3");
private void assertVersionNumber(HBaseVersion.VersionNumber version, Integer expectedMajor, Integer expectedMinor, Integer expectedPatch, String expectedClassifier, boolean snapshot) { if (expectedMajor == null) { assertNull(version.getMajor()); } else { assertEquals(expectedMajor, version.getMajor()); } if (expectedMinor == null) { assertNull(version.getMinor()); } else { assertEquals(expectedMinor, version.getMinor()); } if (expectedPatch == null) { assertNull(version.getPatch()); } else { assertEquals(expectedPatch, version.getPatch()); } if (expectedClassifier == null) { assertNull(version.getClassifier()); } else { assertEquals(expectedClassifier, version.getClassifier()); } assertEquals(snapshot, version.isSnapshot()); } }
public static VersionNumber create(String versionString) throws ParseException { Matcher matcher = PATTERN.matcher(versionString); if (matcher.matches()) { String majorString = matcher.group(1); String minorString = matcher.group(3); String patchString = matcher.group(5); 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)); } throw new ParseException( "Input string did not match expected pattern: major[.minor[.patch]][-classifier][-SNAPSHOT]", 0); } }