Add a netty module; it has enough idiosynchracies to justify special treatment
diff --git a/README.txt b/README.txt
index 474f912..28b554a 100644
--- a/README.txt
+++ b/README.txt
@@ -19,9 +19,9 @@
(Make sure you have your credentials set over in ~/.m2/settings.xml, etc. -- see
hbase refguide for publishing SNAPSHOTS/Release Candidates)
-We have two submodules, one to patch and then relocate (shade) protobuf. The other
-modules relocate a bundle of other (unpatched) libs used by hbase. This latter
-set includes protobuf-util, netty-all, gson, and guava.
+We have a number of submodules, one per ornery lib -- protobuf and netty --
+where we need special-handling and then a bucket for all the rest,
+hbase-shaded-miscellaneous. This latter includes protobuf-util, gson, and guava.
All shading is done using the same relocation offset of
org.apache.hadoop.hbase.shaded; we add this prefix to the relocated thirdparty
diff --git a/hbase-shaded-thirdparty/pom.xml b/hbase-shaded-miscellaneous/pom.xml
similarity index 60%
copy from hbase-shaded-thirdparty/pom.xml
copy to hbase-shaded-miscellaneous/pom.xml
index 51950fa..c8adf84 100644
--- a/hbase-shaded-thirdparty/pom.xml
+++ b/hbase-shaded-miscellaneous/pom.xml
@@ -35,10 +35,11 @@
<version>1.0.0-SNAPSHOT</version>
<relativePath>..</relativePath>
</parent>
- <artifactId>hbase-shaded-thirdparty</artifactId>
- <name>Apache HBase Relocated (Shaded) Third-party Libs</name>
+ <artifactId>hbase-shaded-miscellaneous</artifactId>
+ <name>Apache HBase Relocated (Shaded) Third-party Miscellaneous Libs</name>
<description>
- Pulls down libs, relocates them and then makes a fat new jar with them all in it.
+ Pulls down a set of libs, relocates them and then makes a fat new jar with them all in it.
+ See below for what this miscellaney includes.
</description>
<build>
<plugins>
@@ -67,10 +68,6 @@
<configuration>
<relocations>
<relocation>
- <pattern>io.netty</pattern>
- <shadedPattern>${rename.offset}.io.netty</shadedPattern>
- </relocation>
- <relocation>
<pattern>com.google</pattern>
<shadedPattern>${rename.offset}.com.google</shadedPattern>
</relocation>
@@ -92,51 +89,6 @@
</execution>
</executions>
</plugin>
- <plugin>
- <!--This trick from
- https://stackoverflow.com/questions/33825743/rename-files-inside-a-jar-using-some-maven-plugin
-
- The netty jar has a .so in it. Shading requires rename of the .so and then passing a system
- property so netty finds the renamed .so and associates it w/ the relocated netty files.
-
- Add this define when running unit tests:
-
- mvn test -Dorg.apache.hadoop.hbase.shaded.io.netty.packagePrefix=org.apache.hadoop.hbase.shaded. -Dtest=TestNettyIPC
-
- See toward the end of this issue for how to pass config:
-
- https://github.com/netty/netty/issues/6665
-
- TODO: Ensure native works.
- NOTE: The 'tofile' in the move command below has the relocation hard-coded
- with '-' instead of '.' separators. If change the relocation, need to change here too.
- -->
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-antrun-plugin</artifactId>
- <version>1.8</version>
- <executions>
- <execution>
- <id>unpack</id>
- <phase>package</phase>
- <configuration>
- <target>
- <echo message="unjar"/>
- <unzip src="${project.build.directory}/${project.artifactId}-${project.version}.jar"
- dest="${project.build.directory}/unpacked/"/>
- <echo message="Rename netty .so in META-INF"/>
- <move file="${project.build.directory}/unpacked/META-INF/native/libnetty-transport-native-epoll.so"
- tofile="${project.build.directory}/unpacked/META-INF/native/liborg-apache-hadoop-hbase-shaded-netty-transport-native-epoll.so" />
- <echo message="Redo jar"/>
- <jar destfile="${project.build.directory}/${project.artifactId}-${project.version}.jar"
- basedir="${project.build.directory}/unpacked"/>
- </target>
- </configuration>
- <goals>
- <goal>run</goal>
- </goals>
- </execution>
- </executions>
- </plugin>
</plugins>
</build>
<dependencies>
@@ -157,10 +109,5 @@
they publish new protobuf version w/o updating util.-->
<version>3.3.0</version>
</dependency>
- <dependency>
- <groupId>io.netty</groupId>
- <artifactId>netty-all</artifactId>
- <version>4.1.12.Final</version>
- </dependency>
</dependencies>
</project>
diff --git a/hbase-shaded-thirdparty/pom.xml b/hbase-shaded-netty/pom.xml
similarity index 85%
rename from hbase-shaded-thirdparty/pom.xml
rename to hbase-shaded-netty/pom.xml
index 51950fa..4e5ac42 100644
--- a/hbase-shaded-thirdparty/pom.xml
+++ b/hbase-shaded-netty/pom.xml
@@ -35,10 +35,10 @@
<version>1.0.0-SNAPSHOT</version>
<relativePath>..</relativePath>
</parent>
- <artifactId>hbase-shaded-thirdparty</artifactId>
- <name>Apache HBase Relocated (Shaded) Third-party Libs</name>
+ <artifactId>hbase-shaded-netty</artifactId>
+ <name>Apache HBase Relocated (Shaded) Netty Libs</name>
<description>
- Pulls down libs, relocates them and then makes a fat new jar with them all in it.
+ Pulls down netty.io, relocates nd then makes a fat new jar with them all in it.
</description>
<build>
<plugins>
@@ -70,10 +70,6 @@
<pattern>io.netty</pattern>
<shadedPattern>${rename.offset}.io.netty</shadedPattern>
</relocation>
- <relocation>
- <pattern>com.google</pattern>
- <shadedPattern>${rename.offset}.com.google</shadedPattern>
- </relocation>
</relocations>
<artifactSet>
<excludes>
@@ -141,23 +137,6 @@
</build>
<dependencies>
<dependency>
- <groupId>com.google.code.gson</groupId>
- <artifactId>gson</artifactId>
- <version>2.8.1</version>
- </dependency>
- <dependency>
- <groupId>com.google.guava</groupId>
- <artifactId>guava</artifactId>
- <version>22.0</version>
- </dependency>
- <dependency>
- <groupId>com.google.protobuf</groupId>
- <artifactId>protobuf-java-util</artifactId>
- <!--Version should be same as protobuf except sometimes
- they publish new protobuf version w/o updating util.-->
- <version>3.3.0</version>
- </dependency>
- <dependency>
<groupId>io.netty</groupId>
<artifactId>netty-all</artifactId>
<version>4.1.12.Final</version>
diff --git a/pom.xml b/pom.xml
index d9a7b31..7da877b 100644
--- a/pom.xml
+++ b/pom.xml
@@ -55,7 +55,8 @@
</licenses>
<modules>
<module>hbase-shaded-protobuf</module>
- <module>hbase-shaded-thirdparty</module>
+ <module>hbase-shaded-netty</module>
+ <module>hbase-shaded-miscellaneous</module>
</modules>
<scm>
<connection>scm:git:git://git.apache.org/hbase-thirdparty.git</connection>
diff --git a/src/main/assembly/src.xml b/src/main/assembly/src.xml
index ab2d7f4..4b8ca31 100644
--- a/src/main/assembly/src.xml
+++ b/src/main/assembly/src.xml
@@ -30,7 +30,8 @@
<useAllReactorProjects>true</useAllReactorProjects>
<includes>
<include>org.apache.hbase.thirdparty:hbase-shaded-protobuf</include>
- <include>org.apache.hbase.thirdparty:hbase-shaded-thirdparty</include>
+ <include>org.apache.hbase.thirdparty:hbase-shaded-netty</include>
+ <include>org.apache.hbase.thirdparty:hbase-shaded-miscellaneous</include>
</includes>
<!-- Include all the sources in the top directory -->
<sources>