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-->

Reply via email to