HBASE-20333 Provide a shaded client that allows downstream to provide Hadoop needs.
Project: http://git-wip-us.apache.org/repos/asf/hbase/repo Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/1e09eb4c Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/1e09eb4c Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/1e09eb4c Branch: refs/heads/HBASE-20331 Commit: 1e09eb4cecc2940588f97a8a790b534e06269329 Parents: 3cc346d Author: Sean Busbey <bus...@apache.org> Authored: Tue Apr 24 14:51:12 2018 -0500 Committer: Sean Busbey <bus...@apache.org> Committed: Mon Jun 11 10:25:18 2018 -0500 ---------------------------------------------------------------------- .../hbase-shaded-check-invariants/pom.xml | 5 ++ .../hbase-shaded-client-byo-hadoop/pom.xml | 70 ++++++++++++++++++++ hbase-shaded/hbase-shaded-client/pom.xml | 35 ++++++++-- hbase-shaded/hbase-shaded-mapreduce/pom.xml | 30 ++------- hbase-shaded/pom.xml | 6 ++ 5 files changed, 115 insertions(+), 31 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/hbase/blob/1e09eb4c/hbase-shaded/hbase-shaded-check-invariants/pom.xml ---------------------------------------------------------------------- diff --git a/hbase-shaded/hbase-shaded-check-invariants/pom.xml b/hbase-shaded/hbase-shaded-check-invariants/pom.xml index 7ba4a41..287a986 100644 --- a/hbase-shaded/hbase-shaded-check-invariants/pom.xml +++ b/hbase-shaded/hbase-shaded-check-invariants/pom.xml @@ -48,6 +48,11 @@ <artifactId>hbase-shaded-mapreduce</artifactId> <version>${project.version}</version> </dependency> + <dependency> + <groupId>org.apache.hbase</groupId> + <artifactId>hbase-shaded-client-byo-hadoop</artifactId> + <version>${project.version}</version> + </dependency> <!-- parent pom defines these for children. :( :( :( --> <dependency> <groupId>com.github.stephenc.findbugs</groupId> http://git-wip-us.apache.org/repos/asf/hbase/blob/1e09eb4c/hbase-shaded/hbase-shaded-client-byo-hadoop/pom.xml ---------------------------------------------------------------------- diff --git a/hbase-shaded/hbase-shaded-client-byo-hadoop/pom.xml b/hbase-shaded/hbase-shaded-client-byo-hadoop/pom.xml new file mode 100644 index 0000000..c51a1af --- /dev/null +++ b/hbase-shaded/hbase-shaded-client-byo-hadoop/pom.xml @@ -0,0 +1,70 @@ +<project xmlns="http://maven.apache.org/POM/4.0.0" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> + <!-- + /** + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + --> + <modelVersion>4.0.0</modelVersion> + <parent> + <artifactId>hbase-shaded</artifactId> + <groupId>org.apache.hbase</groupId> + <version>3.0.0-SNAPSHOT</version> + <relativePath>..</relativePath> + </parent> + <artifactId>hbase-shaded-client-byo-hadoop</artifactId> + <name>Apache HBase - Shaded - Client</name> + <build> + <plugins> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-site-plugin</artifactId> + <configuration> + <skip>true</skip> + </configuration> + </plugin> + <plugin> + <!--Make it so assembly:single does nothing in here--> + <artifactId>maven-assembly-plugin</artifactId> + <configuration> + <skipAssembly>true</skipAssembly> + </configuration> + </plugin> + </plugins> + </build> + <dependencies> + <dependency> + <groupId>org.apache.hbase</groupId> + <artifactId>hbase-client</artifactId> + </dependency> + </dependencies> + + <profiles> + <profile> + <id>release</id> + <build> + <plugins> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-shade-plugin</artifactId> + </plugin> + </plugins> + </build> + </profile> + </profiles> +</project> http://git-wip-us.apache.org/repos/asf/hbase/blob/1e09eb4c/hbase-shaded/hbase-shaded-client/pom.xml ---------------------------------------------------------------------- diff --git a/hbase-shaded/hbase-shaded-client/pom.xml b/hbase-shaded/hbase-shaded-client/pom.xml index 72a5b60..5ac3ef5 100644 --- a/hbase-shaded/hbase-shaded-client/pom.xml +++ b/hbase-shaded/hbase-shaded-client/pom.xml @@ -28,7 +28,7 @@ <relativePath>..</relativePath> </parent> <artifactId>hbase-shaded-client</artifactId> - <name>Apache HBase - Shaded - Client</name> + <name>Apache HBase - Shaded - Client (with Hadoop bundled)</name> <build> <plugins> <plugin> @@ -51,6 +51,7 @@ <dependency> <groupId>org.apache.hbase</groupId> <artifactId>hbase-client</artifactId> + <version>${project.version}</version> </dependency> </dependencies> @@ -59,10 +60,34 @@ <id>release</id> <build> <plugins> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-shade-plugin</artifactId> - </plugin> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-shade-plugin</artifactId> + <executions> + <execution> + <id>aggregate-into-a-jar-with-relocated-third-parties</id> + <configuration> + <artifactSet> + <excludes> + <!-- + Tell the shade plugin that in this case we want to include hadoop + by leaving out the exclude. + --> + <!-- The rest of these should be kept in sync with the parent pom --> + <exclude>org.apache.hbase:hbase-resource-bundle</exclude> + <exclude>org.slf4j:*</exclude> + <exclude>com.google.code.findbugs:*</exclude> + <exclude>com.github.stephenc.findbugs:*</exclude> + <exclude>org.apache.htrace:*</exclude> + <exclude>org.apache.yetus:*</exclude> + <exclude>log4j:*</exclude> + <exclude>commons-logging:*</exclude> + </excludes> + </artifactSet> + </configuration> + </execution> + </executions> + </plugin> </plugins> </build> </profile> http://git-wip-us.apache.org/repos/asf/hbase/blob/1e09eb4c/hbase-shaded/hbase-shaded-mapreduce/pom.xml ---------------------------------------------------------------------- diff --git a/hbase-shaded/hbase-shaded-mapreduce/pom.xml b/hbase-shaded/hbase-shaded-mapreduce/pom.xml index edc80cd..598f3af 100644 --- a/hbase-shaded/hbase-shaded-mapreduce/pom.xml +++ b/hbase-shaded/hbase-shaded-mapreduce/pom.xml @@ -169,32 +169,10 @@ <id>release</id> <build> <plugins> - <!-- Tell the shade plugin we want to leave Hadoop as a dependency --> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-shade-plugin</artifactId> - <executions> - <execution> - <id>aggregate-into-a-jar-with-relocated-third-parties</id> - <configuration> - <artifactSet> - <excludes> - <exclude>org.apache.hadoop:*</exclude> - <!-- The rest of these should be kept in sync with the parent pom --> - <exclude>org.apache.hbase:hbase-resource-bundle</exclude> - <exclude>org.slf4j:*</exclude> - <exclude>com.google.code.findbugs:*</exclude> - <exclude>com.github.stephenc.findbugs:*</exclude> - <exclude>org.apache.htrace:*</exclude> - <exclude>org.apache.yetus:*</exclude> - <exclude>log4j:*</exclude> - <exclude>commons-logging:*</exclude> - </excludes> - </artifactSet> - </configuration> - </execution> - </executions> - </plugin> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-shade-plugin</artifactId> + </plugin> </plugins> </build> </profile> http://git-wip-us.apache.org/repos/asf/hbase/blob/1e09eb4c/hbase-shaded/pom.xml ---------------------------------------------------------------------- diff --git a/hbase-shaded/pom.xml b/hbase-shaded/pom.xml index 93b122f..9eb30e0 100644 --- a/hbase-shaded/pom.xml +++ b/hbase-shaded/pom.xml @@ -39,6 +39,7 @@ <shaded.prefix>org.apache.hadoop.hbase.shaded</shaded.prefix> </properties> <modules> + <module>hbase-shaded-client-byo-hadoop</module> <module>hbase-shaded-client</module> <module>hbase-shaded-mapreduce</module> <module>hbase-shaded-check-invariants</module> @@ -131,6 +132,11 @@ <shadeTestJar>false</shadeTestJar> <artifactSet> <excludes> + <!-- default to excluding Hadoop, have module that want + to include it redefine the exclude list --> + <exclude>org.apache.hadoop:*</exclude> + <!-- the rest of this needs to be kept in sync with any + hadoop-including module --> <exclude>org.apache.hbase:hbase-resource-bundle</exclude> <exclude>org.slf4j:*</exclude> <exclude>com.google.code.findbugs:*</exclude>