You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@parquet.apache.org by bl...@apache.org on 2015/12/08 19:02:45 UTC
parquet-mr git commit: PARQUET-349: VersionParser does not handle
versions missing 'build' section
Repository: parquet-mr
Updated Branches:
refs/heads/master 14097c64d -> f2615d9a6
PARQUET-349: VersionParser does not handle versions missing 'build' section
This change reworks the regular expression in VersionParser.java to allow for missing 'version' and 'build' sections.
Author: Reuben Kuhnert <re...@cloudera.com>
Closes #283 from sircodesalotOfTheRound/fix-version-test and squashes the following commits:
0f4a22f [Reuben Kuhnert] PARQUET-349: VersionParser does not handle versions missing 'build' section.
Project: http://git-wip-us.apache.org/repos/asf/parquet-mr/repo
Commit: http://git-wip-us.apache.org/repos/asf/parquet-mr/commit/f2615d9a
Tree: http://git-wip-us.apache.org/repos/asf/parquet-mr/tree/f2615d9a
Diff: http://git-wip-us.apache.org/repos/asf/parquet-mr/diff/f2615d9a
Branch: refs/heads/master
Commit: f2615d9a611db401cdedc022112c87ad938b5680
Parents: 14097c6
Author: Reuben Kuhnert <re...@cloudera.com>
Authored: Tue Dec 8 10:02:31 2015 -0800
Committer: Ryan Blue <bl...@apache.org>
Committed: Tue Dec 8 10:02:31 2015 -0800
----------------------------------------------------------------------
.../java/org/apache/parquet/VersionParser.java | 6 +++---
.../test/java/org/apache/parquet/VersionTest.java | 17 +++++++++++++++++
2 files changed, 20 insertions(+), 3 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/parquet-mr/blob/f2615d9a/parquet-common/src/main/java/org/apache/parquet/VersionParser.java
----------------------------------------------------------------------
diff --git a/parquet-common/src/main/java/org/apache/parquet/VersionParser.java b/parquet-common/src/main/java/org/apache/parquet/VersionParser.java
index c1a94d3..fc4ff6c 100644
--- a/parquet-common/src/main/java/org/apache/parquet/VersionParser.java
+++ b/parquet-common/src/main/java/org/apache/parquet/VersionParser.java
@@ -31,7 +31,7 @@ import static org.apache.parquet.Preconditions.checkArgument;
*/
public class VersionParser {
// example: parquet-mr version 1.8.0rc2-SNAPSHOT (build ddb469afac70404ea63b72ed2f07a911a8592ff7)
- public static final String FORMAT = "(.+) version ((.*) )?\\(build ?(.*)\\)";
+ public static final String FORMAT = "(.*?)\\s+version\\s*(?:([^(]*?)\\s*(?:\\(\\s*build\\s*([^)]*?)\\s*\\))?)?";
public static final Pattern PATTERN = Pattern.compile(FORMAT);
public static class ParsedVersion {
@@ -113,8 +113,8 @@ public class VersionParser {
}
String application = matcher.group(1);
- String semver = matcher.group(3);
- String appBuildHash = matcher.group(4);
+ String semver = matcher.group(2);
+ String appBuildHash = matcher.group(3);
if (Strings.isNullOrEmpty(application)) {
throw new VersionParseException("application cannot be null or empty");
http://git-wip-us.apache.org/repos/asf/parquet-mr/blob/f2615d9a/parquet-common/src/test/java/org/apache/parquet/VersionTest.java
----------------------------------------------------------------------
diff --git a/parquet-common/src/test/java/org/apache/parquet/VersionTest.java b/parquet-common/src/test/java/org/apache/parquet/VersionTest.java
index 75f8b76..30bd3bf 100644
--- a/parquet-common/src/test/java/org/apache/parquet/VersionTest.java
+++ b/parquet-common/src/test/java/org/apache/parquet/VersionTest.java
@@ -79,5 +79,22 @@ public class VersionTest {
assertEquals(new ParsedVersion("parquet-mr", "1.6.0", null), VersionParser.parse("parquet-mr version 1.6.0 (build)"));
assertEquals(new ParsedVersion("parquet-mr", null, null), VersionParser.parse("parquet-mr version (build)"));
assertEquals(new ParsedVersion("parquet-mr", null, null), VersionParser.parse("parquet-mr version (build )"));
+
+ // Missing entire build section
+ assertEquals(new ParsedVersion("parquet-mr", "1.6.0", null), VersionParser.parse("parquet-mr version 1.6.0"));
+ assertEquals(new ParsedVersion("parquet-mr", "1.8.0rc4", null), VersionParser.parse("parquet-mr version 1.8.0rc4"));
+ assertEquals(new ParsedVersion("parquet-mr", "1.8.0rc4-SNAPSHOT", null), VersionParser.parse("parquet-mr version 1.8.0rc4-SNAPSHOT"));
+ assertEquals(new ParsedVersion("parquet-mr", null, null), VersionParser.parse("parquet-mr version"));
+
+
+ // Various spaces
+ assertEquals(new ParsedVersion("parquet-mr", "1.6.0", null), VersionParser.parse("parquet-mr version 1.6.0"));
+ assertEquals(new ParsedVersion("parquet-mr", "1.8.0rc4", null), VersionParser.parse("parquet-mr version 1.8.0rc4"));
+ assertEquals(new ParsedVersion("parquet-mr", "1.8.0rc4-SNAPSHOT", null), VersionParser.parse("parquet-mr version 1.8.0rc4-SNAPSHOT "));
+ assertEquals(new ParsedVersion("parquet-mr", null, null), VersionParser.parse("parquet-mr version"));
+ assertEquals(new ParsedVersion("parquet-mr", "1.6.0", null), VersionParser.parse("parquet-mr version 1.6.0 ( build )"));
+ assertEquals(new ParsedVersion("parquet-mr", "1.6.0", null), VersionParser.parse("parquet-mr version 1.6.0 ( build)"));
+ assertEquals(new ParsedVersion("parquet-mr", null, null), VersionParser.parse("parquet-mr version ( build)"));
+ assertEquals(new ParsedVersion("parquet-mr", null, null), VersionParser.parse("parquet-mr version (build )"));
}
}