tree 5462ed413a5642dcbe8ea09f4fdd89273d04a50e
parent 19300bfbb416ae38378891868b714daa50d8769d
author Steve Loughran <stevel@apache.org> 1658244248 +0100
committer GitHub <noreply@github.com> 1658244248 -0700
gpgsig -----BEGIN PGP SIGNATURE-----
 
 wsBcBAABCAAQBQJi1syYCRBK7hj4Ov3rIwAAEWgIAEyoCapBGr/CAS06k23yEKYM
 61HlfPzMp3jxb2JHTPIGBWyciNnfRKzpAGBhXIyYr/K4Wt5Rkh7hb9WEkc05EtgR
 FA81WLAEbwjnCsIHZSiRtIC4VoQO7ZH9Zrxiw77kWJfb0LFVGTQNOHHMviUga4M2
 kxttXUEMempRXFq1kHRbG1NxBkt987SSSXbeMYV4hsf/ezbF8RSAugJnxz2UuxPv
 B3/vhDAjfygGT93Gj56YVM/JdhLmcLqufSRE5DV3UTE4rP9wdJZq2X3qyZdWH9XE
 S9rHlxF4cbwGGgzMMPa49BDHqsaEFcRGZDdBNqWlSzz3gWmFESp7izjp71vcP2Q=
 =dwOz
 -----END PGP SIGNATURE-----
 

PARQUET-2158: Upgrade Hadoop dependency to version 3.2.0 (#976)

* PARQUET-2158: Upgrade Hadoop dependency to version 3.2.0

This updates Parquet's Hadoop dependency to 3.2.0.
This version adds compatibility with Java 11, as well
as many other features and bug fixes.

* PARQUET-2158. PathGlobPattern to compile/link with hadoop 3.2.0

The deprecated parquet-thrift class PathGlobPattern doesn't
compile against hadoop 3.x because in HADOOP-12436 the
nominally private class org.apache.hadoop.fs.GlobPattern
implementation switched from using java.util.regex.Pattern
to com.google.re2j.PatternSyntaxException.

The fact nobody has ever reported this problem implies that it
is never used on any hadoop 3 release, ever.

This commit fixes the build by moving to the google classes.
The alternative strategy would actually be to fork the hadoop
class. This will work unless/until the hadoop project changes
the class again.

It may be time to consider removing entirely. Clearly nobody
is actually using it.

* PARQUET-2158. build auditing to cope with switch to google rej2j.

Disables the API compatibility check and adds rej2j as a 'provided'
dependency so that the relevant auditing checks do not fail.