You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by ch...@apache.org on 2018/03/22 10:20:54 UTC

[1/4] hbase git commit: HBASE-20212 Make all Public classes have InterfaceAudience category

Repository: hbase
Updated Branches:
  refs/heads/branch-2.0 9802c1771 -> 70c170727


http://git-wip-us.apache.org/repos/asf/hbase/blob/70c17072/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift/IncrementCoalescer.java
----------------------------------------------------------------------
diff --git a/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift/IncrementCoalescer.java b/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift/IncrementCoalescer.java
index 3fb7254..f2abe2e 100644
--- a/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift/IncrementCoalescer.java
+++ b/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift/IncrementCoalescer.java
@@ -31,7 +31,6 @@ import java.util.concurrent.ThreadPoolExecutor;
 import java.util.concurrent.TimeUnit;
 import java.util.concurrent.atomic.AtomicInteger;
 import java.util.concurrent.atomic.LongAdder;
-
 import org.apache.hadoop.hbase.CellUtil;
 import org.apache.hadoop.hbase.client.Table;
 import org.apache.hadoop.hbase.thrift.ThriftServerRunner.HBaseHandler;
@@ -40,6 +39,7 @@ import org.apache.hadoop.hbase.util.Bytes;
 import org.apache.hadoop.hbase.util.Threads;
 import org.apache.hadoop.metrics2.util.MBeans;
 import org.apache.thrift.TException;
+import org.apache.yetus.audience.InterfaceAudience;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -52,6 +52,7 @@ import org.slf4j.LoggerFactory;
  * thrift server dies or is shut down before everything in the queue is drained.
  *
  */
+@InterfaceAudience.Private
 public class IncrementCoalescer implements IncrementCoalescerMBean {
 
   /**

http://git-wip-us.apache.org/repos/asf/hbase/blob/70c17072/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift/IncrementCoalescerMBean.java
----------------------------------------------------------------------
diff --git a/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift/IncrementCoalescerMBean.java b/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift/IncrementCoalescerMBean.java
index 604fa97..06cf193 100644
--- a/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift/IncrementCoalescerMBean.java
+++ b/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift/IncrementCoalescerMBean.java
@@ -18,6 +18,9 @@
 
 package org.apache.hadoop.hbase.thrift;
 
+import org.apache.yetus.audience.InterfaceAudience;
+
+@InterfaceAudience.Private
 public interface IncrementCoalescerMBean {
   int getQueueSize();
 

http://git-wip-us.apache.org/repos/asf/hbase/blob/70c17072/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift/THBaseThreadPoolExecutor.java
----------------------------------------------------------------------
diff --git a/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift/THBaseThreadPoolExecutor.java b/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift/THBaseThreadPoolExecutor.java
index 973cad7..c86f476 100644
--- a/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift/THBaseThreadPoolExecutor.java
+++ b/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift/THBaseThreadPoolExecutor.java
@@ -22,12 +22,14 @@ import java.util.concurrent.BlockingQueue;
 import java.util.concurrent.ThreadFactory;
 import java.util.concurrent.ThreadPoolExecutor;
 import java.util.concurrent.TimeUnit;
+import org.apache.yetus.audience.InterfaceAudience;
 
 /**
  * A ThreadPoolExecutor customized for working with HBase thrift to update metrics before and
  * after the execution of a task.
  */
 
+@InterfaceAudience.Private
 public class THBaseThreadPoolExecutor extends ThreadPoolExecutor {
 
   private ThriftMetrics metrics;

http://git-wip-us.apache.org/repos/asf/hbase/blob/70c17072/hbase-zookeeper/pom.xml
----------------------------------------------------------------------
diff --git a/hbase-zookeeper/pom.xml b/hbase-zookeeper/pom.xml
index 8c92968..a49dbe7 100644
--- a/hbase-zookeeper/pom.xml
+++ b/hbase-zookeeper/pom.xml
@@ -91,6 +91,10 @@
         <groupId>org.codehaus.mojo</groupId>
         <artifactId>findbugs-maven-plugin</artifactId>
       </plugin>
+      <plugin>
+        <groupId>net.revelc.code</groupId>
+        <artifactId>warbucks-maven-plugin</artifactId>
+      </plugin>
     </plugins>
     <!-- General Resources -->
     <pluginManagement>

http://git-wip-us.apache.org/repos/asf/hbase/blob/70c17072/hbase-zookeeper/src/main/java/org/apache/hadoop/hbase/zookeeper/RegionNormalizerTracker.java
----------------------------------------------------------------------
diff --git a/hbase-zookeeper/src/main/java/org/apache/hadoop/hbase/zookeeper/RegionNormalizerTracker.java b/hbase-zookeeper/src/main/java/org/apache/hadoop/hbase/zookeeper/RegionNormalizerTracker.java
index a50ce4c..7413879 100644
--- a/hbase-zookeeper/src/main/java/org/apache/hadoop/hbase/zookeeper/RegionNormalizerTracker.java
+++ b/hbase-zookeeper/src/main/java/org/apache/hadoop/hbase/zookeeper/RegionNormalizerTracker.java
@@ -19,10 +19,10 @@
 package org.apache.hadoop.hbase.zookeeper;
 
 import java.io.IOException;
-
 import org.apache.hadoop.hbase.Abortable;
 import org.apache.hadoop.hbase.exceptions.DeserializationException;
 import org.apache.hadoop.hbase.util.Bytes;
+import org.apache.yetus.audience.InterfaceAudience;
 import org.apache.zookeeper.KeeperException;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -33,6 +33,7 @@ import org.apache.hadoop.hbase.shaded.protobuf.generated.RegionNormalizerProtos;
 /**
  * Tracks region normalizer state up in ZK
  */
+@InterfaceAudience.Private
 public class RegionNormalizerTracker extends ZKNodeTracker {
   private static final Logger LOG = LoggerFactory.getLogger(RegionNormalizerTracker.class);
 

http://git-wip-us.apache.org/repos/asf/hbase/blob/70c17072/pom.xml
----------------------------------------------------------------------
diff --git a/pom.xml b/pom.xml
index 49c99e2..d3b8792 100755
--- a/pom.xml
+++ b/pom.xml
@@ -909,6 +909,34 @@
             <includeTestSourceDirectory>true</includeTestSourceDirectory>
           </configuration>
         </plugin>
+        <plugin>
+          <groupId>net.revelc.code</groupId>
+          <artifactId>warbucks-maven-plugin</artifactId>
+          <version>${maven.warbucks.version}</version>
+          <configuration>
+            <ignoreRuleFailures>false</ignoreRuleFailures>
+            <rules>
+              <rule>
+                <!-- exclude the generated java files -->
+                <classPattern>(?!.*(.generated.|.tmpl.|\$)).*</classPattern>
+                <includeTestClasses>false</includeTestClasses>
+                <includePublicClasses>true</includePublicClasses>
+                <includePackagePrivateClasses>false</includePackagePrivateClasses>
+                <includeProtectedClasses>false</includeProtectedClasses>
+                <includePrivateClasses>false</includePrivateClasses>
+                <classAnnotationPattern>org[.]apache[.]yetus[.]audience[.]InterfaceAudience.*</classAnnotationPattern>
+              </rule>
+            </rules>
+          </configuration>
+          <executions>
+            <execution>
+              <id>run-warbucks</id>
+              <goals>
+                <goal>check</goal><!-- runs at process-test-classes phase -->
+              </goals>
+            </execution>
+          </executions>
+        </plugin>
       </plugins>
     </pluginManagement>
     <plugins>
@@ -1382,6 +1410,7 @@
     <maven.shade.version>3.0.0</maven.shade.version>
     <maven.site.version>3.4</maven.site.version>
     <maven.source.version>3.0.1</maven.source.version>
+    <maven.warbucks.version>1.1.0</maven.warbucks.version>
     <os.maven.version>1.5.0.Final</os.maven.version>
     <plexus.errorprone.javac.version>2.8.2</plexus.errorprone.javac.version>
     <scala.maven.version>3.2.2</scala.maven.version>


[3/4] hbase git commit: HBASE-20212 Make all Public classes have InterfaceAudience category

Posted by ch...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase/blob/70c17072/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/master/MetricsMasterProcSourceFactory.java
----------------------------------------------------------------------
diff --git a/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/master/MetricsMasterProcSourceFactory.java b/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/master/MetricsMasterProcSourceFactory.java
index b282e06..197f9f9 100644
--- a/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/master/MetricsMasterProcSourceFactory.java
+++ b/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/master/MetricsMasterProcSourceFactory.java
@@ -18,9 +18,12 @@
 
 package org.apache.hadoop.hbase.master;
 
+import org.apache.yetus.audience.InterfaceAudience;
+
 /**
  * Interface of a factory to create MetricsMasterSource when given a MetricsMasterWrapper
  */
+@InterfaceAudience.Private
 public interface MetricsMasterProcSourceFactory {
 
   MetricsMasterProcSource create(MetricsMasterWrapper masterWrapper);

http://git-wip-us.apache.org/repos/asf/hbase/blob/70c17072/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/master/MetricsMasterQuotaSource.java
----------------------------------------------------------------------
diff --git a/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/master/MetricsMasterQuotaSource.java b/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/master/MetricsMasterQuotaSource.java
index 99c5441..8450432 100644
--- a/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/master/MetricsMasterQuotaSource.java
+++ b/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/master/MetricsMasterQuotaSource.java
@@ -17,10 +17,12 @@
 package org.apache.hadoop.hbase.master;
 
 import org.apache.hadoop.hbase.metrics.BaseSource;
+import org.apache.yetus.audience.InterfaceAudience;
 
 /**
  * A collection of exposed metrics for space quotas from the HBase Master.
  */
+@InterfaceAudience.Private
 public interface MetricsMasterQuotaSource extends BaseSource {
 
   String METRICS_NAME = "Quotas";

http://git-wip-us.apache.org/repos/asf/hbase/blob/70c17072/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/master/MetricsMasterQuotaSourceFactory.java
----------------------------------------------------------------------
diff --git a/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/master/MetricsMasterQuotaSourceFactory.java b/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/master/MetricsMasterQuotaSourceFactory.java
index 6e10746..2dcd945 100644
--- a/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/master/MetricsMasterQuotaSourceFactory.java
+++ b/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/master/MetricsMasterQuotaSourceFactory.java
@@ -16,9 +16,12 @@
  */
 package org.apache.hadoop.hbase.master;
 
+import org.apache.yetus.audience.InterfaceAudience;
+
 /**
  * Interface of a factory to create MetricsMasterQuotaSource when given a MetricsMasterWrapper.
  */
+@InterfaceAudience.Private
 public interface MetricsMasterQuotaSourceFactory {
 
   MetricsMasterQuotaSource create(MetricsMasterWrapper masterWrapper);

http://git-wip-us.apache.org/repos/asf/hbase/blob/70c17072/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/master/MetricsMasterSource.java
----------------------------------------------------------------------
diff --git a/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/master/MetricsMasterSource.java b/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/master/MetricsMasterSource.java
index d187bb1..dcfc600 100644
--- a/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/master/MetricsMasterSource.java
+++ b/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/master/MetricsMasterSource.java
@@ -20,10 +20,12 @@ package org.apache.hadoop.hbase.master;
 
 import org.apache.hadoop.hbase.metrics.BaseSource;
 import org.apache.hadoop.hbase.metrics.OperationMetrics;
+import org.apache.yetus.audience.InterfaceAudience;
 
 /**
  * Interface that classes that expose metrics about the master will implement.
  */
+@InterfaceAudience.Private
 public interface MetricsMasterSource extends BaseSource {
 
   /**

http://git-wip-us.apache.org/repos/asf/hbase/blob/70c17072/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/master/MetricsMasterSourceFactory.java
----------------------------------------------------------------------
diff --git a/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/master/MetricsMasterSourceFactory.java b/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/master/MetricsMasterSourceFactory.java
index 63a85a3..fce574a 100644
--- a/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/master/MetricsMasterSourceFactory.java
+++ b/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/master/MetricsMasterSourceFactory.java
@@ -18,9 +18,12 @@
 
 package org.apache.hadoop.hbase.master;
 
+import org.apache.yetus.audience.InterfaceAudience;
+
 /**
  * Interface of a factory to create MetricsMasterSource when given a MetricsMasterWrapper
  */
+@InterfaceAudience.Private
 public interface MetricsMasterSourceFactory {
 
   MetricsMasterSource create(MetricsMasterWrapper masterWrapper);

http://git-wip-us.apache.org/repos/asf/hbase/blob/70c17072/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/master/MetricsMasterWrapper.java
----------------------------------------------------------------------
diff --git a/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/master/MetricsMasterWrapper.java b/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/master/MetricsMasterWrapper.java
index 80e0892..e6b2bc5 100644
--- a/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/master/MetricsMasterWrapper.java
+++ b/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/master/MetricsMasterWrapper.java
@@ -20,11 +20,13 @@ package org.apache.hadoop.hbase.master;
 
 import java.util.Map;
 import java.util.Map.Entry;
+import org.apache.yetus.audience.InterfaceAudience;
 
 /**
  * This is the interface that will expose information to hadoop1/hadoop2 implementations of the
  * MetricsMasterSource.
  */
+@InterfaceAudience.Private
 public interface MetricsMasterWrapper {
 
   /**

http://git-wip-us.apache.org/repos/asf/hbase/blob/70c17072/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/master/MetricsSnapshotSource.java
----------------------------------------------------------------------
diff --git a/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/master/MetricsSnapshotSource.java b/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/master/MetricsSnapshotSource.java
index 371a316..15315b6 100644
--- a/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/master/MetricsSnapshotSource.java
+++ b/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/master/MetricsSnapshotSource.java
@@ -19,7 +19,9 @@
 package org.apache.hadoop.hbase.master;
 
 import org.apache.hadoop.hbase.metrics.BaseSource;
+import org.apache.yetus.audience.InterfaceAudience;
 
+@InterfaceAudience.Private
 public interface MetricsSnapshotSource extends BaseSource {
   /**
    * The name of the metrics

http://git-wip-us.apache.org/repos/asf/hbase/blob/70c17072/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/master/balancer/MetricsBalancerSource.java
----------------------------------------------------------------------
diff --git a/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/master/balancer/MetricsBalancerSource.java b/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/master/balancer/MetricsBalancerSource.java
index 1c9a61e..5add25f 100644
--- a/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/master/balancer/MetricsBalancerSource.java
+++ b/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/master/balancer/MetricsBalancerSource.java
@@ -19,7 +19,9 @@
 package org.apache.hadoop.hbase.master.balancer;
 
 import org.apache.hadoop.hbase.metrics.BaseSource;
+import org.apache.yetus.audience.InterfaceAudience;
 
+@InterfaceAudience.Private
 public interface MetricsBalancerSource extends BaseSource  {
 
   /**

http://git-wip-us.apache.org/repos/asf/hbase/blob/70c17072/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/master/balancer/MetricsStochasticBalancerSource.java
----------------------------------------------------------------------
diff --git a/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/master/balancer/MetricsStochasticBalancerSource.java b/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/master/balancer/MetricsStochasticBalancerSource.java
index 1621932..6eecc12 100644
--- a/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/master/balancer/MetricsStochasticBalancerSource.java
+++ b/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/master/balancer/MetricsStochasticBalancerSource.java
@@ -18,12 +18,15 @@
 
 package org.apache.hadoop.hbase.master.balancer;
 
+import org.apache.yetus.audience.InterfaceAudience;
+
 /**
- * This interface extends the basic metrics balancer source to add a function 
- * to report metrics that related to stochastic load balancer. The purpose is to 
+ * This interface extends the basic metrics balancer source to add a function
+ * to report metrics that related to stochastic load balancer. The purpose is to
  * offer an insight to the internal cost calculations that can be useful to tune
  * the balancer. For details, refer to HBASE-13965
  */
+@InterfaceAudience.Private
 public interface MetricsStochasticBalancerSource extends MetricsBalancerSource {
 
   /**

http://git-wip-us.apache.org/repos/asf/hbase/blob/70c17072/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/metrics/BaseSource.java
----------------------------------------------------------------------
diff --git a/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/metrics/BaseSource.java b/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/metrics/BaseSource.java
index 652aae1..76391bb 100644
--- a/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/metrics/BaseSource.java
+++ b/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/metrics/BaseSource.java
@@ -18,10 +18,13 @@
 
 package org.apache.hadoop.hbase.metrics;
 
+import org.apache.yetus.audience.InterfaceAudience;
+
 /**
  *   BaseSource for dynamic metrics to announce to Metrics2.
  *   In hbase-hadoop{1|2}-compat there is an implementation of this interface.
  */
+@InterfaceAudience.Private
 public interface BaseSource {
 
   String HBASE_METRICS_SYSTEM_NAME = "HBase";

http://git-wip-us.apache.org/repos/asf/hbase/blob/70c17072/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/metrics/ExceptionTrackingSource.java
----------------------------------------------------------------------
diff --git a/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/metrics/ExceptionTrackingSource.java b/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/metrics/ExceptionTrackingSource.java
index fa252fc..53d3d18 100644
--- a/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/metrics/ExceptionTrackingSource.java
+++ b/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/metrics/ExceptionTrackingSource.java
@@ -18,10 +18,13 @@
 
 package org.apache.hadoop.hbase.metrics;
 
+import org.apache.yetus.audience.InterfaceAudience;
+
 /**
  * Common interface for metrics source implementations which need to track individual exception
  * types thrown or received.
  */
+@InterfaceAudience.Private
 public interface ExceptionTrackingSource extends BaseSource {
   String EXCEPTIONS_NAME="exceptions";
   String EXCEPTIONS_DESC="Exceptions caused by requests";

http://git-wip-us.apache.org/repos/asf/hbase/blob/70c17072/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/metrics/JvmPauseMonitorSource.java
----------------------------------------------------------------------
diff --git a/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/metrics/JvmPauseMonitorSource.java b/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/metrics/JvmPauseMonitorSource.java
index af6eeed..6cb5425 100644
--- a/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/metrics/JvmPauseMonitorSource.java
+++ b/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/metrics/JvmPauseMonitorSource.java
@@ -18,9 +18,12 @@
 
 package org.apache.hadoop.hbase.metrics;
 
+import org.apache.yetus.audience.InterfaceAudience;
+
 /**
  * Interface for sources that will export JvmPauseMonitor metrics
  */
+@InterfaceAudience.Private
 public interface JvmPauseMonitorSource  {
 
   String INFO_THRESHOLD_COUNT_KEY = "pauseInfoThresholdExceeded";

http://git-wip-us.apache.org/repos/asf/hbase/blob/70c17072/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/metrics/MBeanSource.java
----------------------------------------------------------------------
diff --git a/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/metrics/MBeanSource.java b/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/metrics/MBeanSource.java
index e4ff880..575ca31 100644
--- a/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/metrics/MBeanSource.java
+++ b/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/metrics/MBeanSource.java
@@ -19,10 +19,12 @@
 package org.apache.hadoop.hbase.metrics;
 
 import javax.management.ObjectName;
+import org.apache.yetus.audience.InterfaceAudience;
 
 /**
  *  Object that will register an mbean with the underlying metrics implementation.
  */
+@InterfaceAudience.Private
 public interface MBeanSource  {
 
   /**

http://git-wip-us.apache.org/repos/asf/hbase/blob/70c17072/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/metrics/OperationMetrics.java
----------------------------------------------------------------------
diff --git a/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/metrics/OperationMetrics.java b/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/metrics/OperationMetrics.java
index f3e14c0..064c9ca 100644
--- a/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/metrics/OperationMetrics.java
+++ b/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/metrics/OperationMetrics.java
@@ -18,12 +18,15 @@
 
 package org.apache.hadoop.hbase.metrics;
 
+import org.apache.yetus.audience.InterfaceAudience;
+
 import org.apache.hbase.thirdparty.com.google.common.base.Preconditions;
 
 /**
  * Container class for commonly collected metrics for most operations. Instantiate this class to
  * collect submitted count, failed count and time histogram for an operation.
  */
+@InterfaceAudience.Private
 public class OperationMetrics {
   private static final String SUBMITTED_COUNT = "SubmittedCount";
   private static final String TIME = "Time";

http://git-wip-us.apache.org/repos/asf/hbase/blob/70c17072/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsHeapMemoryManagerSource.java
----------------------------------------------------------------------
diff --git a/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsHeapMemoryManagerSource.java b/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsHeapMemoryManagerSource.java
index 532c5af..868acd8 100644
--- a/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsHeapMemoryManagerSource.java
+++ b/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsHeapMemoryManagerSource.java
@@ -19,11 +19,13 @@
 package org.apache.hadoop.hbase.regionserver;
 
 import org.apache.hadoop.hbase.metrics.BaseSource;
+import org.apache.yetus.audience.InterfaceAudience;
 
 /**
  * This interface will be implemented by a MetricsSource that will export metrics from
  * HeapMemoryManager in RegionServer into the hadoop metrics system.
  */
+@InterfaceAudience.Private
 public interface MetricsHeapMemoryManagerSource extends BaseSource {
   /**
    * The name of the metrics

http://git-wip-us.apache.org/repos/asf/hbase/blob/70c17072/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsRegionAggregateSource.java
----------------------------------------------------------------------
diff --git a/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsRegionAggregateSource.java b/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsRegionAggregateSource.java
index 578ce49..23d0259 100644
--- a/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsRegionAggregateSource.java
+++ b/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsRegionAggregateSource.java
@@ -19,11 +19,13 @@
 package org.apache.hadoop.hbase.regionserver;
 
 import org.apache.hadoop.hbase.metrics.BaseSource;
+import org.apache.yetus.audience.InterfaceAudience;
 
 /**
  * This interface will be implemented by a MetricsSource that will export metrics from
  * multiple regions into the hadoop metrics system.
  */
+@InterfaceAudience.Private
 public interface MetricsRegionAggregateSource extends BaseSource {
 
   /**

http://git-wip-us.apache.org/repos/asf/hbase/blob/70c17072/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsRegionServerQuotaSource.java
----------------------------------------------------------------------
diff --git a/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsRegionServerQuotaSource.java b/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsRegionServerQuotaSource.java
index 3175aad..9795374 100644
--- a/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsRegionServerQuotaSource.java
+++ b/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsRegionServerQuotaSource.java
@@ -17,10 +17,12 @@
 package org.apache.hadoop.hbase.regionserver;
 
 import org.apache.hadoop.hbase.metrics.BaseSource;
+import org.apache.yetus.audience.InterfaceAudience;
 
 /**
  * A collection of exposed metrics for space quotas from an HBase RegionServer.
  */
+@InterfaceAudience.Private
 public interface MetricsRegionServerQuotaSource extends BaseSource {
 
   String METRICS_NAME = "Quotas";

http://git-wip-us.apache.org/repos/asf/hbase/blob/70c17072/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsRegionServerSource.java
----------------------------------------------------------------------
diff --git a/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsRegionServerSource.java b/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsRegionServerSource.java
index 3dd4445..70c6da8 100644
--- a/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsRegionServerSource.java
+++ b/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsRegionServerSource.java
@@ -20,10 +20,12 @@ package org.apache.hadoop.hbase.regionserver;
 
 import org.apache.hadoop.hbase.metrics.BaseSource;
 import org.apache.hadoop.hbase.metrics.JvmPauseMonitorSource;
+import org.apache.yetus.audience.InterfaceAudience;
 
 /**
  * Interface for classes that expose metrics about the regionserver.
  */
+@InterfaceAudience.Private
 public interface MetricsRegionServerSource extends BaseSource, JvmPauseMonitorSource {
 
   /**

http://git-wip-us.apache.org/repos/asf/hbase/blob/70c17072/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceFactory.java
----------------------------------------------------------------------
diff --git a/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceFactory.java b/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceFactory.java
index d581fd5..bf4e0bc 100644
--- a/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceFactory.java
+++ b/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceFactory.java
@@ -20,10 +20,12 @@ package org.apache.hadoop.hbase.regionserver;
 
 import org.apache.hadoop.hbase.io.MetricsIOSource;
 import org.apache.hadoop.hbase.io.MetricsIOWrapper;
+import org.apache.yetus.audience.InterfaceAudience;
 
 /**
  * Interface of a factory to create Metrics Sources used inside of regionservers.
  */
+@InterfaceAudience.Private
 public interface MetricsRegionServerSourceFactory {
 
   /**

http://git-wip-us.apache.org/repos/asf/hbase/blob/70c17072/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapper.java
----------------------------------------------------------------------
diff --git a/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapper.java b/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapper.java
index 761945a..83a8339 100644
--- a/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapper.java
+++ b/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapper.java
@@ -18,10 +18,13 @@
 
 package org.apache.hadoop.hbase.regionserver;
 
+import org.apache.yetus.audience.InterfaceAudience;
+
 /**
  * This is the interface that will expose RegionServer information to hadoop1/hadoop2
  * implementations of the MetricsRegionServerSource.
  */
+@InterfaceAudience.Private
 public interface MetricsRegionServerWrapper {
 
   /**

http://git-wip-us.apache.org/repos/asf/hbase/blob/70c17072/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsRegionSource.java
----------------------------------------------------------------------
diff --git a/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsRegionSource.java b/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsRegionSource.java
index d5738cf..2a198d6 100644
--- a/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsRegionSource.java
+++ b/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsRegionSource.java
@@ -18,11 +18,13 @@
 
 package org.apache.hadoop.hbase.regionserver;
 
+import org.apache.yetus.audience.InterfaceAudience;
 
 /**
  * This interface will be implemented to allow single regions to push metrics into
  * MetricsRegionAggregateSource that will in turn push data to the Hadoop metrics system.
  */
+@InterfaceAudience.Private
 public interface MetricsRegionSource extends Comparable<MetricsRegionSource> {
 
   String OPS_SAMPLE_NAME = "ops";

http://git-wip-us.apache.org/repos/asf/hbase/blob/70c17072/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsRegionWrapper.java
----------------------------------------------------------------------
diff --git a/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsRegionWrapper.java b/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsRegionWrapper.java
index 371f9ba..491c1a9 100644
--- a/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsRegionWrapper.java
+++ b/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsRegionWrapper.java
@@ -18,10 +18,13 @@
 
 package org.apache.hadoop.hbase.regionserver;
 
+import org.apache.yetus.audience.InterfaceAudience;
+
 /**
  * Interface of class that will wrap an HRegion and export numbers so they can be
  * used in MetricsRegionSource
  */
+@InterfaceAudience.Private
 public interface MetricsRegionWrapper {
 
   /**

http://git-wip-us.apache.org/repos/asf/hbase/blob/70c17072/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsTableAggregateSource.java
----------------------------------------------------------------------
diff --git a/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsTableAggregateSource.java b/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsTableAggregateSource.java
index 6ee0c3d..39e2372 100644
--- a/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsTableAggregateSource.java
+++ b/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsTableAggregateSource.java
@@ -19,11 +19,13 @@
 package org.apache.hadoop.hbase.regionserver;
 
 import org.apache.hadoop.hbase.metrics.BaseSource;
+import org.apache.yetus.audience.InterfaceAudience;
 
 /**
  * This interface will be implemented by a MetricsSource that will export metrics from
  * multiple regions of a table into the hadoop metrics system.
  */
+@InterfaceAudience.Private
 public interface MetricsTableAggregateSource extends BaseSource {
 
   /**

http://git-wip-us.apache.org/repos/asf/hbase/blob/70c17072/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsTableLatencies.java
----------------------------------------------------------------------
diff --git a/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsTableLatencies.java b/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsTableLatencies.java
index 67e651a..231bad1 100644
--- a/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsTableLatencies.java
+++ b/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsTableLatencies.java
@@ -16,9 +16,12 @@
  */
 package org.apache.hadoop.hbase.regionserver;
 
+import org.apache.yetus.audience.InterfaceAudience;
+
 /**
  * Latency metrics for a specific table in a RegionServer.
  */
+@InterfaceAudience.Private
 public interface MetricsTableLatencies {
 
   /**

http://git-wip-us.apache.org/repos/asf/hbase/blob/70c17072/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsTableSource.java
----------------------------------------------------------------------
diff --git a/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsTableSource.java b/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsTableSource.java
index ee0d3b4..b8476bf 100644
--- a/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsTableSource.java
+++ b/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsTableSource.java
@@ -18,10 +18,13 @@
 
 package org.apache.hadoop.hbase.regionserver;
 
+import org.apache.yetus.audience.InterfaceAudience;
+
 /**
  * This interface will be implemented to allow region server to push table metrics into
  * MetricsRegionAggregateSource that will in turn push data to the Hadoop metrics system.
  */
+@InterfaceAudience.Private
 public interface MetricsTableSource extends Comparable<MetricsTableSource> {
 
   String READ_REQUEST_COUNT = "readRequestCount";

http://git-wip-us.apache.org/repos/asf/hbase/blob/70c17072/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregate.java
----------------------------------------------------------------------
diff --git a/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregate.java b/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregate.java
index 910c729..e1d2ab2 100644
--- a/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregate.java
+++ b/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregate.java
@@ -18,11 +18,13 @@
 
 package org.apache.hadoop.hbase.regionserver;
 
+import org.apache.yetus.audience.InterfaceAudience;
 
 /**
  * Interface of class that will wrap a MetricsTableSource and export numbers so they can be
  * used in MetricsTableSource
  */
+@InterfaceAudience.Private
 public interface MetricsTableWrapperAggregate {
 
   /**

http://git-wip-us.apache.org/repos/asf/hbase/blob/70c17072/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/regionserver/wal/MetricsWALSource.java
----------------------------------------------------------------------
diff --git a/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/regionserver/wal/MetricsWALSource.java b/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/regionserver/wal/MetricsWALSource.java
index a665571..fbe95f5 100644
--- a/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/regionserver/wal/MetricsWALSource.java
+++ b/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/regionserver/wal/MetricsWALSource.java
@@ -19,10 +19,12 @@
 package org.apache.hadoop.hbase.regionserver.wal;
 
 import org.apache.hadoop.hbase.metrics.BaseSource;
+import org.apache.yetus.audience.InterfaceAudience;
 
 /**
  * Interface of the source that will export metrics about the region server's WAL.
  */
+@InterfaceAudience.Private
 public interface MetricsWALSource extends BaseSource {
 
 

http://git-wip-us.apache.org/repos/asf/hbase/blob/70c17072/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/replication/regionserver/MetricsReplicationSinkSource.java
----------------------------------------------------------------------
diff --git a/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/replication/regionserver/MetricsReplicationSinkSource.java b/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/replication/regionserver/MetricsReplicationSinkSource.java
index 9fb8415..1d6251b 100644
--- a/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/replication/regionserver/MetricsReplicationSinkSource.java
+++ b/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/replication/regionserver/MetricsReplicationSinkSource.java
@@ -18,6 +18,9 @@
 
 package org.apache.hadoop.hbase.replication.regionserver;
 
+import org.apache.yetus.audience.InterfaceAudience;
+
+@InterfaceAudience.Private
 public interface MetricsReplicationSinkSource {
   public static final String SINK_AGE_OF_LAST_APPLIED_OP = "sink.ageOfLastAppliedOp";
   public static final String SINK_APPLIED_BATCHES = "sink.appliedBatches";

http://git-wip-us.apache.org/repos/asf/hbase/blob/70c17072/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/replication/regionserver/MetricsReplicationSource.java
----------------------------------------------------------------------
diff --git a/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/replication/regionserver/MetricsReplicationSource.java b/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/replication/regionserver/MetricsReplicationSource.java
index 6a91701..6fb5d71 100644
--- a/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/replication/regionserver/MetricsReplicationSource.java
+++ b/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/replication/regionserver/MetricsReplicationSource.java
@@ -19,11 +19,13 @@
 package org.apache.hadoop.hbase.replication.regionserver;
 
 import org.apache.hadoop.hbase.metrics.BaseSource;
+import org.apache.yetus.audience.InterfaceAudience;
 
 /**
  * Provides access to gauges and counters. Implementers will hide the details of hadoop1 or
  * hadoop2's metrics2 classes and publishing.
  */
+@InterfaceAudience.Private
 public interface MetricsReplicationSource extends BaseSource {
   /**
    * The name of the metrics

http://git-wip-us.apache.org/repos/asf/hbase/blob/70c17072/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/replication/regionserver/MetricsReplicationSourceFactory.java
----------------------------------------------------------------------
diff --git a/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/replication/regionserver/MetricsReplicationSourceFactory.java b/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/replication/regionserver/MetricsReplicationSourceFactory.java
index 0e1c5cc..6534b11 100644
--- a/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/replication/regionserver/MetricsReplicationSourceFactory.java
+++ b/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/replication/regionserver/MetricsReplicationSourceFactory.java
@@ -18,6 +18,9 @@
 
 package org.apache.hadoop.hbase.replication.regionserver;
 
+import org.apache.yetus.audience.InterfaceAudience;
+
+@InterfaceAudience.Private
 public interface MetricsReplicationSourceFactory {
   public MetricsReplicationSinkSource getSink();
   public MetricsReplicationSourceSource getSource(String id);

http://git-wip-us.apache.org/repos/asf/hbase/blob/70c17072/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/replication/regionserver/MetricsReplicationSourceSource.java
----------------------------------------------------------------------
diff --git a/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/replication/regionserver/MetricsReplicationSourceSource.java b/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/replication/regionserver/MetricsReplicationSourceSource.java
index 9075a68..f56139b 100644
--- a/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/replication/regionserver/MetricsReplicationSourceSource.java
+++ b/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/replication/regionserver/MetricsReplicationSourceSource.java
@@ -19,7 +19,9 @@
 package org.apache.hadoop.hbase.replication.regionserver;
 
 import org.apache.hadoop.hbase.metrics.BaseSource;
+import org.apache.yetus.audience.InterfaceAudience;
 
+@InterfaceAudience.Private
 public interface MetricsReplicationSourceSource extends BaseSource {
 
   public static final String SOURCE_SIZE_OF_LOG_QUEUE = "source.sizeOfLogQueue";

http://git-wip-us.apache.org/repos/asf/hbase/blob/70c17072/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/rest/MetricsRESTSource.java
----------------------------------------------------------------------
diff --git a/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/rest/MetricsRESTSource.java b/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/rest/MetricsRESTSource.java
index a5101e0..22c8753 100644
--- a/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/rest/MetricsRESTSource.java
+++ b/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/rest/MetricsRESTSource.java
@@ -20,10 +20,12 @@ package org.apache.hadoop.hbase.rest;
 
 import org.apache.hadoop.hbase.metrics.BaseSource;
 import org.apache.hadoop.hbase.metrics.JvmPauseMonitorSource;
+import org.apache.yetus.audience.InterfaceAudience;
 
 /**
  * Interface of the Metrics Source that will export data to Hadoop's Metrics2 system.
  */
+@InterfaceAudience.Private
 public interface MetricsRESTSource extends BaseSource, JvmPauseMonitorSource {
 
   String METRICS_NAME = "REST";
@@ -47,9 +49,9 @@ public interface MetricsRESTSource extends BaseSource, JvmPauseMonitorSource {
   String FAILED_PUT_KEY = "failedPut";
 
   String FAILED_DELETE_KEY = "failedDelete";
-  
+
   String SUCCESSFUL_SCAN_KEY = "successfulScanCount";
-  
+
   String FAILED_SCAN_KEY = "failedScanCount";
 
   String SUCCESSFUL_APPEND_KEY = "successfulAppendCount";
@@ -108,14 +110,14 @@ public interface MetricsRESTSource extends BaseSource, JvmPauseMonitorSource {
    * @param inc The number of failed delete requests.
    */
   void incrementFailedDeleteRequests(int inc);
-  
+
   /**
    * Increment the number of successful scan requests.
    *
    * @param inc Number of successful scan requests.
    */
   void incrementSucessfulScanRequests(final int inc);
-  
+
   /**
    * Increment the number failed scan requests.
    *

http://git-wip-us.apache.org/repos/asf/hbase/blob/70c17072/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/thrift/MetricsThriftServerSource.java
----------------------------------------------------------------------
diff --git a/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/thrift/MetricsThriftServerSource.java b/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/thrift/MetricsThriftServerSource.java
index 276a40c..1e95782 100644
--- a/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/thrift/MetricsThriftServerSource.java
+++ b/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/thrift/MetricsThriftServerSource.java
@@ -20,10 +20,12 @@ package org.apache.hadoop.hbase.thrift;
 
 import org.apache.hadoop.hbase.metrics.ExceptionTrackingSource;
 import org.apache.hadoop.hbase.metrics.JvmPauseMonitorSource;
+import org.apache.yetus.audience.InterfaceAudience;
 
 /**
  * Interface of a class that will export metrics about Thrift to hadoop's metrics2.
  */
+@InterfaceAudience.Private
 public interface MetricsThriftServerSource extends ExceptionTrackingSource, JvmPauseMonitorSource {
 
   String BATCH_GET_KEY = "batchGet";

http://git-wip-us.apache.org/repos/asf/hbase/blob/70c17072/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/thrift/MetricsThriftServerSourceFactory.java
----------------------------------------------------------------------
diff --git a/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/thrift/MetricsThriftServerSourceFactory.java b/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/thrift/MetricsThriftServerSourceFactory.java
index a4608b5..7918d73 100644
--- a/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/thrift/MetricsThriftServerSourceFactory.java
+++ b/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/thrift/MetricsThriftServerSourceFactory.java
@@ -18,7 +18,10 @@
 
 package org.apache.hadoop.hbase.thrift;
 
+import org.apache.yetus.audience.InterfaceAudience;
+
 /** Factory that will be used to create metrics sources for the two diffent types of thrift servers. */
+@InterfaceAudience.Private
 public interface MetricsThriftServerSourceFactory {
 
   String METRICS_NAME = "Thrift";

http://git-wip-us.apache.org/repos/asf/hbase/blob/70c17072/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/zookeeper/MetricsZooKeeperSource.java
----------------------------------------------------------------------
diff --git a/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/zookeeper/MetricsZooKeeperSource.java b/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/zookeeper/MetricsZooKeeperSource.java
index 7a40464..3e97124 100644
--- a/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/zookeeper/MetricsZooKeeperSource.java
+++ b/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/zookeeper/MetricsZooKeeperSource.java
@@ -18,10 +18,12 @@
 package org.apache.hadoop.hbase.zookeeper;
 
 import org.apache.hadoop.hbase.metrics.BaseSource;
+import org.apache.yetus.audience.InterfaceAudience;
 
 /**
  * Interface of the source that will export metrics about the ZooKeeper.
  */
+@InterfaceAudience.Private
 public interface MetricsZooKeeperSource extends BaseSource {
 
   /**

http://git-wip-us.apache.org/repos/asf/hbase/blob/70c17072/hbase-hadoop-compat/src/main/java/org/apache/hadoop/metrics2/MetricHistogram.java
----------------------------------------------------------------------
diff --git a/hbase-hadoop-compat/src/main/java/org/apache/hadoop/metrics2/MetricHistogram.java b/hbase-hadoop-compat/src/main/java/org/apache/hadoop/metrics2/MetricHistogram.java
index 9d24a23..835c50b 100644
--- a/hbase-hadoop-compat/src/main/java/org/apache/hadoop/metrics2/MetricHistogram.java
+++ b/hbase-hadoop-compat/src/main/java/org/apache/hadoop/metrics2/MetricHistogram.java
@@ -18,10 +18,13 @@
 
 package org.apache.hadoop.metrics2;
 
+import org.apache.yetus.audience.InterfaceAudience;
+
 /**
  * Metrics Histogram interface.  Implementing classes will expose computed
  * quartile values through the metrics system.
  */
+@InterfaceAudience.Private
 public interface MetricHistogram {
 
   //Strings used to create metrics names.

http://git-wip-us.apache.org/repos/asf/hbase/blob/70c17072/hbase-hadoop-compat/src/main/java/org/apache/hadoop/metrics2/MetricsExecutor.java
----------------------------------------------------------------------
diff --git a/hbase-hadoop-compat/src/main/java/org/apache/hadoop/metrics2/MetricsExecutor.java b/hbase-hadoop-compat/src/main/java/org/apache/hadoop/metrics2/MetricsExecutor.java
index f2ebc94..1366fd0 100644
--- a/hbase-hadoop-compat/src/main/java/org/apache/hadoop/metrics2/MetricsExecutor.java
+++ b/hbase-hadoop-compat/src/main/java/org/apache/hadoop/metrics2/MetricsExecutor.java
@@ -19,10 +19,12 @@
 package org.apache.hadoop.metrics2;
 
 import java.util.concurrent.ScheduledExecutorService;
+import org.apache.yetus.audience.InterfaceAudience;
 
 /**
  * ScheduledExecutorService for metrics.
  */
+@InterfaceAudience.Private
 public interface MetricsExecutor {
 
   ScheduledExecutorService getExecutor();

http://git-wip-us.apache.org/repos/asf/hbase/blob/70c17072/hbase-hadoop2-compat/pom.xml
----------------------------------------------------------------------
diff --git a/hbase-hadoop2-compat/pom.xml b/hbase-hadoop2-compat/pom.xml
index d0e4025..5db80e6 100644
--- a/hbase-hadoop2-compat/pom.xml
+++ b/hbase-hadoop2-compat/pom.xml
@@ -67,6 +67,10 @@ limitations under the License.
           </execution>
         </executions>
       </plugin>
+      <plugin>
+        <groupId>net.revelc.code</groupId>
+        <artifactId>warbucks-maven-plugin</artifactId>
+      </plugin>
     </plugins>
         <pluginManagement>
       <plugins>

http://git-wip-us.apache.org/repos/asf/hbase/blob/70c17072/hbase-hadoop2-compat/src/main/java/org/apache/hadoop/hbase/io/MetricsIOSourceImpl.java
----------------------------------------------------------------------
diff --git a/hbase-hadoop2-compat/src/main/java/org/apache/hadoop/hbase/io/MetricsIOSourceImpl.java b/hbase-hadoop2-compat/src/main/java/org/apache/hadoop/hbase/io/MetricsIOSourceImpl.java
index 3edbc55..edbb925 100644
--- a/hbase-hadoop2-compat/src/main/java/org/apache/hadoop/hbase/io/MetricsIOSourceImpl.java
+++ b/hbase-hadoop2-compat/src/main/java/org/apache/hadoop/hbase/io/MetricsIOSourceImpl.java
@@ -23,7 +23,9 @@ import org.apache.hadoop.metrics2.MetricHistogram;
 import org.apache.hadoop.metrics2.MetricsCollector;
 import org.apache.hadoop.metrics2.MetricsRecordBuilder;
 import org.apache.hadoop.metrics2.lib.Interns;
+import org.apache.yetus.audience.InterfaceAudience;
 
+@InterfaceAudience.Private
 public class MetricsIOSourceImpl extends BaseSourceImpl implements MetricsIOSource {
 
   private final MetricsIOWrapper wrapper;

http://git-wip-us.apache.org/repos/asf/hbase/blob/70c17072/hbase-hadoop2-compat/src/main/java/org/apache/hadoop/hbase/metrics/ExceptionTrackingSourceImpl.java
----------------------------------------------------------------------
diff --git a/hbase-hadoop2-compat/src/main/java/org/apache/hadoop/hbase/metrics/ExceptionTrackingSourceImpl.java b/hbase-hadoop2-compat/src/main/java/org/apache/hadoop/hbase/metrics/ExceptionTrackingSourceImpl.java
index 9ed61a1..3af27d8 100644
--- a/hbase-hadoop2-compat/src/main/java/org/apache/hadoop/hbase/metrics/ExceptionTrackingSourceImpl.java
+++ b/hbase-hadoop2-compat/src/main/java/org/apache/hadoop/hbase/metrics/ExceptionTrackingSourceImpl.java
@@ -19,11 +19,13 @@
 package org.apache.hadoop.hbase.metrics;
 
 import org.apache.hadoop.metrics2.lib.MutableFastCounter;
+import org.apache.yetus.audience.InterfaceAudience;
 
 /**
  * Common base implementation for metrics sources which need to track exceptions thrown or
  * received.
  */
+@InterfaceAudience.Private
 public class ExceptionTrackingSourceImpl extends BaseSourceImpl
     implements ExceptionTrackingSource {
   protected MutableFastCounter exceptions;

http://git-wip-us.apache.org/repos/asf/hbase/blob/70c17072/hbase-hadoop2-compat/src/main/java/org/apache/hadoop/hbase/metrics/impl/GlobalMetricRegistriesAdapter.java
----------------------------------------------------------------------
diff --git a/hbase-hadoop2-compat/src/main/java/org/apache/hadoop/hbase/metrics/impl/GlobalMetricRegistriesAdapter.java b/hbase-hadoop2-compat/src/main/java/org/apache/hadoop/hbase/metrics/impl/GlobalMetricRegistriesAdapter.java
index 5150dff..96fc954 100644
--- a/hbase-hadoop2-compat/src/main/java/org/apache/hadoop/hbase/metrics/impl/GlobalMetricRegistriesAdapter.java
+++ b/hbase-hadoop2-compat/src/main/java/org/apache/hadoop/hbase/metrics/impl/GlobalMetricRegistriesAdapter.java
@@ -17,15 +17,13 @@
  */
 package org.apache.hadoop.hbase.metrics.impl;
 
-
 import java.util.Collection;
 import java.util.HashMap;
 import java.util.Iterator;
 import java.util.Map.Entry;
+import java.util.Optional;
 import java.util.concurrent.TimeUnit;
 import java.util.concurrent.atomic.AtomicBoolean;
-import java.util.Optional;
-
 import org.apache.hadoop.hbase.metrics.MetricRegistries;
 import org.apache.hadoop.hbase.metrics.MetricRegistry;
 import org.apache.hadoop.hbase.metrics.MetricRegistryInfo;
@@ -36,8 +34,10 @@ import org.apache.hadoop.metrics2.impl.JmxCacheBuster;
 import org.apache.hadoop.metrics2.lib.DefaultMetricsSystem;
 import org.apache.hadoop.metrics2.lib.DefaultMetricsSystemHelper;
 import org.apache.hadoop.metrics2.lib.MetricsExecutorImpl;
+import org.apache.yetus.audience.InterfaceAudience;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
+
 import org.apache.hbase.thirdparty.com.google.common.annotations.VisibleForTesting;
 
 /**
@@ -62,7 +62,8 @@ import org.apache.hbase.thirdparty.com.google.common.annotations.VisibleForTesti
  * initialization should be moved here.
  * </p>
  */
-public class GlobalMetricRegistriesAdapter {
+@InterfaceAudience.Private
+public final class GlobalMetricRegistriesAdapter {
 
   private static final Logger LOG = LoggerFactory.getLogger(GlobalMetricRegistriesAdapter.class);
 

http://git-wip-us.apache.org/repos/asf/hbase/blob/70c17072/hbase-hadoop2-compat/src/main/java/org/apache/hadoop/hbase/metrics/impl/HBaseMetrics2HadoopMetricsAdapter.java
----------------------------------------------------------------------
diff --git a/hbase-hadoop2-compat/src/main/java/org/apache/hadoop/hbase/metrics/impl/HBaseMetrics2HadoopMetricsAdapter.java b/hbase-hadoop2-compat/src/main/java/org/apache/hadoop/hbase/metrics/impl/HBaseMetrics2HadoopMetricsAdapter.java
index b6a17cf..e4d8710 100644
--- a/hbase-hadoop2-compat/src/main/java/org/apache/hadoop/hbase/metrics/impl/HBaseMetrics2HadoopMetricsAdapter.java
+++ b/hbase-hadoop2-compat/src/main/java/org/apache/hadoop/hbase/metrics/impl/HBaseMetrics2HadoopMetricsAdapter.java
@@ -33,7 +33,6 @@
 package org.apache.hadoop.hbase.metrics.impl;
 
 import java.util.Map;
-
 import org.apache.commons.lang3.StringUtils;
 import org.apache.hadoop.hbase.metrics.Counter;
 import org.apache.hadoop.hbase.metrics.Gauge;
@@ -48,6 +47,7 @@ import org.apache.hadoop.metrics2.MetricsInfo;
 import org.apache.hadoop.metrics2.MetricsRecordBuilder;
 import org.apache.hadoop.metrics2.lib.Interns;
 import org.apache.hadoop.metrics2.lib.MutableHistogram;
+import org.apache.yetus.audience.InterfaceAudience;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -59,6 +59,7 @@ import org.slf4j.LoggerFactory;
  *
  * Some of the code is forked from https://github.com/joshelser/dropwizard-hadoop-metrics2.
  */
+@InterfaceAudience.Private
 public class HBaseMetrics2HadoopMetricsAdapter {
   private static final Logger LOG
       = LoggerFactory.getLogger(HBaseMetrics2HadoopMetricsAdapter.class);

http://git-wip-us.apache.org/repos/asf/hbase/blob/70c17072/hbase-hadoop2-compat/src/main/java/org/apache/hadoop/hbase/replication/regionserver/MetricsReplicationGlobalSourceSource.java
----------------------------------------------------------------------
diff --git a/hbase-hadoop2-compat/src/main/java/org/apache/hadoop/hbase/replication/regionserver/MetricsReplicationGlobalSourceSource.java b/hbase-hadoop2-compat/src/main/java/org/apache/hadoop/hbase/replication/regionserver/MetricsReplicationGlobalSourceSource.java
index 712096d..5d18ccb 100644
--- a/hbase-hadoop2-compat/src/main/java/org/apache/hadoop/hbase/replication/regionserver/MetricsReplicationGlobalSourceSource.java
+++ b/hbase-hadoop2-compat/src/main/java/org/apache/hadoop/hbase/replication/regionserver/MetricsReplicationGlobalSourceSource.java
@@ -21,7 +21,9 @@ package org.apache.hadoop.hbase.replication.regionserver;
 import org.apache.hadoop.metrics2.lib.MutableFastCounter;
 import org.apache.hadoop.metrics2.lib.MutableGaugeLong;
 import org.apache.hadoop.metrics2.lib.MutableHistogram;
+import org.apache.yetus.audience.InterfaceAudience;
 
+@InterfaceAudience.Private
 public class MetricsReplicationGlobalSourceSource implements MetricsReplicationSourceSource{
   private static final String KEY_PREFIX = "source.";
 

http://git-wip-us.apache.org/repos/asf/hbase/blob/70c17072/hbase-hadoop2-compat/src/main/java/org/apache/hadoop/hbase/replication/regionserver/MetricsReplicationSinkSourceImpl.java
----------------------------------------------------------------------
diff --git a/hbase-hadoop2-compat/src/main/java/org/apache/hadoop/hbase/replication/regionserver/MetricsReplicationSinkSourceImpl.java b/hbase-hadoop2-compat/src/main/java/org/apache/hadoop/hbase/replication/regionserver/MetricsReplicationSinkSourceImpl.java
index 74592d9..485764e 100644
--- a/hbase-hadoop2-compat/src/main/java/org/apache/hadoop/hbase/replication/regionserver/MetricsReplicationSinkSourceImpl.java
+++ b/hbase-hadoop2-compat/src/main/java/org/apache/hadoop/hbase/replication/regionserver/MetricsReplicationSinkSourceImpl.java
@@ -19,9 +19,10 @@
 package org.apache.hadoop.hbase.replication.regionserver;
 
 import org.apache.hadoop.metrics2.lib.MutableFastCounter;
-import org.apache.hadoop.metrics2.lib.MutableGaugeLong;
 import org.apache.hadoop.metrics2.lib.MutableHistogram;
+import org.apache.yetus.audience.InterfaceAudience;
 
+@InterfaceAudience.Private
 public class MetricsReplicationSinkSourceImpl implements MetricsReplicationSinkSource {
 
   private final MutableHistogram ageHist;

http://git-wip-us.apache.org/repos/asf/hbase/blob/70c17072/hbase-hadoop2-compat/src/main/java/org/apache/hadoop/hbase/replication/regionserver/MetricsReplicationSourceFactoryImpl.java
----------------------------------------------------------------------
diff --git a/hbase-hadoop2-compat/src/main/java/org/apache/hadoop/hbase/replication/regionserver/MetricsReplicationSourceFactoryImpl.java b/hbase-hadoop2-compat/src/main/java/org/apache/hadoop/hbase/replication/regionserver/MetricsReplicationSourceFactoryImpl.java
index b07790f..af310f0 100644
--- a/hbase-hadoop2-compat/src/main/java/org/apache/hadoop/hbase/replication/regionserver/MetricsReplicationSourceFactoryImpl.java
+++ b/hbase-hadoop2-compat/src/main/java/org/apache/hadoop/hbase/replication/regionserver/MetricsReplicationSourceFactoryImpl.java
@@ -17,6 +17,9 @@
  */
 package org.apache.hadoop.hbase.replication.regionserver;
 
+import org.apache.yetus.audience.InterfaceAudience;
+
+@InterfaceAudience.Private
 public class MetricsReplicationSourceFactoryImpl implements MetricsReplicationSourceFactory {
 
   private static enum SourceHolder {

http://git-wip-us.apache.org/repos/asf/hbase/blob/70c17072/hbase-hadoop2-compat/src/main/java/org/apache/hadoop/hbase/replication/regionserver/MetricsReplicationSourceSourceImpl.java
----------------------------------------------------------------------
diff --git a/hbase-hadoop2-compat/src/main/java/org/apache/hadoop/hbase/replication/regionserver/MetricsReplicationSourceSourceImpl.java b/hbase-hadoop2-compat/src/main/java/org/apache/hadoop/hbase/replication/regionserver/MetricsReplicationSourceSourceImpl.java
index 0b6a1e1..be62e3d 100644
--- a/hbase-hadoop2-compat/src/main/java/org/apache/hadoop/hbase/replication/regionserver/MetricsReplicationSourceSourceImpl.java
+++ b/hbase-hadoop2-compat/src/main/java/org/apache/hadoop/hbase/replication/regionserver/MetricsReplicationSourceSourceImpl.java
@@ -20,7 +20,9 @@ package org.apache.hadoop.hbase.replication.regionserver;
 import org.apache.hadoop.metrics2.lib.MutableFastCounter;
 import org.apache.hadoop.metrics2.lib.MutableGaugeLong;
 import org.apache.hadoop.metrics2.lib.MutableHistogram;
+import org.apache.yetus.audience.InterfaceAudience;
 
+@InterfaceAudience.Private
 public class MetricsReplicationSourceSourceImpl implements MetricsReplicationSourceSource {
 
   private final MetricsReplicationSourceImpl rms;

http://git-wip-us.apache.org/repos/asf/hbase/blob/70c17072/hbase-hadoop2-compat/src/main/java/org/apache/hadoop/metrics2/lib/DefaultMetricsSystemHelper.java
----------------------------------------------------------------------
diff --git a/hbase-hadoop2-compat/src/main/java/org/apache/hadoop/metrics2/lib/DefaultMetricsSystemHelper.java b/hbase-hadoop2-compat/src/main/java/org/apache/hadoop/metrics2/lib/DefaultMetricsSystemHelper.java
index 3ecd888..87b83e5 100644
--- a/hbase-hadoop2-compat/src/main/java/org/apache/hadoop/metrics2/lib/DefaultMetricsSystemHelper.java
+++ b/hbase-hadoop2-compat/src/main/java/org/apache/hadoop/metrics2/lib/DefaultMetricsSystemHelper.java
@@ -20,9 +20,11 @@ package org.apache.hadoop.metrics2.lib;
 import java.lang.reflect.Field;
 import java.lang.reflect.Method;
 import java.util.HashMap;
+import org.apache.yetus.audience.InterfaceAudience;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
+@InterfaceAudience.Private
 public class DefaultMetricsSystemHelper {
 
   private static final Logger LOG = LoggerFactory.getLogger(DefaultMetricsSystemHelper.class);

http://git-wip-us.apache.org/repos/asf/hbase/blob/70c17072/hbase-hadoop2-compat/src/main/java/org/apache/hadoop/metrics2/lib/MutableFastCounter.java
----------------------------------------------------------------------
diff --git a/hbase-hadoop2-compat/src/main/java/org/apache/hadoop/metrics2/lib/MutableFastCounter.java b/hbase-hadoop2-compat/src/main/java/org/apache/hadoop/metrics2/lib/MutableFastCounter.java
index 645b8cc..7b5ec02 100644
--- a/hbase-hadoop2-compat/src/main/java/org/apache/hadoop/metrics2/lib/MutableFastCounter.java
+++ b/hbase-hadoop2-compat/src/main/java/org/apache/hadoop/metrics2/lib/MutableFastCounter.java
@@ -22,7 +22,9 @@ import java.util.concurrent.atomic.LongAdder;
 
 import org.apache.hadoop.metrics2.MetricsInfo;
 import org.apache.hadoop.metrics2.MetricsRecordBuilder;
+import org.apache.yetus.audience.InterfaceAudience;
 
+@InterfaceAudience.Private
 public class MutableFastCounter extends MutableCounter {
 
   private final LongAdder counter;

http://git-wip-us.apache.org/repos/asf/hbase/blob/70c17072/hbase-http/pom.xml
----------------------------------------------------------------------
diff --git a/hbase-http/pom.xml b/hbase-http/pom.xml
index dd94e32..149131a 100644
--- a/hbase-http/pom.xml
+++ b/hbase-http/pom.xml
@@ -120,6 +120,10 @@
           </systemPropertyVariables>
         </configuration>
       </plugin>
+      <plugin>
+        <groupId>net.revelc.code</groupId>
+        <artifactId>warbucks-maven-plugin</artifactId>
+      </plugin>
     </plugins>
     <!-- General Resources -->
     <pluginManagement>

http://git-wip-us.apache.org/repos/asf/hbase/blob/70c17072/hbase-http/src/main/java/org/apache/hadoop/hbase/http/FilterContainer.java
----------------------------------------------------------------------
diff --git a/hbase-http/src/main/java/org/apache/hadoop/hbase/http/FilterContainer.java b/hbase-http/src/main/java/org/apache/hadoop/hbase/http/FilterContainer.java
index 7a79acc..5869ce3 100644
--- a/hbase-http/src/main/java/org/apache/hadoop/hbase/http/FilterContainer.java
+++ b/hbase-http/src/main/java/org/apache/hadoop/hbase/http/FilterContainer.java
@@ -18,10 +18,12 @@
 package org.apache.hadoop.hbase.http;
 
 import java.util.Map;
+import org.apache.yetus.audience.InterfaceAudience;
 
 /**
  * A container interface to add javax.servlet.Filter.
  */
+@InterfaceAudience.Private
 public interface FilterContainer {
   /**
    * Add a filter to the container.

http://git-wip-us.apache.org/repos/asf/hbase/blob/70c17072/hbase-http/src/main/java/org/apache/hadoop/hbase/http/FilterInitializer.java
----------------------------------------------------------------------
diff --git a/hbase-http/src/main/java/org/apache/hadoop/hbase/http/FilterInitializer.java b/hbase-http/src/main/java/org/apache/hadoop/hbase/http/FilterInitializer.java
index d317343..7e8595e 100644
--- a/hbase-http/src/main/java/org/apache/hadoop/hbase/http/FilterInitializer.java
+++ b/hbase-http/src/main/java/org/apache/hadoop/hbase/http/FilterInitializer.java
@@ -18,10 +18,12 @@
 package org.apache.hadoop.hbase.http;
 
 import org.apache.hadoop.conf.Configuration;
+import org.apache.yetus.audience.InterfaceAudience;
 
 /**
  * Initialize a javax.servlet.Filter.
  */
+@InterfaceAudience.Private
 public abstract class FilterInitializer {
   /**
    * Initialize a Filter to a FilterContainer.

http://git-wip-us.apache.org/repos/asf/hbase/blob/70c17072/hbase-http/src/main/java/org/apache/hadoop/hbase/http/HtmlQuoting.java
----------------------------------------------------------------------
diff --git a/hbase-http/src/main/java/org/apache/hadoop/hbase/http/HtmlQuoting.java b/hbase-http/src/main/java/org/apache/hadoop/hbase/http/HtmlQuoting.java
index 7f4bb83..e2eebb2 100644
--- a/hbase-http/src/main/java/org/apache/hadoop/hbase/http/HtmlQuoting.java
+++ b/hbase-http/src/main/java/org/apache/hadoop/hbase/http/HtmlQuoting.java
@@ -20,11 +20,13 @@ package org.apache.hadoop.hbase.http;
 import java.io.ByteArrayOutputStream;
 import java.io.IOException;
 import java.io.OutputStream;
+import org.apache.yetus.audience.InterfaceAudience;
 
 /**
  * This class is responsible for quoting HTML characters.
  */
-public class HtmlQuoting {
+@InterfaceAudience.Private
+public final class HtmlQuoting {
   private static final byte[] ampBytes = "&amp;".getBytes();
   private static final byte[] aposBytes = "&apos;".getBytes();
   private static final byte[] gtBytes = "&gt;".getBytes();
@@ -212,4 +214,5 @@ public class HtmlQuoting {
     }
   }
 
+  private HtmlQuoting() {}
 }

http://git-wip-us.apache.org/repos/asf/hbase/blob/70c17072/hbase-http/src/main/java/org/apache/hadoop/hbase/http/HttpRequestLog.java
----------------------------------------------------------------------
diff --git a/hbase-http/src/main/java/org/apache/hadoop/hbase/http/HttpRequestLog.java b/hbase-http/src/main/java/org/apache/hadoop/hbase/http/HttpRequestLog.java
index 243da1b..c83fa4f 100644
--- a/hbase-http/src/main/java/org/apache/hadoop/hbase/http/HttpRequestLog.java
+++ b/hbase-http/src/main/java/org/apache/hadoop/hbase/http/HttpRequestLog.java
@@ -18,11 +18,11 @@
 package org.apache.hadoop.hbase.http;
 
 import java.util.HashMap;
-
 import org.apache.commons.logging.LogConfigurationException;
 import org.apache.commons.logging.impl.Log4JLogger;
 import org.apache.log4j.Appender;
 import org.apache.log4j.LogManager;
+import org.apache.yetus.audience.InterfaceAudience;
 import org.eclipse.jetty.server.NCSARequestLog;
 import org.eclipse.jetty.server.RequestLog;
 import org.slf4j.Logger;
@@ -32,7 +32,8 @@ import org.slf4j.impl.Log4jLoggerAdapter;
 /**
  * RequestLog object for use with Http
  */
-public class HttpRequestLog {
+@InterfaceAudience.Private
+public final class HttpRequestLog {
 
   private static final Logger LOG = LoggerFactory.getLogger(HttpRequestLog.class);
   private static final HashMap<String, String> serverToComponent;
@@ -101,4 +102,6 @@ public class HttpRequestLog {
       return null;
     }
   }
+
+  private HttpRequestLog() {}
 }

http://git-wip-us.apache.org/repos/asf/hbase/blob/70c17072/hbase-http/src/main/java/org/apache/hadoop/hbase/http/HttpRequestLogAppender.java
----------------------------------------------------------------------
diff --git a/hbase-http/src/main/java/org/apache/hadoop/hbase/http/HttpRequestLogAppender.java b/hbase-http/src/main/java/org/apache/hadoop/hbase/http/HttpRequestLogAppender.java
index 8039b34..b6ce3c1 100644
--- a/hbase-http/src/main/java/org/apache/hadoop/hbase/http/HttpRequestLogAppender.java
+++ b/hbase-http/src/main/java/org/apache/hadoop/hbase/http/HttpRequestLogAppender.java
@@ -19,10 +19,12 @@ package org.apache.hadoop.hbase.http;
 
 import org.apache.log4j.spi.LoggingEvent;
 import org.apache.log4j.AppenderSkeleton;
+import org.apache.yetus.audience.InterfaceAudience;
 
 /**
  * Log4j Appender adapter for HttpRequestLog
  */
+@InterfaceAudience.Private
 public class HttpRequestLogAppender extends AppenderSkeleton {
 
   private String filename;

http://git-wip-us.apache.org/repos/asf/hbase/blob/70c17072/hbase-http/src/main/java/org/apache/hadoop/hbase/http/HttpServerUtil.java
----------------------------------------------------------------------
diff --git a/hbase-http/src/main/java/org/apache/hadoop/hbase/http/HttpServerUtil.java b/hbase-http/src/main/java/org/apache/hadoop/hbase/http/HttpServerUtil.java
index 0b33fd1..777ced0 100644
--- a/hbase-http/src/main/java/org/apache/hadoop/hbase/http/HttpServerUtil.java
+++ b/hbase-http/src/main/java/org/apache/hadoop/hbase/http/HttpServerUtil.java
@@ -17,15 +17,17 @@
  */
 package org.apache.hadoop.hbase.http;
 
-import org.eclipse.jetty.security.ConstraintSecurityHandler;
-import org.eclipse.jetty.util.security.Constraint;
+import org.apache.yetus.audience.InterfaceAudience;
 import org.eclipse.jetty.security.ConstraintMapping;
+import org.eclipse.jetty.security.ConstraintSecurityHandler;
 import org.eclipse.jetty.servlet.ServletContextHandler;
+import org.eclipse.jetty.util.security.Constraint;
 
 /**
  * HttpServer utility.
  */
-public class HttpServerUtil {
+@InterfaceAudience.Private
+public final class HttpServerUtil {
   /**
    * Add constraints to a Jetty Context to disallow undesirable Http methods.
    * @param ctxHandler The context to modify
@@ -49,4 +51,6 @@ public class HttpServerUtil {
 
     ctxHandler.setSecurityHandler(securityHandler);
   }
+
+  private HttpServerUtil() {}
 }

http://git-wip-us.apache.org/repos/asf/hbase/blob/70c17072/hbase-http/src/main/java/org/apache/hadoop/hbase/http/jmx/JMXJsonServlet.java
----------------------------------------------------------------------
diff --git a/hbase-http/src/main/java/org/apache/hadoop/hbase/http/jmx/JMXJsonServlet.java b/hbase-http/src/main/java/org/apache/hadoop/hbase/http/jmx/JMXJsonServlet.java
index 13d6c40..b42c270 100644
--- a/hbase-http/src/main/java/org/apache/hadoop/hbase/http/jmx/JMXJsonServlet.java
+++ b/hbase-http/src/main/java/org/apache/hadoop/hbase/http/jmx/JMXJsonServlet.java
@@ -20,7 +20,6 @@ package org.apache.hadoop.hbase.http.jmx;
 import java.io.IOException;
 import java.io.PrintWriter;
 import java.lang.management.ManagementFactory;
-
 import javax.management.MBeanServer;
 import javax.management.MalformedObjectNameException;
 import javax.management.ObjectName;
@@ -30,9 +29,9 @@ import javax.servlet.ServletException;
 import javax.servlet.http.HttpServlet;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
-
 import org.apache.hadoop.hbase.http.HttpServer;
 import org.apache.hadoop.hbase.util.JSONBean;
+import org.apache.yetus.audience.InterfaceAudience;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -110,6 +109,7 @@ import org.slf4j.LoggerFactory;
  * </p>
  *
  */
+@InterfaceAudience.Private
 public class JMXJsonServlet extends HttpServlet {
   private static final Logger LOG = LoggerFactory.getLogger(JMXJsonServlet.class);
 

http://git-wip-us.apache.org/repos/asf/hbase/blob/70c17072/hbase-http/src/main/java/org/apache/hadoop/hbase/http/log/LogLevel.java
----------------------------------------------------------------------
diff --git a/hbase-http/src/main/java/org/apache/hadoop/hbase/http/log/LogLevel.java b/hbase-http/src/main/java/org/apache/hadoop/hbase/http/log/LogLevel.java
index 0d40972..2f62313 100644
--- a/hbase-http/src/main/java/org/apache/hadoop/hbase/http/log/LogLevel.java
+++ b/hbase-http/src/main/java/org/apache/hadoop/hbase/http/log/LogLevel.java
@@ -24,28 +24,26 @@ import java.io.PrintWriter;
 import java.net.URL;
 import java.net.URLConnection;
 import java.util.regex.Pattern;
-
 import javax.servlet.ServletException;
 import javax.servlet.http.HttpServlet;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
-
 import org.apache.commons.logging.impl.Jdk14Logger;
 import org.apache.commons.logging.impl.Log4JLogger;
+import org.apache.hadoop.hbase.http.HttpServer;
+import org.apache.hadoop.util.ServletUtil;
+import org.apache.log4j.LogManager;
 import org.apache.yetus.audience.InterfaceAudience;
 import org.apache.yetus.audience.InterfaceStability;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.slf4j.impl.Log4jLoggerAdapter;
-import org.apache.hadoop.hbase.http.HttpServer;
-import org.apache.hadoop.util.ServletUtil;
-import org.apache.log4j.LogManager;
 
 /**
  * Change log level in runtime.
  */
-@InterfaceStability.Evolving
-public class LogLevel {
+@InterfaceAudience.Private
+public final class LogLevel {
   public static final String USAGES = "\nUsage: General options are:\n"
       + "\t[-getlevel <host:httpPort> <name>]\n"
       + "\t[-setlevel <host:httpPort> <name> <level>]\n";
@@ -174,4 +172,6 @@ public class LogLevel {
       out.println(MARKER + "Effective level: <b>" + lev + "</b><br />");
     }
   }
+
+  private LogLevel() {}
 }

http://git-wip-us.apache.org/repos/asf/hbase/blob/70c17072/hbase-it/pom.xml
----------------------------------------------------------------------
diff --git a/hbase-it/pom.xml b/hbase-it/pom.xml
index e5650b8..db54fe7 100644
--- a/hbase-it/pom.xml
+++ b/hbase-it/pom.xml
@@ -154,6 +154,10 @@
                 -verbose:gc -XX:+PrintCommandLineFlags  -XX:+PrintFlagsFinal</argLine>
           </configuration>
       </plugin>
+      <plugin>
+        <groupId>net.revelc.code</groupId>
+        <artifactId>warbucks-maven-plugin</artifactId>
+      </plugin>
     </plugins>
   </build>
 

http://git-wip-us.apache.org/repos/asf/hbase/blob/70c17072/hbase-mapreduce/pom.xml
----------------------------------------------------------------------
diff --git a/hbase-mapreduce/pom.xml b/hbase-mapreduce/pom.xml
index 4e2f5de..34d405c 100644
--- a/hbase-mapreduce/pom.xml
+++ b/hbase-mapreduce/pom.xml
@@ -64,6 +64,10 @@
         <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-source-plugin</artifactId>
       </plugin>
+      <plugin>
+        <groupId>net.revelc.code</groupId>
+        <artifactId>warbucks-maven-plugin</artifactId>
+      </plugin>
     </plugins>
     <pluginManagement>
       <plugins>

http://git-wip-us.apache.org/repos/asf/hbase/blob/70c17072/hbase-mapreduce/src/main/java/org/apache/hadoop/hbase/mapreduce/HFileInputFormat.java
----------------------------------------------------------------------
diff --git a/hbase-mapreduce/src/main/java/org/apache/hadoop/hbase/mapreduce/HFileInputFormat.java b/hbase-mapreduce/src/main/java/org/apache/hadoop/hbase/mapreduce/HFileInputFormat.java
index 01248ba..11e6c08 100644
--- a/hbase-mapreduce/src/main/java/org/apache/hadoop/hbase/mapreduce/HFileInputFormat.java
+++ b/hbase-mapreduce/src/main/java/org/apache/hadoop/hbase/mapreduce/HFileInputFormat.java
@@ -20,7 +20,6 @@ package org.apache.hadoop.hbase.mapreduce;
 import java.io.IOException;
 import java.util.ArrayList;
 import java.util.List;
-
 import org.apache.hadoop.conf.Configuration;
 import org.apache.hadoop.fs.FileStatus;
 import org.apache.hadoop.fs.FileSystem;
@@ -37,6 +36,7 @@ import org.apache.hadoop.mapreduce.RecordReader;
 import org.apache.hadoop.mapreduce.TaskAttemptContext;
 import org.apache.hadoop.mapreduce.lib.input.FileInputFormat;
 import org.apache.hadoop.mapreduce.lib.input.FileSplit;
+import org.apache.yetus.audience.InterfaceAudience;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -45,6 +45,7 @@ import org.slf4j.LoggerFactory;
  * This code was borrowed from Apache Crunch project.
  * Updated to the recent version of HBase.
  */
+@InterfaceAudience.Private
 public class HFileInputFormat extends FileInputFormat<NullWritable, Cell> {
 
   private static final Logger LOG = LoggerFactory.getLogger(HFileInputFormat.class);

http://git-wip-us.apache.org/repos/asf/hbase/blob/70c17072/hbase-mapreduce/src/main/java/org/apache/hadoop/hbase/mapreduce/HashTable.java
----------------------------------------------------------------------
diff --git a/hbase-mapreduce/src/main/java/org/apache/hadoop/hbase/mapreduce/HashTable.java b/hbase-mapreduce/src/main/java/org/apache/hadoop/hbase/mapreduce/HashTable.java
index e1c69a5..b67225e 100644
--- a/hbase-mapreduce/src/main/java/org/apache/hadoop/hbase/mapreduce/HashTable.java
+++ b/hbase-mapreduce/src/main/java/org/apache/hadoop/hbase/mapreduce/HashTable.java
@@ -26,7 +26,6 @@ import java.util.ArrayList;
 import java.util.Collections;
 import java.util.List;
 import java.util.Properties;
-
 import org.apache.hadoop.conf.Configuration;
 import org.apache.hadoop.conf.Configured;
 import org.apache.hadoop.fs.FSDataInputStream;
@@ -54,12 +53,15 @@ import org.apache.hadoop.mapreduce.lib.partition.TotalOrderPartitioner;
 import org.apache.hadoop.util.GenericOptionsParser;
 import org.apache.hadoop.util.Tool;
 import org.apache.hadoop.util.ToolRunner;
+import org.apache.yetus.audience.InterfaceAudience;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
+
 import org.apache.hbase.thirdparty.com.google.common.base.Charsets;
 import org.apache.hbase.thirdparty.com.google.common.base.Throwables;
 import org.apache.hbase.thirdparty.com.google.common.collect.Ordering;
 
+@InterfaceAudience.Private
 public class HashTable extends Configured implements Tool {
 
   private static final Logger LOG = LoggerFactory.getLogger(HashTable.class);

http://git-wip-us.apache.org/repos/asf/hbase/blob/70c17072/hbase-mapreduce/src/main/java/org/apache/hadoop/hbase/mapreduce/JarFinder.java
----------------------------------------------------------------------
diff --git a/hbase-mapreduce/src/main/java/org/apache/hadoop/hbase/mapreduce/JarFinder.java b/hbase-mapreduce/src/main/java/org/apache/hadoop/hbase/mapreduce/JarFinder.java
index 24efbb3..0127b51 100644
--- a/hbase-mapreduce/src/main/java/org/apache/hadoop/hbase/mapreduce/JarFinder.java
+++ b/hbase-mapreduce/src/main/java/org/apache/hadoop/hbase/mapreduce/JarFinder.java
@@ -18,8 +18,6 @@
  */
 package org.apache.hadoop.hbase.mapreduce;
 
-import org.apache.hbase.thirdparty.com.google.common.base.Preconditions;
-
 import java.io.BufferedOutputStream;
 import java.io.File;
 import java.io.FileInputStream;
@@ -35,6 +33,9 @@ import java.util.jar.JarOutputStream;
 import java.util.jar.Manifest;
 import java.util.zip.ZipEntry;
 import java.util.zip.ZipOutputStream;
+import org.apache.yetus.audience.InterfaceAudience;
+
+import org.apache.hbase.thirdparty.com.google.common.base.Preconditions;
 
 /**
  * Finds the Jar for a class. If the class is in a directory in the
@@ -44,7 +45,8 @@ import java.util.zip.ZipOutputStream;
  *
  * This file was forked from hadoop/common/branches/branch-2@1377176.
  */
-public class JarFinder {
+@InterfaceAudience.Private
+public final class JarFinder {
 
   private static void copyToZipStream(File file, ZipEntry entry,
                               ZipOutputStream zos) throws IOException {
@@ -183,4 +185,6 @@ public class JarFinder {
     }
     return null;
   }
+
+  private JarFinder() {}
 }

http://git-wip-us.apache.org/repos/asf/hbase/blob/70c17072/hbase-mapreduce/src/main/java/org/apache/hadoop/hbase/mapreduce/MultithreadedTableMapper.java
----------------------------------------------------------------------
diff --git a/hbase-mapreduce/src/main/java/org/apache/hadoop/hbase/mapreduce/MultithreadedTableMapper.java b/hbase-mapreduce/src/main/java/org/apache/hadoop/hbase/mapreduce/MultithreadedTableMapper.java
index 5cd87ae..ca82e2a 100644
--- a/hbase-mapreduce/src/main/java/org/apache/hadoop/hbase/mapreduce/MultithreadedTableMapper.java
+++ b/hbase-mapreduce/src/main/java/org/apache/hadoop/hbase/mapreduce/MultithreadedTableMapper.java
@@ -22,7 +22,6 @@ import java.lang.reflect.Constructor;
 import java.lang.reflect.Method;
 import java.util.concurrent.ExecutorService;
 import java.util.concurrent.Executors;
-
 import org.apache.hadoop.conf.Configuration;
 import org.apache.hadoop.hbase.client.Result;
 import org.apache.hadoop.hbase.io.ImmutableBytesWritable;
@@ -39,6 +38,7 @@ import org.apache.hadoop.mapreduce.StatusReporter;
 import org.apache.hadoop.mapreduce.TaskAttemptContext;
 import org.apache.hadoop.mapreduce.TaskAttemptID;
 import org.apache.hadoop.util.ReflectionUtils;
+import org.apache.yetus.audience.InterfaceAudience;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -57,6 +57,7 @@ import org.slf4j.LoggerFactory;
  * <p>
  */
 
+@InterfaceAudience.Private
 public class MultithreadedTableMapper<K2, V2> extends TableMapper<K2, V2> {
   private static final Logger LOG = LoggerFactory.getLogger(MultithreadedTableMapper.class);
   private Class<? extends Mapper<ImmutableBytesWritable, Result,K2,V2>> mapClass;

http://git-wip-us.apache.org/repos/asf/hbase/blob/70c17072/hbase-mapreduce/src/main/java/org/apache/hadoop/hbase/mapreduce/SyncTable.java
----------------------------------------------------------------------
diff --git a/hbase-mapreduce/src/main/java/org/apache/hadoop/hbase/mapreduce/SyncTable.java b/hbase-mapreduce/src/main/java/org/apache/hadoop/hbase/mapreduce/SyncTable.java
index 6382aff..206963f 100644
--- a/hbase-mapreduce/src/main/java/org/apache/hadoop/hbase/mapreduce/SyncTable.java
+++ b/hbase-mapreduce/src/main/java/org/apache/hadoop/hbase/mapreduce/SyncTable.java
@@ -18,9 +18,8 @@
 package org.apache.hadoop.hbase.mapreduce;
 
 import java.io.IOException;
-import java.util.Iterator;
 import java.util.Collections;
-
+import java.util.Iterator;
 import org.apache.hadoop.conf.Configuration;
 import org.apache.hadoop.conf.Configured;
 import org.apache.hadoop.fs.FileStatus;
@@ -48,10 +47,13 @@ import org.apache.hadoop.mapreduce.lib.output.NullOutputFormat;
 import org.apache.hadoop.util.GenericOptionsParser;
 import org.apache.hadoop.util.Tool;
 import org.apache.hadoop.util.ToolRunner;
+import org.apache.yetus.audience.InterfaceAudience;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
+
 import org.apache.hbase.thirdparty.com.google.common.base.Throwables;
 
+@InterfaceAudience.Private
 public class SyncTable extends Configured implements Tool {
 
   private static final Logger LOG = LoggerFactory.getLogger(SyncTable.class);

http://git-wip-us.apache.org/repos/asf/hbase/blob/70c17072/hbase-mapreduce/src/main/java/org/apache/hadoop/hbase/mapreduce/replication/VerifyReplication.java
----------------------------------------------------------------------
diff --git a/hbase-mapreduce/src/main/java/org/apache/hadoop/hbase/mapreduce/replication/VerifyReplication.java b/hbase-mapreduce/src/main/java/org/apache/hadoop/hbase/mapreduce/replication/VerifyReplication.java
index 9065f4e..6a5f435 100644
--- a/hbase-mapreduce/src/main/java/org/apache/hadoop/hbase/mapreduce/replication/VerifyReplication.java
+++ b/hbase-mapreduce/src/main/java/org/apache/hadoop/hbase/mapreduce/replication/VerifyReplication.java
@@ -21,7 +21,6 @@ package org.apache.hadoop.hbase.mapreduce.replication;
 import java.io.IOException;
 import java.util.Arrays;
 import java.util.UUID;
-
 import org.apache.hadoop.conf.Configuration;
 import org.apache.hadoop.conf.Configured;
 import org.apache.hadoop.fs.FileSystem;
@@ -45,8 +44,8 @@ import org.apache.hadoop.hbase.filter.PrefixFilter;
 import org.apache.hadoop.hbase.io.ImmutableBytesWritable;
 import org.apache.hadoop.hbase.mapreduce.TableInputFormat;
 import org.apache.hadoop.hbase.mapreduce.TableMapReduceUtil;
-import org.apache.hadoop.hbase.mapreduce.TableSnapshotInputFormat;
 import org.apache.hadoop.hbase.mapreduce.TableMapper;
+import org.apache.hadoop.hbase.mapreduce.TableSnapshotInputFormat;
 import org.apache.hadoop.hbase.mapreduce.TableSplit;
 import org.apache.hadoop.hbase.replication.ReplicationException;
 import org.apache.hadoop.hbase.replication.ReplicationFactory;
@@ -65,8 +64,10 @@ import org.apache.hadoop.mapreduce.MRJobConfig;
 import org.apache.hadoop.mapreduce.lib.output.NullOutputFormat;
 import org.apache.hadoop.util.Tool;
 import org.apache.hadoop.util.ToolRunner;
+import org.apache.yetus.audience.InterfaceAudience;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
+
 import org.apache.hbase.thirdparty.com.google.common.annotations.VisibleForTesting;
 
 /**
@@ -79,6 +80,7 @@ import org.apache.hbase.thirdparty.com.google.common.annotations.VisibleForTesti
  * Two counters are provided, Verifier.Counters.GOODROWS and BADROWS. The reason
  * for a why a row is different is shown in the map's log.
  */
+@InterfaceAudience.Private
 public class VerifyReplication extends Configured implements Tool {
 
   private static final Logger LOG =

http://git-wip-us.apache.org/repos/asf/hbase/blob/70c17072/hbase-metrics-api/pom.xml
----------------------------------------------------------------------
diff --git a/hbase-metrics-api/pom.xml b/hbase-metrics-api/pom.xml
index d7859b9..bd108e9 100644
--- a/hbase-metrics-api/pom.xml
+++ b/hbase-metrics-api/pom.xml
@@ -68,6 +68,10 @@
           <failOnViolation>true</failOnViolation>
         </configuration>
       </plugin>
+      <plugin>
+        <groupId>net.revelc.code</groupId>
+        <artifactId>warbucks-maven-plugin</artifactId>
+      </plugin>
     </plugins>
   </build>
 

http://git-wip-us.apache.org/repos/asf/hbase/blob/70c17072/hbase-metrics/pom.xml
----------------------------------------------------------------------
diff --git a/hbase-metrics/pom.xml b/hbase-metrics/pom.xml
index 5c913fb..c4cee1a 100644
--- a/hbase-metrics/pom.xml
+++ b/hbase-metrics/pom.xml
@@ -68,6 +68,10 @@
           <failOnViolation>true</failOnViolation>
         </configuration>
       </plugin>
+      <plugin>
+        <groupId>net.revelc.code</groupId>
+        <artifactId>warbucks-maven-plugin</artifactId>
+      </plugin>
     </plugins>
   </build>
 

http://git-wip-us.apache.org/repos/asf/hbase/blob/70c17072/hbase-procedure/pom.xml
----------------------------------------------------------------------
diff --git a/hbase-procedure/pom.xml b/hbase-procedure/pom.xml
index 2862cc0..8bd3fbc 100644
--- a/hbase-procedure/pom.xml
+++ b/hbase-procedure/pom.xml
@@ -46,6 +46,10 @@
           <skipAssembly>true</skipAssembly>
         </configuration>
       </plugin>
+      <plugin>
+        <groupId>net.revelc.code</groupId>
+        <artifactId>warbucks-maven-plugin</artifactId>
+      </plugin>
     </plugins>
   </build>
 

http://git-wip-us.apache.org/repos/asf/hbase/blob/70c17072/hbase-protocol-shaded/pom.xml
----------------------------------------------------------------------
diff --git a/hbase-protocol-shaded/pom.xml b/hbase-protocol-shaded/pom.xml
index 46a9cce..67dde6c 100644
--- a/hbase-protocol-shaded/pom.xml
+++ b/hbase-protocol-shaded/pom.xml
@@ -178,6 +178,10 @@
           <failOnViolation>true</failOnViolation>
         </configuration>
       </plugin>
+      <plugin>
+        <groupId>net.revelc.code</groupId>
+        <artifactId>warbucks-maven-plugin</artifactId>
+      </plugin>
     </plugins>
     <pluginManagement>
       <plugins>

http://git-wip-us.apache.org/repos/asf/hbase/blob/70c17072/hbase-protocol/pom.xml
----------------------------------------------------------------------
diff --git a/hbase-protocol/pom.xml b/hbase-protocol/pom.xml
index 09264e3..e57c15b 100644
--- a/hbase-protocol/pom.xml
+++ b/hbase-protocol/pom.xml
@@ -75,6 +75,10 @@
           </execution>
         </executions>
       </plugin>
+      <plugin>
+        <groupId>net.revelc.code</groupId>
+        <artifactId>warbucks-maven-plugin</artifactId>
+      </plugin>
     </plugins>
     <pluginManagement>
       <plugins>

http://git-wip-us.apache.org/repos/asf/hbase/blob/70c17072/hbase-protocol/src/main/java/com/google/protobuf/HBaseZeroCopyByteString.java
----------------------------------------------------------------------
diff --git a/hbase-protocol/src/main/java/com/google/protobuf/HBaseZeroCopyByteString.java b/hbase-protocol/src/main/java/com/google/protobuf/HBaseZeroCopyByteString.java
index 9d75612..f10d30f 100644
--- a/hbase-protocol/src/main/java/com/google/protobuf/HBaseZeroCopyByteString.java
+++ b/hbase-protocol/src/main/java/com/google/protobuf/HBaseZeroCopyByteString.java
@@ -17,6 +17,8 @@
  */
 package com.google.protobuf;  // This is a lie.
 
+import org.apache.yetus.audience.InterfaceAudience;
+
 /**
  * Helper class to extract byte arrays from {@link ByteString} without copy.
  * <p>
@@ -27,6 +29,7 @@ package com.google.protobuf;  // This is a lie.
  *
  * @since 0.96.1
  */
+@InterfaceAudience.Private
 public final class HBaseZeroCopyByteString extends LiteralByteString {
   // Gotten from AsyncHBase code base with permission.
   /** Private constructor so this class cannot be instantiated. */

http://git-wip-us.apache.org/repos/asf/hbase/blob/70c17072/hbase-replication/pom.xml
----------------------------------------------------------------------
diff --git a/hbase-replication/pom.xml b/hbase-replication/pom.xml
index 0621bdd..d1a06f5 100644
--- a/hbase-replication/pom.xml
+++ b/hbase-replication/pom.xml
@@ -45,6 +45,10 @@
         <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-source-plugin</artifactId>
       </plugin>
+      <plugin>
+        <groupId>net.revelc.code</groupId>
+        <artifactId>warbucks-maven-plugin</artifactId>
+      </plugin>
     </plugins>
     <pluginManagement>
       <plugins>

http://git-wip-us.apache.org/repos/asf/hbase/blob/70c17072/hbase-rest/pom.xml
----------------------------------------------------------------------
diff --git a/hbase-rest/pom.xml b/hbase-rest/pom.xml
index b9bc5be..df5b9dd 100644
--- a/hbase-rest/pom.xml
+++ b/hbase-rest/pom.xml
@@ -136,6 +136,10 @@
           </execution>
         </executions>
       </plugin>
+      <plugin>
+        <groupId>net.revelc.code</groupId>
+        <artifactId>warbucks-maven-plugin</artifactId>
+      </plugin>
     </plugins>
     <pluginManagement>
       <plugins>

http://git-wip-us.apache.org/repos/asf/hbase/blob/70c17072/hbase-rest/src/main/java/org/apache/hadoop/hbase/rest/ProtobufStreamingOutput.java
----------------------------------------------------------------------
diff --git a/hbase-rest/src/main/java/org/apache/hadoop/hbase/rest/ProtobufStreamingOutput.java b/hbase-rest/src/main/java/org/apache/hadoop/hbase/rest/ProtobufStreamingOutput.java
index 5ea8a31..1c137e4 100644
--- a/hbase-rest/src/main/java/org/apache/hadoop/hbase/rest/ProtobufStreamingOutput.java
+++ b/hbase-rest/src/main/java/org/apache/hadoop/hbase/rest/ProtobufStreamingOutput.java
@@ -20,10 +20,8 @@ package org.apache.hadoop.hbase.rest;
 import java.io.IOException;
 import java.io.OutputStream;
 import java.util.List;
-
 import javax.ws.rs.WebApplicationException;
 import javax.ws.rs.core.StreamingOutput;
-
 import org.apache.hadoop.hbase.Cell;
 import org.apache.hadoop.hbase.CellUtil;
 import org.apache.hadoop.hbase.client.Result;
@@ -32,9 +30,11 @@ import org.apache.hadoop.hbase.rest.model.CellModel;
 import org.apache.hadoop.hbase.rest.model.CellSetModel;
 import org.apache.hadoop.hbase.rest.model.RowModel;
 import org.apache.hadoop.hbase.util.Bytes;
+import org.apache.yetus.audience.InterfaceAudience;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
+@InterfaceAudience.Private
 public class ProtobufStreamingOutput implements StreamingOutput {
   private static final Logger LOG = LoggerFactory.getLogger(ProtobufStreamingOutput.class);
 

http://git-wip-us.apache.org/repos/asf/hbase/blob/70c17072/hbase-rest/src/main/java/org/apache/hadoop/hbase/rest/filter/AuthFilter.java
----------------------------------------------------------------------
diff --git a/hbase-rest/src/main/java/org/apache/hadoop/hbase/rest/filter/AuthFilter.java b/hbase-rest/src/main/java/org/apache/hadoop/hbase/rest/filter/AuthFilter.java
index 5dfa58c..216a3fc 100644
--- a/hbase-rest/src/main/java/org/apache/hadoop/hbase/rest/filter/AuthFilter.java
+++ b/hbase-rest/src/main/java/org/apache/hadoop/hbase/rest/filter/AuthFilter.java
@@ -24,19 +24,19 @@ import static org.apache.hadoop.hbase.rest.Constants.REST_DNS_NAMESERVER;
 import java.io.IOException;
 import java.util.Map;
 import java.util.Properties;
-
 import javax.servlet.FilterConfig;
 import javax.servlet.ServletException;
-
 import org.apache.hadoop.conf.Configuration;
 import org.apache.hadoop.hbase.HBaseConfiguration;
 import org.apache.hadoop.hbase.util.DNS;
 import org.apache.hadoop.hbase.util.Strings;
 import org.apache.hadoop.security.SecurityUtil;
 import org.apache.hadoop.security.authentication.server.AuthenticationFilter;
+import org.apache.yetus.audience.InterfaceAudience;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
+@InterfaceAudience.Private
 public class AuthFilter extends AuthenticationFilter {
   private static final Logger LOG = LoggerFactory.getLogger(AuthFilter.class);
   private static final String REST_PREFIX = "hbase.rest.authentication.";

http://git-wip-us.apache.org/repos/asf/hbase/blob/70c17072/hbase-rsgroup/pom.xml
----------------------------------------------------------------------
diff --git a/hbase-rsgroup/pom.xml b/hbase-rsgroup/pom.xml
index 1b3188f..d7011b7 100644
--- a/hbase-rsgroup/pom.xml
+++ b/hbase-rsgroup/pom.xml
@@ -63,6 +63,10 @@
           <failOnViolation>true</failOnViolation>
         </configuration>
       </plugin>
+      <plugin>
+        <groupId>net.revelc.code</groupId>
+        <artifactId>warbucks-maven-plugin</artifactId>
+      </plugin>
     </plugins>
     <pluginManagement>
       <plugins>

http://git-wip-us.apache.org/repos/asf/hbase/blob/70c17072/hbase-server/pom.xml
----------------------------------------------------------------------
diff --git a/hbase-server/pom.xml b/hbase-server/pom.xml
index 2009f6e..7a0864c 100644
--- a/hbase-server/pom.xml
+++ b/hbase-server/pom.xml
@@ -235,6 +235,10 @@
           </systemPropertyVariables>
         </configuration>
       </plugin>
+      <plugin>
+        <groupId>net.revelc.code</groupId>
+        <artifactId>warbucks-maven-plugin</artifactId>
+      </plugin>
     </plugins>
     <!-- General Resources -->
     <pluginManagement>

http://git-wip-us.apache.org/repos/asf/hbase/blob/70c17072/hbase-server/src/main/java/org/apache/hadoop/hbase/DaemonThreadFactory.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/DaemonThreadFactory.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/DaemonThreadFactory.java
index 11da20f..fff68c7 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/DaemonThreadFactory.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/DaemonThreadFactory.java
@@ -19,10 +19,12 @@ package org.apache.hadoop.hbase;
 
 import java.util.concurrent.ThreadFactory;
 import java.util.concurrent.atomic.AtomicInteger;
+import org.apache.yetus.audience.InterfaceAudience;
 
 /**
  * Thread factory that creates daemon threads
  */
+@InterfaceAudience.Private
 public class DaemonThreadFactory implements ThreadFactory {
   private static final AtomicInteger poolNumber = new AtomicInteger(1);
   private final ThreadGroup group;

http://git-wip-us.apache.org/repos/asf/hbase/blob/70c17072/hbase-server/src/main/java/org/apache/hadoop/hbase/HealthCheckChore.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/HealthCheckChore.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/HealthCheckChore.java
index 8ab139f..c78f3b3 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/HealthCheckChore.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/HealthCheckChore.java
@@ -20,12 +20,14 @@ package org.apache.hadoop.hbase;
 import org.apache.hadoop.conf.Configuration;
 import org.apache.hadoop.hbase.HealthChecker.HealthCheckerExitStatus;
 import org.apache.hadoop.util.StringUtils;
+import org.apache.yetus.audience.InterfaceAudience;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 /**
  * The Class HealthCheckChore for running health checker regularly.
  */
+@InterfaceAudience.Private
 public class HealthCheckChore extends ScheduledChore {
   private static final Logger LOG = LoggerFactory.getLogger(HealthCheckChore.class);
   private HealthChecker healthChecker;


[4/4] hbase git commit: HBASE-20212 Make all Public classes have InterfaceAudience category

Posted by ch...@apache.org.
HBASE-20212 Make all Public classes have InterfaceAudience category

Signed-off-by: tedyu <yu...@gmail.com>
Signed-off-by: Michael Stack <st...@apache.org>


Project: http://git-wip-us.apache.org/repos/asf/hbase/repo
Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/70c17072
Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/70c17072
Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/70c17072

Branch: refs/heads/branch-2.0
Commit: 70c17072708f150c22a715c3f34662db278d7185
Parents: 9802c17
Author: Chia-Ping Tsai <ch...@gmail.com>
Authored: Thu Mar 22 09:23:16 2018 +0800
Committer: Chia-Ping Tsai <ch...@gmail.com>
Committed: Thu Mar 22 18:17:16 2018 +0800

----------------------------------------------------------------------
 hbase-annotations/pom.xml                       |   4 +
 hbase-client/pom.xml                            |   4 +
 .../hbase/TestInterfaceAudienceAnnotations.java | 540 -------------------
 hbase-common/pom.xml                            |   4 +
 .../apache/hadoop/hbase/trace/TraceUtil.java    |   2 +
 .../org/apache/hadoop/hbase/util/JSONBean.java  |  11 +-
 .../hadoop/hbase/util/JSONMetricUtil.java       |  11 +-
 hbase-endpoint/pom.xml                          |   4 +
 hbase-examples/pom.xml                          |   4 +
 .../client/example/AsyncClientExample.java      |   3 +-
 .../client/example/BufferedMutatorExample.java  |   3 +-
 .../client/example/ExportEndpointExample.java   |  15 +-
 .../hbase/client/example/HttpProxyExample.java  |   3 +-
 .../example/MultiThreadedClientExample.java     |   3 +-
 .../client/example/RefreshHFilesClient.java     |   7 +-
 .../coprocessor/example/BulkDeleteEndpoint.java |  10 +-
 .../example/DelegatingInternalScanner.java      |   3 +-
 .../ExampleMasterObserverWithMetrics.java       |   3 +-
 .../ExampleRegionObserverWithMetrics.java       |   3 +-
 .../example/RefreshHFilesEndpoint.java          |   8 +-
 .../coprocessor/example/RowCountEndpoint.java   |  10 +-
 .../example/ScanModifyingObserver.java          |   3 +-
 .../example/ValueRewritingObserver.java         |   3 +-
 .../example/WriteHeavyIncrementObserver.java    |   3 +-
 .../example/ZooKeeperScanPolicyObserver.java    |   3 +-
 .../hadoop/hbase/mapreduce/IndexBuilder.java    |   3 +-
 .../hadoop/hbase/mapreduce/SampleUploader.java  |   3 +-
 .../apache/hadoop/hbase/thrift/DemoClient.java  |   4 +-
 .../hadoop/hbase/thrift/HttpDoAsClient.java     |   5 +-
 .../apache/hadoop/hbase/thrift2/DemoClient.java |   5 +-
 .../org/apache/hadoop/hbase/types/PBCell.java   |   5 +-
 hbase-external-blockcache/pom.xml               |   4 +
 hbase-hadoop-compat/pom.xml                     |   4 +
 .../hadoop/hbase/CompatibilityFactory.java      |   2 +
 .../hbase/CompatibilitySingletonFactory.java    |   2 +
 .../apache/hadoop/hbase/io/MetricsIOSource.java |   2 +
 .../hadoop/hbase/io/MetricsIOWrapper.java       |   3 +
 .../hbase/ipc/MetricsHBaseServerSource.java     |   2 +
 .../ipc/MetricsHBaseServerSourceFactory.java    |   3 +
 .../hbase/ipc/MetricsHBaseServerWrapper.java    |   3 +
 .../master/MetricsAssignmentManagerSource.java  |   2 +
 .../master/MetricsMasterFileSystemSource.java   |   2 +
 .../hbase/master/MetricsMasterProcSource.java   |   2 +
 .../master/MetricsMasterProcSourceFactory.java  |   3 +
 .../hbase/master/MetricsMasterQuotaSource.java  |   2 +
 .../master/MetricsMasterQuotaSourceFactory.java |   3 +
 .../hbase/master/MetricsMasterSource.java       |   2 +
 .../master/MetricsMasterSourceFactory.java      |   3 +
 .../hbase/master/MetricsMasterWrapper.java      |   2 +
 .../hbase/master/MetricsSnapshotSource.java     |   2 +
 .../master/balancer/MetricsBalancerSource.java  |   2 +
 .../MetricsStochasticBalancerSource.java        |   7 +-
 .../apache/hadoop/hbase/metrics/BaseSource.java |   3 +
 .../hbase/metrics/ExceptionTrackingSource.java  |   3 +
 .../hbase/metrics/JvmPauseMonitorSource.java    |   3 +
 .../hadoop/hbase/metrics/MBeanSource.java       |   2 +
 .../hadoop/hbase/metrics/OperationMetrics.java  |   3 +
 .../MetricsHeapMemoryManagerSource.java         |   2 +
 .../MetricsRegionAggregateSource.java           |   2 +
 .../MetricsRegionServerQuotaSource.java         |   2 +
 .../regionserver/MetricsRegionServerSource.java |   2 +
 .../MetricsRegionServerSourceFactory.java       |   2 +
 .../MetricsRegionServerWrapper.java             |   3 +
 .../hbase/regionserver/MetricsRegionSource.java |   2 +
 .../regionserver/MetricsRegionWrapper.java      |   3 +
 .../MetricsTableAggregateSource.java            |   2 +
 .../regionserver/MetricsTableLatencies.java     |   3 +
 .../hbase/regionserver/MetricsTableSource.java  |   3 +
 .../MetricsTableWrapperAggregate.java           |   2 +
 .../regionserver/wal/MetricsWALSource.java      |   2 +
 .../MetricsReplicationSinkSource.java           |   3 +
 .../regionserver/MetricsReplicationSource.java  |   2 +
 .../MetricsReplicationSourceFactory.java        |   3 +
 .../MetricsReplicationSourceSource.java         |   2 +
 .../hadoop/hbase/rest/MetricsRESTSource.java    |  10 +-
 .../hbase/thrift/MetricsThriftServerSource.java |   2 +
 .../MetricsThriftServerSourceFactory.java       |   3 +
 .../hbase/zookeeper/MetricsZooKeeperSource.java |   2 +
 .../apache/hadoop/metrics2/MetricHistogram.java |   3 +
 .../apache/hadoop/metrics2/MetricsExecutor.java |   2 +
 hbase-hadoop2-compat/pom.xml                    |   4 +
 .../hadoop/hbase/io/MetricsIOSourceImpl.java    |   2 +
 .../metrics/ExceptionTrackingSourceImpl.java    |   2 +
 .../impl/GlobalMetricRegistriesAdapter.java     |   9 +-
 .../impl/HBaseMetrics2HadoopMetricsAdapter.java |   3 +-
 .../MetricsReplicationGlobalSourceSource.java   |   2 +
 .../MetricsReplicationSinkSourceImpl.java       |   3 +-
 .../MetricsReplicationSourceFactoryImpl.java    |   3 +
 .../MetricsReplicationSourceSourceImpl.java     |   2 +
 .../lib/DefaultMetricsSystemHelper.java         |   2 +
 .../hadoop/metrics2/lib/MutableFastCounter.java |   2 +
 hbase-http/pom.xml                              |   4 +
 .../hadoop/hbase/http/FilterContainer.java      |   2 +
 .../hadoop/hbase/http/FilterInitializer.java    |   2 +
 .../apache/hadoop/hbase/http/HtmlQuoting.java   |   5 +-
 .../hadoop/hbase/http/HttpRequestLog.java       |   7 +-
 .../hbase/http/HttpRequestLogAppender.java      |   2 +
 .../hadoop/hbase/http/HttpServerUtil.java       |  10 +-
 .../hadoop/hbase/http/jmx/JMXJsonServlet.java   |   4 +-
 .../apache/hadoop/hbase/http/log/LogLevel.java  |  14 +-
 hbase-it/pom.xml                                |   4 +
 hbase-mapreduce/pom.xml                         |   4 +
 .../hbase/mapreduce/HFileInputFormat.java       |   3 +-
 .../hadoop/hbase/mapreduce/HashTable.java       |   4 +-
 .../hadoop/hbase/mapreduce/JarFinder.java       |  10 +-
 .../mapreduce/MultithreadedTableMapper.java     |   3 +-
 .../hadoop/hbase/mapreduce/SyncTable.java       |   6 +-
 .../replication/VerifyReplication.java          |   6 +-
 hbase-metrics-api/pom.xml                       |   4 +
 hbase-metrics/pom.xml                           |   4 +
 hbase-procedure/pom.xml                         |   4 +
 hbase-protocol-shaded/pom.xml                   |   4 +
 hbase-protocol/pom.xml                          |   4 +
 .../protobuf/HBaseZeroCopyByteString.java       |   3 +
 hbase-replication/pom.xml                       |   4 +
 hbase-rest/pom.xml                              |   4 +
 .../hbase/rest/ProtobufStreamingOutput.java     |   4 +-
 .../hadoop/hbase/rest/filter/AuthFilter.java    |   4 +-
 hbase-rsgroup/pom.xml                           |   4 +
 hbase-server/pom.xml                            |   4 +
 .../hadoop/hbase/DaemonThreadFactory.java       |   2 +
 .../apache/hadoop/hbase/HealthCheckChore.java   |   2 +
 .../org/apache/hadoop/hbase/JMXListener.java    |  20 +-
 .../hbase/SslRMIClientSocketFactorySecure.java  |   3 +-
 .../hbase/SslRMIServerSocketFactorySecure.java  |   3 +-
 .../org/apache/hadoop/hbase/ZNodeClearer.java   |   5 +-
 .../example/HFileArchiveTableMonitor.java       |   3 +-
 .../org/apache/hadoop/hbase/fs/HFileSystem.java |  12 +-
 .../org/apache/hadoop/hbase/io/MetricsIO.java   |   3 +
 .../hadoop/hbase/io/MetricsIOWrapperImpl.java   |   2 +
 .../hadoop/hbase/io/hfile/AgeSnapshot.java      |   2 +
 .../hadoop/hbase/io/hfile/BlockPriority.java    |   3 +
 .../hbase/io/hfile/BlockWithScanInfo.java       |   2 +
 .../hadoop/hbase/io/hfile/PrefetchExecutor.java |   8 +-
 .../hbase/ipc/EmptyServiceNameException.java    |   3 +
 .../hadoop/hbase/ipc/FifoRpcScheduler.java      |   3 +-
 .../ipc/MetricsHBaseServerWrapperImpl.java      |   3 +
 .../apache/hadoop/hbase/ipc/QosPriority.java    |   3 +-
 .../hbase/ipc/UnknownServiceException.java      |   3 +
 ...MasterAnnotationReadingPriorityFunction.java |  12 +-
 .../hbase/master/MetricsAssignmentManager.java  |   6 +-
 .../hbase/master/MetricsMasterFileSystem.java   |   2 +
 .../hadoop/hbase/master/MetricsSnapshot.java    |   2 +
 .../hbase/master/balancer/BaseLoadBalancer.java |   2 +
 .../hbase/master/balancer/ClusterLoadState.java |   3 +-
 .../balancer/FavoredStochasticBalancer.java     |   2 +
 .../hbase/master/balancer/MetricsBalancer.java  |   6 +-
 .../balancer/MetricsStochasticBalancer.java     |   2 +
 .../master/cleaner/BaseFileCleanerDelegate.java |   5 +-
 .../hbase/master/cleaner/CleanerChore.java      |  23 +-
 .../master/procedure/RSProcedureDispatcher.java |   5 +-
 .../master/procedure/RecoverMetaProcedure.java  |   4 +-
 .../master/procedure/ServerCrashProcedure.java  |   3 +-
 .../procedure/MasterProcedureManagerHost.java   |   5 +-
 .../RegionServerProcedureManagerHost.java       |   5 +-
 .../hadoop/hbase/procedure/Subprocedure.java    |   3 +-
 .../quotas/TableSpaceQuotaSnapshotNotifier.java |   3 +-
 ...ssingSnapshotViolationPolicyEnforcement.java |   6 +-
 .../regionserver/DumpRegionServerMetrics.java   |   9 +-
 .../hbase/regionserver/SteppingSplitPolicy.java |   3 +
 .../DateTieredCompactionRequest.java            |   3 +-
 .../hbase/replication/BulkLoadCellFilter.java   |   5 +-
 .../regionserver/DumpReplicationQueues.java     |   5 +-
 .../regionserver/ReplicationSinkManager.java    |   4 +-
 .../regionserver/ReplicationSyncUp.java         |   4 +-
 .../VisibilityNewVersionBehaivorTracker.java    |   3 +-
 .../visibility/VisibilityReplication.java       |   7 +-
 .../hadoop/hbase/snapshot/CreateSnapshot.java   |   5 +-
 .../hadoop/hbase/tool/WriteSinkCoprocessor.java |  10 +-
 .../hadoop/hbase/util/GetJavaProperty.java      |   7 +-
 .../hadoop/hbase/util/HFileArchiveUtil.java     |   4 +-
 .../hbase/util/RollingStatCalculator.java       |   3 +
 .../hbase/util/ServerRegionReplicaUtil.java     |   3 +-
 .../hadoop/hbase/util/ShutdownHookManager.java  |  20 +-
 .../apache/hadoop/hbase/util/SortedList.java    |   4 +-
 .../hadoop/hbase/util/YammerHistogramUtils.java |   3 +-
 .../util/hbck/TableIntegrityErrorHandler.java   |   9 +-
 .../hbck/TableIntegrityErrorHandlerImpl.java    |   5 +-
 .../hbase/wal/NettyAsyncFSWALConfigHelper.java  |   6 +-
 hbase-shell/pom.xml                             |   4 +
 hbase-thrift/pom.xml                            |   4 +
 .../thrift/HttpAuthenticationException.java     |   3 +
 .../hadoop/hbase/thrift/IncrementCoalescer.java |   3 +-
 .../hbase/thrift/IncrementCoalescerMBean.java   |   3 +
 .../hbase/thrift/THBaseThreadPoolExecutor.java  |   2 +
 hbase-zookeeper/pom.xml                         |   4 +
 .../zookeeper/RegionNormalizerTracker.java      |   3 +-
 pom.xml                                         |  29 +
 188 files changed, 616 insertions(+), 741 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hbase/blob/70c17072/hbase-annotations/pom.xml
----------------------------------------------------------------------
diff --git a/hbase-annotations/pom.xml b/hbase-annotations/pom.xml
index 6959da2..1ac0647 100644
--- a/hbase-annotations/pom.xml
+++ b/hbase-annotations/pom.xml
@@ -47,6 +47,10 @@
           <failOnViolation>true</failOnViolation>
         </configuration>
       </plugin>
+      <plugin>
+        <groupId>net.revelc.code</groupId>
+        <artifactId>warbucks-maven-plugin</artifactId>
+      </plugin>
     </plugins>
   </build>
 </project>

http://git-wip-us.apache.org/repos/asf/hbase/blob/70c17072/hbase-client/pom.xml
----------------------------------------------------------------------
diff --git a/hbase-client/pom.xml b/hbase-client/pom.xml
index 3d1b84d..d43e455 100644
--- a/hbase-client/pom.xml
+++ b/hbase-client/pom.xml
@@ -47,6 +47,10 @@
         <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-source-plugin</artifactId>
       </plugin>
+      <plugin>
+        <groupId>net.revelc.code</groupId>
+        <artifactId>warbucks-maven-plugin</artifactId>
+      </plugin>
     </plugins>
     <pluginManagement>
       <plugins>

http://git-wip-us.apache.org/repos/asf/hbase/blob/70c17072/hbase-client/src/test/java/org/apache/hadoop/hbase/TestInterfaceAudienceAnnotations.java
----------------------------------------------------------------------
diff --git a/hbase-client/src/test/java/org/apache/hadoop/hbase/TestInterfaceAudienceAnnotations.java b/hbase-client/src/test/java/org/apache/hadoop/hbase/TestInterfaceAudienceAnnotations.java
deleted file mode 100644
index 493e23a..0000000
--- a/hbase-client/src/test/java/org/apache/hadoop/hbase/TestInterfaceAudienceAnnotations.java
+++ /dev/null
@@ -1,540 +0,0 @@
-/**
- * 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.
- */
-package org.apache.hadoop.hbase;
-
-import java.io.IOException;
-import java.lang.annotation.Annotation;
-import java.lang.reflect.Constructor;
-import java.lang.reflect.Method;
-import java.lang.reflect.Modifier;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Objects;
-import java.util.Set;
-import org.apache.hadoop.hbase.ClassFinder.And;
-import org.apache.hadoop.hbase.ClassFinder.FileNameFilter;
-import org.apache.hadoop.hbase.ClassFinder.Not;
-import org.apache.hadoop.hbase.ClassTestFinder.TestClassFilter;
-import org.apache.hadoop.hbase.ClassTestFinder.TestFileNameFilter;
-import org.apache.hadoop.hbase.testclassification.SmallTests;
-import org.apache.hadoop.hbase.util.Pair;
-import org.apache.hadoop.hbase.util.Triple;
-import org.apache.yetus.audience.InterfaceAudience;
-import org.apache.yetus.audience.InterfaceStability;
-import org.junit.Assert;
-import org.junit.ClassRule;
-import org.junit.Ignore;
-import org.junit.Test;
-import org.junit.experimental.categories.Category;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-/**
- * Test cases for ensuring our client visible classes have annotations for
- * {@link InterfaceAudience}.
- * <p>
- * All classes in hbase-client and hbase-common module MUST have InterfaceAudience annotations.
- * Think twice about marking an interface InterfaceAudience.Public. Make sure that it is an
- * interface, not a class (for most cases), and clients will actually depend on it. Once something
- * is marked with Public, we cannot change the signatures within the major release. NOT everything
- * in the hbase-client module or every java public class has to be marked with
- * InterfaceAudience.Public. ONLY the ones that an hbase application will directly use (Table, Get,
- * etc, versus ProtobufUtil). And also, InterfaceAudience.Public annotated classes MUST NOT have
- * InterfaceStability annotations. The stability of these classes only depends on versioning.
- * <p>
- * All classes which are marked as InterfaceAudience.LimitedPrivate MUST also have
- * InterfaceStability annotations. The only exception is HBaseInterfaceAudience.CONFIG. It is used
- * to indicate that the class name will be exposed in user facing configuration files.
- * <p>
- * Also note that HBase has it's own annotations in hbase-annotations module with the same names as
- * in Hadoop. You should use the HBase's classes.
- * <p>
- * See
- * https://hadoop.apache.org/docs/current/hadoop-project-dist/hadoop-common/InterfaceClassification.html
- * and https://issues.apache.org/jira/browse/HBASE-10462.
- */
-@Category(SmallTests.class)
-public class TestInterfaceAudienceAnnotations {
-
-  @ClassRule
-  public static final HBaseClassTestRule CLASS_RULE =
-      HBaseClassTestRule.forClass(TestInterfaceAudienceAnnotations.class);
-
-  private static final String HBASE_PROTOBUF = "org.apache.hadoop.hbase.protobuf.generated";
-  private static final Logger LOG = LoggerFactory.getLogger(TestInterfaceAudienceAnnotations.class);
-
-  /** Selects classes with generated in their package name */
-  static class GeneratedClassFilter implements ClassFinder.ClassFilter {
-    @Override
-    public boolean isCandidateClass(Class<?> c) {
-      return c.getPackage().getName().contains("generated");
-    }
-  }
-
-  static class ShadedProtobufClassFilter implements ClassFinder.ClassFilter {
-    @Override
-    public boolean isCandidateClass(Class<?> c) {
-      return c.getPackage().getName().
-          contains("org.apache.hbase.thirdparty.com.google.protobuf");
-    }
-  }
-
-  /** Selects classes with one of the {@link InterfaceAudience} annotation in their class
-   * declaration.
-   */
-  class InterfaceAudienceAnnotatedClassFilter implements ClassFinder.ClassFilter {
-    @Override
-    public boolean isCandidateClass(Class<?> c) {
-      if (getAnnotation(c) != null) {
-        // class itself has a declared annotation.
-        return true;
-      }
-
-      // If this is an internal class, look for the encapsulating class to see whether it has
-      // annotation. All inner classes of private classes are considered annotated.
-      return isAnnotatedPrivate(c.getEnclosingClass());
-    }
-
-    private boolean isAnnotatedPrivate(Class<?> c) {
-      if (c == null) {
-        return false;
-      }
-
-      Annotation ann = getAnnotation(c);
-      if (ann != null && !InterfaceAudience.Public.class.equals(ann.annotationType())) {
-        return true;
-      }
-
-      return isAnnotatedPrivate(c.getEnclosingClass());
-    }
-
-    protected Annotation getAnnotation(Class<?> c) {
-      // we should get only declared annotations, not inherited ones
-      Annotation[] anns = c.getDeclaredAnnotations();
-
-      for (Annotation ann : anns) {
-        // Hadoop clearly got it wrong for not making the annotation values (private, public, ..)
-        // an enum instead we have three independent annotations!
-        Class<?> type = ann.annotationType();
-        if (isInterfaceAudienceClass(type)) {
-          return ann;
-        }
-      }
-      return null;
-    }
-  }
-
-  /** Selects classes with one of the {@link InterfaceStability} annotation in their class
-   * declaration.
-   */
-  class InterfaceStabilityAnnotatedClassFilter implements ClassFinder.ClassFilter {
-    @Override
-    public boolean isCandidateClass(Class<?> c) {
-      if (getAnnotation(c) != null) {
-        // class itself has a declared annotation.
-        return true;
-      }
-      return false;
-    }
-
-    protected Class<?> getAnnotation(Class<?> c) {
-      // we should get only declared annotations, not inherited ones
-      Annotation[] anns = c.getDeclaredAnnotations();
-
-      for (Annotation ann : anns) {
-        // Hadoop clearly got it wrong for not making the annotation values (private, public, ..)
-        // an enum instead we have three independent annotations!
-        Class<?> type = ann.annotationType();
-        if (isInterfaceStabilityClass(type)) {
-          return type;
-        }
-      }
-      return null;
-    }
-  }
-
-  /**
-   * Selects classes with one of the {@link InterfaceAudience.Public} annotation in their class
-   * declaration.
-   */
-  class InterfaceAudiencePublicAnnotatedClassFilter extends InterfaceAudienceAnnotatedClassFilter {
-    @Override
-    public boolean isCandidateClass(Class<?> c) {
-      Annotation ann = getAnnotation(c);
-      return ann != null && InterfaceAudience.Public.class.equals(ann.annotationType());
-    }
-  }
-
-  /**
-   * Selects classes with one of the {@link InterfaceAudience.LimitedPrivate} annotation in their
-   * class declaration.
-   */
-  class InterfaceAudienceLimitedPrivateAnnotatedNotConfigClassFilter
-      extends InterfaceAudienceAnnotatedClassFilter {
-    @Override
-    public boolean isCandidateClass(Class<?> c) {
-      Annotation ann = getAnnotation(c);
-      if (ann == null || !InterfaceAudience.LimitedPrivate.class.equals(ann.annotationType())) {
-        return false;
-      }
-      InterfaceAudience.LimitedPrivate iaAnn = (InterfaceAudience.LimitedPrivate) ann;
-      return iaAnn.value().length == 0 || !HBaseInterfaceAudience.CONFIG.equals(iaAnn.value()[0]);
-    }
-  }
-
-  /**
-   * Selects InterfaceAudience or InterfaceStability classes. Don't go meta!!!
-   */
-  class IsInterfaceStabilityClassFilter implements ClassFinder.ClassFilter {
-    @Override
-    public boolean isCandidateClass(Class<?> c) {
-      return
-          isInterfaceAudienceClass(c) ||
-          isInterfaceStabilityClass(c);
-    }
-  }
-
-  private boolean isInterfaceAudienceClass(Class<?> c) {
-    return
-        c.equals(InterfaceAudience.Public.class) ||
-        c.equals(InterfaceAudience.Private.class) ||
-        c.equals(InterfaceAudience.LimitedPrivate.class);
-  }
-
-  private boolean isInterfaceStabilityClass(Class<?> c) {
-    return
-        c.equals(InterfaceStability.Stable.class) ||
-        c.equals(InterfaceStability.Unstable.class) ||
-        c.equals(InterfaceStability.Evolving.class);
-  }
-
-  private boolean isInterfacePrivateMethod(Method m) {
-    if(m.getDeclaredAnnotations().length > 0) {
-      for(Annotation ann : m.getDeclaredAnnotations()) {
-        if(ann.annotationType().equals(InterfaceAudience.Private.class)) {
-          return true;
-        }
-      }
-    }
-    return false;
-  }
-
-  private boolean isInterfacePrivateContructor(Constructor<?> c) {
-    if(c.getDeclaredAnnotations().length > 0) {
-      for(Annotation ann : c.getDeclaredAnnotations()) {
-        if(ann.annotationType().equals(InterfaceAudience.Private.class)) {
-          return true;
-        }
-      }
-    }
-    return false;
-  }
-
-  /** Selects classes that are declared public */
-  static class PublicClassFilter implements ClassFinder.ClassFilter {
-    @Override
-    public boolean isCandidateClass(Class<?> c) {
-      int mod = c.getModifiers();
-      return Modifier.isPublic(mod);
-    }
-  }
-
-  /** Selects paths (jars and class dirs) only from the main code, not test classes */
-  static class MainCodeResourcePathFilter implements ClassFinder.ResourcePathFilter {
-    @Override
-    public boolean isCandidatePath(String resourcePath, boolean isJar) {
-      return !resourcePath.contains("test-classes") &&
-          !resourcePath.contains("tests.jar");
-    }
-  }
-
-  /**
-   * Selects classes that appear to be source instrumentation from Clover.
-   * Clover generates instrumented code in order to calculate coverage. Part of the
-   * generated source is a static inner class on each source class.
-   *
-   * - has an enclosing class
-   * - enclosing class is not an interface
-   * - name starts with "__CLR"
-   */
-  static class CloverInstrumentationFilter implements ClassFinder.ClassFilter {
-    @Override
-    public boolean isCandidateClass(Class<?> clazz) {
-      boolean clover = false;
-      final Class<?> enclosing = clazz.getEnclosingClass();
-      if (enclosing != null) {
-        if (!(enclosing.isInterface())) {
-          clover = clazz.getSimpleName().startsWith("__CLR");
-        }
-      }
-      return clover;
-    }
-  }
-
-  /**
-   * Checks whether all the classes in client and common modules contain
-   * {@link InterfaceAudience} annotations.
-   */
-  @Ignore @Test
-  public void testInterfaceAudienceAnnotation()
-      throws ClassNotFoundException, IOException, LinkageError {
-
-    // find classes that are:
-    // In the main jar
-    // AND are not in a hadoop-compat module
-    // AND are public
-    // NOT test classes
-    // AND NOT generated classes
-    // AND are NOT annotated with InterfaceAudience
-    // AND are NOT from Clover rewriting sources
-    ClassFinder classFinder = new ClassFinder(
-      new And(new MainCodeResourcePathFilter(),
-              new TestFileNameFilter()),
-      new Not((FileNameFilter)new TestFileNameFilter()),
-      new And(new PublicClassFilter(),
-              new Not(new TestClassFilter()),
-              new Not(new GeneratedClassFilter()),
-              new Not(new ShadedProtobufClassFilter()),
-              new Not(new IsInterfaceStabilityClassFilter()),
-              new Not(new InterfaceAudienceAnnotatedClassFilter()),
-              new Not(new CloverInstrumentationFilter()))
-    );
-
-    Set<Class<?>> classes = classFinder.findClasses(false);
-    if (!classes.isEmpty()) {
-      LOG.info("These are the classes that DO NOT have @InterfaceAudience annotation:");
-      for (Class<?> clazz : classes) {
-        LOG.info(Objects.toString(clazz));
-      }
-    }
-
-    Assert.assertEquals("All classes should have @InterfaceAudience annotation",
-      0, classes.size());
-  }
-
-  /**
-   * Checks whether all the classes in client and common modules that are marked
-   * InterfaceAudience.Public do not have {@link InterfaceStability} annotations.
-   */
-  @Ignore @Test
-  public void testNoInterfaceStabilityAnnotationForPublicAPI()
-      throws ClassNotFoundException, IOException, LinkageError {
-
-    // find classes that are:
-    // In the main jar
-    // AND are not in a hadoop-compat module
-    // AND are public
-    // NOT test classes
-    // AND NOT generated classes
-    // AND are annotated with InterfaceAudience.Public
-    // AND annotated with InterfaceStability
-    ClassFinder classFinder = new ClassFinder(
-      new And(new MainCodeResourcePathFilter(),
-              new TestFileNameFilter()),
-      new Not((FileNameFilter)new TestFileNameFilter()),
-      new And(new PublicClassFilter(),
-              new Not(new TestClassFilter()),
-              new Not(new GeneratedClassFilter()),
-              new Not(new ShadedProtobufClassFilter()),
-              new InterfaceAudiencePublicAnnotatedClassFilter(),
-              new Not(new IsInterfaceStabilityClassFilter()),
-              new InterfaceStabilityAnnotatedClassFilter())
-    );
-
-    Set<Class<?>> classes = classFinder.findClasses(false);
-
-    if (!classes.isEmpty()) {
-      LOG.info("These are the @InterfaceAudience.Public classes that have @InterfaceStability " +
-          "annotation:");
-      for (Class<?> clazz : classes) {
-        LOG.info(Objects.toString(clazz));
-      }
-    }
-
-    Assert.assertEquals("All classes that are marked with @InterfaceAudience.Public should not "
-        + "have @InterfaceStability annotation",
-      0, classes.size());
-  }
-
-  /**
-   * Checks whether all the classes in client and common modules that are marked
-   * InterfaceAudience.Public do not have {@link InterfaceStability} annotations.
-   */
-  @Ignore
-  @Test
-  public void testInterfaceStabilityAnnotationForLimitedAPI()
-      throws ClassNotFoundException, IOException, LinkageError {
-
-    // find classes that are:
-    // In the main jar
-    // AND are not in a hadoop-compat module
-    // AND are public
-    // NOT test classes
-    // AND NOT generated classes
-    // AND are annotated with InterfaceAudience.LimitedPrivate
-    // AND NOT annotated with InterfaceStability
-    ClassFinder classFinder = new ClassFinder(
-      new And(new MainCodeResourcePathFilter(),
-              new TestFileNameFilter()),
-      new Not((FileNameFilter)new TestFileNameFilter()),
-      new And(new PublicClassFilter(),
-              new Not(new TestClassFilter()),
-              new Not(new GeneratedClassFilter()),
-              new Not(new ShadedProtobufClassFilter()),
-              new InterfaceAudienceLimitedPrivateAnnotatedNotConfigClassFilter(),
-              new Not(new IsInterfaceStabilityClassFilter()),
-              new Not(new InterfaceStabilityAnnotatedClassFilter()))
-    );
-
-    Set<Class<?>> classes = classFinder.findClasses(false);
-
-    if (!classes.isEmpty()) {
-      LOG.info("These are the @InterfaceAudience.LimitedPrivate classes that DO NOT " +
-          "have @InterfaceStability annotation:");
-      for (Class<?> clazz : classes) {
-        LOG.info(Objects.toString(clazz));
-      }
-    }
-    Assert.assertEquals("All classes that are marked with @InterfaceAudience.LimitedPrivate " +
-        "should have @InterfaceStability annotation",
-      0, classes.size());
-  }
-
-  @Ignore @Test
-  public void testProtosInReturnTypes() throws ClassNotFoundException, IOException, LinkageError {
-    Set<Class<?>> classes = findPublicClasses();
-    List<Pair<Class<?>, Method>> protosReturnType = new ArrayList<>();
-    for (Class<?> clazz : classes) {
-      findProtoInReturnType(clazz, protosReturnType);
-    }
-    if (protosReturnType.size() != 0) {
-      LOG.info("These are the methods that have Protos as the return type");
-      for (Pair<Class<?>, Method> pair : protosReturnType) {
-        LOG.info(pair.getFirst().getName() + " " + pair.getSecond().getName() + " "
-            + pair.getSecond().getReturnType().getName());
-      }
-    }
-
-    Assert.assertEquals("Public exposed methods should not have protos in return type", 0,
-      protosReturnType.size());
-  }
-
-  private Set<Class<?>> findPublicClasses()
-      throws ClassNotFoundException, IOException, LinkageError {
-    ClassFinder classFinder =
-        new ClassFinder(new And(new MainCodeResourcePathFilter(), new TestFileNameFilter()),
-            new Not((FileNameFilter) new TestFileNameFilter()),
-            new And(new PublicClassFilter(), new Not(new TestClassFilter()),
-                new Not(new GeneratedClassFilter()),
-                new Not(new ShadedProtobufClassFilter()),
-                new InterfaceAudiencePublicAnnotatedClassFilter()));
-    Set<Class<?>> classes = classFinder.findClasses(false);
-    return classes;
-  }
-
-  @Ignore @Test
-  public void testProtosInParamTypes() throws ClassNotFoundException, IOException, LinkageError {
-    Set<Class<?>> classes = findPublicClasses();
-    List<Triple<Class<?>, Method, Class<?>>> protosParamType = new ArrayList<>();
-    for (Class<?> clazz : classes) {
-      findProtoInParamType(clazz, protosParamType);
-    }
-
-    if (protosParamType.size() != 0) {
-      LOG.info("These are the methods that have Protos as the param type");
-      for (Triple<Class<?>, Method, Class<?>> pair : protosParamType) {
-        LOG.info(pair.getFirst().getName() + " " + pair.getSecond().getName() + " "
-            + pair.getThird().getName());
-      }
-    }
-
-    Assert.assertEquals("Public exposed methods should not have protos in param type", 0,
-      protosParamType.size());
-  }
-
-  @Ignore @Test
-  public void testProtosInConstructors() throws ClassNotFoundException, IOException, LinkageError {
-    Set<Class<?>> classes = findPublicClasses();
-    List<Class<?>> classList = new ArrayList<>();
-    for (Class<?> clazz : classes) {
-      Constructor<?>[] constructors = clazz.getConstructors();
-      for (Constructor<?> cons : constructors) {
-        if (!isInterfacePrivateContructor(cons)) {
-          Class<?>[] parameterTypes = cons.getParameterTypes();
-          for (Class<?> param : parameterTypes) {
-            if (param.getName().contains(HBASE_PROTOBUF)) {
-              classList.add(clazz);
-              break;
-            }
-          }
-        }
-      }
-    }
-
-    if (classList.size() != 0) {
-      LOG.info("These are the classes that have Protos in the constructor");
-      for (Class<?> clazz : classList) {
-        LOG.info(clazz.getName());
-      }
-    }
-
-    Assert.assertEquals("Public exposed classes should not have protos in constructors", 0,
-      classList.size());
-  }
-
-  private void findProtoInReturnType(Class<?> clazz,
-      List<Pair<Class<?>, Method>> protosReturnType) {
-    Pair<Class<?>, Method> returnTypePair = new Pair<>();
-    Method[] methods = clazz.getMethods();
-    returnTypePair.setFirst(clazz);
-    for (Method method : methods) {
-      if (clazz.isInterface() || method.getModifiers() == Modifier.PUBLIC) {
-        if (!isInterfacePrivateMethod(method)) {
-          Class<?> returnType = method.getReturnType();
-          if (returnType.getName().contains(HBASE_PROTOBUF)) {
-            returnTypePair.setSecond(method);
-            protosReturnType.add(returnTypePair);
-            continue;
-          }
-        }
-      }
-    }
-  }
-
-  private void findProtoInParamType(Class<?> clazz,
-      List<Triple<Class<?>, Method, Class<?>>> protosParamType) {
-    Triple<Class<?>, Method, Class<?>> paramType = new Triple<>();
-    Method[] methods = clazz.getMethods();
-    paramType.setFirst(clazz);
-    for (Method method : methods) {
-      if (clazz.isInterface() || method.getModifiers() == Modifier.PUBLIC) {
-        if (!isInterfacePrivateMethod(method)) {
-          Class<?>[] parameters = method.getParameterTypes();
-          for (Class<?> param : parameters) {
-            if (param.getName().contains(HBASE_PROTOBUF)) {
-              paramType.setSecond(method);
-              paramType.setThird(param);
-              protosParamType.add(paramType);
-              break;
-            }
-          }
-        }
-      }
-    }
-  }
-}

http://git-wip-us.apache.org/repos/asf/hbase/blob/70c17072/hbase-common/pom.xml
----------------------------------------------------------------------
diff --git a/hbase-common/pom.xml b/hbase-common/pom.xml
index aae9b44..74cb32f 100644
--- a/hbase-common/pom.xml
+++ b/hbase-common/pom.xml
@@ -132,6 +132,10 @@
             </excludes>
           </configuration>
         </plugin>
+      <plugin>
+        <groupId>net.revelc.code</groupId>
+        <artifactId>warbucks-maven-plugin</artifactId>
+      </plugin>
     </plugins>
     <pluginManagement>
       <plugins>

http://git-wip-us.apache.org/repos/asf/hbase/blob/70c17072/hbase-common/src/main/java/org/apache/hadoop/hbase/trace/TraceUtil.java
----------------------------------------------------------------------
diff --git a/hbase-common/src/main/java/org/apache/hadoop/hbase/trace/TraceUtil.java b/hbase-common/src/main/java/org/apache/hadoop/hbase/trace/TraceUtil.java
index d52c67d..89386f4 100644
--- a/hbase-common/src/main/java/org/apache/hadoop/hbase/trace/TraceUtil.java
+++ b/hbase-common/src/main/java/org/apache/hadoop/hbase/trace/TraceUtil.java
@@ -24,10 +24,12 @@ import org.apache.htrace.core.Span;
 import org.apache.htrace.core.SpanReceiver;
 import org.apache.htrace.core.TraceScope;
 import org.apache.htrace.core.Tracer;
+import org.apache.yetus.audience.InterfaceAudience;
 
 /**
  * This wrapper class provides functions for accessing htrace 4+ functionality in a simplified way.
  */
+@InterfaceAudience.Private
 public final class TraceUtil {
   private static HTraceConfiguration conf;
   private static Tracer tracer;

http://git-wip-us.apache.org/repos/asf/hbase/blob/70c17072/hbase-common/src/main/java/org/apache/hadoop/hbase/util/JSONBean.java
----------------------------------------------------------------------
diff --git a/hbase-common/src/main/java/org/apache/hadoop/hbase/util/JSONBean.java b/hbase-common/src/main/java/org/apache/hadoop/hbase/util/JSONBean.java
index ab95b31..80ffa27 100644
--- a/hbase-common/src/main/java/org/apache/hadoop/hbase/util/JSONBean.java
+++ b/hbase-common/src/main/java/org/apache/hadoop/hbase/util/JSONBean.java
@@ -16,6 +16,9 @@
  */
 package org.apache.hadoop.hbase.util;
 
+import com.fasterxml.jackson.core.JsonFactory;
+import com.fasterxml.jackson.core.JsonGenerationException;
+import com.fasterxml.jackson.core.JsonGenerator;
 import java.io.Closeable;
 import java.io.IOException;
 import java.io.OutputStreamWriter;
@@ -25,7 +28,6 @@ import java.lang.reflect.Array;
 import java.nio.charset.StandardCharsets;
 import java.util.Iterator;
 import java.util.Set;
-
 import javax.management.AttributeNotFoundException;
 import javax.management.InstanceNotFoundException;
 import javax.management.IntrospectionException;
@@ -41,17 +43,14 @@ import javax.management.RuntimeMBeanException;
 import javax.management.openmbean.CompositeData;
 import javax.management.openmbean.CompositeType;
 import javax.management.openmbean.TabularData;
-
+import org.apache.yetus.audience.InterfaceAudience;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import com.fasterxml.jackson.core.JsonFactory;
-import com.fasterxml.jackson.core.JsonGenerationException;
-import com.fasterxml.jackson.core.JsonGenerator;
-
 /**
  * Utility for doing JSON and MBeans.
  */
+@InterfaceAudience.Private
 public class JSONBean {
   private static final Logger LOG = LoggerFactory.getLogger(JSONBean.class);
   private final JsonFactory jsonFactory;

http://git-wip-us.apache.org/repos/asf/hbase/blob/70c17072/hbase-common/src/main/java/org/apache/hadoop/hbase/util/JSONMetricUtil.java
----------------------------------------------------------------------
diff --git a/hbase-common/src/main/java/org/apache/hadoop/hbase/util/JSONMetricUtil.java b/hbase-common/src/main/java/org/apache/hadoop/hbase/util/JSONMetricUtil.java
index b6c05b6..7bc2257e 100644
--- a/hbase-common/src/main/java/org/apache/hadoop/hbase/util/JSONMetricUtil.java
+++ b/hbase-common/src/main/java/org/apache/hadoop/hbase/util/JSONMetricUtil.java
@@ -17,6 +17,9 @@
  * */
 package org.apache.hadoop.hbase.util;
 
+import com.fasterxml.jackson.core.JsonProcessingException;
+import com.fasterxml.jackson.databind.JsonNode;
+import com.fasterxml.jackson.databind.ObjectMapper;
 import java.beans.IntrospectionException;
 import java.io.IOException;
 import java.io.PrintWriter;
@@ -28,7 +31,6 @@ import java.lang.management.RuntimeMXBean;
 import java.util.Hashtable;
 import java.util.List;
 import java.util.Set;
-
 import javax.management.InstanceNotFoundException;
 import javax.management.MBeanAttributeInfo;
 import javax.management.MBeanInfo;
@@ -37,14 +39,11 @@ import javax.management.MalformedObjectNameException;
 import javax.management.ObjectName;
 import javax.management.ReflectionException;
 import javax.management.openmbean.CompositeData;
-
+import org.apache.yetus.audience.InterfaceAudience;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import com.fasterxml.jackson.core.JsonProcessingException;
-import com.fasterxml.jackson.databind.JsonNode;
-import com.fasterxml.jackson.databind.ObjectMapper;
-
+@InterfaceAudience.Private
 public final class JSONMetricUtil {
 
   private static final Logger LOG = LoggerFactory.getLogger(JSONMetricUtil.class);

http://git-wip-us.apache.org/repos/asf/hbase/blob/70c17072/hbase-endpoint/pom.xml
----------------------------------------------------------------------
diff --git a/hbase-endpoint/pom.xml b/hbase-endpoint/pom.xml
index 55d9f93..545f9ef 100644
--- a/hbase-endpoint/pom.xml
+++ b/hbase-endpoint/pom.xml
@@ -65,6 +65,10 @@
           </execution>
         </executions>
       </plugin>
+      <plugin>
+        <groupId>net.revelc.code</groupId>
+        <artifactId>warbucks-maven-plugin</artifactId>
+      </plugin>
     </plugins>
     <pluginManagement>
       <plugins>

http://git-wip-us.apache.org/repos/asf/hbase/blob/70c17072/hbase-examples/pom.xml
----------------------------------------------------------------------
diff --git a/hbase-examples/pom.xml b/hbase-examples/pom.xml
index fa0b1a9..6bee19d 100644
--- a/hbase-examples/pom.xml
+++ b/hbase-examples/pom.xml
@@ -65,6 +65,10 @@
           </execution>
         </executions>
       </plugin>
+      <plugin>
+        <groupId>net.revelc.code</groupId>
+        <artifactId>warbucks-maven-plugin</artifactId>
+      </plugin>
     </plugins>
     <pluginManagement>
       <plugins>

http://git-wip-us.apache.org/repos/asf/hbase/blob/70c17072/hbase-examples/src/main/java/org/apache/hadoop/hbase/client/example/AsyncClientExample.java
----------------------------------------------------------------------
diff --git a/hbase-examples/src/main/java/org/apache/hadoop/hbase/client/example/AsyncClientExample.java b/hbase-examples/src/main/java/org/apache/hadoop/hbase/client/example/AsyncClientExample.java
index 63d00fb..bcc9c0a 100644
--- a/hbase-examples/src/main/java/org/apache/hadoop/hbase/client/example/AsyncClientExample.java
+++ b/hbase-examples/src/main/java/org/apache/hadoop/hbase/client/example/AsyncClientExample.java
@@ -23,7 +23,6 @@ import java.util.concurrent.ExecutorService;
 import java.util.concurrent.Executors;
 import java.util.concurrent.atomic.AtomicReference;
 import java.util.stream.IntStream;
-
 import org.apache.commons.io.IOUtils;
 import org.apache.hadoop.conf.Configured;
 import org.apache.hadoop.hbase.TableName;
@@ -36,12 +35,14 @@ import org.apache.hadoop.hbase.util.Bytes;
 import org.apache.hadoop.hbase.util.Threads;
 import org.apache.hadoop.util.Tool;
 import org.apache.hadoop.util.ToolRunner;
+import org.apache.yetus.audience.InterfaceAudience;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 /**
  * A simple example shows how to use asynchronous client.
  */
+@InterfaceAudience.Private
 public class AsyncClientExample extends Configured implements Tool {
 
   private static final Logger LOG = LoggerFactory.getLogger(AsyncClientExample.class);

http://git-wip-us.apache.org/repos/asf/hbase/blob/70c17072/hbase-examples/src/main/java/org/apache/hadoop/hbase/client/example/BufferedMutatorExample.java
----------------------------------------------------------------------
diff --git a/hbase-examples/src/main/java/org/apache/hadoop/hbase/client/example/BufferedMutatorExample.java b/hbase-examples/src/main/java/org/apache/hadoop/hbase/client/example/BufferedMutatorExample.java
index 8e8a828..9c900d7 100644
--- a/hbase-examples/src/main/java/org/apache/hadoop/hbase/client/example/BufferedMutatorExample.java
+++ b/hbase-examples/src/main/java/org/apache/hadoop/hbase/client/example/BufferedMutatorExample.java
@@ -28,7 +28,6 @@ import java.util.concurrent.Executors;
 import java.util.concurrent.Future;
 import java.util.concurrent.TimeUnit;
 import java.util.concurrent.TimeoutException;
-
 import org.apache.hadoop.conf.Configured;
 import org.apache.hadoop.hbase.TableName;
 import org.apache.hadoop.hbase.client.BufferedMutator;
@@ -40,12 +39,14 @@ import org.apache.hadoop.hbase.client.RetriesExhaustedWithDetailsException;
 import org.apache.hadoop.hbase.util.Bytes;
 import org.apache.hadoop.util.Tool;
 import org.apache.hadoop.util.ToolRunner;
+import org.apache.yetus.audience.InterfaceAudience;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 /**
  * An example of using the {@link BufferedMutator} interface.
  */
+@InterfaceAudience.Private
 public class BufferedMutatorExample extends Configured implements Tool {
 
   private static final Logger LOG = LoggerFactory.getLogger(BufferedMutatorExample.class);

http://git-wip-us.apache.org/repos/asf/hbase/blob/70c17072/hbase-examples/src/main/java/org/apache/hadoop/hbase/client/example/ExportEndpointExample.java
----------------------------------------------------------------------
diff --git a/hbase-examples/src/main/java/org/apache/hadoop/hbase/client/example/ExportEndpointExample.java b/hbase-examples/src/main/java/org/apache/hadoop/hbase/client/example/ExportEndpointExample.java
index e15c993..d3ee2cc 100644
--- a/hbase-examples/src/main/java/org/apache/hadoop/hbase/client/example/ExportEndpointExample.java
+++ b/hbase-examples/src/main/java/org/apache/hadoop/hbase/client/example/ExportEndpointExample.java
@@ -17,6 +17,9 @@
  */
 package org.apache.hadoop.hbase.client.example;
 
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
 import org.apache.hadoop.conf.Configuration;
 import org.apache.hadoop.fs.Path;
 import org.apache.hadoop.hbase.HBaseConfiguration;
@@ -28,14 +31,11 @@ import org.apache.hadoop.hbase.client.ConnectionFactory;
 import org.apache.hadoop.hbase.client.Put;
 import org.apache.hadoop.hbase.client.Scan;
 import org.apache.hadoop.hbase.client.Table;
-import org.apache.hadoop.hbase.coprocessor.Export;
 import org.apache.hadoop.hbase.client.TableDescriptor;
 import org.apache.hadoop.hbase.client.TableDescriptorBuilder;
+import org.apache.hadoop.hbase.coprocessor.Export;
 import org.apache.hadoop.hbase.util.Bytes;
-
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Map;
+import org.apache.yetus.audience.InterfaceAudience;
 
 /**
  * A simple example on how to use {@link org.apache.hadoop.hbase.coprocessor.Export}.
@@ -45,7 +45,8 @@ import java.util.Map;
  * hbase-endpoint/src/main/protobuf/Export.proto.
  * </p>
  */
-public class ExportEndpointExample {
+@InterfaceAudience.Private
+public final class ExportEndpointExample {
 
   public static void main(String[] args) throws Throwable {
     int rowCount = 100;
@@ -83,4 +84,6 @@ public class ExportEndpointExample {
       System.out.println("total cells:" + totalOutputCells);
     }
   }
+
+  private ExportEndpointExample(){}
 }

http://git-wip-us.apache.org/repos/asf/hbase/blob/70c17072/hbase-examples/src/main/java/org/apache/hadoop/hbase/client/example/HttpProxyExample.java
----------------------------------------------------------------------
diff --git a/hbase-examples/src/main/java/org/apache/hadoop/hbase/client/example/HttpProxyExample.java b/hbase-examples/src/main/java/org/apache/hadoop/hbase/client/example/HttpProxyExample.java
index 37bda0f..f9caf2b 100644
--- a/hbase-examples/src/main/java/org/apache/hadoop/hbase/client/example/HttpProxyExample.java
+++ b/hbase-examples/src/main/java/org/apache/hadoop/hbase/client/example/HttpProxyExample.java
@@ -21,7 +21,6 @@ import java.io.IOException;
 import java.net.InetSocketAddress;
 import java.util.Optional;
 import java.util.concurrent.ExecutionException;
-
 import org.apache.hadoop.conf.Configuration;
 import org.apache.hadoop.hbase.HBaseConfiguration;
 import org.apache.hadoop.hbase.TableName;
@@ -31,6 +30,7 @@ import org.apache.hadoop.hbase.client.Get;
 import org.apache.hadoop.hbase.client.Put;
 import org.apache.hadoop.hbase.ipc.NettyRpcClientConfigHelper;
 import org.apache.hadoop.hbase.util.Bytes;
+import org.apache.yetus.audience.InterfaceAudience;
 
 import org.apache.hbase.thirdparty.com.google.common.base.Preconditions;
 import org.apache.hbase.thirdparty.com.google.common.base.Throwables;
@@ -71,6 +71,7 @@ import org.apache.hbase.thirdparty.io.netty.util.concurrent.GlobalEventExecutor;
  * Use HTTP GET to fetch data, and use HTTP PUT to put data. Encode the value as the request content
  * when doing PUT.
  */
+@InterfaceAudience.Private
 public class HttpProxyExample {
 
   private final EventLoopGroup bossGroup = new NioEventLoopGroup(1);

http://git-wip-us.apache.org/repos/asf/hbase/blob/70c17072/hbase-examples/src/main/java/org/apache/hadoop/hbase/client/example/MultiThreadedClientExample.java
----------------------------------------------------------------------
diff --git a/hbase-examples/src/main/java/org/apache/hadoop/hbase/client/example/MultiThreadedClientExample.java b/hbase-examples/src/main/java/org/apache/hadoop/hbase/client/example/MultiThreadedClientExample.java
index ae89e64..2c98c18 100644
--- a/hbase-examples/src/main/java/org/apache/hadoop/hbase/client/example/MultiThreadedClientExample.java
+++ b/hbase-examples/src/main/java/org/apache/hadoop/hbase/client/example/MultiThreadedClientExample.java
@@ -29,7 +29,6 @@ import java.util.concurrent.Future;
 import java.util.concurrent.ThreadFactory;
 import java.util.concurrent.ThreadLocalRandom;
 import java.util.concurrent.TimeUnit;
-
 import org.apache.hadoop.conf.Configured;
 import org.apache.hadoop.hbase.Cell;
 import org.apache.hadoop.hbase.Cell.Type;
@@ -48,6 +47,7 @@ import org.apache.hadoop.hbase.filter.KeyOnlyFilter;
 import org.apache.hadoop.hbase.util.Bytes;
 import org.apache.hadoop.util.Tool;
 import org.apache.hadoop.util.ToolRunner;
+import org.apache.yetus.audience.InterfaceAudience;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -90,6 +90,7 @@ import org.apache.hbase.thirdparty.com.google.common.util.concurrent.ThreadFacto
  * </ul>
  *
  */
+@InterfaceAudience.Private
 public class MultiThreadedClientExample extends Configured implements Tool {
   private static final Logger LOG = LoggerFactory.getLogger(MultiThreadedClientExample.class);
   private static final int DEFAULT_NUM_OPERATIONS = 500000;

http://git-wip-us.apache.org/repos/asf/hbase/blob/70c17072/hbase-examples/src/main/java/org/apache/hadoop/hbase/client/example/RefreshHFilesClient.java
----------------------------------------------------------------------
diff --git a/hbase-examples/src/main/java/org/apache/hadoop/hbase/client/example/RefreshHFilesClient.java b/hbase-examples/src/main/java/org/apache/hadoop/hbase/client/example/RefreshHFilesClient.java
index a829b2a..ead0af0 100644
--- a/hbase-examples/src/main/java/org/apache/hadoop/hbase/client/example/RefreshHFilesClient.java
+++ b/hbase-examples/src/main/java/org/apache/hadoop/hbase/client/example/RefreshHFilesClient.java
@@ -19,6 +19,8 @@
 
 package org.apache.hadoop.hbase.client.example;
 
+import java.io.Closeable;
+import java.io.IOException;
 import org.apache.hadoop.conf.Configuration;
 import org.apache.hadoop.hbase.HConstants;
 import org.apache.hadoop.hbase.TableName;
@@ -29,16 +31,15 @@ import org.apache.hadoop.hbase.client.coprocessor.Batch;
 import org.apache.hadoop.hbase.ipc.CoprocessorRpcUtils.BlockingRpcCallback;
 import org.apache.hadoop.hbase.ipc.ServerRpcController;
 import org.apache.hadoop.hbase.protobuf.generated.RefreshHFilesProtos;
+import org.apache.yetus.audience.InterfaceAudience;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import java.io.Closeable;
-import java.io.IOException;
-
 /**
  * This client class is for invoking the refresh HFile function deployed on the
  * Region Server side via the RefreshHFilesService.
  */
+@InterfaceAudience.Private
 public class RefreshHFilesClient implements Closeable {
   private static final Logger LOG = LoggerFactory.getLogger(RefreshHFilesClient.class);
   private final Connection connection;

http://git-wip-us.apache.org/repos/asf/hbase/blob/70c17072/hbase-examples/src/main/java/org/apache/hadoop/hbase/coprocessor/example/BulkDeleteEndpoint.java
----------------------------------------------------------------------
diff --git a/hbase-examples/src/main/java/org/apache/hadoop/hbase/coprocessor/example/BulkDeleteEndpoint.java b/hbase-examples/src/main/java/org/apache/hadoop/hbase/coprocessor/example/BulkDeleteEndpoint.java
index 4735b3d..e2681ae 100644
--- a/hbase-examples/src/main/java/org/apache/hadoop/hbase/coprocessor/example/BulkDeleteEndpoint.java
+++ b/hbase-examples/src/main/java/org/apache/hadoop/hbase/coprocessor/example/BulkDeleteEndpoint.java
@@ -17,6 +17,9 @@
  */
 package org.apache.hadoop.hbase.coprocessor.example;
 
+import com.google.protobuf.RpcCallback;
+import com.google.protobuf.RpcController;
+import com.google.protobuf.Service;
 import java.io.IOException;
 import java.util.ArrayList;
 import java.util.Collections;
@@ -24,7 +27,6 @@ import java.util.HashSet;
 import java.util.List;
 import java.util.Set;
 import java.util.TreeSet;
-
 import org.apache.hadoop.hbase.Cell;
 import org.apache.hadoop.hbase.CellUtil;
 import org.apache.hadoop.hbase.CoprocessorEnvironment;
@@ -48,13 +50,10 @@ import org.apache.hadoop.hbase.regionserver.OperationStatus;
 import org.apache.hadoop.hbase.regionserver.Region;
 import org.apache.hadoop.hbase.regionserver.RegionScanner;
 import org.apache.hadoop.hbase.util.Bytes;
+import org.apache.yetus.audience.InterfaceAudience;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import com.google.protobuf.RpcCallback;
-import com.google.protobuf.RpcController;
-import com.google.protobuf.Service;
-
 /**
  * Defines a protocol to delete data in bulk based on a scan. The scan can be range scan or with
  * conditions(filters) etc.This can be used to delete rows, column family(s), column qualifier(s)
@@ -95,6 +94,7 @@ import com.google.protobuf.Service;
  * }
  * </code></pre>
  */
+@InterfaceAudience.Private
 public class BulkDeleteEndpoint extends BulkDeleteService implements RegionCoprocessor {
   private static final String NO_OF_VERSIONS_TO_DELETE = "noOfVersionsToDelete";
   private static final Logger LOG = LoggerFactory.getLogger(BulkDeleteEndpoint.class);

http://git-wip-us.apache.org/repos/asf/hbase/blob/70c17072/hbase-examples/src/main/java/org/apache/hadoop/hbase/coprocessor/example/DelegatingInternalScanner.java
----------------------------------------------------------------------
diff --git a/hbase-examples/src/main/java/org/apache/hadoop/hbase/coprocessor/example/DelegatingInternalScanner.java b/hbase-examples/src/main/java/org/apache/hadoop/hbase/coprocessor/example/DelegatingInternalScanner.java
index f781a33..ada040f 100644
--- a/hbase-examples/src/main/java/org/apache/hadoop/hbase/coprocessor/example/DelegatingInternalScanner.java
+++ b/hbase-examples/src/main/java/org/apache/hadoop/hbase/coprocessor/example/DelegatingInternalScanner.java
@@ -19,14 +19,15 @@ package org.apache.hadoop.hbase.coprocessor.example;
 
 import java.io.IOException;
 import java.util.List;
-
 import org.apache.hadoop.hbase.Cell;
 import org.apache.hadoop.hbase.regionserver.InternalScanner;
 import org.apache.hadoop.hbase.regionserver.ScannerContext;
+import org.apache.yetus.audience.InterfaceAudience;
 
 /**
  * A simple delegation for doing filtering on {@link InternalScanner}.
  */
+@InterfaceAudience.Private
 public class DelegatingInternalScanner implements InternalScanner {
 
   protected final InternalScanner scanner;

http://git-wip-us.apache.org/repos/asf/hbase/blob/70c17072/hbase-examples/src/main/java/org/apache/hadoop/hbase/coprocessor/example/ExampleMasterObserverWithMetrics.java
----------------------------------------------------------------------
diff --git a/hbase-examples/src/main/java/org/apache/hadoop/hbase/coprocessor/example/ExampleMasterObserverWithMetrics.java b/hbase-examples/src/main/java/org/apache/hadoop/hbase/coprocessor/example/ExampleMasterObserverWithMetrics.java
index 87387a0..5fe920e 100644
--- a/hbase-examples/src/main/java/org/apache/hadoop/hbase/coprocessor/example/ExampleMasterObserverWithMetrics.java
+++ b/hbase-examples/src/main/java/org/apache/hadoop/hbase/coprocessor/example/ExampleMasterObserverWithMetrics.java
@@ -20,7 +20,6 @@ package org.apache.hadoop.hbase.coprocessor.example;
 
 import java.io.IOException;
 import java.util.Optional;
-
 import org.apache.hadoop.hbase.CoprocessorEnvironment;
 import org.apache.hadoop.hbase.TableName;
 import org.apache.hadoop.hbase.client.RegionInfo;
@@ -33,6 +32,7 @@ import org.apache.hadoop.hbase.metrics.Counter;
 import org.apache.hadoop.hbase.metrics.Gauge;
 import org.apache.hadoop.hbase.metrics.MetricRegistry;
 import org.apache.hadoop.hbase.metrics.Timer;
+import org.apache.yetus.audience.InterfaceAudience;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -47,6 +47,7 @@ import org.slf4j.LoggerFactory;
  * </p>
  * @see ExampleRegionObserverWithMetrics
  */
+@InterfaceAudience.Private
 public class ExampleMasterObserverWithMetrics implements MasterCoprocessor, MasterObserver {
   @Override
   public Optional<MasterObserver> getMasterObserver() {

http://git-wip-us.apache.org/repos/asf/hbase/blob/70c17072/hbase-examples/src/main/java/org/apache/hadoop/hbase/coprocessor/example/ExampleRegionObserverWithMetrics.java
----------------------------------------------------------------------
diff --git a/hbase-examples/src/main/java/org/apache/hadoop/hbase/coprocessor/example/ExampleRegionObserverWithMetrics.java b/hbase-examples/src/main/java/org/apache/hadoop/hbase/coprocessor/example/ExampleRegionObserverWithMetrics.java
index 4e31d22..ec33e08 100644
--- a/hbase-examples/src/main/java/org/apache/hadoop/hbase/coprocessor/example/ExampleRegionObserverWithMetrics.java
+++ b/hbase-examples/src/main/java/org/apache/hadoop/hbase/coprocessor/example/ExampleRegionObserverWithMetrics.java
@@ -24,7 +24,6 @@ import java.io.IOException;
 import java.util.List;
 import java.util.Optional;
 import java.util.concurrent.ThreadLocalRandom;
-
 import org.apache.hadoop.hbase.Cell;
 import org.apache.hadoop.hbase.CoprocessorEnvironment;
 import org.apache.hadoop.hbase.client.Get;
@@ -40,6 +39,7 @@ import org.apache.hadoop.hbase.regionserver.Store;
 import org.apache.hadoop.hbase.regionserver.StoreFile;
 import org.apache.hadoop.hbase.regionserver.compactions.CompactionLifeCycleTracker;
 import org.apache.hadoop.hbase.regionserver.compactions.CompactionRequest;
+import org.apache.yetus.audience.InterfaceAudience;
 
 /**
  * An example coprocessor that collects some metrics to demonstrate the usage of exporting custom
@@ -52,6 +52,7 @@ import org.apache.hadoop.hbase.regionserver.compactions.CompactionRequest;
  *
  * @see ExampleMasterObserverWithMetrics
  */
+@InterfaceAudience.Private
 public class ExampleRegionObserverWithMetrics implements RegionCoprocessor {
 
   private Counter preGetCounter;

http://git-wip-us.apache.org/repos/asf/hbase/blob/70c17072/hbase-examples/src/main/java/org/apache/hadoop/hbase/coprocessor/example/RefreshHFilesEndpoint.java
----------------------------------------------------------------------
diff --git a/hbase-examples/src/main/java/org/apache/hadoop/hbase/coprocessor/example/RefreshHFilesEndpoint.java b/hbase-examples/src/main/java/org/apache/hadoop/hbase/coprocessor/example/RefreshHFilesEndpoint.java
index 60cb154..29fe90c 100644
--- a/hbase-examples/src/main/java/org/apache/hadoop/hbase/coprocessor/example/RefreshHFilesEndpoint.java
+++ b/hbase-examples/src/main/java/org/apache/hadoop/hbase/coprocessor/example/RefreshHFilesEndpoint.java
@@ -21,7 +21,8 @@ package org.apache.hadoop.hbase.coprocessor.example;
 import com.google.protobuf.RpcCallback;
 import com.google.protobuf.RpcController;
 import com.google.protobuf.Service;
-
+import java.io.IOException;
+import java.util.Collections;
 import org.apache.hadoop.hbase.CoprocessorEnvironment;
 import org.apache.hadoop.hbase.coprocessor.CoprocessorException;
 import org.apache.hadoop.hbase.coprocessor.RegionCoprocessor;
@@ -29,12 +30,10 @@ import org.apache.hadoop.hbase.coprocessor.RegionCoprocessorEnvironment;
 import org.apache.hadoop.hbase.ipc.CoprocessorRpcUtils;
 import org.apache.hadoop.hbase.protobuf.generated.RefreshHFilesProtos;
 import org.apache.hadoop.hbase.regionserver.Store;
+import org.apache.yetus.audience.InterfaceAudience;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import java.io.IOException;
-import java.util.Collections;
-
 /**
  * Coprocessor endpoint to refresh HFiles on replica.
  * <p>
@@ -43,6 +42,7 @@ import java.util.Collections;
  * hbase-protocol/src/main/protobuf/RefreshHFiles.proto.
  * </p>
  */
+@InterfaceAudience.Private
 public class RefreshHFilesEndpoint extends RefreshHFilesProtos.RefreshHFilesService
   implements RegionCoprocessor {
   protected static final Logger LOG = LoggerFactory.getLogger(RefreshHFilesEndpoint.class);

http://git-wip-us.apache.org/repos/asf/hbase/blob/70c17072/hbase-examples/src/main/java/org/apache/hadoop/hbase/coprocessor/example/RowCountEndpoint.java
----------------------------------------------------------------------
diff --git a/hbase-examples/src/main/java/org/apache/hadoop/hbase/coprocessor/example/RowCountEndpoint.java b/hbase-examples/src/main/java/org/apache/hadoop/hbase/coprocessor/example/RowCountEndpoint.java
index ff7b43d..21d3b7a 100644
--- a/hbase-examples/src/main/java/org/apache/hadoop/hbase/coprocessor/example/RowCountEndpoint.java
+++ b/hbase-examples/src/main/java/org/apache/hadoop/hbase/coprocessor/example/RowCountEndpoint.java
@@ -18,11 +18,13 @@
 
 package org.apache.hadoop.hbase.coprocessor.example;
 
+import com.google.protobuf.RpcCallback;
+import com.google.protobuf.RpcController;
+import com.google.protobuf.Service;
 import java.io.IOException;
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.List;
-
 import org.apache.hadoop.hbase.Cell;
 import org.apache.hadoop.hbase.CellUtil;
 import org.apache.hadoop.hbase.CoprocessorEnvironment;
@@ -35,10 +37,7 @@ import org.apache.hadoop.hbase.filter.FirstKeyOnlyFilter;
 import org.apache.hadoop.hbase.ipc.CoprocessorRpcUtils;
 import org.apache.hadoop.hbase.regionserver.InternalScanner;
 import org.apache.hadoop.hbase.util.Bytes;
-
-import com.google.protobuf.RpcCallback;
-import com.google.protobuf.RpcController;
-import com.google.protobuf.Service;
+import org.apache.yetus.audience.InterfaceAudience;
 
 /**
  * Sample coprocessor endpoint exposing a Service interface for counting rows and key values.
@@ -48,6 +47,7 @@ import com.google.protobuf.Service;
  * hbase-examples/src/main/protobuf/Examples.proto.
  * </p>
  */
+@InterfaceAudience.Private
 public class RowCountEndpoint extends ExampleProtos.RowCountService implements RegionCoprocessor {
   private RegionCoprocessorEnvironment env;
 

http://git-wip-us.apache.org/repos/asf/hbase/blob/70c17072/hbase-examples/src/main/java/org/apache/hadoop/hbase/coprocessor/example/ScanModifyingObserver.java
----------------------------------------------------------------------
diff --git a/hbase-examples/src/main/java/org/apache/hadoop/hbase/coprocessor/example/ScanModifyingObserver.java b/hbase-examples/src/main/java/org/apache/hadoop/hbase/coprocessor/example/ScanModifyingObserver.java
index 942315c..1c323d2 100644
--- a/hbase-examples/src/main/java/org/apache/hadoop/hbase/coprocessor/example/ScanModifyingObserver.java
+++ b/hbase-examples/src/main/java/org/apache/hadoop/hbase/coprocessor/example/ScanModifyingObserver.java
@@ -18,7 +18,6 @@ package org.apache.hadoop.hbase.coprocessor.example;
 
 import java.io.IOException;
 import java.util.Optional;
-
 import org.apache.hadoop.hbase.CoprocessorEnvironment;
 import org.apache.hadoop.hbase.client.Scan;
 import org.apache.hadoop.hbase.coprocessor.ObserverContext;
@@ -26,11 +25,13 @@ import org.apache.hadoop.hbase.coprocessor.RegionCoprocessor;
 import org.apache.hadoop.hbase.coprocessor.RegionCoprocessorEnvironment;
 import org.apache.hadoop.hbase.coprocessor.RegionObserver;
 import org.apache.hadoop.hbase.util.Bytes;
+import org.apache.yetus.audience.InterfaceAudience;
 
 /**
  * A RegionObserver which modifies incoming Scan requests to include additional
  * columns than what the user actually requested.
  */
+@InterfaceAudience.Private
 public class ScanModifyingObserver implements RegionCoprocessor, RegionObserver {
 
   public static final String FAMILY_TO_ADD_KEY = "hbase.examples.coprocessor.scanmodifying.family";

http://git-wip-us.apache.org/repos/asf/hbase/blob/70c17072/hbase-examples/src/main/java/org/apache/hadoop/hbase/coprocessor/example/ValueRewritingObserver.java
----------------------------------------------------------------------
diff --git a/hbase-examples/src/main/java/org/apache/hadoop/hbase/coprocessor/example/ValueRewritingObserver.java b/hbase-examples/src/main/java/org/apache/hadoop/hbase/coprocessor/example/ValueRewritingObserver.java
index 422f4c1..988b51b 100644
--- a/hbase-examples/src/main/java/org/apache/hadoop/hbase/coprocessor/example/ValueRewritingObserver.java
+++ b/hbase-examples/src/main/java/org/apache/hadoop/hbase/coprocessor/example/ValueRewritingObserver.java
@@ -19,7 +19,6 @@ package org.apache.hadoop.hbase.coprocessor.example;
 import java.io.IOException;
 import java.util.List;
 import java.util.Optional;
-
 import org.apache.hadoop.hbase.Cell;
 import org.apache.hadoop.hbase.CellBuilder;
 import org.apache.hadoop.hbase.CellBuilderFactory;
@@ -37,10 +36,12 @@ import org.apache.hadoop.hbase.regionserver.Store;
 import org.apache.hadoop.hbase.regionserver.compactions.CompactionLifeCycleTracker;
 import org.apache.hadoop.hbase.regionserver.compactions.CompactionRequest;
 import org.apache.hadoop.hbase.util.Bytes;
+import org.apache.yetus.audience.InterfaceAudience;
 
 /**
  * This RegionObserver replaces the values of Puts from one value to another on compaction.
  */
+@InterfaceAudience.Private
 public class ValueRewritingObserver implements RegionObserver, RegionCoprocessor {
   public static final String ORIGINAL_VALUE_KEY =
       "hbase.examples.coprocessor.value.rewrite.orig";

http://git-wip-us.apache.org/repos/asf/hbase/blob/70c17072/hbase-examples/src/main/java/org/apache/hadoop/hbase/coprocessor/example/WriteHeavyIncrementObserver.java
----------------------------------------------------------------------
diff --git a/hbase-examples/src/main/java/org/apache/hadoop/hbase/coprocessor/example/WriteHeavyIncrementObserver.java b/hbase-examples/src/main/java/org/apache/hadoop/hbase/coprocessor/example/WriteHeavyIncrementObserver.java
index 01914b3..c7ebf0d 100644
--- a/hbase-examples/src/main/java/org/apache/hadoop/hbase/coprocessor/example/WriteHeavyIncrementObserver.java
+++ b/hbase-examples/src/main/java/org/apache/hadoop/hbase/coprocessor/example/WriteHeavyIncrementObserver.java
@@ -26,7 +26,6 @@ import java.util.NavigableMap;
 import java.util.Optional;
 import java.util.TreeMap;
 import java.util.stream.IntStream;
-
 import org.apache.commons.lang3.mutable.MutableLong;
 import org.apache.hadoop.hbase.Cell;
 import org.apache.hadoop.hbase.CellBuilderFactory;
@@ -52,6 +51,7 @@ import org.apache.hadoop.hbase.regionserver.Store;
 import org.apache.hadoop.hbase.regionserver.compactions.CompactionLifeCycleTracker;
 import org.apache.hadoop.hbase.regionserver.compactions.CompactionRequest;
 import org.apache.hadoop.hbase.util.Bytes;
+import org.apache.yetus.audience.InterfaceAudience;
 
 import org.apache.hbase.thirdparty.com.google.common.math.IntMath;
 
@@ -64,6 +64,7 @@ import org.apache.hbase.thirdparty.com.google.common.math.IntMath;
  * Notice that this is only an example so we do not handle most corner cases, for example, you must
  * provide a qualifier when doing a get.
  */
+@InterfaceAudience.Private
 public class WriteHeavyIncrementObserver implements RegionCoprocessor, RegionObserver {
 
   @Override

http://git-wip-us.apache.org/repos/asf/hbase/blob/70c17072/hbase-examples/src/main/java/org/apache/hadoop/hbase/coprocessor/example/ZooKeeperScanPolicyObserver.java
----------------------------------------------------------------------
diff --git a/hbase-examples/src/main/java/org/apache/hadoop/hbase/coprocessor/example/ZooKeeperScanPolicyObserver.java b/hbase-examples/src/main/java/org/apache/hadoop/hbase/coprocessor/example/ZooKeeperScanPolicyObserver.java
index 9b1db69..12d7d17 100644
--- a/hbase-examples/src/main/java/org/apache/hadoop/hbase/coprocessor/example/ZooKeeperScanPolicyObserver.java
+++ b/hbase-examples/src/main/java/org/apache/hadoop/hbase/coprocessor/example/ZooKeeperScanPolicyObserver.java
@@ -21,7 +21,6 @@ package org.apache.hadoop.hbase.coprocessor.example;
 import java.io.IOException;
 import java.util.Optional;
 import java.util.OptionalLong;
-
 import org.apache.curator.framework.CuratorFramework;
 import org.apache.curator.framework.CuratorFrameworkFactory;
 import org.apache.curator.framework.recipes.cache.ChildData;
@@ -40,6 +39,7 @@ import org.apache.hadoop.hbase.regionserver.compactions.CompactionLifeCycleTrack
 import org.apache.hadoop.hbase.regionserver.compactions.CompactionRequest;
 import org.apache.hadoop.hbase.util.Bytes;
 import org.apache.hadoop.hbase.util.EnvironmentEdgeManager;
+import org.apache.yetus.audience.InterfaceAudience;
 
 /**
  * This is an example showing how a RegionObserver could configured via ZooKeeper in order to
@@ -51,6 +51,7 @@ import org.apache.hadoop.hbase.util.EnvironmentEdgeManager;
  * successful backup via ZK and instruct HBase that to safely delete the data which has already been
  * backup.
  */
+@InterfaceAudience.Private
 public class ZooKeeperScanPolicyObserver implements RegionCoprocessor, RegionObserver {
 
   @Override

http://git-wip-us.apache.org/repos/asf/hbase/blob/70c17072/hbase-examples/src/main/java/org/apache/hadoop/hbase/mapreduce/IndexBuilder.java
----------------------------------------------------------------------
diff --git a/hbase-examples/src/main/java/org/apache/hadoop/hbase/mapreduce/IndexBuilder.java b/hbase-examples/src/main/java/org/apache/hadoop/hbase/mapreduce/IndexBuilder.java
index 01e9ef3..3098ac2 100644
--- a/hbase-examples/src/main/java/org/apache/hadoop/hbase/mapreduce/IndexBuilder.java
+++ b/hbase-examples/src/main/java/org/apache/hadoop/hbase/mapreduce/IndexBuilder.java
@@ -20,7 +20,6 @@ package org.apache.hadoop.hbase.mapreduce;
 
 import java.io.IOException;
 import java.util.TreeMap;
-
 import org.apache.hadoop.conf.Configuration;
 import org.apache.hadoop.conf.Configured;
 import org.apache.hadoop.hbase.HBaseConfiguration;
@@ -33,6 +32,7 @@ import org.apache.hadoop.mapreduce.Job;
 import org.apache.hadoop.mapreduce.Mapper;
 import org.apache.hadoop.util.Tool;
 import org.apache.hadoop.util.ToolRunner;
+import org.apache.yetus.audience.InterfaceAudience;
 
 /**
  * Example map/reduce job to construct index tables that can be used to quickly
@@ -64,6 +64,7 @@ import org.apache.hadoop.util.ToolRunner;
  * This code was written against HBase 0.21 trunk.
  * </p>
  */
+@InterfaceAudience.Private
 public class IndexBuilder extends Configured implements Tool {
   /** the column family containing the indexed row key */
   public static final byte[] INDEX_COLUMN = Bytes.toBytes("INDEX");

http://git-wip-us.apache.org/repos/asf/hbase/blob/70c17072/hbase-examples/src/main/java/org/apache/hadoop/hbase/mapreduce/SampleUploader.java
----------------------------------------------------------------------
diff --git a/hbase-examples/src/main/java/org/apache/hadoop/hbase/mapreduce/SampleUploader.java b/hbase-examples/src/main/java/org/apache/hadoop/hbase/mapreduce/SampleUploader.java
index 18eb5a6..1248f87 100644
--- a/hbase-examples/src/main/java/org/apache/hadoop/hbase/mapreduce/SampleUploader.java
+++ b/hbase-examples/src/main/java/org/apache/hadoop/hbase/mapreduce/SampleUploader.java
@@ -19,7 +19,6 @@
 package org.apache.hadoop.hbase.mapreduce;
 
 import java.io.IOException;
-
 import org.apache.hadoop.conf.Configuration;
 import org.apache.hadoop.conf.Configured;
 import org.apache.hadoop.fs.Path;
@@ -35,6 +34,7 @@ import org.apache.hadoop.mapreduce.lib.input.FileInputFormat;
 import org.apache.hadoop.mapreduce.lib.input.SequenceFileInputFormat;
 import org.apache.hadoop.util.Tool;
 import org.apache.hadoop.util.ToolRunner;
+import org.apache.yetus.audience.InterfaceAudience;
 
 /**
  * Sample Uploader MapReduce
@@ -58,6 +58,7 @@ import org.apache.hadoop.util.ToolRunner;
  * <p>
  * This code was written against HBase 0.21 trunk.
  */
+@InterfaceAudience.Private
 public class SampleUploader extends Configured implements Tool {
 
   private static final String NAME = "SampleUploader";

http://git-wip-us.apache.org/repos/asf/hbase/blob/70c17072/hbase-examples/src/main/java/org/apache/hadoop/hbase/thrift/DemoClient.java
----------------------------------------------------------------------
diff --git a/hbase-examples/src/main/java/org/apache/hadoop/hbase/thrift/DemoClient.java b/hbase-examples/src/main/java/org/apache/hadoop/hbase/thrift/DemoClient.java
index 706f82f..07486bf 100644
--- a/hbase-examples/src/main/java/org/apache/hadoop/hbase/thrift/DemoClient.java
+++ b/hbase-examples/src/main/java/org/apache/hadoop/hbase/thrift/DemoClient.java
@@ -31,13 +31,11 @@ import java.util.List;
 import java.util.Map;
 import java.util.SortedMap;
 import java.util.TreeMap;
-
 import javax.security.auth.Subject;
 import javax.security.auth.login.AppConfigurationEntry;
 import javax.security.auth.login.Configuration;
 import javax.security.auth.login.LoginContext;
 import javax.security.sasl.Sasl;
-
 import org.apache.hadoop.hbase.thrift.generated.AlreadyExists;
 import org.apache.hadoop.hbase.thrift.generated.ColumnDescriptor;
 import org.apache.hadoop.hbase.thrift.generated.Hbase;
@@ -49,10 +47,12 @@ import org.apache.thrift.protocol.TProtocol;
 import org.apache.thrift.transport.TSaslClientTransport;
 import org.apache.thrift.transport.TSocket;
 import org.apache.thrift.transport.TTransport;
+import org.apache.yetus.audience.InterfaceAudience;
 
 /**
  * See the instructions under hbase-examples/README.txt
  */
+@InterfaceAudience.Private
 public class DemoClient {
 
     static protected int port;

http://git-wip-us.apache.org/repos/asf/hbase/blob/70c17072/hbase-examples/src/main/java/org/apache/hadoop/hbase/thrift/HttpDoAsClient.java
----------------------------------------------------------------------
diff --git a/hbase-examples/src/main/java/org/apache/hadoop/hbase/thrift/HttpDoAsClient.java b/hbase-examples/src/main/java/org/apache/hadoop/hbase/thrift/HttpDoAsClient.java
index 25fdc4a..56aadce 100644
--- a/hbase-examples/src/main/java/org/apache/hadoop/hbase/thrift/HttpDoAsClient.java
+++ b/hbase-examples/src/main/java/org/apache/hadoop/hbase/thrift/HttpDoAsClient.java
@@ -18,7 +18,6 @@
  */
 package org.apache.hadoop.hbase.thrift;
 
-
 import java.io.UnsupportedEncodingException;
 import java.nio.ByteBuffer;
 import java.nio.charset.CharacterCodingException;
@@ -31,12 +30,10 @@ import java.util.List;
 import java.util.Map;
 import java.util.SortedMap;
 import java.util.TreeMap;
-
 import javax.security.auth.Subject;
 import javax.security.auth.login.AppConfigurationEntry;
 import javax.security.auth.login.Configuration;
 import javax.security.auth.login.LoginContext;
-
 import org.apache.hadoop.hbase.thrift.generated.AlreadyExists;
 import org.apache.hadoop.hbase.thrift.generated.ColumnDescriptor;
 import org.apache.hadoop.hbase.thrift.generated.Hbase;
@@ -48,6 +45,7 @@ import org.apache.thrift.protocol.TProtocol;
 import org.apache.thrift.transport.THttpClient;
 import org.apache.thrift.transport.TSocket;
 import org.apache.thrift.transport.TTransport;
+import org.apache.yetus.audience.InterfaceAudience;
 import org.ietf.jgss.GSSContext;
 import org.ietf.jgss.GSSCredential;
 import org.ietf.jgss.GSSException;
@@ -58,6 +56,7 @@ import org.ietf.jgss.Oid;
 /**
  * See the instructions under hbase-examples/README.txt
  */
+@InterfaceAudience.Private
 public class HttpDoAsClient {
 
   static protected int port;

http://git-wip-us.apache.org/repos/asf/hbase/blob/70c17072/hbase-examples/src/main/java/org/apache/hadoop/hbase/thrift2/DemoClient.java
----------------------------------------------------------------------
diff --git a/hbase-examples/src/main/java/org/apache/hadoop/hbase/thrift2/DemoClient.java b/hbase-examples/src/main/java/org/apache/hadoop/hbase/thrift2/DemoClient.java
index 666997e..7fbe2aa 100644
--- a/hbase-examples/src/main/java/org/apache/hadoop/hbase/thrift2/DemoClient.java
+++ b/hbase-examples/src/main/java/org/apache/hadoop/hbase/thrift2/DemoClient.java
@@ -24,15 +24,12 @@ import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
-
 import javax.security.auth.Subject;
 import javax.security.auth.login.AppConfigurationEntry;
 import javax.security.auth.login.Configuration;
 import javax.security.auth.login.LoginContext;
 import javax.security.sasl.Sasl;
-
 import org.apache.hadoop.hbase.HBaseConfiguration;
-
 import org.apache.hadoop.hbase.thrift2.generated.TColumnValue;
 import org.apache.hadoop.hbase.thrift2.generated.TGet;
 import org.apache.hadoop.hbase.thrift2.generated.THBaseService;
@@ -44,7 +41,9 @@ import org.apache.thrift.transport.TFramedTransport;
 import org.apache.thrift.transport.TSaslClientTransport;
 import org.apache.thrift.transport.TSocket;
 import org.apache.thrift.transport.TTransport;
+import org.apache.yetus.audience.InterfaceAudience;
 
+@InterfaceAudience.Private
 public class DemoClient {
 
   private static String host = "localhost";

http://git-wip-us.apache.org/repos/asf/hbase/blob/70c17072/hbase-examples/src/main/java/org/apache/hadoop/hbase/types/PBCell.java
----------------------------------------------------------------------
diff --git a/hbase-examples/src/main/java/org/apache/hadoop/hbase/types/PBCell.java b/hbase-examples/src/main/java/org/apache/hadoop/hbase/types/PBCell.java
index c063aa9..b1ec97e 100644
--- a/hbase-examples/src/main/java/org/apache/hadoop/hbase/types/PBCell.java
+++ b/hbase-examples/src/main/java/org/apache/hadoop/hbase/types/PBCell.java
@@ -19,14 +19,15 @@ package org.apache.hadoop.hbase.types;
 
 import com.google.protobuf.CodedInputStream;
 import com.google.protobuf.CodedOutputStream;
+import java.io.IOException;
 import org.apache.hadoop.hbase.protobuf.generated.CellProtos;
 import org.apache.hadoop.hbase.util.PositionedByteRange;
-
-import java.io.IOException;
+import org.apache.yetus.audience.InterfaceAudience;
 
 /**
  * An example for using protobuf objects with {@link DataType} API.
  */
+@InterfaceAudience.Private
 public class PBCell extends PBType<CellProtos.Cell> {
   @Override
   public Class<CellProtos.Cell> encodedClass() {

http://git-wip-us.apache.org/repos/asf/hbase/blob/70c17072/hbase-external-blockcache/pom.xml
----------------------------------------------------------------------
diff --git a/hbase-external-blockcache/pom.xml b/hbase-external-blockcache/pom.xml
index c0ab45f..276a241 100644
--- a/hbase-external-blockcache/pom.xml
+++ b/hbase-external-blockcache/pom.xml
@@ -84,6 +84,10 @@
           <failOnViolation>true</failOnViolation>
         </configuration>
       </plugin>
+      <plugin>
+        <groupId>net.revelc.code</groupId>
+        <artifactId>warbucks-maven-plugin</artifactId>
+      </plugin>
     </plugins>
     <pluginManagement>
       <plugins>

http://git-wip-us.apache.org/repos/asf/hbase/blob/70c17072/hbase-hadoop-compat/pom.xml
----------------------------------------------------------------------
diff --git a/hbase-hadoop-compat/pom.xml b/hbase-hadoop-compat/pom.xml
index d16a791..e8dda8c 100644
--- a/hbase-hadoop-compat/pom.xml
+++ b/hbase-hadoop-compat/pom.xml
@@ -49,6 +49,10 @@
           <groupId>org.apache.maven.plugins</groupId>
           <artifactId>maven-source-plugin</artifactId>
         </plugin>
+          <plugin>
+              <groupId>net.revelc.code</groupId>
+              <artifactId>warbucks-maven-plugin</artifactId>
+          </plugin>
         </plugins>
       <pluginManagement>
         <plugins>

http://git-wip-us.apache.org/repos/asf/hbase/blob/70c17072/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/CompatibilityFactory.java
----------------------------------------------------------------------
diff --git a/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/CompatibilityFactory.java b/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/CompatibilityFactory.java
index 5c1f103..d29e7bc 100644
--- a/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/CompatibilityFactory.java
+++ b/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/CompatibilityFactory.java
@@ -21,12 +21,14 @@ package org.apache.hadoop.hbase;
 import java.util.Iterator;
 import java.util.ServiceLoader;
 
+import org.apache.yetus.audience.InterfaceAudience;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 /**
  * Class that will create many instances of classes provided by the hbase-hadoop{1|2}-compat jars.
  */
+@InterfaceAudience.Private
 public class CompatibilityFactory {
 
   private static final Logger LOG = LoggerFactory.getLogger(CompatibilitySingletonFactory.class);

http://git-wip-us.apache.org/repos/asf/hbase/blob/70c17072/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/CompatibilitySingletonFactory.java
----------------------------------------------------------------------
diff --git a/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/CompatibilitySingletonFactory.java b/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/CompatibilitySingletonFactory.java
index 3dc3f49..0e633b8 100644
--- a/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/CompatibilitySingletonFactory.java
+++ b/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/CompatibilitySingletonFactory.java
@@ -23,6 +23,7 @@ import java.util.Iterator;
 import java.util.Map;
 import java.util.ServiceLoader;
 
+import org.apache.yetus.audience.InterfaceAudience;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -30,6 +31,7 @@ import org.slf4j.LoggerFactory;
  *  Factory for classes supplied by hadoop compatibility modules.  Only one of each class will be
  *  created.
  */
+@InterfaceAudience.Private
 public class CompatibilitySingletonFactory extends CompatibilityFactory {
   public static enum SingletonStorage {
     INSTANCE;

http://git-wip-us.apache.org/repos/asf/hbase/blob/70c17072/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/io/MetricsIOSource.java
----------------------------------------------------------------------
diff --git a/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/io/MetricsIOSource.java b/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/io/MetricsIOSource.java
index 3f27747..c0a8519 100644
--- a/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/io/MetricsIOSource.java
+++ b/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/io/MetricsIOSource.java
@@ -19,7 +19,9 @@
 package org.apache.hadoop.hbase.io;
 
 import org.apache.hadoop.hbase.metrics.BaseSource;
+import org.apache.yetus.audience.InterfaceAudience;
 
+@InterfaceAudience.Private
 public interface MetricsIOSource extends BaseSource {
 
   /**

http://git-wip-us.apache.org/repos/asf/hbase/blob/70c17072/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/io/MetricsIOWrapper.java
----------------------------------------------------------------------
diff --git a/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/io/MetricsIOWrapper.java b/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/io/MetricsIOWrapper.java
index ed07898..3ba8cd5 100644
--- a/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/io/MetricsIOWrapper.java
+++ b/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/io/MetricsIOWrapper.java
@@ -18,6 +18,9 @@
 
 package org.apache.hadoop.hbase.io;
 
+import org.apache.yetus.audience.InterfaceAudience;
+
+@InterfaceAudience.Private
 public interface MetricsIOWrapper {
 
   long getChecksumFailures();

http://git-wip-us.apache.org/repos/asf/hbase/blob/70c17072/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/ipc/MetricsHBaseServerSource.java
----------------------------------------------------------------------
diff --git a/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/ipc/MetricsHBaseServerSource.java b/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/ipc/MetricsHBaseServerSource.java
index 534331a..0833751 100644
--- a/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/ipc/MetricsHBaseServerSource.java
+++ b/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/ipc/MetricsHBaseServerSource.java
@@ -20,7 +20,9 @@
 package org.apache.hadoop.hbase.ipc;
 
 import org.apache.hadoop.hbase.metrics.ExceptionTrackingSource;
+import org.apache.yetus.audience.InterfaceAudience;
 
+@InterfaceAudience.Private
 public interface MetricsHBaseServerSource extends ExceptionTrackingSource {
   String AUTHORIZATION_SUCCESSES_NAME = "authorizationSuccesses";
   String AUTHORIZATION_SUCCESSES_DESC =

http://git-wip-us.apache.org/repos/asf/hbase/blob/70c17072/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/ipc/MetricsHBaseServerSourceFactory.java
----------------------------------------------------------------------
diff --git a/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/ipc/MetricsHBaseServerSourceFactory.java b/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/ipc/MetricsHBaseServerSourceFactory.java
index e9a3348..7f1415a 100644
--- a/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/ipc/MetricsHBaseServerSourceFactory.java
+++ b/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/ipc/MetricsHBaseServerSourceFactory.java
@@ -19,6 +19,9 @@
 
 package org.apache.hadoop.hbase.ipc;
 
+import org.apache.yetus.audience.InterfaceAudience;
+
+@InterfaceAudience.Private
 public abstract class MetricsHBaseServerSourceFactory {
   /**
    * The name of the metrics

http://git-wip-us.apache.org/repos/asf/hbase/blob/70c17072/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/ipc/MetricsHBaseServerWrapper.java
----------------------------------------------------------------------
diff --git a/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/ipc/MetricsHBaseServerWrapper.java b/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/ipc/MetricsHBaseServerWrapper.java
index b272cd0..c80d1a9 100644
--- a/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/ipc/MetricsHBaseServerWrapper.java
+++ b/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/ipc/MetricsHBaseServerWrapper.java
@@ -19,6 +19,9 @@
 
 package org.apache.hadoop.hbase.ipc;
 
+import org.apache.yetus.audience.InterfaceAudience;
+
+@InterfaceAudience.Private
 public interface MetricsHBaseServerWrapper {
   long getTotalQueueSize();
 

http://git-wip-us.apache.org/repos/asf/hbase/blob/70c17072/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/master/MetricsAssignmentManagerSource.java
----------------------------------------------------------------------
diff --git a/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/master/MetricsAssignmentManagerSource.java b/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/master/MetricsAssignmentManagerSource.java
index 4e4a9e0..92d447c 100644
--- a/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/master/MetricsAssignmentManagerSource.java
+++ b/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/master/MetricsAssignmentManagerSource.java
@@ -20,7 +20,9 @@ package org.apache.hadoop.hbase.master;
 
 import org.apache.hadoop.hbase.metrics.BaseSource;
 import org.apache.hadoop.hbase.metrics.OperationMetrics;
+import org.apache.yetus.audience.InterfaceAudience;
 
+@InterfaceAudience.Private
 public interface MetricsAssignmentManagerSource extends BaseSource {
 
   /**

http://git-wip-us.apache.org/repos/asf/hbase/blob/70c17072/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/master/MetricsMasterFileSystemSource.java
----------------------------------------------------------------------
diff --git a/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/master/MetricsMasterFileSystemSource.java b/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/master/MetricsMasterFileSystemSource.java
index 6cf942b..91dc71a 100644
--- a/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/master/MetricsMasterFileSystemSource.java
+++ b/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/master/MetricsMasterFileSystemSource.java
@@ -19,7 +19,9 @@
 package org.apache.hadoop.hbase.master;
 
 import org.apache.hadoop.hbase.metrics.BaseSource;
+import org.apache.yetus.audience.InterfaceAudience;
 
+@InterfaceAudience.Private
 public interface MetricsMasterFileSystemSource extends BaseSource {
 
   /**

http://git-wip-us.apache.org/repos/asf/hbase/blob/70c17072/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/master/MetricsMasterProcSource.java
----------------------------------------------------------------------
diff --git a/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/master/MetricsMasterProcSource.java b/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/master/MetricsMasterProcSource.java
index 51a17a8..db4f25e 100644
--- a/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/master/MetricsMasterProcSource.java
+++ b/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/master/MetricsMasterProcSource.java
@@ -19,10 +19,12 @@
 package org.apache.hadoop.hbase.master;
 
 import org.apache.hadoop.hbase.metrics.BaseSource;
+import org.apache.yetus.audience.InterfaceAudience;
 
 /**
  * Interface that classes that expose metrics about the master will implement.
  */
+@InterfaceAudience.Private
 public interface MetricsMasterProcSource extends BaseSource {
 
   /**


[2/4] hbase git commit: HBASE-20212 Make all Public classes have InterfaceAudience category

Posted by ch...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase/blob/70c17072/hbase-server/src/main/java/org/apache/hadoop/hbase/JMXListener.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/JMXListener.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/JMXListener.java
index 6fdc77e..5008354 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/JMXListener.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/JMXListener.java
@@ -18,14 +18,6 @@
  */
 package org.apache.hadoop.hbase;
 
-import com.google.protobuf.Service;
-
-import org.apache.hadoop.conf.Configuration;
-import org.apache.hadoop.hbase.CoprocessorEnvironment;
-import org.apache.hadoop.hbase.coprocessor.*;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
 import java.io.IOException;
 import java.lang.management.ManagementFactory;
 import java.rmi.registry.LocateRegistry;
@@ -34,13 +26,20 @@ import java.rmi.server.RMIClientSocketFactory;
 import java.rmi.server.RMIServerSocketFactory;
 import java.rmi.server.UnicastRemoteObject;
 import java.util.HashMap;
-import java.util.Optional;
-
 import javax.management.MBeanServer;
 import javax.management.remote.JMXConnectorServer;
 import javax.management.remote.JMXConnectorServerFactory;
 import javax.management.remote.JMXServiceURL;
 import javax.management.remote.rmi.RMIConnectorServer;
+import org.apache.hadoop.conf.Configuration;
+import org.apache.hadoop.hbase.coprocessor.MasterCoprocessor;
+import org.apache.hadoop.hbase.coprocessor.MasterCoprocessorEnvironment;
+import org.apache.hadoop.hbase.coprocessor.RegionCoprocessorEnvironment;
+import org.apache.hadoop.hbase.coprocessor.RegionServerCoprocessor;
+import org.apache.hadoop.hbase.coprocessor.RegionServerCoprocessorEnvironment;
+import org.apache.yetus.audience.InterfaceAudience;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * Pluggable JMX Agent for HBase(to fix the 2 random TCP ports issue
@@ -49,6 +48,7 @@ import javax.management.remote.rmi.RMIConnectorServer;
  * 2)support password authentication
  * 3)support subset of SSL (with default configuration)
  */
+@InterfaceAudience.Private
 public class JMXListener implements MasterCoprocessor, RegionServerCoprocessor {
   private static final Logger LOG = LoggerFactory.getLogger(JMXListener.class);
   public static final String RMI_REGISTRY_PORT_CONF_KEY = ".rmi.registry.port";

http://git-wip-us.apache.org/repos/asf/hbase/blob/70c17072/hbase-server/src/main/java/org/apache/hadoop/hbase/SslRMIClientSocketFactorySecure.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/SslRMIClientSocketFactorySecure.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/SslRMIClientSocketFactorySecure.java
index d505d6f..5dffb73 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/SslRMIClientSocketFactorySecure.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/SslRMIClientSocketFactorySecure.java
@@ -13,14 +13,15 @@ package org.apache.hadoop.hbase;
 import java.io.IOException;
 import java.net.Socket;
 import java.util.ArrayList;
-
 import javax.net.ssl.SSLSocket;
 import javax.rmi.ssl.SslRMIClientSocketFactory;
+import org.apache.yetus.audience.InterfaceAudience;
 
 /**
  * Avoid SSL V3.0 "Poodle" Vulnerability - CVE-2014-3566
  */
 @SuppressWarnings("serial")
+@InterfaceAudience.Private
 public class SslRMIClientSocketFactorySecure extends SslRMIClientSocketFactory {
   @Override
   public Socket createSocket(String host, int port) throws IOException {

http://git-wip-us.apache.org/repos/asf/hbase/blob/70c17072/hbase-server/src/main/java/org/apache/hadoop/hbase/SslRMIServerSocketFactorySecure.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/SslRMIServerSocketFactorySecure.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/SslRMIServerSocketFactorySecure.java
index 3583afe..8a92236 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/SslRMIServerSocketFactorySecure.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/SslRMIServerSocketFactorySecure.java
@@ -14,14 +14,15 @@ import java.io.IOException;
 import java.net.ServerSocket;
 import java.net.Socket;
 import java.util.ArrayList;
-
 import javax.net.ssl.SSLSocket;
 import javax.net.ssl.SSLSocketFactory;
 import javax.rmi.ssl.SslRMIServerSocketFactory;
+import org.apache.yetus.audience.InterfaceAudience;
 
 /**
  * Avoid SSL V3.0 "Poodle" Vulnerability - CVE-2014-3566
  */
+@InterfaceAudience.Private
 public class SslRMIServerSocketFactorySecure extends SslRMIServerSocketFactory {
   // If you add more constructors, you may have to change the rest of this implementation,
   // which assumes an empty constructor, i.e. there are no specially enabled protocols or

http://git-wip-us.apache.org/repos/asf/hbase/blob/70c17072/hbase-server/src/main/java/org/apache/hadoop/hbase/ZNodeClearer.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/ZNodeClearer.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/ZNodeClearer.java
index 3e911a8..f0b3a41 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/ZNodeClearer.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/ZNodeClearer.java
@@ -25,13 +25,13 @@ import java.io.FileNotFoundException;
 import java.io.FileReader;
 import java.io.FileWriter;
 import java.io.IOException;
-
 import org.apache.hadoop.conf.Configuration;
 import org.apache.hadoop.hbase.master.balancer.BaseLoadBalancer;
 import org.apache.hadoop.hbase.zookeeper.MasterAddressTracker;
 import org.apache.hadoop.hbase.zookeeper.ZKUtil;
 import org.apache.hadoop.hbase.zookeeper.ZKWatcher;
 import org.apache.hadoop.hbase.zookeeper.ZNodePaths;
+import org.apache.yetus.audience.InterfaceAudience;
 import org.apache.zookeeper.KeeperException;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -48,7 +48,8 @@ import org.slf4j.LoggerFactory;
  * file, and use it to delete it. for a master, as the znode path constant whatever the server, we
  * check its content to make sure that the backup server is not now in charge.</p>
  */
-public class ZNodeClearer {
+@InterfaceAudience.Private
+public final class ZNodeClearer {
   private static final Logger LOG = LoggerFactory.getLogger(ZNodeClearer.class);
 
   private ZNodeClearer() {}

http://git-wip-us.apache.org/repos/asf/hbase/blob/70c17072/hbase-server/src/main/java/org/apache/hadoop/hbase/backup/example/HFileArchiveTableMonitor.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/backup/example/HFileArchiveTableMonitor.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/backup/example/HFileArchiveTableMonitor.java
index 93c9690..a4daaf0 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/backup/example/HFileArchiveTableMonitor.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/backup/example/HFileArchiveTableMonitor.java
@@ -20,7 +20,7 @@ package org.apache.hadoop.hbase.backup.example;
 import java.util.List;
 import java.util.Set;
 import java.util.TreeSet;
-
+import org.apache.yetus.audience.InterfaceAudience;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -30,6 +30,7 @@ import org.slf4j.LoggerFactory;
  * <p>
  * It is internally synchronized to ensure consistent view of the table state.
  */
+@InterfaceAudience.Private
 public class HFileArchiveTableMonitor {
   private static final Logger LOG = LoggerFactory.getLogger(HFileArchiveTableMonitor.class);
   private final Set<String> archivedTables = new TreeSet<>();

http://git-wip-us.apache.org/repos/asf/hbase/blob/70c17072/hbase-server/src/main/java/org/apache/hadoop/hbase/fs/HFileSystem.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/fs/HFileSystem.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/fs/HFileSystem.java
index 9ea67c1..bc3d85e 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/fs/HFileSystem.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/fs/HFileSystem.java
@@ -20,6 +20,7 @@
 
 package org.apache.hadoop.hbase.fs;
 
+import edu.umd.cs.findbugs.annotations.Nullable;
 import java.io.Closeable;
 import java.io.IOException;
 import java.lang.reflect.Field;
@@ -30,7 +31,6 @@ import java.lang.reflect.Modifier;
 import java.lang.reflect.Proxy;
 import java.lang.reflect.UndeclaredThrowableException;
 import java.net.URI;
-
 import org.apache.hadoop.conf.Configuration;
 import org.apache.hadoop.fs.FSDataOutputStream;
 import org.apache.hadoop.fs.FileSystem;
@@ -52,16 +52,16 @@ import org.apache.hadoop.hdfs.protocol.LocatedBlocks;
 import org.apache.hadoop.hdfs.server.blockmanagement.BlockStoragePolicySuite;
 import org.apache.hadoop.ipc.RPC;
 import org.apache.hadoop.util.Progressable;
+import org.apache.yetus.audience.InterfaceAudience;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import edu.umd.cs.findbugs.annotations.Nullable;
-
 /**
  * An encapsulation for the FileSystem object that hbase uses to access
  * data. This class allows the flexibility of using
  * separate filesystem objects for reading and writing hfiles and wals.
  */
+@InterfaceAudience.Private
 public class HFileSystem extends FilterFileSystem {
   public static final Logger LOG = LoggerFactory.getLogger(HFileSystem.class);
 
@@ -128,8 +128,8 @@ public class HFileSystem extends FilterFileSystem {
   }
 
   /**
-   * Returns the filesystem that is specially setup for 
-   * doing reads from storage. This object avoids doing 
+   * Returns the filesystem that is specially setup for
+   * doing reads from storage. This object avoids doing
    * checksum verifications for reads.
    * @return The FileSystem object that can be used to read data
    *         from files.
@@ -473,7 +473,7 @@ public class HFileSystem extends FilterFileSystem {
   }
 
   /**
-   * The org.apache.hadoop.fs.FilterFileSystem does not yet support 
+   * The org.apache.hadoop.fs.FilterFileSystem does not yet support
    * createNonRecursive. This is a hadoop bug and when it is fixed in Hadoop,
    * this definition will go away.
    */

http://git-wip-us.apache.org/repos/asf/hbase/blob/70c17072/hbase-server/src/main/java/org/apache/hadoop/hbase/io/MetricsIO.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/io/MetricsIO.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/io/MetricsIO.java
index 344819b..3634ccb 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/io/MetricsIO.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/io/MetricsIO.java
@@ -20,8 +20,11 @@ package org.apache.hadoop.hbase.io;
 
 import org.apache.hadoop.hbase.CompatibilitySingletonFactory;
 import org.apache.hadoop.hbase.regionserver.MetricsRegionServerSourceFactory;
+import org.apache.yetus.audience.InterfaceAudience;
+
 import org.apache.hbase.thirdparty.com.google.common.annotations.VisibleForTesting;
 
+@InterfaceAudience.Private
 public class MetricsIO {
 
   private final MetricsIOSource source;

http://git-wip-us.apache.org/repos/asf/hbase/blob/70c17072/hbase-server/src/main/java/org/apache/hadoop/hbase/io/MetricsIOWrapperImpl.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/io/MetricsIOWrapperImpl.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/io/MetricsIOWrapperImpl.java
index 82eb74c..1ce762a 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/io/MetricsIOWrapperImpl.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/io/MetricsIOWrapperImpl.java
@@ -19,7 +19,9 @@
 package org.apache.hadoop.hbase.io;
 
 import org.apache.hadoop.hbase.io.hfile.HFile;
+import org.apache.yetus.audience.InterfaceAudience;
 
+@InterfaceAudience.Private
 public class MetricsIOWrapperImpl implements MetricsIOWrapper {
 
   @Override

http://git-wip-us.apache.org/repos/asf/hbase/blob/70c17072/hbase-server/src/main/java/org/apache/hadoop/hbase/io/hfile/AgeSnapshot.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/io/hfile/AgeSnapshot.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/io/hfile/AgeSnapshot.java
index bb80abe..054d54b 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/io/hfile/AgeSnapshot.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/io/hfile/AgeSnapshot.java
@@ -19,11 +19,13 @@ package org.apache.hadoop.hbase.io.hfile;
 
 import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
 import org.apache.hadoop.hbase.metrics.impl.FastLongHistogram;
+import org.apache.yetus.audience.InterfaceAudience;
 
 /**
  * Snapshot of block cache age in cache.
  * This object is preferred because we can control how it is serialized out when JSON'ing.
  */
+@InterfaceAudience.Private
 @JsonIgnoreProperties({"ageHistogram", "snapshot"})
 public class AgeSnapshot {
 

http://git-wip-us.apache.org/repos/asf/hbase/blob/70c17072/hbase-server/src/main/java/org/apache/hadoop/hbase/io/hfile/BlockPriority.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/io/hfile/BlockPriority.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/io/hfile/BlockPriority.java
index 9d4ac87..d2ac6f0 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/io/hfile/BlockPriority.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/io/hfile/BlockPriority.java
@@ -17,6 +17,9 @@
  */
 package org.apache.hadoop.hbase.io.hfile;
 
+import org.apache.yetus.audience.InterfaceAudience;
+
+@InterfaceAudience.Private
 public enum BlockPriority {
   /**
    * Accessed a single time (used for scan-resistance)

http://git-wip-us.apache.org/repos/asf/hbase/blob/70c17072/hbase-server/src/main/java/org/apache/hadoop/hbase/io/hfile/BlockWithScanInfo.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/io/hfile/BlockWithScanInfo.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/io/hfile/BlockWithScanInfo.java
index 4a5bb64..b8f8357 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/io/hfile/BlockWithScanInfo.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/io/hfile/BlockWithScanInfo.java
@@ -18,11 +18,13 @@
 package org.apache.hadoop.hbase.io.hfile;
 
 import org.apache.hadoop.hbase.Cell;
+import org.apache.yetus.audience.InterfaceAudience;
 
 /**
  * BlockWithScanInfo is wrapper class for HFileBlock with other attributes. These attributes are
  * supposed to be much cheaper to be maintained in each caller thread than in HFileBlock itself.
  */
+@InterfaceAudience.Private
 public class BlockWithScanInfo {
   private final HFileBlock hFileBlock;
   /**

http://git-wip-us.apache.org/repos/asf/hbase/blob/70c17072/hbase-server/src/main/java/org/apache/hadoop/hbase/io/hfile/PrefetchExecutor.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/io/hfile/PrefetchExecutor.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/io/hfile/PrefetchExecutor.java
index ce8d533..175fb83 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/io/hfile/PrefetchExecutor.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/io/hfile/PrefetchExecutor.java
@@ -28,15 +28,16 @@ import java.util.concurrent.ScheduledThreadPoolExecutor;
 import java.util.concurrent.ThreadFactory;
 import java.util.concurrent.TimeUnit;
 import java.util.regex.Pattern;
-
 import org.apache.hadoop.conf.Configuration;
 import org.apache.hadoop.fs.Path;
 import org.apache.hadoop.hbase.HBaseConfiguration;
 import org.apache.hadoop.hbase.HConstants;
+import org.apache.yetus.audience.InterfaceAudience;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-public class PrefetchExecutor {
+@InterfaceAudience.Private
+public final class PrefetchExecutor {
 
   private static final Logger LOG = LoggerFactory.getLogger(PrefetchExecutor.class);
 
@@ -130,9 +131,10 @@ public class PrefetchExecutor {
   public static boolean isCompleted(Path path) {
     Future<?> future = prefetchFutures.get(path);
     if (future != null) {
-      return future.isDone(); 
+      return future.isDone();
     }
     return true;
   }
 
+  private PrefetchExecutor() {}
 }

http://git-wip-us.apache.org/repos/asf/hbase/blob/70c17072/hbase-server/src/main/java/org/apache/hadoop/hbase/ipc/EmptyServiceNameException.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/ipc/EmptyServiceNameException.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/ipc/EmptyServiceNameException.java
index 2fab38a..9ca2927 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/ipc/EmptyServiceNameException.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/ipc/EmptyServiceNameException.java
@@ -17,5 +17,8 @@
  */
 package org.apache.hadoop.hbase.ipc;
 
+import org.apache.yetus.audience.InterfaceAudience;
+
+@InterfaceAudience.Private
 @SuppressWarnings("serial")
 public class EmptyServiceNameException extends FatalConnectionException {}

http://git-wip-us.apache.org/repos/asf/hbase/blob/70c17072/hbase-server/src/main/java/org/apache/hadoop/hbase/ipc/FifoRpcScheduler.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/ipc/FifoRpcScheduler.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/ipc/FifoRpcScheduler.java
index d379e5f..ce0f86d 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/ipc/FifoRpcScheduler.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/ipc/FifoRpcScheduler.java
@@ -23,9 +23,9 @@ import java.util.concurrent.ArrayBlockingQueue;
 import java.util.concurrent.ThreadPoolExecutor;
 import java.util.concurrent.TimeUnit;
 import java.util.concurrent.atomic.AtomicInteger;
-
 import org.apache.hadoop.conf.Configuration;
 import org.apache.hadoop.hbase.DaemonThreadFactory;
+import org.apache.yetus.audience.InterfaceAudience;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -36,6 +36,7 @@ import org.apache.hbase.thirdparty.io.netty.util.internal.StringUtil;
  *
  * This can be used for HMaster, where no prioritization is needed.
  */
+@InterfaceAudience.Private
 public class FifoRpcScheduler extends RpcScheduler {
   private static final Logger LOG = LoggerFactory.getLogger(FifoRpcScheduler.class);
   private final int handlerCount;

http://git-wip-us.apache.org/repos/asf/hbase/blob/70c17072/hbase-server/src/main/java/org/apache/hadoop/hbase/ipc/MetricsHBaseServerWrapperImpl.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/ipc/MetricsHBaseServerWrapperImpl.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/ipc/MetricsHBaseServerWrapperImpl.java
index 4afcc33..8753ebb 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/ipc/MetricsHBaseServerWrapperImpl.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/ipc/MetricsHBaseServerWrapperImpl.java
@@ -19,6 +19,9 @@
 
 package org.apache.hadoop.hbase.ipc;
 
+import org.apache.yetus.audience.InterfaceAudience;
+
+@InterfaceAudience.Private
 public class MetricsHBaseServerWrapperImpl implements MetricsHBaseServerWrapper {
 
   private RpcServer server;

http://git-wip-us.apache.org/repos/asf/hbase/blob/70c17072/hbase-server/src/main/java/org/apache/hadoop/hbase/ipc/QosPriority.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/ipc/QosPriority.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/ipc/QosPriority.java
index 9e51d2c..ca1546c 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/ipc/QosPriority.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/ipc/QosPriority.java
@@ -19,14 +19,15 @@ package org.apache.hadoop.hbase.ipc;
 
 import java.lang.annotation.Retention;
 import java.lang.annotation.RetentionPolicy;
-
 import org.apache.hadoop.hbase.HConstants;
+import org.apache.yetus.audience.InterfaceAudience;
 
 /**
  * Annotation which decorates RPC methods to denote the relative priority among other RPCs in the
  * same server. Provides a basic notion of quality of service (QOS).
  */
 @Retention(RetentionPolicy.RUNTIME)
+@InterfaceAudience.Private
 public @interface QosPriority {
   int priority() default HConstants.NORMAL_QOS;
 }

http://git-wip-us.apache.org/repos/asf/hbase/blob/70c17072/hbase-server/src/main/java/org/apache/hadoop/hbase/ipc/UnknownServiceException.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/ipc/UnknownServiceException.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/ipc/UnknownServiceException.java
index 87e78c2..5b4a2c2 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/ipc/UnknownServiceException.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/ipc/UnknownServiceException.java
@@ -17,7 +17,10 @@
  */
 package org.apache.hadoop.hbase.ipc;
 
+import org.apache.yetus.audience.InterfaceAudience;
+
 @SuppressWarnings("serial")
+@InterfaceAudience.Private
 public class UnknownServiceException extends FatalConnectionException {
   UnknownServiceException(final String msg) {
     super(msg);

http://git-wip-us.apache.org/repos/asf/hbase/blob/70c17072/hbase-server/src/main/java/org/apache/hadoop/hbase/master/MasterAnnotationReadingPriorityFunction.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/MasterAnnotationReadingPriorityFunction.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/MasterAnnotationReadingPriorityFunction.java
index f25f3bf..61eb28f 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/MasterAnnotationReadingPriorityFunction.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/MasterAnnotationReadingPriorityFunction.java
@@ -17,16 +17,19 @@
  */
 package org.apache.hadoop.hbase.master;
 
-import org.apache.hbase.thirdparty.com.google.protobuf.Message;
 import org.apache.hadoop.hbase.HConstants;
 import org.apache.hadoop.hbase.TableName;
+import org.apache.hadoop.hbase.regionserver.AnnotationReadingPriorityFunction;
+import org.apache.hadoop.hbase.regionserver.RSRpcServices;
+import org.apache.hadoop.hbase.security.User;
+import org.apache.yetus.audience.InterfaceAudience;
+
+import org.apache.hbase.thirdparty.com.google.protobuf.Message;
+
 import org.apache.hadoop.hbase.shaded.protobuf.ProtobufUtil;
 import org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos;
 import org.apache.hadoop.hbase.shaded.protobuf.generated.RPCProtos;
 import org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProtos;
-import org.apache.hadoop.hbase.regionserver.AnnotationReadingPriorityFunction;
-import org.apache.hadoop.hbase.regionserver.RSRpcServices;
-import org.apache.hadoop.hbase.security.User;
 
 /**
  * Priority function specifically for the master.
@@ -41,6 +44,7 @@ import org.apache.hadoop.hbase.security.User;
  * that all requests to transition meta are handled in different threads from other report region
  * in transition calls.
  */
+@InterfaceAudience.Private
 public class MasterAnnotationReadingPriorityFunction extends AnnotationReadingPriorityFunction {
   public MasterAnnotationReadingPriorityFunction(final RSRpcServices rpcServices) {
     this(rpcServices, rpcServices.getClass());

http://git-wip-us.apache.org/repos/asf/hbase/blob/70c17072/hbase-server/src/main/java/org/apache/hadoop/hbase/master/MetricsAssignmentManager.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/MetricsAssignmentManager.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/MetricsAssignmentManager.java
index 7d7dd81..d13ffe9 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/MetricsAssignmentManager.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/MetricsAssignmentManager.java
@@ -18,11 +18,13 @@
 
 package org.apache.hadoop.hbase.master;
 
+import static org.apache.hadoop.hbase.master.MetricsMaster.convertToProcedureMetrics;
+
 import org.apache.hadoop.hbase.CompatibilitySingletonFactory;
 import org.apache.hadoop.hbase.procedure2.ProcedureMetrics;
+import org.apache.yetus.audience.InterfaceAudience;
 
-import static org.apache.hadoop.hbase.master.MetricsMaster.convertToProcedureMetrics;
-
+@InterfaceAudience.Private
 public class MetricsAssignmentManager {
   private final MetricsAssignmentManagerSource assignmentManagerSource;
 

http://git-wip-us.apache.org/repos/asf/hbase/blob/70c17072/hbase-server/src/main/java/org/apache/hadoop/hbase/master/MetricsMasterFileSystem.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/MetricsMasterFileSystem.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/MetricsMasterFileSystem.java
index 45dbeb8..609ac19 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/MetricsMasterFileSystem.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/MetricsMasterFileSystem.java
@@ -19,7 +19,9 @@
 package org.apache.hadoop.hbase.master;
 
 import org.apache.hadoop.hbase.CompatibilitySingletonFactory;
+import org.apache.yetus.audience.InterfaceAudience;
 
+@InterfaceAudience.Private
 public class MetricsMasterFileSystem {
 
   private final MetricsMasterFileSystemSource source;

http://git-wip-us.apache.org/repos/asf/hbase/blob/70c17072/hbase-server/src/main/java/org/apache/hadoop/hbase/master/MetricsSnapshot.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/MetricsSnapshot.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/MetricsSnapshot.java
index 2d7c797..483552d 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/MetricsSnapshot.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/MetricsSnapshot.java
@@ -19,7 +19,9 @@
 package org.apache.hadoop.hbase.master;
 
 import org.apache.hadoop.hbase.CompatibilitySingletonFactory;
+import org.apache.yetus.audience.InterfaceAudience;
 
+@InterfaceAudience.Private
 public class MetricsSnapshot {
 
   private final MetricsSnapshotSource source;

http://git-wip-us.apache.org/repos/asf/hbase/blob/70c17072/hbase-server/src/main/java/org/apache/hadoop/hbase/master/balancer/BaseLoadBalancer.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/balancer/BaseLoadBalancer.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/balancer/BaseLoadBalancer.java
index 36f57f2..44dfe41 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/balancer/BaseLoadBalancer.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/balancer/BaseLoadBalancer.java
@@ -51,6 +51,7 @@ import org.apache.hadoop.hbase.master.MasterServices;
 import org.apache.hadoop.hbase.master.RackManager;
 import org.apache.hadoop.hbase.master.RegionPlan;
 import org.apache.hadoop.hbase.master.balancer.BaseLoadBalancer.Cluster.Action.Type;
+import org.apache.yetus.audience.InterfaceAudience;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -67,6 +68,7 @@ import org.apache.hbase.thirdparty.com.google.common.collect.Sets;
  * actual balancing algorithm.
  *
  */
+@InterfaceAudience.Private
 public abstract class BaseLoadBalancer implements LoadBalancer {
   protected static final int MIN_SERVER_BALANCE = 2;
   private volatile boolean stopped = false;

http://git-wip-us.apache.org/repos/asf/hbase/blob/70c17072/hbase-server/src/main/java/org/apache/hadoop/hbase/master/balancer/ClusterLoadState.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/balancer/ClusterLoadState.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/balancer/ClusterLoadState.java
index a783a07..5d1e1cc 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/balancer/ClusterLoadState.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/balancer/ClusterLoadState.java
@@ -21,13 +21,14 @@ import java.util.List;
 import java.util.Map;
 import java.util.NavigableMap;
 import java.util.TreeMap;
-
 import org.apache.hadoop.hbase.ServerName;
 import org.apache.hadoop.hbase.client.RegionInfo;
+import org.apache.yetus.audience.InterfaceAudience;
 
 /**
  * Class used to hold the current state of the cluster and how balanced it is.
  */
+@InterfaceAudience.Private
 public class ClusterLoadState {
   private final Map<ServerName, List<RegionInfo>> clusterState;
   private final NavigableMap<ServerAndLoad, List<RegionInfo>> serversByLoad;

http://git-wip-us.apache.org/repos/asf/hbase/blob/70c17072/hbase-server/src/main/java/org/apache/hadoop/hbase/master/balancer/FavoredStochasticBalancer.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/balancer/FavoredStochasticBalancer.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/balancer/FavoredStochasticBalancer.java
index b652610..5a6659e 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/balancer/FavoredStochasticBalancer.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/balancer/FavoredStochasticBalancer.java
@@ -44,6 +44,7 @@ import org.apache.hadoop.hbase.master.LoadBalancer;
 import org.apache.hadoop.hbase.master.MasterServices;
 import org.apache.hadoop.hbase.master.RegionPlan;
 import org.apache.hadoop.hbase.util.Pair;
+import org.apache.yetus.audience.InterfaceAudience;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -66,6 +67,7 @@ import org.apache.hbase.thirdparty.com.google.common.collect.Sets;
  * {@link org.apache.hadoop.hbase.master.balancer.StochasticLoadBalancer.CandidateGenerator}
  *
  */
+@InterfaceAudience.Private
 public class FavoredStochasticBalancer extends StochasticLoadBalancer implements
     FavoredNodesPromoter {
 

http://git-wip-us.apache.org/repos/asf/hbase/blob/70c17072/hbase-server/src/main/java/org/apache/hadoop/hbase/master/balancer/MetricsBalancer.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/balancer/MetricsBalancer.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/balancer/MetricsBalancer.java
index 3707536..fdaf3cf 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/balancer/MetricsBalancer.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/balancer/MetricsBalancer.java
@@ -19,10 +19,12 @@
 package org.apache.hadoop.hbase.master.balancer;
 
 import org.apache.hadoop.hbase.CompatibilitySingletonFactory;
+import org.apache.yetus.audience.InterfaceAudience;
 
 /**
  * Faced for exposing metrics about the balancer.
  */
+@InterfaceAudience.Private
 public class MetricsBalancer {
 
   private MetricsBalancerSource source = null;
@@ -30,9 +32,9 @@ public class MetricsBalancer {
   public MetricsBalancer() {
     initSource();
   }
-  
+
   /**
-   * A function to instantiate the metrics source. This function can be overridden in its 
+   * A function to instantiate the metrics source. This function can be overridden in its
    * subclasses to provide extended sources
    */
   protected void initSource() {

http://git-wip-us.apache.org/repos/asf/hbase/blob/70c17072/hbase-server/src/main/java/org/apache/hadoop/hbase/master/balancer/MetricsStochasticBalancer.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/balancer/MetricsStochasticBalancer.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/balancer/MetricsStochasticBalancer.java
index 850a9f5..ee24ff3 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/balancer/MetricsStochasticBalancer.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/balancer/MetricsStochasticBalancer.java
@@ -19,11 +19,13 @@
 package org.apache.hadoop.hbase.master.balancer;
 
 import org.apache.hadoop.hbase.CompatibilitySingletonFactory;
+import org.apache.yetus.audience.InterfaceAudience;
 
 /**
  * This metrics balancer uses extended source for stochastic load balancer
  * to report its related metrics to JMX. For details, refer to HBASE-13965
  */
+@InterfaceAudience.Private
 public class MetricsStochasticBalancer extends MetricsBalancer {
   /**
    * Use the stochastic source instead of the default source.

http://git-wip-us.apache.org/repos/asf/hbase/blob/70c17072/hbase-server/src/main/java/org/apache/hadoop/hbase/master/cleaner/BaseFileCleanerDelegate.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/cleaner/BaseFileCleanerDelegate.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/cleaner/BaseFileCleanerDelegate.java
index ed0ec9f..b587200 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/cleaner/BaseFileCleanerDelegate.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/cleaner/BaseFileCleanerDelegate.java
@@ -17,17 +17,18 @@
  */
 package org.apache.hadoop.hbase.master.cleaner;
 
+import java.util.Map;
 import org.apache.hadoop.fs.FileStatus;
 import org.apache.hadoop.hbase.BaseConfigurable;
+import org.apache.yetus.audience.InterfaceAudience;
 
 import org.apache.hbase.thirdparty.com.google.common.collect.Iterables;
 
-import java.util.Map;
-
 /**
  * Base class for file cleaners which allows subclasses to implement a simple
  * isFileDeletable method (which used to be the FileCleanerDelegate contract).
  */
+@InterfaceAudience.Private
 public abstract class BaseFileCleanerDelegate extends BaseConfigurable
 implements FileCleanerDelegate {
 

http://git-wip-us.apache.org/repos/asf/hbase/blob/70c17072/hbase-server/src/main/java/org/apache/hadoop/hbase/master/cleaner/CleanerChore.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/cleaner/CleanerChore.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/cleaner/CleanerChore.java
index fdf5141..46f6217 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/cleaner/CleanerChore.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/cleaner/CleanerChore.java
@@ -17,13 +17,6 @@
  */
 package org.apache.hadoop.hbase.master.cleaner;
 
-import org.apache.hadoop.hbase.conf.ConfigurationObserver;
-import org.apache.hbase.thirdparty.com.google.common.annotations.VisibleForTesting;
-import org.apache.hbase.thirdparty.com.google.common.base.Predicate;
-import org.apache.hbase.thirdparty.com.google.common.collect.ImmutableSet;
-import org.apache.hbase.thirdparty.com.google.common.collect.Iterables;
-import org.apache.hbase.thirdparty.com.google.common.collect.Lists;
-
 import java.io.IOException;
 import java.util.Comparator;
 import java.util.HashMap;
@@ -34,24 +27,32 @@ import java.util.concurrent.ExecutionException;
 import java.util.concurrent.ForkJoinPool;
 import java.util.concurrent.RecursiveTask;
 import java.util.concurrent.atomic.AtomicBoolean;
-
 import org.apache.hadoop.conf.Configuration;
 import org.apache.hadoop.fs.FileStatus;
 import org.apache.hadoop.fs.FileSystem;
 import org.apache.hadoop.fs.Path;
 import org.apache.hadoop.hbase.ScheduledChore;
 import org.apache.hadoop.hbase.Stoppable;
+import org.apache.hadoop.hbase.conf.ConfigurationObserver;
 import org.apache.hadoop.hbase.util.FSUtils;
 import org.apache.hadoop.ipc.RemoteException;
+import org.apache.yetus.audience.InterfaceAudience;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
+import org.apache.hbase.thirdparty.com.google.common.annotations.VisibleForTesting;
+import org.apache.hbase.thirdparty.com.google.common.base.Predicate;
+import org.apache.hbase.thirdparty.com.google.common.collect.ImmutableSet;
+import org.apache.hbase.thirdparty.com.google.common.collect.Iterables;
+import org.apache.hbase.thirdparty.com.google.common.collect.Lists;
+
 /**
  * Abstract Cleaner that uses a chain of delegates to clean a directory of files
  * @param <T> Cleaner delegate class that is dynamically loaded from configuration
  */
 @edu.umd.cs.findbugs.annotations.SuppressWarnings(value="ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD",
     justification="TODO: Fix. It is wonky have static pool initialized from instance")
+@InterfaceAudience.Private
 public abstract class CleanerChore<T extends FileCleanerDelegate> extends ScheduledChore
     implements ConfigurationObserver {
 
@@ -315,7 +316,7 @@ public abstract class CleanerChore<T extends FileCleanerDelegate> extends Schedu
       }
 
       Iterable<FileStatus> filteredFiles = cleaner.getDeletableFiles(deletableValidFiles);
-      
+
       // trace which cleaner is holding on to each file
       if (LOG.isTraceEnabled()) {
         ImmutableSet<FileStatus> filteredFileSet = ImmutableSet.copyOf(filteredFiles);
@@ -325,10 +326,10 @@ public abstract class CleanerChore<T extends FileCleanerDelegate> extends Schedu
           }
         }
       }
-      
+
       deletableValidFiles = filteredFiles;
     }
-    
+
     Iterable<FileStatus> filesToDelete = Iterables.concat(invalidFiles, deletableValidFiles);
     return deleteFiles(filesToDelete) == files.size();
   }

http://git-wip-us.apache.org/repos/asf/hbase/blob/70c17072/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/RSProcedureDispatcher.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/RSProcedureDispatcher.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/RSProcedureDispatcher.java
index 2c87745..2b76449 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/RSProcedureDispatcher.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/RSProcedureDispatcher.java
@@ -24,7 +24,6 @@ import java.util.List;
 import java.util.Set;
 import java.util.concurrent.Callable;
 import java.util.concurrent.TimeUnit;
-
 import org.apache.hadoop.hbase.DoNotRetryIOException;
 import org.apache.hadoop.hbase.ServerName;
 import org.apache.hadoop.hbase.client.RegionInfo;
@@ -34,12 +33,15 @@ import org.apache.hadoop.hbase.master.ServerListener;
 import org.apache.hadoop.hbase.procedure2.RemoteProcedureDispatcher;
 import org.apache.hadoop.hbase.util.EnvironmentEdgeManager;
 import org.apache.hadoop.ipc.RemoteException;
+import org.apache.yetus.audience.InterfaceAudience;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
+
 import org.apache.hbase.thirdparty.com.google.common.collect.ArrayListMultimap;
 import org.apache.hbase.thirdparty.com.google.protobuf.RpcCallback;
 import org.apache.hbase.thirdparty.com.google.protobuf.RpcController;
 import org.apache.hbase.thirdparty.com.google.protobuf.ServiceException;
+
 import org.apache.hadoop.hbase.shaded.protobuf.ProtobufUtil;
 import org.apache.hadoop.hbase.shaded.protobuf.RequestConverter;
 import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.AdminService;
@@ -53,6 +55,7 @@ import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.OpenRegionR
 /**
  * A remote procecdure dispatcher for regionservers.
  */
+@InterfaceAudience.Private
 public class RSProcedureDispatcher
     extends RemoteProcedureDispatcher<MasterProcedureEnv, ServerName>
     implements ServerListener {

http://git-wip-us.apache.org/repos/asf/hbase/blob/70c17072/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/RecoverMetaProcedure.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/RecoverMetaProcedure.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/RecoverMetaProcedure.java
index 2234a1b..7572495 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/RecoverMetaProcedure.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/RecoverMetaProcedure.java
@@ -20,7 +20,6 @@ package org.apache.hadoop.hbase.master.procedure;
 
 import java.io.IOException;
 import java.util.Set;
-
 import org.apache.hadoop.hbase.ServerName;
 import org.apache.hadoop.hbase.TableName;
 import org.apache.hadoop.hbase.client.RegionInfo;
@@ -35,11 +34,13 @@ import org.apache.hadoop.hbase.procedure2.ProcedureSuspendedException;
 import org.apache.hadoop.hbase.procedure2.ProcedureYieldException;
 import org.apache.hadoop.hbase.procedure2.StateMachineProcedure;
 import org.apache.hadoop.hbase.zookeeper.MetaTableLocator;
+import org.apache.yetus.audience.InterfaceAudience;
 import org.apache.zookeeper.KeeperException;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 import org.apache.hbase.thirdparty.com.google.common.base.Preconditions;
+
 import org.apache.hadoop.hbase.shaded.protobuf.ProtobufUtil;
 import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos;
 import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.RecoverMetaState;
@@ -50,6 +51,7 @@ import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.R
  * assigning meta region/s. Any place where meta is accessed and requires meta to be online, need to
  * submit this procedure instead of duplicating steps to recover meta in the code.
  */
+@InterfaceAudience.Private
 public class RecoverMetaProcedure
     extends StateMachineProcedure<MasterProcedureEnv, MasterProcedureProtos.RecoverMetaState>
     implements TableProcedureInterface {

http://git-wip-us.apache.org/repos/asf/hbase/blob/70c17072/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/ServerCrashProcedure.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/ServerCrashProcedure.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/ServerCrashProcedure.java
index 3d66072..5d8d6fa 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/ServerCrashProcedure.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/ServerCrashProcedure.java
@@ -22,7 +22,6 @@ import java.util.ArrayList;
 import java.util.Collections;
 import java.util.Iterator;
 import java.util.List;
-
 import org.apache.hadoop.hbase.ServerName;
 import org.apache.hadoop.hbase.TableName;
 import org.apache.hadoop.hbase.client.RegionInfo;
@@ -36,6 +35,7 @@ import org.apache.hadoop.hbase.procedure2.ProcedureStateSerializer;
 import org.apache.hadoop.hbase.procedure2.ProcedureSuspendedException;
 import org.apache.hadoop.hbase.procedure2.ProcedureYieldException;
 import org.apache.hadoop.hbase.procedure2.StateMachineProcedure;
+import org.apache.yetus.audience.InterfaceAudience;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -53,6 +53,7 @@ import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.S
  * queued on the rpc should have been notified about fail and should be concurrently
  * getting themselves ready to assign elsewhere.
  */
+@InterfaceAudience.Private
 public class ServerCrashProcedure
 extends StateMachineProcedure<MasterProcedureEnv, ServerCrashState>
 implements ServerProcedureInterface {

http://git-wip-us.apache.org/repos/asf/hbase/blob/70c17072/hbase-server/src/main/java/org/apache/hadoop/hbase/procedure/MasterProcedureManagerHost.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/procedure/MasterProcedureManagerHost.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/procedure/MasterProcedureManagerHost.java
index 222c933..736257f 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/procedure/MasterProcedureManagerHost.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/procedure/MasterProcedureManagerHost.java
@@ -19,17 +19,18 @@ package org.apache.hadoop.hbase.procedure;
 
 import java.io.IOException;
 import java.util.Hashtable;
-
 import org.apache.hadoop.conf.Configuration;
 import org.apache.hadoop.hbase.master.MasterServices;
 import org.apache.hadoop.hbase.master.MetricsMaster;
+import org.apache.yetus.audience.InterfaceAudience;
 import org.apache.zookeeper.KeeperException;
 
 /**
  * Provides the globally barriered procedure framework and environment for
- * master oriented operations. {@link org.apache.hadoop.hbase.master.HMaster} 
+ * master oriented operations. {@link org.apache.hadoop.hbase.master.HMaster}
  * interacts with the loaded procedure manager through this class.
  */
+@InterfaceAudience.Private
 public class MasterProcedureManagerHost extends
     ProcedureManagerHost<MasterProcedureManager> {
 

http://git-wip-us.apache.org/repos/asf/hbase/blob/70c17072/hbase-server/src/main/java/org/apache/hadoop/hbase/procedure/RegionServerProcedureManagerHost.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/procedure/RegionServerProcedureManagerHost.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/procedure/RegionServerProcedureManagerHost.java
index 4c01eb8..5ae7a44 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/procedure/RegionServerProcedureManagerHost.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/procedure/RegionServerProcedureManagerHost.java
@@ -18,21 +18,22 @@
 package org.apache.hadoop.hbase.procedure;
 
 import java.io.IOException;
-
 import org.apache.hadoop.conf.Configuration;
 import org.apache.hadoop.hbase.procedure.flush.RegionServerFlushTableProcedureManager;
 import org.apache.hadoop.hbase.regionserver.RegionServerServices;
 import org.apache.hadoop.hbase.regionserver.snapshot.RegionServerSnapshotManager;
+import org.apache.yetus.audience.InterfaceAudience;
 import org.apache.zookeeper.KeeperException;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 /**
  * Provides the globally barriered procedure framework and environment
- * for region server oriented operations. 
+ * for region server oriented operations.
  * {@link org.apache.hadoop.hbase.regionserver.HRegionServer} interacts
  * with the loaded procedure manager through this class.
  */
+@InterfaceAudience.Private
 public class RegionServerProcedureManagerHost extends
     ProcedureManagerHost<RegionServerProcedureManager> {
 

http://git-wip-us.apache.org/repos/asf/hbase/blob/70c17072/hbase-server/src/main/java/org/apache/hadoop/hbase/procedure/Subprocedure.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/procedure/Subprocedure.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/procedure/Subprocedure.java
index d15f5ac..8b05a94 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/procedure/Subprocedure.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/procedure/Subprocedure.java
@@ -20,12 +20,12 @@ package org.apache.hadoop.hbase.procedure;
 import java.io.IOException;
 import java.util.concurrent.Callable;
 import java.util.concurrent.CountDownLatch;
-
 import org.apache.hadoop.hbase.errorhandling.ForeignException;
 import org.apache.hadoop.hbase.errorhandling.ForeignExceptionDispatcher;
 import org.apache.hadoop.hbase.errorhandling.ForeignExceptionListener;
 import org.apache.hadoop.hbase.errorhandling.ForeignExceptionSnare;
 import org.apache.hadoop.hbase.errorhandling.TimeoutExceptionInjector;
+import org.apache.yetus.audience.InterfaceAudience;
 import org.apache.zookeeper.KeeperException;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -50,6 +50,7 @@ import org.slf4j.LoggerFactory;
  * There is a category of procedure (ex: online-snapshots), and a user-specified instance-specific
  * barrierName. (ex: snapshot121126).
  */
+@InterfaceAudience.Private
 abstract public class Subprocedure implements Callable<Void> {
   private static final Logger LOG = LoggerFactory.getLogger(Subprocedure.class);
 

http://git-wip-us.apache.org/repos/asf/hbase/blob/70c17072/hbase-server/src/main/java/org/apache/hadoop/hbase/quotas/TableSpaceQuotaSnapshotNotifier.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/quotas/TableSpaceQuotaSnapshotNotifier.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/quotas/TableSpaceQuotaSnapshotNotifier.java
index d81d7d3..891a34e 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/quotas/TableSpaceQuotaSnapshotNotifier.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/quotas/TableSpaceQuotaSnapshotNotifier.java
@@ -17,17 +17,18 @@
 package org.apache.hadoop.hbase.quotas;
 
 import java.io.IOException;
-
 import org.apache.hadoop.hbase.TableName;
 import org.apache.hadoop.hbase.client.Connection;
 import org.apache.hadoop.hbase.client.Put;
 import org.apache.hadoop.hbase.client.Table;
+import org.apache.yetus.audience.InterfaceAudience;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 /**
  * A {@link SpaceQuotaSnapshotNotifier} which uses the hbase:quota table.
  */
+@InterfaceAudience.Private
 public class TableSpaceQuotaSnapshotNotifier implements SpaceQuotaSnapshotNotifier {
   private static final Logger LOG = LoggerFactory.getLogger(TableSpaceQuotaSnapshotNotifier.class);
 

http://git-wip-us.apache.org/repos/asf/hbase/blob/70c17072/hbase-server/src/main/java/org/apache/hadoop/hbase/quotas/policies/MissingSnapshotViolationPolicyEnforcement.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/quotas/policies/MissingSnapshotViolationPolicyEnforcement.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/quotas/policies/MissingSnapshotViolationPolicyEnforcement.java
index d0e4b16..cbc70a0 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/quotas/policies/MissingSnapshotViolationPolicyEnforcement.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/quotas/policies/MissingSnapshotViolationPolicyEnforcement.java
@@ -18,18 +18,20 @@ package org.apache.hadoop.hbase.quotas.policies;
 
 import java.io.IOException;
 import java.util.List;
-
 import org.apache.hadoop.fs.FileSystem;
 import org.apache.hadoop.hbase.client.Mutation;
 import org.apache.hadoop.hbase.quotas.SpaceLimitingException;
 import org.apache.hadoop.hbase.quotas.SpaceViolationPolicyEnforcement;
+import org.apache.yetus.audience.InterfaceAudience;
 
 /**
  * A {@link SpaceViolationPolicyEnforcement} which can be treated as a singleton. When a quota is
  * not defined on a table or we lack quota information, we want to avoid creating a policy, keeping
  * this path fast.
  */
-public class MissingSnapshotViolationPolicyEnforcement extends AbstractViolationPolicyEnforcement {
+@InterfaceAudience.Private
+public final class MissingSnapshotViolationPolicyEnforcement
+  extends AbstractViolationPolicyEnforcement {
   private static final MissingSnapshotViolationPolicyEnforcement SINGLETON =
       new MissingSnapshotViolationPolicyEnforcement();
 

http://git-wip-us.apache.org/repos/asf/hbase/blob/70c17072/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/DumpRegionServerMetrics.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/DumpRegionServerMetrics.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/DumpRegionServerMetrics.java
index 2b07a64..4d49ea2 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/DumpRegionServerMetrics.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/DumpRegionServerMetrics.java
@@ -16,8 +16,6 @@
  */
 package org.apache.hadoop.hbase.regionserver;
 
-import org.apache.hadoop.hbase.util.JSONBean;
-
 import java.io.IOException;
 import java.io.PrintWriter;
 import java.io.StringWriter;
@@ -25,11 +23,14 @@ import java.lang.management.ManagementFactory;
 import javax.management.MBeanServer;
 import javax.management.MalformedObjectNameException;
 import javax.management.ObjectName;
+import org.apache.hadoop.hbase.util.JSONBean;
+import org.apache.yetus.audience.InterfaceAudience;
 
 /**
  * Utility for doing JSON and MBeans.
  */
-public class DumpRegionServerMetrics {
+@InterfaceAudience.Private
+public final class DumpRegionServerMetrics {
   /**
    * Dump out a subset of regionserver mbeans only, not all of them, as json on System.out.
    */
@@ -57,4 +58,6 @@ public class DumpRegionServerMetrics {
     String str = dumpMetrics();
     System.out.println(str);
   }
+
+  private DumpRegionServerMetrics() {}
 }

http://git-wip-us.apache.org/repos/asf/hbase/blob/70c17072/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/SteppingSplitPolicy.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/SteppingSplitPolicy.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/SteppingSplitPolicy.java
index 9753080..84973db 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/SteppingSplitPolicy.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/SteppingSplitPolicy.java
@@ -17,6 +17,9 @@
  */
 package org.apache.hadoop.hbase.regionserver;
 
+import org.apache.yetus.audience.InterfaceAudience;
+
+@InterfaceAudience.Private
 public class SteppingSplitPolicy extends IncreasingToUpperBoundRegionSplitPolicy {
   /**
    * @return flushSize * 2 if there's exactly one region of the table in question

http://git-wip-us.apache.org/repos/asf/hbase/blob/70c17072/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/compactions/DateTieredCompactionRequest.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/compactions/DateTieredCompactionRequest.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/compactions/DateTieredCompactionRequest.java
index 03571d5..37b7059 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/compactions/DateTieredCompactionRequest.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/compactions/DateTieredCompactionRequest.java
@@ -20,11 +20,12 @@ package org.apache.hadoop.hbase.regionserver.compactions;
 import java.util.Arrays;
 import java.util.Collection;
 import java.util.List;
-
 import org.apache.hadoop.hbase.regionserver.HStoreFile;
+import org.apache.yetus.audience.InterfaceAudience;
 
 @edu.umd.cs.findbugs.annotations.SuppressWarnings(value="EQ_DOESNT_OVERRIDE_EQUALS",
   justification="It is intended to use the same equal method as superclass")
+@InterfaceAudience.Private
 public class DateTieredCompactionRequest extends CompactionRequestImpl {
   private List<Long> boundaries;
 

http://git-wip-us.apache.org/repos/asf/hbase/blob/70c17072/hbase-server/src/main/java/org/apache/hadoop/hbase/replication/BulkLoadCellFilter.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/replication/BulkLoadCellFilter.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/replication/BulkLoadCellFilter.java
index efbedc5..6814640 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/replication/BulkLoadCellFilter.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/replication/BulkLoadCellFilter.java
@@ -21,19 +21,22 @@ import java.io.IOException;
 import java.util.ArrayList;
 import java.util.Iterator;
 import java.util.List;
-
 import org.apache.hadoop.hbase.Cell;
 import org.apache.hadoop.hbase.CellBuilderType;
 import org.apache.hadoop.hbase.CellUtil;
 import org.apache.hadoop.hbase.ExtendedCellBuilder;
 import org.apache.hadoop.hbase.ExtendedCellBuilderFactory;
 import org.apache.hadoop.hbase.wal.WALEdit;
+import org.apache.yetus.audience.InterfaceAudience;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
+
 import org.apache.hbase.thirdparty.com.google.common.base.Predicate;
+
 import org.apache.hadoop.hbase.shaded.protobuf.generated.WALProtos.BulkLoadDescriptor;
 import org.apache.hadoop.hbase.shaded.protobuf.generated.WALProtos.StoreDescriptor;
 
+@InterfaceAudience.Private
 public class BulkLoadCellFilter {
   private static final Logger LOG = LoggerFactory.getLogger(BulkLoadCellFilter.class);
 

http://git-wip-us.apache.org/repos/asf/hbase/blob/70c17072/hbase-server/src/main/java/org/apache/hadoop/hbase/replication/regionserver/DumpReplicationQueues.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/replication/regionserver/DumpReplicationQueues.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/replication/regionserver/DumpReplicationQueues.java
index 6e27a21..83b6b25 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/replication/regionserver/DumpReplicationQueues.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/replication/regionserver/DumpReplicationQueues.java
@@ -27,7 +27,6 @@ import java.util.Map;
 import java.util.Queue;
 import java.util.Set;
 import java.util.stream.Collectors;
-
 import org.apache.hadoop.conf.Configuration;
 import org.apache.hadoop.conf.Configured;
 import org.apache.hadoop.fs.FileStatus;
@@ -56,9 +55,11 @@ import org.apache.hadoop.hbase.zookeeper.ZKUtil;
 import org.apache.hadoop.hbase.zookeeper.ZKWatcher;
 import org.apache.hadoop.util.Tool;
 import org.apache.hadoop.util.ToolRunner;
+import org.apache.yetus.audience.InterfaceAudience;
 import org.apache.zookeeper.KeeperException;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
+
 import org.apache.hbase.thirdparty.com.google.common.util.concurrent.AtomicLongMap;
 
 /**
@@ -68,7 +69,7 @@ import org.apache.hbase.thirdparty.com.google.common.util.concurrent.AtomicLongM
  * Arguments: --distributed    Polls each RS to dump information about the queue
  *            --hdfs           Reports HDFS usage by the replication queues (note: can be overestimated).
  */
-
+@InterfaceAudience.Private
 public class DumpReplicationQueues extends Configured implements Tool {
 
   private static final Logger LOG = LoggerFactory.getLogger(DumpReplicationQueues.class.getName());

http://git-wip-us.apache.org/repos/asf/hbase/blob/70c17072/hbase-server/src/main/java/org/apache/hadoop/hbase/replication/regionserver/ReplicationSinkManager.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/replication/regionserver/ReplicationSinkManager.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/replication/regionserver/ReplicationSinkManager.java
index 4c8a752..af6888c 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/replication/regionserver/ReplicationSinkManager.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/replication/regionserver/ReplicationSinkManager.java
@@ -22,18 +22,19 @@ import java.util.Collections;
 import java.util.List;
 import java.util.Map;
 import java.util.Random;
-
 import org.apache.hadoop.conf.Configuration;
 import org.apache.hadoop.hbase.ServerName;
 import org.apache.hadoop.hbase.client.ClusterConnection;
 import org.apache.hadoop.hbase.client.Connection;
 import org.apache.hadoop.hbase.replication.HBaseReplicationEndpoint;
+import org.apache.yetus.audience.InterfaceAudience;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 import org.apache.hbase.thirdparty.com.google.common.annotations.VisibleForTesting;
 import org.apache.hbase.thirdparty.com.google.common.collect.Lists;
 import org.apache.hbase.thirdparty.com.google.common.collect.Maps;
+
 import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.AdminService;
 
 /**
@@ -41,6 +42,7 @@ import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.AdminServic
  * single peer to replicate to per set of data to replicate. Also handles
  * keeping track of peer availability.
  */
+@InterfaceAudience.Private
 public class ReplicationSinkManager {
 
   private static final Logger LOG = LoggerFactory.getLogger(ReplicationSinkManager.class);

http://git-wip-us.apache.org/repos/asf/hbase/blob/70c17072/hbase-server/src/main/java/org/apache/hadoop/hbase/replication/regionserver/ReplicationSyncUp.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/replication/regionserver/ReplicationSyncUp.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/replication/regionserver/ReplicationSyncUp.java
index f7ea78f..f528564 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/replication/regionserver/ReplicationSyncUp.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/replication/regionserver/ReplicationSyncUp.java
@@ -36,17 +36,19 @@ import org.apache.hadoop.hbase.zookeeper.MetaTableLocator;
 import org.apache.hadoop.hbase.zookeeper.ZKWatcher;
 import org.apache.hadoop.util.Tool;
 import org.apache.hadoop.util.ToolRunner;
+import org.apache.yetus.audience.InterfaceAudience;
 
 /**
  * In a scenario of Replication based Disaster/Recovery, when hbase Master-Cluster crashes, this
  * tool is used to sync-up the delta from Master to Slave using the info from ZooKeeper. The tool
  * will run on Master-Cluser, and assume ZK, Filesystem and NetWork still available after hbase
  * crashes
- * 
+ *
  * <pre>
  * hbase org.apache.hadoop.hbase.replication.regionserver.ReplicationSyncUp
  * </pre>
  */
+@InterfaceAudience.Private
 public class ReplicationSyncUp extends Configured implements Tool {
 
   private static final long SLEEP_TIME = 10000;

http://git-wip-us.apache.org/repos/asf/hbase/blob/70c17072/hbase-server/src/main/java/org/apache/hadoop/hbase/security/visibility/VisibilityNewVersionBehaivorTracker.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/security/visibility/VisibilityNewVersionBehaivorTracker.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/security/visibility/VisibilityNewVersionBehaivorTracker.java
index f3e4853..b25b7e2 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/security/visibility/VisibilityNewVersionBehaivorTracker.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/security/visibility/VisibilityNewVersionBehaivorTracker.java
@@ -29,12 +29,12 @@ import java.util.SortedMap;
 import java.util.SortedSet;
 import java.util.TreeMap;
 import java.util.TreeSet;
-
 import org.apache.hadoop.hbase.Cell;
 import org.apache.hadoop.hbase.CellComparator;
 import org.apache.hadoop.hbase.KeyValue;
 import org.apache.hadoop.hbase.Tag;
 import org.apache.hadoop.hbase.regionserver.querymatcher.NewVersionBehaviorTracker;
+import org.apache.yetus.audience.InterfaceAudience;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -42,6 +42,7 @@ import org.slf4j.LoggerFactory;
  * Similar to MvccSensitiveTracker but tracks the visibility expression also before
  * deciding if a Cell can be considered deleted
  */
+@InterfaceAudience.Private
 public class VisibilityNewVersionBehaivorTracker extends NewVersionBehaviorTracker {
   private static final Logger LOG =
       LoggerFactory.getLogger(VisibilityNewVersionBehaivorTracker.class);

http://git-wip-us.apache.org/repos/asf/hbase/blob/70c17072/hbase-server/src/main/java/org/apache/hadoop/hbase/security/visibility/VisibilityReplication.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/security/visibility/VisibilityReplication.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/security/visibility/VisibilityReplication.java
index 6887c31..e39d601 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/security/visibility/VisibilityReplication.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/security/visibility/VisibilityReplication.java
@@ -19,6 +19,8 @@
 
 package org.apache.hadoop.hbase.security.visibility;
 
+import java.io.IOException;
+import java.util.Optional;
 import org.apache.hadoop.conf.Configuration;
 import org.apache.hadoop.hbase.CoprocessorEnvironment;
 import org.apache.hadoop.hbase.coprocessor.ObserverContext;
@@ -26,9 +28,7 @@ import org.apache.hadoop.hbase.coprocessor.RegionServerCoprocessor;
 import org.apache.hadoop.hbase.coprocessor.RegionServerCoprocessorEnvironment;
 import org.apache.hadoop.hbase.coprocessor.RegionServerObserver;
 import org.apache.hadoop.hbase.replication.ReplicationEndpoint;
-
-import java.io.IOException;
-import java.util.Optional;
+import org.apache.yetus.audience.InterfaceAudience;
 
 /**
  * A RegionServerObserver impl that provides the custom
@@ -37,6 +37,7 @@ import java.util.Optional;
  * replicated as string.  The value for the configuration should be
  * 'org.apache.hadoop.hbase.security.visibility.VisibilityController$VisibilityReplication'.
  */
+@InterfaceAudience.Private
 public class VisibilityReplication implements RegionServerCoprocessor, RegionServerObserver {
   private Configuration conf;
   private VisibilityLabelService visibilityLabelService;

http://git-wip-us.apache.org/repos/asf/hbase/blob/70c17072/hbase-server/src/main/java/org/apache/hadoop/hbase/snapshot/CreateSnapshot.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/snapshot/CreateSnapshot.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/snapshot/CreateSnapshot.java
index b1ee66e..af9ce88 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/snapshot/CreateSnapshot.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/snapshot/CreateSnapshot.java
@@ -20,7 +20,6 @@ package org.apache.hadoop.hbase.snapshot;
 
 import java.util.Arrays;
 import java.util.Locale;
-
 import org.apache.commons.cli.CommandLine;
 import org.apache.hadoop.hbase.TableName;
 import org.apache.hadoop.hbase.client.Admin;
@@ -28,13 +27,13 @@ import org.apache.hadoop.hbase.client.Connection;
 import org.apache.hadoop.hbase.client.ConnectionFactory;
 import org.apache.hadoop.hbase.client.SnapshotDescription;
 import org.apache.hadoop.hbase.client.SnapshotType;
-import org.apache.hadoop.hbase.shaded.protobuf.ProtobufUtil;
-import org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos;
 import org.apache.hadoop.hbase.util.AbstractHBaseTool;
+import org.apache.yetus.audience.InterfaceAudience;
 
 /**
  * This is a command line class that will snapshot a given table.
  */
+@InterfaceAudience.Private
 public class CreateSnapshot extends AbstractHBaseTool {
     private SnapshotType snapshotType = SnapshotType.FLUSH;
     private TableName tableName = null;

http://git-wip-us.apache.org/repos/asf/hbase/blob/70c17072/hbase-server/src/main/java/org/apache/hadoop/hbase/tool/WriteSinkCoprocessor.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/tool/WriteSinkCoprocessor.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/tool/WriteSinkCoprocessor.java
index 738ffc2..9311200 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/tool/WriteSinkCoprocessor.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/tool/WriteSinkCoprocessor.java
@@ -18,6 +18,9 @@
  */
 package org.apache.hadoop.hbase.tool;
 
+import java.io.IOException;
+import java.util.Optional;
+import java.util.concurrent.atomic.AtomicLong;
 import org.apache.hadoop.hbase.HConstants;
 import org.apache.hadoop.hbase.client.Mutation;
 import org.apache.hadoop.hbase.coprocessor.ObserverContext;
@@ -26,13 +29,10 @@ import org.apache.hadoop.hbase.coprocessor.RegionCoprocessorEnvironment;
 import org.apache.hadoop.hbase.coprocessor.RegionObserver;
 import org.apache.hadoop.hbase.regionserver.MiniBatchOperationInProgress;
 import org.apache.hadoop.hbase.regionserver.OperationStatus;
+import org.apache.yetus.audience.InterfaceAudience;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import java.io.IOException;
-import java.util.Optional;
-import java.util.concurrent.atomic.AtomicLong;
-
 /**
  * <p>
  * This coprocessor 'shallows' all the writes. It allows to test a pure
@@ -59,7 +59,9 @@ import java.util.concurrent.atomic.AtomicLong;
  * Will return:
  * 0 row(s) in 0.0050 seconds
  * </p>
+ * TODO: It needs tests
  */
+@InterfaceAudience.Private
 public class WriteSinkCoprocessor implements RegionCoprocessor, RegionObserver {
   private static final Logger LOG = LoggerFactory.getLogger(WriteSinkCoprocessor.class);
   private final AtomicLong ops = new AtomicLong();

http://git-wip-us.apache.org/repos/asf/hbase/blob/70c17072/hbase-server/src/main/java/org/apache/hadoop/hbase/util/GetJavaProperty.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/util/GetJavaProperty.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/util/GetJavaProperty.java
index b12c592..2d4de3b 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/util/GetJavaProperty.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/util/GetJavaProperty.java
@@ -18,10 +18,13 @@
  */
 package org.apache.hadoop.hbase.util;
 
+import org.apache.yetus.audience.InterfaceAudience;
+
 /**
  * A generic way for querying Java properties.
  */
-public class GetJavaProperty {
+@InterfaceAudience.Private
+public final class GetJavaProperty {
   public static void main(String args[]) {
     if (args.length == 0) {
       for (Object prop: System.getProperties().keySet()) {
@@ -33,4 +36,6 @@ public class GetJavaProperty {
       }
     }
   }
+
+  private GetJavaProperty() {}
 }

http://git-wip-us.apache.org/repos/asf/hbase/blob/70c17072/hbase-server/src/main/java/org/apache/hadoop/hbase/util/HFileArchiveUtil.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/util/HFileArchiveUtil.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/util/HFileArchiveUtil.java
index fb99cba..03ed373 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/util/HFileArchiveUtil.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/util/HFileArchiveUtil.java
@@ -26,11 +26,13 @@ import org.apache.hadoop.hbase.TableName;
 import org.apache.hadoop.hbase.client.RegionInfo;
 import org.apache.hadoop.hbase.regionserver.HRegion;
 import org.apache.hadoop.hbase.regionserver.HStore;
+import org.apache.yetus.audience.InterfaceAudience;
 
 /**
  * Helper class for all utilities related to archival/retrieval of HFiles
  */
-public class HFileArchiveUtil {
+@InterfaceAudience.Private
+public final class HFileArchiveUtil {
   private HFileArchiveUtil() {
     // non-external instantiation - util class
   }

http://git-wip-us.apache.org/repos/asf/hbase/blob/70c17072/hbase-server/src/main/java/org/apache/hadoop/hbase/util/RollingStatCalculator.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/util/RollingStatCalculator.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/util/RollingStatCalculator.java
index 554d6f5..fb2a954 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/util/RollingStatCalculator.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/util/RollingStatCalculator.java
@@ -19,6 +19,8 @@
 
 package org.apache.hadoop.hbase.util;
 
+import org.apache.yetus.audience.InterfaceAudience;
+
 /**
  * This class maintains mean and variation for any sequence of input provided to it.
  * It is initialized with number of rolling periods which basically means the number of past
@@ -30,6 +32,7 @@ package org.apache.hadoop.hbase.util;
  * from the start the statistics may behave like constants and may ignore short trends.
  * All operations are O(1) except the initialization which is O(N).
  */
+@InterfaceAudience.Private
 public class RollingStatCalculator {
   private double currentSum;
   private double currentSqrSum;

http://git-wip-us.apache.org/repos/asf/hbase/blob/70c17072/hbase-server/src/main/java/org/apache/hadoop/hbase/util/ServerRegionReplicaUtil.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/util/ServerRegionReplicaUtil.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/util/ServerRegionReplicaUtil.java
index 8a43d17..769d480 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/util/ServerRegionReplicaUtil.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/util/ServerRegionReplicaUtil.java
@@ -19,7 +19,6 @@
 package org.apache.hadoop.hbase.util;
 
 import java.io.IOException;
-
 import org.apache.hadoop.conf.Configuration;
 import org.apache.hadoop.fs.FileSystem;
 import org.apache.hadoop.fs.Path;
@@ -35,12 +34,14 @@ import org.apache.hadoop.hbase.regionserver.StoreFileInfo;
 import org.apache.hadoop.hbase.replication.ReplicationPeerConfig;
 import org.apache.hadoop.hbase.replication.regionserver.RegionReplicaReplicationEndpoint;
 import org.apache.hadoop.hbase.zookeeper.ZKConfig;
+import org.apache.yetus.audience.InterfaceAudience;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 /**
  * Similar to {@link RegionReplicaUtil} but for the server side
  */
+@InterfaceAudience.Private
 public class ServerRegionReplicaUtil extends RegionReplicaUtil {
 
   private static final Logger LOG = LoggerFactory.getLogger(ServerRegionReplicaUtil.class);

http://git-wip-us.apache.org/repos/asf/hbase/blob/70c17072/hbase-server/src/main/java/org/apache/hadoop/hbase/util/ShutdownHookManager.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/util/ShutdownHookManager.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/util/ShutdownHookManager.java
index d3da773..3b206a8 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/util/ShutdownHookManager.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/util/ShutdownHookManager.java
@@ -17,13 +17,15 @@
  */
 package org.apache.hadoop.hbase.util;
 
+import org.apache.yetus.audience.InterfaceAudience;
 
 /**
  * This class provides ShutdownHookManager shims for HBase to interact with the Hadoop 1.0.x and the
  * Hadoop 2.0+ series.
- * 
+ *
  * NOTE: No testing done against 0.22.x, or 0.21.x.
  */
+@InterfaceAudience.Private
 abstract public class ShutdownHookManager {
   private static ShutdownHookManager instance;
 
@@ -39,13 +41,13 @@ abstract public class ShutdownHookManager {
   }
 
   abstract public void addShutdownHook(Thread shutdownHook, int priority);
-  
+
   abstract public boolean removeShutdownHook(Runnable shutdownHook);
-    
+
   public static void affixShutdownHook(Thread shutdownHook, int priority) {
     instance.addShutdownHook(shutdownHook, priority);
   }
-  
+
   public static boolean deleteShutdownHook(Runnable shutdownHook) {
     return instance.removeShutdownHook(shutdownHook);
   }
@@ -56,14 +58,14 @@ abstract public class ShutdownHookManager {
     public void addShutdownHook(Thread shutdownHookThread, int priority) {
       Runtime.getRuntime().addShutdownHook(shutdownHookThread);
     }
-    
+
     @Override
     public boolean removeShutdownHook(Runnable shutdownHook) {
       Thread shutdownHookThread = null;
       if (!(shutdownHook instanceof Thread)) {
         shutdownHookThread = new Thread(shutdownHook);
       } else shutdownHookThread = (Thread) shutdownHook;
-      
+
       return Runtime.getRuntime().removeShutdownHook(shutdownHookThread);
     }
   };
@@ -72,7 +74,7 @@ abstract public class ShutdownHookManager {
     @Override
     public void addShutdownHook(Thread shutdownHookThread, int priority) {
       try {
-        Methods.call(shutdownHookManagerClass, 
+        Methods.call(shutdownHookManagerClass,
             Methods.call(shutdownHookManagerClass, null, "get", null, null),
             "addShutdownHook",
             new Class[] { Runnable.class, int.class },
@@ -81,12 +83,12 @@ abstract public class ShutdownHookManager {
         throw new RuntimeException("we could not use ShutdownHookManager.addShutdownHook", ex);
       }
     }
-    
+
     @Override
     public boolean removeShutdownHook(Runnable shutdownHook) {
       try {
         return (Boolean)
-        Methods.call(shutdownHookManagerClass, 
+        Methods.call(shutdownHookManagerClass,
             Methods.call(shutdownHookManagerClass, null, "get", null, null),
             "removeShutdownHook",
             new Class[] { Runnable.class },

http://git-wip-us.apache.org/repos/asf/hbase/blob/70c17072/hbase-server/src/main/java/org/apache/hadoop/hbase/util/SortedList.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/util/SortedList.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/util/SortedList.java
index 3f5576e..f896e55 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/util/SortedList.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/util/SortedList.java
@@ -26,6 +26,7 @@ import java.util.Iterator;
 import java.util.List;
 import java.util.ListIterator;
 import java.util.RandomAccess;
+import org.apache.yetus.audience.InterfaceAudience;
 
 /**
  * Simple sorted list implementation that uses {@link java.util.ArrayList} as
@@ -38,7 +39,7 @@ import java.util.RandomAccess;
  * time of invocation, so will not see any mutations to the collection during
  * their operation. Iterating over list elements manually using the
  * RandomAccess pattern involves multiple operations. For this to be safe get
- * a reference to the internal list first using get(). 
+ * a reference to the internal list first using get().
  * <p>
  * If constructed with a {@link java.util.Comparator}, the list will be sorted
  * using the comparator. Adding or changing an element using an index will
@@ -48,6 +49,7 @@ import java.util.RandomAccess;
  */
 @edu.umd.cs.findbugs.annotations.SuppressWarnings(value="UG_SYNC_SET_UNSYNC_GET",
   justification="TODO: synchronization in here needs review!!!")
+@InterfaceAudience.Private
 public class SortedList<E> implements List<E>, RandomAccess {
   private volatile List<E> list;
   private final Comparator<? super E> comparator;

http://git-wip-us.apache.org/repos/asf/hbase/blob/70c17072/hbase-server/src/main/java/org/apache/hadoop/hbase/util/YammerHistogramUtils.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/util/YammerHistogramUtils.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/util/YammerHistogramUtils.java
index 742a2ef..3070fb3 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/util/YammerHistogramUtils.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/util/YammerHistogramUtils.java
@@ -21,11 +21,12 @@ package org.apache.hadoop.hbase.util;
 import com.codahale.metrics.Histogram;
 import com.codahale.metrics.Reservoir;
 import com.codahale.metrics.Snapshot;
-
 import java.lang.reflect.Constructor;
 import java.text.DecimalFormat;
+import org.apache.yetus.audience.InterfaceAudience;
 
 /** Utility functions for working with Yammer Metrics. */
+@InterfaceAudience.Private
 public final class YammerHistogramUtils {
 
   // not for public consumption

http://git-wip-us.apache.org/repos/asf/hbase/blob/70c17072/hbase-server/src/main/java/org/apache/hadoop/hbase/util/hbck/TableIntegrityErrorHandler.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/util/hbck/TableIntegrityErrorHandler.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/util/hbck/TableIntegrityErrorHandler.java
index 4ca0e74..d5f5f53 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/util/hbck/TableIntegrityErrorHandler.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/util/hbck/TableIntegrityErrorHandler.java
@@ -20,9 +20,9 @@ package org.apache.hadoop.hbase.util.hbck;
 
 import java.io.IOException;
 import java.util.Collection;
-
 import org.apache.hadoop.hbase.util.HBaseFsck.HbckInfo;
 import org.apache.hadoop.hbase.util.HBaseFsck.TableInfo;
+import org.apache.yetus.audience.InterfaceAudience;
 
 /**
  * This interface provides callbacks for handling particular table integrity
@@ -30,6 +30,7 @@ import org.apache.hadoop.hbase.util.HBaseFsck.TableInfo;
  * and handling overlaps but currently preserves the older more specific error
  * condition codes.
  */
+@InterfaceAudience.Private
 public interface TableIntegrityErrorHandler {
 
   TableInfo getTableInfo();
@@ -48,7 +49,7 @@ public interface TableIntegrityErrorHandler {
    *    has an empty start key.
    */
   void handleRegionStartKeyNotEmpty(HbckInfo hi) throws IOException;
-  
+
   /**
    * Callback for handling case where a Table has a last region that does not
    * have an empty end key.
@@ -68,7 +69,7 @@ public interface TableIntegrityErrorHandler {
   /**
    * Callback for handling two regions that have the same start key.  This is
    * a specific case of a region overlap.
-   * @param hi1 one of the overlapping HbckInfo 
+   * @param hi1 one of the overlapping HbckInfo
    * @param hi2 the other overlapping HbckInfo
    */
   void handleDuplicateStartKeys(HbckInfo hi1, HbckInfo hi2) throws IOException;
@@ -96,7 +97,7 @@ public interface TableIntegrityErrorHandler {
    * Callback for handling a region hole between two keys.
    * @param holeStartKey key at the beginning of the region hole
    * @param holeEndKey key at the end of the region hole
-   
+
    */
   void handleHoleInRegionChain(byte[] holeStartKey, byte[] holeEndKey)
       throws IOException;

http://git-wip-us.apache.org/repos/asf/hbase/blob/70c17072/hbase-server/src/main/java/org/apache/hadoop/hbase/util/hbck/TableIntegrityErrorHandlerImpl.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/util/hbck/TableIntegrityErrorHandlerImpl.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/util/hbck/TableIntegrityErrorHandlerImpl.java
index af379fd..96039b5 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/util/hbck/TableIntegrityErrorHandlerImpl.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/util/hbck/TableIntegrityErrorHandlerImpl.java
@@ -19,14 +19,15 @@ package org.apache.hadoop.hbase.util.hbck;
 
 import java.io.IOException;
 import java.util.Collection;
-
 import org.apache.hadoop.hbase.util.HBaseFsck.HbckInfo;
 import org.apache.hadoop.hbase.util.HBaseFsck.TableInfo;
+import org.apache.yetus.audience.InterfaceAudience;
 
 /**
  * Simple implementation of TableIntegrityErrorHandler. Can be used as a base
  * class.
  */
+@InterfaceAudience.Private
 abstract public class TableIntegrityErrorHandlerImpl implements
     TableIntegrityErrorHandler {
   TableInfo ti;
@@ -53,7 +54,7 @@ abstract public class TableIntegrityErrorHandlerImpl implements
   @Override
   public void handleRegionStartKeyNotEmpty(HbckInfo hi) throws IOException {
   }
-  
+
   /**
    * {@inheritDoc}
    */

http://git-wip-us.apache.org/repos/asf/hbase/blob/70c17072/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/NettyAsyncFSWALConfigHelper.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/NettyAsyncFSWALConfigHelper.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/NettyAsyncFSWALConfigHelper.java
index 0836b5d..12b63f5 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/NettyAsyncFSWALConfigHelper.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/wal/NettyAsyncFSWALConfigHelper.java
@@ -22,6 +22,7 @@ import java.util.Map;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.hadoop.conf.Configuration;
 import org.apache.hadoop.hbase.util.Pair;
+import org.apache.yetus.audience.InterfaceAudience;
 
 import org.apache.hbase.thirdparty.com.google.common.base.Preconditions;
 import org.apache.hbase.thirdparty.io.netty.channel.Channel;
@@ -31,7 +32,8 @@ import org.apache.hbase.thirdparty.io.netty.channel.EventLoopGroup;
  * Helper class for passing netty event loop config to {@link AsyncFSWALProvider}.
  * @since 2.0.0
  */
-public class NettyAsyncFSWALConfigHelper {
+@InterfaceAudience.Private
+public final class NettyAsyncFSWALConfigHelper {
 
   private static final String EVENT_LOOP_CONFIG = "hbase.wal.async.event-loop.config";
 
@@ -59,4 +61,6 @@ public class NettyAsyncFSWALConfigHelper {
     }
     return EVENT_LOOP_CONFIG_MAP.get(name);
   }
+
+  private NettyAsyncFSWALConfigHelper() {}
 }

http://git-wip-us.apache.org/repos/asf/hbase/blob/70c17072/hbase-shell/pom.xml
----------------------------------------------------------------------
diff --git a/hbase-shell/pom.xml b/hbase-shell/pom.xml
index d3c395d..1c6e939 100644
--- a/hbase-shell/pom.xml
+++ b/hbase-shell/pom.xml
@@ -116,6 +116,10 @@
         <groupId>org.codehaus.mojo</groupId>
         <artifactId>findbugs-maven-plugin</artifactId>
       </plugin>
+      <plugin>
+        <groupId>net.revelc.code</groupId>
+        <artifactId>warbucks-maven-plugin</artifactId>
+      </plugin>
     </plugins>
     <!-- General Resources -->
     <pluginManagement>

http://git-wip-us.apache.org/repos/asf/hbase/blob/70c17072/hbase-thrift/pom.xml
----------------------------------------------------------------------
diff --git a/hbase-thrift/pom.xml b/hbase-thrift/pom.xml
index 079a8c0..1f4ccaa 100644
--- a/hbase-thrift/pom.xml
+++ b/hbase-thrift/pom.xml
@@ -138,6 +138,10 @@
         <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-source-plugin</artifactId>
       </plugin>
+      <plugin>
+        <groupId>net.revelc.code</groupId>
+        <artifactId>warbucks-maven-plugin</artifactId>
+      </plugin>
     </plugins>
     <pluginManagement>
       <plugins>

http://git-wip-us.apache.org/repos/asf/hbase/blob/70c17072/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift/HttpAuthenticationException.java
----------------------------------------------------------------------
diff --git a/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift/HttpAuthenticationException.java b/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift/HttpAuthenticationException.java
index eab5307..b75b433 100644
--- a/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift/HttpAuthenticationException.java
+++ b/hbase-thrift/src/main/java/org/apache/hadoop/hbase/thrift/HttpAuthenticationException.java
@@ -18,6 +18,9 @@
  */
 package org.apache.hadoop.hbase.thrift;
 
+import org.apache.yetus.audience.InterfaceAudience;
+
+@InterfaceAudience.Private
 public class HttpAuthenticationException extends Exception {
   private static final long serialVersionUID = 0;
   /**