Merge pull request #1 from joshelser/21002-kafka-connection-pom

HBASE-21002 Reorganize the Kafka Connector codebase
diff --git a/hbase-kafka-proxy/.pom.xml.swp b/hbase-kafka-proxy/.pom.xml.swp
deleted file mode 100644
index 0507dd6..0000000
--- a/hbase-kafka-proxy/.pom.xml.swp
+++ /dev/null
Binary files differ
diff --git a/conf/kafka-route-rules.xml b/kafka/conf/kafka-route-rules.xml
similarity index 70%
rename from conf/kafka-route-rules.xml
rename to kafka/conf/kafka-route-rules.xml
index 4d31ee2..0099501 100644
--- a/conf/kafka-route-rules.xml
+++ b/kafka/conf/kafka-route-rules.xml
@@ -1,3 +1,22 @@
+<!--
+/**
+ * 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.
+ */
+-->
 <!-- rules used by hbase kafka proxy to route mutations to kafka topics-->
 <rules>
 <!--
diff --git a/hbase-kafka-model/pom.xml b/kafka/hbase-kafka-model/pom.xml
similarity index 67%
rename from hbase-kafka-model/pom.xml
rename to kafka/hbase-kafka-model/pom.xml
index 8c497b1..44891c2 100644
--- a/hbase-kafka-model/pom.xml
+++ b/kafka/hbase-kafka-model/pom.xml
@@ -1,4 +1,4 @@
-<?xml version="1.0"?>
+<?xml version="1.0" encoding="UTF-8"?>
 <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">
   <!--
@@ -22,10 +22,10 @@
   -->
   <modelVersion>4.0.0</modelVersion>
   <parent>
-    <groupId>org.apache.hbase</groupId>
+    <groupId>org.apache.hbase.connectors</groupId>
     <artifactId>hbase-connectors</artifactId>
     <version>1.0.0-SNAPSHOT</version>
-    <relativePath>..</relativePath>
+    <relativePath>../..</relativePath>
   </parent>
 
   <artifactId>hbase-kafka-model</artifactId>
@@ -40,25 +40,6 @@
   </dependencies>
 
   <build>
-    <sourceDirectory>${project.basedir}/target/java</sourceDirectory>
-    <resources>
-      <resource>
-        <directory>src/main/resources/</directory>
-        <includes>
-          <include>hbase-default.xml</include>
-        </includes>
-      </resource>
-    </resources>
-    <testResources>
-      <testResource>
-        <directory>src/test/resources/META-INF/</directory>
-        <targetPath>META-INF/</targetPath>
-        <includes>
-          <include>NOTICE</include>
-        </includes>
-        <filtering>true</filtering>
-      </testResource>
-    </testResources>
     <plugins>
       <plugin>
         <groupId>org.apache.avro</groupId>
@@ -72,7 +53,7 @@
             </goals>
             <configuration>
               <sourceDirectory>${project.basedir}/src/main/avro/</sourceDirectory>
-              <outputDirectory>${project.basedir}/target/java/</outputDirectory>
+              <outputDirectory>${project.build.directory}/generated-sources/java</outputDirectory>
               <includes>
                 <include>**/*.avro</include>
               </includes>
@@ -80,8 +61,24 @@
           </execution>
         </executions>
       </plugin>
-
-
+      <plugin>
+        <groupId>org.codehaus.mojo</groupId>
+        <artifactId>build-helper-maven-plugin</artifactId>
+        <executions>
+          <execution>
+            <id>add-source</id>
+            <phase>generate-sources</phase>
+            <goals>
+               <goal>add-source</goal>
+            </goals>
+            <configuration>
+               <sources>
+                  <source>${project.build.directory}/generated-sources/java/</source>
+               </sources>
+            </configuration>
+          </execution>
+        </executions>
+      </plugin>
       <plugin>
         <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-remote-resources-plugin</artifactId>
@@ -100,26 +97,10 @@
           <skipAssembly>true</skipAssembly>
         </configuration>
       </plugin>
-      <plugin>
-        <artifactId>maven-surefire-plugin</artifactId>
-        <configuration>
-          <properties>
-            <property>
-              <name>listener</name>
-              <value>org.apache.hadoop.hbase.ResourceCheckerJUnitListener</value>
-            </property>
-          </properties>
-        </configuration>
-      </plugin>
       <!-- Make a jar and put the sources in the jar -->
       <plugin>
         <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-source-plugin</artifactId>
-        <configuration>
-          <excludes>
-            <exclude>hbase-default.xml</exclude>
-          </excludes>
-        </configuration>
       </plugin>
     </plugins>
     <pluginManagement>
@@ -135,37 +116,11 @@
               <pluginExecutions>
                 <pluginExecution>
                   <pluginExecutionFilter>
-                    <groupId>org.apache.maven.plugins</groupId>
-                    <artifactId>maven-antrun-plugin</artifactId>
-                    <versionRange>[${maven.antrun.version}]</versionRange>
+                    <groupId>org.apache.avro</groupId>
+                    <artifactId>avro-maven-plugin</artifactId>
+                    <versionRange>[1.7.7,)</versionRange>
                     <goals>
-                      <goal>run</goal>
-                    </goals>
-                  </pluginExecutionFilter>
-                  <action>
-                    <execute/>
-                  </action>
-                </pluginExecution>
-                <pluginExecution>
-                  <pluginExecutionFilter>
-                    <groupId>org.apache.maven.plugins</groupId>
-                    <artifactId>maven-dependency-plugin</artifactId>
-                    <versionRange>[2.8,)</versionRange>
-                    <goals>
-                      <goal>build-classpath</goal>
-                    </goals>
-                  </pluginExecutionFilter>
-                  <action>
-                    <ignore></ignore>
-                  </action>
-                </pluginExecution>
-                <pluginExecution>
-                  <pluginExecutionFilter>
-                    <groupId>org.apache.maven.plugins</groupId>
-                    <artifactId>maven-compiler-plugin</artifactId>
-                    <versionRange>[3.2,)</versionRange>
-                    <goals>
-                      <goal>compile</goal>
+                      <goal>schema</goal>
                     </goals>
                   </pluginExecutionFilter>
                   <action>
@@ -179,8 +134,6 @@
       </plugins>
     </pluginManagement>
   </build>
-
-
   <profiles>
     <!-- Needs to make the profile in apache parent pom -->
     <profile>
diff --git a/hbase-kafka-model/src/main/avro/HbaseKafkaEvent.avro b/kafka/hbase-kafka-model/src/main/avro/HbaseKafkaEvent.avro
similarity index 100%
rename from hbase-kafka-model/src/main/avro/HbaseKafkaEvent.avro
rename to kafka/hbase-kafka-model/src/main/avro/HbaseKafkaEvent.avro
diff --git a/hbase-kafka-proxy/pom.xml b/kafka/hbase-kafka-proxy/pom.xml
similarity index 68%
rename from hbase-kafka-proxy/pom.xml
rename to kafka/hbase-kafka-proxy/pom.xml
index 7ece36f..b4b3226 100644
--- a/hbase-kafka-proxy/pom.xml
+++ b/kafka/hbase-kafka-proxy/pom.xml
@@ -1,4 +1,4 @@
-<?xml version="1.0"?>
+<?xml version="1.0" encoding="UTF-8"?>
 <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">
   <!--
@@ -22,10 +22,10 @@
   -->
   <modelVersion>4.0.0</modelVersion>
   <parent>
-    <groupId>org.apache.hbase</groupId>
+    <groupId>org.apache.hbase.connectors</groupId>
     <artifactId>hbase-connectors</artifactId>
     <version>1.0.0-SNAPSHOT</version>
-    <relativePath>..</relativePath>
+    <relativePath>../..</relativePath>
   </parent>
 
   <artifactId>hbase-kafka-proxy</artifactId>
@@ -71,70 +71,6 @@
         </configuration>
       </plugin>
     </plugins>
-    <pluginManagement>
-      <plugins>
-        <!--This plugin's configuration is used to store Eclipse m2e settings
-             only. It has no influence on the Maven build itself. -->
-        <plugin>
-          <groupId>org.eclipse.m2e</groupId>
-          <artifactId>lifecycle-mapping</artifactId>
-          <version>1.0.0</version>
-          <configuration>
-            <lifecycleMappingMetadata>
-              <pluginExecutions>
-                <pluginExecution>
-                  <pluginExecutionFilter>
-                    <groupId>org.apache.maven.plugins</groupId>
-                    <artifactId>maven-antrun-plugin</artifactId>
-                    <versionRange>[${maven.antrun.version}]</versionRange>
-                    <goals>
-                      <goal>run</goal>
-                    </goals>
-                  </pluginExecutionFilter>
-                  <action>
-                    <execute/>
-                  </action>
-                </pluginExecution>
-                <pluginExecution>
-                  <pluginExecutionFilter>
-                    <groupId>org.apache.maven.plugins</groupId>
-                    <artifactId>maven-dependency-plugin</artifactId>
-                    <versionRange>[2.8,)</versionRange>
-                    <goals>
-                      <goal>build-classpath</goal>
-                    </goals>
-                  </pluginExecutionFilter>
-                  <action>
-                    <ignore></ignore>
-                  </action>
-                </pluginExecution>
-                <pluginExecution>
-                  <pluginExecutionFilter>
-                    <groupId>org.apache.maven.plugins</groupId>
-                    <artifactId>maven-compiler-plugin</artifactId>
-                    <versionRange>[3.2,)</versionRange>
-                    <configuration>
-                      <source>${compileSource}</source>
-                      <target>${compileSource}</target>
-                      <showWarnings>true</showWarnings>
-                      <showDeprecation>false</showDeprecation>
-                      <useIncrementalCompilation>false</useIncrementalCompilation>
-                      <compilerArgument>-Xlint:-options</compilerArgument>
-                    </configuration>
-                    <goals>
-                      <goal>compile</goal>
-                    </goals>
-                  </pluginExecutionFilter>
-                  <action>
-                    <ignore></ignore>
-                  </action>
-                </pluginExecution>
-              </pluginExecutions>
-            </lifecycleMappingMetadata>
-          </configuration>
-        </plugin>
-      </plugins>
-    </pluginManagement>
   </build>
   <dependencies>
    <dependency>
@@ -144,7 +80,6 @@
     <dependency>
       <groupId>org.apache.hbase.connectors</groupId>
       <artifactId>hbase-kafka-model</artifactId>
-      <scope>compile</scope>
     </dependency>
     <dependency>
       <groupId>org.apache.hbase</groupId>
@@ -193,13 +128,11 @@
       <groupId>org.apache.commons</groupId>
       <artifactId>commons-collections4</artifactId>
       <version>${collections.version}</version>
-      <scope>compile</scope>
     </dependency>
     <dependency>
       <groupId>commons-io</groupId>
       <artifactId>commons-io</artifactId>
       <version>${commons-io.version}</version>
-      <scope>compile</scope>
     </dependency>
   </dependencies>
 
@@ -251,8 +184,5 @@
         <surefire.skipSecondPart>true</surefire.skipSecondPart>
       </properties>
     </profile>
-
-
-
   </profiles>
 </project>
diff --git a/hbase-kafka-proxy/src/main/java/org/apache/hadoop/hbase/kafka/DropRule.java b/kafka/hbase-kafka-proxy/src/main/java/org/apache/hadoop/hbase/kafka/DropRule.java
similarity index 100%
rename from hbase-kafka-proxy/src/main/java/org/apache/hadoop/hbase/kafka/DropRule.java
rename to kafka/hbase-kafka-proxy/src/main/java/org/apache/hadoop/hbase/kafka/DropRule.java
diff --git a/hbase-kafka-proxy/src/main/java/org/apache/hadoop/hbase/kafka/DumpToStringListener.java b/kafka/hbase-kafka-proxy/src/main/java/org/apache/hadoop/hbase/kafka/DumpToStringListener.java
similarity index 100%
rename from hbase-kafka-proxy/src/main/java/org/apache/hadoop/hbase/kafka/DumpToStringListener.java
rename to kafka/hbase-kafka-proxy/src/main/java/org/apache/hadoop/hbase/kafka/DumpToStringListener.java
diff --git a/hbase-kafka-proxy/src/main/java/org/apache/hadoop/hbase/kafka/KafkaBridgeConnection.java b/kafka/hbase-kafka-proxy/src/main/java/org/apache/hadoop/hbase/kafka/KafkaBridgeConnection.java
similarity index 100%
rename from hbase-kafka-proxy/src/main/java/org/apache/hadoop/hbase/kafka/KafkaBridgeConnection.java
rename to kafka/hbase-kafka-proxy/src/main/java/org/apache/hadoop/hbase/kafka/KafkaBridgeConnection.java
diff --git a/hbase-kafka-proxy/src/main/java/org/apache/hadoop/hbase/kafka/KafkaProxy.java b/kafka/hbase-kafka-proxy/src/main/java/org/apache/hadoop/hbase/kafka/KafkaProxy.java
similarity index 100%
rename from hbase-kafka-proxy/src/main/java/org/apache/hadoop/hbase/kafka/KafkaProxy.java
rename to kafka/hbase-kafka-proxy/src/main/java/org/apache/hadoop/hbase/kafka/KafkaProxy.java
diff --git a/hbase-kafka-proxy/src/main/java/org/apache/hadoop/hbase/kafka/KafkaTableForBridge.java b/kafka/hbase-kafka-proxy/src/main/java/org/apache/hadoop/hbase/kafka/KafkaTableForBridge.java
similarity index 100%
rename from hbase-kafka-proxy/src/main/java/org/apache/hadoop/hbase/kafka/KafkaTableForBridge.java
rename to kafka/hbase-kafka-proxy/src/main/java/org/apache/hadoop/hbase/kafka/KafkaTableForBridge.java
diff --git a/hbase-kafka-proxy/src/main/java/org/apache/hadoop/hbase/kafka/Rule.java b/kafka/hbase-kafka-proxy/src/main/java/org/apache/hadoop/hbase/kafka/Rule.java
similarity index 100%
rename from hbase-kafka-proxy/src/main/java/org/apache/hadoop/hbase/kafka/Rule.java
rename to kafka/hbase-kafka-proxy/src/main/java/org/apache/hadoop/hbase/kafka/Rule.java
diff --git a/hbase-kafka-proxy/src/main/java/org/apache/hadoop/hbase/kafka/TopicRoutingRules.java b/kafka/hbase-kafka-proxy/src/main/java/org/apache/hadoop/hbase/kafka/TopicRoutingRules.java
similarity index 100%
rename from hbase-kafka-proxy/src/main/java/org/apache/hadoop/hbase/kafka/TopicRoutingRules.java
rename to kafka/hbase-kafka-proxy/src/main/java/org/apache/hadoop/hbase/kafka/TopicRoutingRules.java
diff --git a/hbase-kafka-proxy/src/main/java/org/apache/hadoop/hbase/kafka/TopicRule.java b/kafka/hbase-kafka-proxy/src/main/java/org/apache/hadoop/hbase/kafka/TopicRule.java
similarity index 100%
rename from hbase-kafka-proxy/src/main/java/org/apache/hadoop/hbase/kafka/TopicRule.java
rename to kafka/hbase-kafka-proxy/src/main/java/org/apache/hadoop/hbase/kafka/TopicRule.java
diff --git a/hbase-kafka-proxy/src/test/java/org/apache/hadoop/hbase/kafka/ProducerForTesting.java b/kafka/hbase-kafka-proxy/src/test/java/org/apache/hadoop/hbase/kafka/ProducerForTesting.java
similarity index 100%
rename from hbase-kafka-proxy/src/test/java/org/apache/hadoop/hbase/kafka/ProducerForTesting.java
rename to kafka/hbase-kafka-proxy/src/test/java/org/apache/hadoop/hbase/kafka/ProducerForTesting.java
diff --git a/hbase-kafka-proxy/src/test/java/org/apache/hadoop/hbase/kafka/TestDropRule.java b/kafka/hbase-kafka-proxy/src/test/java/org/apache/hadoop/hbase/kafka/TestDropRule.java
similarity index 100%
rename from hbase-kafka-proxy/src/test/java/org/apache/hadoop/hbase/kafka/TestDropRule.java
rename to kafka/hbase-kafka-proxy/src/test/java/org/apache/hadoop/hbase/kafka/TestDropRule.java
diff --git a/hbase-kafka-proxy/src/test/java/org/apache/hadoop/hbase/kafka/TestProcessMutations.java b/kafka/hbase-kafka-proxy/src/test/java/org/apache/hadoop/hbase/kafka/TestProcessMutations.java
similarity index 100%
rename from hbase-kafka-proxy/src/test/java/org/apache/hadoop/hbase/kafka/TestProcessMutations.java
rename to kafka/hbase-kafka-proxy/src/test/java/org/apache/hadoop/hbase/kafka/TestProcessMutations.java
diff --git a/hbase-kafka-proxy/src/test/java/org/apache/hadoop/hbase/kafka/TestQualifierMatching.java b/kafka/hbase-kafka-proxy/src/test/java/org/apache/hadoop/hbase/kafka/TestQualifierMatching.java
similarity index 100%
rename from hbase-kafka-proxy/src/test/java/org/apache/hadoop/hbase/kafka/TestQualifierMatching.java
rename to kafka/hbase-kafka-proxy/src/test/java/org/apache/hadoop/hbase/kafka/TestQualifierMatching.java
diff --git a/hbase-kafka-proxy/src/test/java/org/apache/hadoop/hbase/kafka/TestRouteRules.java b/kafka/hbase-kafka-proxy/src/test/java/org/apache/hadoop/hbase/kafka/TestRouteRules.java
similarity index 100%
rename from hbase-kafka-proxy/src/test/java/org/apache/hadoop/hbase/kafka/TestRouteRules.java
rename to kafka/hbase-kafka-proxy/src/test/java/org/apache/hadoop/hbase/kafka/TestRouteRules.java
diff --git a/pom.xml b/pom.xml
index f487f47..45f2523 100644
--- a/pom.xml
+++ b/pom.xml
@@ -18,15 +18,6 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-
-
-  ON MVN COMPILE NOT WORKING
-
-  If you wondering why 'mvn compile' does not work building HBase
-  (in particular, if you are doing it for the first time), instead do
-  'mvn package'.  If you are interested in the full story, see
-  https://issues.apache.org/jira/browse/HBASE-6795.
-
 -->
   <modelVersion>4.0.0</modelVersion>
   <parent>
@@ -36,7 +27,7 @@
     <relativePath/>
     <!-- no parent resolution -->
   </parent>
-  <groupId>org.apache.hbase</groupId>
+  <groupId>org.apache.hbase.connectors</groupId>
   <artifactId>hbase-connectors</artifactId>
   <version>1.0.0-SNAPSHOT</version>
   <name>Apache HBase Connectors</name>
@@ -54,8 +45,8 @@
     </license>
   </licenses>
   <modules>
-    <module>hbase-kafka-model</module>
-    <module>hbase-kafka-proxy</module>
+    <module>kafka/hbase-kafka-model</module>
+    <module>kafka/hbase-kafka-proxy</module>
   </modules>
   <scm>
     <connection>scm:git:git://gitbox.apache.org/repos/asf/hbase-connectors.git</connection>
@@ -181,6 +172,11 @@
         <artifactId>hbase-kafka-model</artifactId>
         <version>${project.version}</version>
       </dependency>
+      <dependency>
+        <groupId>org.apache.hbase.connectors</groupId>
+        <artifactId>hbase-kafka-proxy</artifactId>
+        <version>${project.version}</version>
+      </dependency>
     </dependencies>
   </dependencyManagement>
   <build>
@@ -227,39 +223,14 @@
           <version>0.11</version>
           <configuration>
             <excludes>
-              <exclude>**/*.versionsBackup</exclude>
-              <exclude>**/*.log</exclude>
-              <exclude>**/.*</exclude>
-              <exclude>**/*.tgz</exclude>
-              <exclude>**/*.orig</exclude>
+              <exclude>target/*</exclude>
               <exclude>**/.idea/**</exclude>
               <exclude>**/*.iml</exclude>
-              <exclude>**/CHANGES.txt</exclude>
-              <exclude>**/generated/**</exclude>
-              <exclude>**/gen-*/**</exclude>
-              <exclude>**/*.avpr</exclude>
-              <exclude>**/*.svg</exclude>
-              <!-- vector graphics -->
-              <exclude>**/*.vm</exclude>
-              <!-- apache doxia generated -->
-              <exclude>**/control</exclude>
-              <exclude>**/conffile</exclude>
-              <!-- auto-gen docs -->
-              <exclude>docs/*</exclude>
-              <exclude>logs/*</exclude>
               <!--  exclude source control files -->
               <exclude>.git/**</exclude>
-              <exclude>.svn/**</exclude>
               <exclude>**/.settings/**</exclude>
               <exclude>**/patchprocess/**</exclude>
-              <exclude>**/dependency-reduced-pom.xml</exclude>
-              <exclude>**/rat.txt</exclude>
-              <!-- exclude the shaded protobuf files -->
-              <exclude>**/src/main/patches/**</exclude>
-              <!--Exclude the unpacked google src-->
-              <exclude>**/src/main/java/com/google/protobuf/**</exclude>
-              <exclude>**/src/main/java/google/**</exclude>
-              <exclude>**/src/main/java/META-INF/**</exclude>
+              <exclude>README.md</exclude>
             </excludes>
           </configuration>
         </plugin>
@@ -280,31 +251,12 @@
             <timestampPropertyName>build.year</timestampPropertyName>
           </configuration>
         </plugin>
-        <plugin>
-          <groupId>org.apache.maven.plugins</groupId>
-          <artifactId>maven-shade-plugin</artifactId>
-          <version>3.0.0</version>
-        </plugin>
       </plugins>
     </pluginManagement>
     <plugins>
       <plugin>
-        <artifactId>maven-clean-plugin</artifactId>
-        <configuration>
-          <filesets>
-            <fileset>
-              <directory>${basedir}</directory>
-              <includes>
-                <include>dependency-reduced-pom.xml</include>
-              </includes>
-            </fileset>
-          </filesets>
-        </configuration>
-      </plugin>
-      <plugin>
         <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-enforcer-plugin</artifactId>
-        <version>1.4</version>
         <dependencies>
           <dependency>
             <groupId>org.codehaus.mojo</groupId>
@@ -350,15 +302,6 @@
           </execution>
         </executions>
       </plugin>
-      <plugin>
-        <artifactId>maven-assembly-plugin</artifactId>
-        <version>3.0.0</version>
-        <configuration>
-          <descriptors>
-            <descriptor>src/main/assembly/src.xml</descriptor>
-          </descriptors>
-        </configuration>
-      </plugin>
     </plugins>
   </build>
   <profiles>