Repository: hbase Updated Branches: refs/heads/branch-1 0dbbc8b8d -> d9bf56ab3
HBASE-13517 Publish a client artifact with shaded dependencies Summary: Add in shaded versions of server and shaded versions of client Test Plan: HBase downstreamer Differential Revision: https://reviews.facebook.net/D37467 Project: http://git-wip-us.apache.org/repos/asf/hbase/repo Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/d9bf56ab Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/d9bf56ab Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/d9bf56ab Branch: refs/heads/branch-1 Commit: d9bf56ab3a40ced5ff77a0d2df8d76e1200f7b22 Parents: 0dbbc8b Author: Elliott Clark <[email protected]> Authored: Mon Apr 20 22:20:19 2015 -0700 Committer: Elliott Clark <[email protected]> Committed: Tue Apr 28 09:44:12 2015 -0700 ---------------------------------------------------------------------- .gitignore | 1 + .../src/main/assembly/hadoop-two-compat.xml | 18 ++- hbase-assembly/src/main/assembly/src.xml | 16 +++ hbase-shaded/hbase-shaded-client/pom.xml | 61 ++++++++++ hbase-shaded/hbase-shaded-server/pom.xml | 61 ++++++++++ hbase-shaded/pom.xml | 121 +++++++++++++++++++ pom.xml | 1 + 7 files changed, 277 insertions(+), 2 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/hbase/blob/d9bf56ab/.gitignore ---------------------------------------------------------------------- diff --git a/.gitignore b/.gitignore index f9fc9f7..626a4d0 100644 --- a/.gitignore +++ b/.gitignore @@ -15,3 +15,4 @@ hbase-*/test *.iml *.ipr patchprocess/ +dependency-reduced-pom.xml http://git-wip-us.apache.org/repos/asf/hbase/blob/d9bf56ab/hbase-assembly/src/main/assembly/hadoop-two-compat.xml ---------------------------------------------------------------------- diff --git a/hbase-assembly/src/main/assembly/hadoop-two-compat.xml b/hbase-assembly/src/main/assembly/hadoop-two-compat.xml index f8ebcda..60699e0 100644 --- a/hbase-assembly/src/main/assembly/hadoop-two-compat.xml +++ b/hbase-assembly/src/main/assembly/hadoop-two-compat.xml @@ -30,9 +30,23 @@ </componentDescriptors> <moduleSets> <moduleSet> - <!-- Enable access to all projects in the current multimodule build. Eclipse - says this is an error, but builds from the command line just fine. --> <useAllReactorProjects>true</useAllReactorProjects> + <includes> + <include>org.apache.hbase:hbase-annotations</include> + <include>org.apache.hbase:hbase-client</include> + <include>org.apache.hbase:hbase-common</include> + <include>org.apache.hbase:hbase-examples</include> + <include>org.apache.hbase:hbase-hadoop2-compat</include> + <include>org.apache.hbase:hbase-hadoop-compat</include> + <include>org.apache.hbase:hbase-it</include> + <include>org.apache.hbase:hbase-prefix-tree</include> + <include>org.apache.hbase:hbase-procedure</include> + <include>org.apache.hbase:hbase-protocol</include> + <include>org.apache.hbase:hbase-rest</include> + <include>org.apache.hbase:hbase-server</include> + <include>org.apache.hbase:hbase-shell</include> + <include>org.apache.hbase:hbase-thrift</include> + </includes> <!-- Binaries for the dependencies also go in the hbase-jars directory --> <binaries> <outputDirectory>lib</outputDirectory> http://git-wip-us.apache.org/repos/asf/hbase/blob/d9bf56ab/hbase-assembly/src/main/assembly/src.xml ---------------------------------------------------------------------- diff --git a/hbase-assembly/src/main/assembly/src.xml b/hbase-assembly/src/main/assembly/src.xml index b7a21a4..8d801ca 100644 --- a/hbase-assembly/src/main/assembly/src.xml +++ b/hbase-assembly/src/main/assembly/src.xml @@ -30,6 +30,22 @@ <!-- Enable access to all projects in the current multimodule build. Eclipse says this is an error, but builds from the command line just fine. --> <useAllReactorProjects>true</useAllReactorProjects> + <includes> + <include>org.apache.hbase:hbase-annotations</include> + <include>org.apache.hbase:hbase-client</include> + <include>org.apache.hbase:hbase-common</include> + <include>org.apache.hbase:hbase-examples</include> + <include>org.apache.hbase:hbase-hadoop2-compat</include> + <include>org.apache.hbase:hbase-hadoop-compat</include> + <include>org.apache.hbase:hbase-it</include> + <include>org.apache.hbase:hbase-prefix-tree</include> + <include>org.apache.hbase:hbase-procedure</include> + <include>org.apache.hbase:hbase-protocol</include> + <include>org.apache.hbase:hbase-rest</include> + <include>org.apache.hbase:hbase-server</include> + <include>org.apache.hbase:hbase-shell</include> + <include>org.apache.hbase:hbase-thrift</include> + </includes> <!-- Include all the sources in the top directory --> <sources> <fileSets> http://git-wip-us.apache.org/repos/asf/hbase/blob/d9bf56ab/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 new file mode 100644 index 0000000..7c8150d --- /dev/null +++ b/hbase-shaded/hbase-shaded-client/pom.xml @@ -0,0 +1,61 @@ +<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>1.2.0-SNAPSHOT</version> + <relativePath>..</relativePath> + </parent> + <artifactId>hbase-shaded-client</artifactId> + <name>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> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-shade-plugin</artifactId> + </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> + +</project> \ No newline at end of file http://git-wip-us.apache.org/repos/asf/hbase/blob/d9bf56ab/hbase-shaded/hbase-shaded-server/pom.xml ---------------------------------------------------------------------- diff --git a/hbase-shaded/hbase-shaded-server/pom.xml b/hbase-shaded/hbase-shaded-server/pom.xml new file mode 100644 index 0000000..7bce10c --- /dev/null +++ b/hbase-shaded/hbase-shaded-server/pom.xml @@ -0,0 +1,61 @@ +<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>1.2.0-SNAPSHOT</version> + <relativePath>..</relativePath> + </parent> + <artifactId>hbase-shaded-server</artifactId> + <name>HBase - Shaded - Server</name> + <build> + <plugins> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-site-plugin</artifactId> + <configuration> + <skip>true</skip> + </configuration> + </plugin> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-shade-plugin</artifactId> + </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-server</artifactId> + </dependency> + </dependencies> + +</project> \ No newline at end of file http://git-wip-us.apache.org/repos/asf/hbase/blob/d9bf56ab/hbase-shaded/pom.xml ---------------------------------------------------------------------- diff --git a/hbase-shaded/pom.xml b/hbase-shaded/pom.xml new file mode 100644 index 0000000..fa526be --- /dev/null +++ b/hbase-shaded/pom.xml @@ -0,0 +1,121 @@ +<?xml version="1.0"?> +<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</artifactId> + <groupId>org.apache.hbase</groupId> + <version>1.2.0-SNAPSHOT</version> + <relativePath>..</relativePath> + </parent> + <artifactId>hbase-shaded</artifactId> + <name>HBase - Shaded</name> + <description>Module of HBase with most deps shaded.</description> + <packaging>pom</packaging> + <modules> + <module>hbase-shaded-client</module> + <module>hbase-shaded-server</module> + </modules> + <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> + <pluginManagement> + <plugins> + <plugin> + <!--Make it so assembly:single does nothing in here--> + <artifactId>maven-assembly-plugin</artifactId> + <configuration> + <skipAssembly>true</skipAssembly> + </configuration> + </plugin> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-shade-plugin</artifactId> + <version>2.3</version> + <executions> + <execution> + <phase>package</phase> + <goals> + <goal>shade</goal> + </goals> + <configuration> + <shadedArtifactAttached>false</shadedArtifactAttached> + <promoteTransitiveDependencies>true</promoteTransitiveDependencies> + <dependencyReducedPomLocation>${project.build.directory}/dependency-reduced-pom.xml</dependencyReducedPomLocation> + <artifactSet> + <includes> + <include>*:*</include> + </includes> + <excludes> + <exclude>org.slf4j:*</exclude> + <exclude>org.apache.htrace:*</exclude> + <exclude>log4j:*</exclude> + <exclude>commons-logging:*</exclude> + </excludes> + + </artifactSet> + <relocations> + <relocation> + <pattern>com</pattern> + <shadedPattern>org.apache.hadoop.hbase.shaded.com</shadedPattern> + </relocation> + <relocation> + <pattern>net</pattern> + <shadedPattern>org.apache.hadoop.hbase.shaded.net</shadedPattern> + </relocation> + <relocation> + <pattern>javax</pattern> + <shadedPattern>org.apache.hadoop.hbase.shaded.javax</shadedPattern> + </relocation> + <relocation> + <pattern>io</pattern> + <shadedPattern>org.apache.hadoop.hbase.shaded.io</shadedPattern> + </relocation> + <relocation> + <pattern>org</pattern> + <shadedPattern>org.apache.hadoop.hbase.shaded.org</shadedPattern> + <excludes> + <exclude>org.apache.hadoop.**</exclude> + </excludes> + </relocation> + </relocations> + </configuration> + </execution> + </executions> + </plugin> + </plugins> + </pluginManagement> + </build> +</project> \ No newline at end of file http://git-wip-us.apache.org/repos/asf/hbase/blob/d9bf56ab/pom.xml ---------------------------------------------------------------------- diff --git a/pom.xml b/pom.xml index aee1b68..f9d1b59 100644 --- a/pom.xml +++ b/pom.xml @@ -65,6 +65,7 @@ <module>hbase-testing-util</module> <module>hbase-annotations</module> <module>hbase-checkstyle</module> + <module>hbase-shaded</module> </modules> <!--Add apache snapshots in case we want to use unreleased versions of plugins: e.g. surefire 2.18-SNAPSHOT-->
