PHOENIX-4466 Relocate Avatica and hadoop-common in thin-client jar (Toshihiro Suzuki)
When using the thin-client in Spark, we encounter problems in that Spark is placing its own version of avatica on the classpath as well. We can relocate most of Avatica (all but the protobuf generated messages as their classnames are required to be 'org.apache.calcite.avatica.proto' presently) and hadoop-common to avoid future problems. Project: http://git-wip-us.apache.org/repos/asf/phoenix/repo Commit: http://git-wip-us.apache.org/repos/asf/phoenix/commit/34693843 Tree: http://git-wip-us.apache.org/repos/asf/phoenix/tree/34693843 Diff: http://git-wip-us.apache.org/repos/asf/phoenix/diff/34693843 Branch: refs/heads/system-catalog Commit: 34693843abe4490b54fbd30512bf7d98d0f59c0d Parents: 412329a Author: Josh Elser <els...@apache.org> Authored: Fri Dec 22 13:28:12 2017 -0500 Committer: Josh Elser <els...@apache.org> Committed: Fri Dec 22 13:28:12 2017 -0500 ---------------------------------------------------------------------- phoenix-queryserver-client/pom.xml | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/phoenix/blob/34693843/phoenix-queryserver-client/pom.xml ---------------------------------------------------------------------- diff --git a/phoenix-queryserver-client/pom.xml b/phoenix-queryserver-client/pom.xml index 6c21cc7..486d89b 100644 --- a/phoenix-queryserver-client/pom.xml +++ b/phoenix-queryserver-client/pom.xml @@ -123,9 +123,19 @@ <shadedPattern>${shaded.package}.com.google.protobuf</shadedPattern> </relocation> <!-- ORG relocation --> - <!-- Calcite/Avatica is not relocated because the wire API (as of <=1.8.0) expects - consistent class names on client and server. Relocating these would break - backwards compatibility. --> + <relocation> + <pattern>org.apache.calcite.avatica</pattern> + <shadedPattern>${shaded.package}.org.apache.calcite.avatica</shadedPattern> + <!-- The protobuf messages can't be relocated due to a limitation + in the Avatica protocol. --> + <excludes> + <exclude>org.apache.calcite.avatica.proto.*</exclude> + </excludes> + </relocation> + <relocation> + <pattern>org.apache.hadoop</pattern> + <shadedPattern>${shaded.package}.org.apache.hadoop</shadedPattern> + </relocation> <relocation> <pattern>org.apache.commons</pattern> <shadedPattern>${shaded.package}.org.apache.commons</shadedPattern>