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>